rev: 立库堆垛机相关任务下发时 给托盘号

This commit is contained in:
2024-07-02 13:29:00 +08:00
parent 5826a97da2
commit 2f6cbfd9c1
14 changed files with 104 additions and 13 deletions

View File

@@ -117,7 +117,7 @@ public class TwoInBoxTask extends AbstractAcsTask {
jsonVeExt.put("update_time", DateUtil.now());
veExtTab.insert(jsonVeExt);
}else {
ext_jo.put("pcsn", jsonTask.getString("vehicle_code2"));
ext_jo.put("pcsn", jsonTask.getString("vehicle_code"));
ext_jo.put("device_uuid", org.nl.common.utils.IdUtil.getLongId());
ext_jo.put("update_time", DateUtil.now());
veExtTab.update(ext_jo);

View File

@@ -49,7 +49,7 @@ public class TwoMoveBoxTask extends AbstractAcsTask {
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.route_plan_code(getRoutePlanCode(json.getString("point_code2")))
.vehicle_code(json.getString("vehicle_code"))
.vehicle_code(json.getString("vehicle_code2"))
.priority(json.getString("priority"))
.class_type(json.getString("task_type"))
.dtl_type(String.valueOf(dtl_type))
@@ -163,6 +163,7 @@ public class TwoMoveBoxTask extends AbstractAcsTask {
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
json.put("task_type", form.getString("task_type"));
json.put("vehicle_code", form.getString("vehicle_code"));
json.put("vehicle_code2", form.getString("vehicle_code2"));
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
json.put("task_group_id", form.getLongValue("task_group_id"));
json.put("point_code1", form.getString("start_device_code"));

View File

@@ -64,7 +64,7 @@ public class TwoOutBoxTask extends AbstractAcsTask {
.task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.vehicle_code(json.getString("vehicle_code"))
.vehicle_code(json.getString("vehicle_code2"))
.interaction_json(json.getJSONObject("request_param"))
.priority(json.getString("priority"))
.class_type(json.getString("task_type"))
@@ -176,6 +176,7 @@ public class TwoOutBoxTask extends AbstractAcsTask {
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
json.put("task_type", form.getString("task_type"));
json.put("vehicle_code", form.getString("vehicle_code"));
json.put("vehicle_code2", form.getString("vehicle_code2"));
json.put("vehicle_type", form.getString("vehicle_type"));
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
json.put("task_group_id", form.getLongValue("task_group_id"));

View File

@@ -2,6 +2,7 @@ package org.nl.b_lms.sch.tasks;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -49,7 +50,7 @@ public class TwoOutExceptionalTask extends AbstractAcsTask {
.task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.vehicle_code(json.getString("vehicle_code"))
.vehicle_code(json.getString("vehicle_code2"))
.priority(json.getString("priority"))
.class_type(json.getString("task_type"))
.route_plan_code(getRoutePlanCode(json.getString("point_code1")))
@@ -70,6 +71,8 @@ public class TwoOutExceptionalTask extends AbstractAcsTask {
WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis");
// 点位表
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
// 载具扩展属性表
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
JSONObject jsonTask = taskTab.query("task_id = '" + taskObj.getString("task_id") + "'").uniqueResult(0);
@@ -97,11 +100,19 @@ public class TwoOutExceptionalTask extends AbstractAcsTask {
JSONObject jsonPoint = pointTab.query("region_id = '" + RegionTypeEnum.TWO_OUT01.getId() + "' and is_delete = '0' and is_used = '1'").uniqueResult(0);
// 查询木箱对应的载具
JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonTask.getString("vehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+jsonTask.getString("vehicle_code"));
}
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_type", "010711");
jsonTaskParam.put("point_code1", jsonTask.getString("point_code2"));
jsonTaskParam.put("point_code2", jsonPoint.getString("point_code"));
jsonTaskParam.put("vehicle_code", jsonTask.getString("vehicle_code"));
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
jsonTaskParam.put("task_group_id", jsonDis.getString("task_id"));
jsonTaskParam.put("is_auto_issue", IOSEnum.IS_SEND.code(""));
jsonTaskParam.put("table_fk", jsonTask.getString("table_fk"));
@@ -171,6 +182,7 @@ public class TwoOutExceptionalTask extends AbstractAcsTask {
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
json.put("task_type", form.getString("task_type"));
json.put("vehicle_code", form.getString("vehicle_code"));
json.put("vehicle_code2", form.getString("vehicle_code2"));
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
json.put("point_code1", form.getString("start_device_code"));
json.put("point_code2", form.getString("next_device_code"));

View File

@@ -54,7 +54,7 @@ public class TwoOutHeapTask extends AbstractAcsTask {
.task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.vehicle_code(json.getString("vehicle_code"))
.vehicle_code(json.getString("vehicle_code2"))
.interaction_json(json.getJSONObject("request_param"))
.priority(json.getString("priority"))
.class_type(json.getString("task_type"))

View File

@@ -101,7 +101,7 @@ public class TwoOutTask extends AbstractAcsTask {
.task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.vehicle_code(json.getString("vehicle_code"))
.vehicle_code(json.getString("vehicle_code2"))
.interaction_json(json.getJSONObject("request_param"))
.route_plan_code(getRoutePlanCode(json.getString("point_code1")))
.priority(json.getString("priority"))

View File

@@ -1102,6 +1102,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
// 载具扩展属性表
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
JSONObject result = new JSONObject();
@@ -1187,12 +1189,20 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
moveParam.put("material_id", disDao.getMaterial_id());
JSONObject jsonMove = inBussManageService.getOneStruct(moveParam);
// 查询木箱对应的载具
JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonLow.getString("storagevehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+jsonLow.getString("storagevehicle_code"));
}
// 生成任务
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_type", "010709");
jsonTaskParam.put("start_device_code", jsonLow.getString("struct_code"));
jsonTaskParam.put("next_device_code", jsonMove.getString("struct_code"));
jsonTaskParam.put("vehicle_code", jsonLow.getString("storagevehicle_code"));
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
jsonTaskParam.put("table_fk", iostorinv_id);
TwoOutExceptionalTask taskBean = new TwoOutExceptionalTask();
@@ -1293,7 +1303,11 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
}
// 查询木箱对应的载具
JSONObject jsonExt = extTab.query("storagevehicle_code = '" + json.getString("storagevehicle_code") + "'").uniqueResult(0);
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
}
// 生成任务
JSONObject jsonTaskParam = new JSONObject();
@@ -1301,10 +1315,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonTaskParam.put("point_code1", start_device_code);
jsonTaskParam.put("point_code2", end_device_code);
jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code"));
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
jsonTaskParam.put("containerType", json.getString("storagevehicle_type"));
if (ObjectUtil.isNotEmpty(jsonExt)) {
jsonTaskParam.put("vehicle_code2", jsonExt.getString("storagevehicle_code"));
}
jsonTaskParam.put("task_group_id", task_group_id);
jsonTaskParam.put("is_auto_issue", is_auto_issue);
JSONObject request_param = new JSONObject();

View File

@@ -501,6 +501,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
@Override
@Transactional
public String setPoint(Map whereJson) {
// 载具扩展属性表
WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
// 分配明细集合
ArrayList<HashMap> list = (ArrayList<HashMap>) whereJson.get("tableMater");
@@ -520,13 +522,20 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
// 主表实体类
StIvtIostorinv mstDao = this.getById(jsonDis.getString("iostorinv_id"));
// 查询木箱对应的绑定关系
JSONObject jsonVeExt = veExtTab.query("pcsn = '" + whereJson.get("vehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+whereJson.get("vehicle_code"));
}
// 创建任务
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_type", "010703");
jsonTaskParam.put("start_device_code", pointDto.getPoint_code());
jsonTaskParam.put("next_device_code", jsonDis.getString("struct_code"));
jsonTaskParam.put("vehicle_code", whereJson.get("vehicle_code"));
jsonTaskParam.put("vehicle_code2", whereJson.get("vehicle_code2"));
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
jsonTaskParam.put("inv_type", mstDao.getBill_type());
jsonTaskParam.put("inv_id", mstDao.getIostorinv_id());
jsonTaskParam.put("inv_code", mstDao.getBill_code());

View File

@@ -203,6 +203,9 @@ public class LashManageServiceImpl implements LashManageService {
@Override
public void createHeapTask(JSONObject whereJson) {
// 载具扩展属性表
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
// 比较两行架点位的任务个数
List<JSONObject> executeArr = WQLObject.getWQLObject("SCH_BASE_Task")
.query("handle_class = '" + TwoOutHeapTask.class.getName() + "' and task_status IN ('05','06') and is_delete = '0' " )
@@ -223,6 +226,13 @@ public class LashManageServiceImpl implements LashManageService {
next_device_code = IOSEnum.OUT_HANGER.code("行架位2");
}
// 查询木箱对应的载具
JSONObject jsonVeExt = extTab.query("pcsn = '" + whereJson.getString("vehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+whereJson.getString("vehicle_code"));
}
// 创建任务并下发
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_type", "010720");
@@ -231,6 +241,7 @@ public class LashManageServiceImpl implements LashManageService {
jsonTaskParam.put("task_group_id", whereJson.getString("task_group_id"));
jsonTaskParam.put("point_code2", next_device_code);
jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code"));
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
jsonTaskParam.put("request_param", whereJson);
TwoOutHeapTask bean = SpringContextHolder.getBean(TwoOutHeapTask.class);

View File

@@ -71,6 +71,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
WQLObject schBasePointService = WQLObject.getWQLObject("sch_base_point");
// 仓位表
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
// 载具扩展属性表
WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
whereJson.put("stor_id", IOSEnum.STOR_ID.code("二期"));
whereJson.put("sect_id", RegionTypeEnum.TWO_BZC01.getId());
@@ -92,13 +95,20 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
throw new BadRequestException("没有符合规格的木箱!");
}
// 查询木箱对应的托盘号
JSONObject jsonVeExt = veExtTab.query("pcsn = '" + jsonAttr.getString("storagevehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+jsonAttr.getString("storagevehicle_code"));
}
// 生成任务
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_type", "010704");
jsonTaskParam.put("start_device_code", jsonAttr.getString("struct_code"));
jsonTaskParam.put("next_device_code", whereJson.getString("device_code"));
jsonTaskParam.put("vehicle_code", jsonAttr.getString("storagevehicle_code"));
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
jsonTaskParam.put("task_group_id", jsonAttr.getString("task_group_id"));
JSONObject request_param = new JSONObject();
request_param.put("containerType", jsonAttr.getString("storagevehicle_type"));
@@ -534,6 +544,8 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
*/
private String createBoxMove(JSONObject jsonObject) {
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
// 载具扩展属性表
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
// 找一个空的仓位
JSONObject paramIn = new JSONObject();
@@ -557,12 +569,20 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("移入锁"));
attrTab.update(jsonAttr);
// 查询木箱对应的载具
JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonObject.getString("storagevehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+jsonObject.getString("storagevehicle_code"));
}
// 生成任务
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_type", "010505");
jsonTaskParam.put("task_type", "010709");
jsonTaskParam.put("start_device_code", jsonObject.getString("struct_code"));
jsonTaskParam.put("next_device_code", jsonAttr.getString("struct_code"));
jsonTaskParam.put("vehicle_code", jsonObject.getString("storagevehicle_code"));
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
jsonTaskParam.put("task_group_id", IdUtil.getLongId());
TwoMoveBoxTask taskBan = new TwoMoveBoxTask();

View File

@@ -341,6 +341,8 @@ public class OutBussManageServiceImpl implements OutBussManageService {
//物料表
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase");
// 载具扩展属性表
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
// 获取子卷包装集合
String vehilcle_in = list.stream()
@@ -445,10 +447,18 @@ public class OutBussManageServiceImpl implements OutBussManageService {
jsonMoveDtl.put("turnin_struct_code", jsonMove.getString("struct_code"));
jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name"));
// 查询木箱对应的载具
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
}
// 生成任务
JSONObject param2 = new JSONObject();
param2.put("task_type", "010709");
param2.put("vehicle_code", json.getString("storagevehicle_code"));
param2.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
param2.put("point_code1", json.getString("struct_code"));
param2.put("point_code2", jsonMove.getString("struct_code"));

View File

@@ -46,6 +46,13 @@ public interface InBoxManageService {
*/
JSONObject taskExceptional(JSONObject jsonObject);
/**
* 成品退货入库
* @param whereJson {
* box_no 木箱号
* vehicle_code 载具号
* }
*/
void returnIn(JSONObject whereJson);
}

View File

@@ -20,6 +20,7 @@ public interface OutBoxManageService {
* box_width
* box_high
* num: 子卷数
* @return String:木箱号
* }
*/
String outBox(JSONObject whereJson);

View File

@@ -60,6 +60,12 @@ public class HandMoveStorAcsTask extends AbstractAcsTask {
.dtl_type(String.valueOf(dtl_type))
.remark(json.getString("remark"))
.build();
// 如果是二期转库任务则下发托盘
if (json.getString("task_type").equals("010709")) {
dto.setVehicle_code(json.getString("vehicle_code2"));
}
resultList.add(dto);
json.put("task_status", TaskStatusEnum.ISSUE.getCode());
WQLObject.getWQLObject("SCH_BASE_Task").update(json);
@@ -130,6 +136,7 @@ public class HandMoveStorAcsTask extends AbstractAcsTask {
json.put("task_type", form.getString("task_type"));
json.put("vehicle_code", form.getString("vehicle_code"));
json.put("vehicle_code2", form.getString("vehicle_code2"));
json.put("task_name", form.getString("task_name"));
json.put("point_code1", form.getString("point_code1"));
json.put("point_code2", form.getString("point_code2"));