fix:空木箱入库跟装箱入库任务冲突

This commit is contained in:
zhangzq
2025-03-27 19:34:06 +08:00
parent a0e1cf1ead
commit 1d3c3fb1ef
3 changed files with 84 additions and 83 deletions

View File

@@ -398,8 +398,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
JSONObject 浅Attr = attrTab JSONObject 浅Attr = attrTab
.query("zdepth = '1' and row_num = '"+boxAttr.getString("row_num")+"' and col_num = '" + boxAttr.getString("col_num") + "' and layer_num = '"+boxAttr.getString("layer_num")+"'") .query("zdepth = '1' and row_num = '"+boxAttr.getString("row_num")+"' and col_num = '" + boxAttr.getString("col_num") + "' and layer_num = '"+boxAttr.getString("layer_num")+"'")
.uniqueResult(0); .uniqueResult(0);
if (!ObjectUtil.isEmpty(浅Attr)){ if (ObjectUtil.isEmpty(浅Attr)){
//判断有没有浅货位入库任务 throw new BadRequestException(boxAttr.getString("struct_code")+"对应浅货位信息不正确");
}
if (ObjectUtil.isEmpty(浅Attr.getString("storagevehicle_code"))){ if (ObjectUtil.isEmpty(浅Attr.getString("storagevehicle_code"))){
if (!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { if (!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
throw new BadRequestException("木箱货位"+boxAttr.getString("struct_code")+"的浅货位存在正在执行的任务"); throw new BadRequestException("木箱货位"+boxAttr.getString("struct_code")+"的浅货位存在正在执行的任务");
@@ -421,7 +422,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
} }
} }
} }
}
// 生成任务 // 生成任务
JSONObject jsonTaskParam = new JSONObject(); JSONObject jsonTaskParam = new JSONObject();
@@ -769,6 +769,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
throw new BadRequestException("当前子卷"+code+"已完成出入库不允许手动解除"); throw new BadRequestException("当前子卷"+code+"已完成出入库不允许手动解除");
} }
if (StringUtils.isNotEmpty(containerName.getPackage_box_sn())){ if (StringUtils.isNotEmpty(containerName.getPackage_box_sn())){
String packageBoxSn = containerName.getPackage_box_sn();
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
JSONObject attr = attrTab.query("storagevehicle_code = '" + packageBoxSn + "'").uniqueResult(0);
attr.put("lock_type","1");
attrTab.update(attr);
result.put("message", code+"子卷包装解除成功,同时确认MES装箱以解绑定"); result.put("message", code+"子卷包装解除成功,同时确认MES装箱以解绑定");
} }
this.removeById(containerName.getWorkorder_id()); this.removeById(containerName.getWorkorder_id());

View File

@@ -236,7 +236,7 @@ public class TwoOutHeapTask extends AbstractAcsTask {
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
bean1.createLashTask(jsonParam); bean1.createLashTask(jsonParam);
// 再次下发:找相同任务组的下发 // 再次下发:找相同任务组的下发
sendTaskAcs(jsonTask.getString("task_group_id"),false); sendTaskAcs(jsonTask.getString("task_group_id"),true);
} }
} }
} }
@@ -301,12 +301,8 @@ public class TwoOutHeapTask extends AbstractAcsTask {
} }
public void sendTaskAcs(String groupTaskId,boolean retry) { public void sendTaskAcs(String groupTaskId,boolean retry) {
/* RedissonUtils.lock(c -> {
* 下发给ACS时需要特殊处理
*/
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("sch_base_task"); WQLObject wo_Task = WQLObject.getWQLObject("sch_base_task");
List<JSONObject> taskArrAll = wo_Task List<JSONObject> taskArrAll = wo_Task
.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and task_group_id = '" + groupTaskId + "'" + " and is_delete ='0' ORDER BY create_time") .query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and task_group_id = '" + groupTaskId + "'" + " and is_delete ='0' ORDER BY create_time")
.getResultJSONArray(0).toJavaList(JSONObject.class); .getResultJSONArray(0).toJavaList(JSONObject.class);
@@ -337,7 +333,6 @@ public class TwoOutHeapTask extends AbstractAcsTask {
ArrayList<AcsTaskDto> resultList = new ArrayList<>(); ArrayList<AcsTaskDto> resultList = new ArrayList<>();
for (int i = 0; i < taskArr.size(); i++) { for (int i = 0; i < taskArr.size(); i++) {
JSONObject json = taskArr.get(i); JSONObject json = taskArr.get(i);
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
AcsTaskDto dto = AcsTaskDto.builder() AcsTaskDto dto = AcsTaskDto.builder()
.ext_task_id(json.getString("task_id")) .ext_task_id(json.getString("task_id"))
@@ -373,5 +368,6 @@ public class TwoOutHeapTask extends AbstractAcsTask {
AcsUtil.notifyAcs("api/wms/task", arr); AcsUtil.notifyAcs("api/wms/task", arr);
} }
} }
},"resendrgv", 30, this);
} }
} }

View File

@@ -212,7 +212,7 @@ public class TwoOutTask extends AbstractAcsTask {
if (ObjectUtil.isEmpty(resultJSONArray)) { if (ObjectUtil.isEmpty(resultJSONArray)) {
this.immediateNotifyAcs(null); this.immediateNotifyAcs(null);
} }
}, "出库堆垛机任务反馈完成", 30, this); }, "cratergv", 30, this);
} }
} }