From c9d6657060170553346265535c72be76d9ef943c Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 24 Sep 2025 10:12:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=AD=90=E5=8D=B7=E4=B8=8B=E7=BA=BF?= =?UTF-8?q?=E6=A1=81=E6=9E=B6=E4=BB=BB=E5=8A=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BstIvtPackageinfoivtServiceImpl.java | 17 ++++- .../sch/tasks/first_floor_area/DjqTask.java | 4 +- .../first_floor_area/DjqToKzjhcwTask.java | 1 + .../sch/tasks/first_floor_area/MzhcwTask.java | 75 ++++++++++--------- .../first_floor_area/SendDjqKzjTask.java | 1 + .../auto/AutoSendMzToDjq.java | 5 +- .../first_floor_area/auto/TaskQueue.java | 2 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 61 ++++++++++++--- .../mps/service/impl/BakingServiceImpl.java | 4 +- 9 files changed, 114 insertions(+), 56 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java index f52f4dc6c..ec0365829 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java @@ -197,6 +197,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl空载具缓存位)")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")) ) { + count = taskService.count(new QueryWrapper() + .eq("task_type", "010904") + .eq("is_delete", "0") + .ne("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成")) + .in("task_status", Arrays.asList(TaskStatusEnum.START_AND_POINT.getCode(), + TaskStatusEnum.ISSUE.getCode(), + TaskStatusEnum.EXECUTING.getCode()))); + if (count > 0) { + throw new BadRequestException("正在执行空载具上线桁架任务"); + } newPoint = checkIvtSBlock(baseTask); } else { if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) { @@ -640,10 +651,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl待检区")) .eq(SchBaseTask::getIs_delete, IOSEnum.IS_SEND.code("否")) .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())); - List SamePointtaskList = taskList.stream().filter(r -> r.getPoint_code3().equals(schBaseTask.getPoint_code1())&&!r.getTask_id().equals(schBaseTask.getTask_id())).collect(Collectors.toList()); + /*List SamePointtaskList = taskList.stream().filter(r -> r.getPoint_code3().equals(schBaseTask.getPoint_code1())&&!r.getTask_id().equals(schBaseTask.getTask_id())).collect(Collectors.toList()); if (ObjectUtils.isNotEmpty(SamePointtaskList)) { UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); updateWrapper1.eq("task_id", SamePointtaskList.get(0).getTask_id()); updateWrapper1.set("point_code3", schBaseTask.getPoint_code3()); taskService.update(null, updateWrapper1); } - updateWrapper.set(SchBaseTask::getPoint_code3, ""); + updateWrapper.set(SchBaseTask::getPoint_code3, "");*/ //6.判断是否存在任务组任务 packageinfoivtService.handleGroupTask(schBaseTask); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java index a7801c5aa..5985f89fc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java @@ -195,6 +195,7 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { .task_id(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId()) .handle_class(THIS_CLASS) + .priority("2") .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentUsername()) .create_time(DateUtil.now()) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java index ca80ab320..0cab4e148 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java @@ -31,6 +31,7 @@ import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; @@ -66,13 +67,14 @@ public class MzhcwTask extends AbstractAcsTask { private DjqTask djqTask; @Resource private GzqTask gzqTask; + @Resource + private SsxDjwTask ssxDjwTask; @Resource private DjqToKzjhcwTask djqToKzjhcwTask; - @Override public List addTask() { ArrayList resultList = new ArrayList<>(); @@ -91,7 +93,7 @@ public class MzhcwTask extends AbstractAcsTask { .next_device_code2(r.getPoint_code4()) //四个点任务与两个点任务类型区分 .agv_action_type(r.getVehicle_code2()) - .vehicle_code(r.getVehicle_code()) + .vehicle_code(r.getVehicle_code()) .priority(r.getPriority()) .remark(r.getRemark()) .class_type(IOSEnum.ACS_TYPE.code("子卷下线行架任务")) @@ -109,7 +111,7 @@ public class MzhcwTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { String now = DateUtil.now(); SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); - if (TaskUtil.checkParams(schBaseTask, THIS_CLASS, TaskStatusEnum.FINISHED.getCode())) return; + if (TaskUtil.checkParams(schBaseTask, THIS_CLASS, TaskStatusEnum.FINISHED.getCode())) return; LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskObj.getString("task_id")) .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId()) @@ -122,36 +124,48 @@ public class MzhcwTask extends AbstractAcsTask { updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()); } // 完成 - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { - log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + now + "被调用---------------------------------------------"); - //1.更改任务状态为完成 - updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()); - //2.校验桁架任务取放货完成信号 - if (StringUtils.isNotBlank(schBaseTask.getCar_no())) { - //桁架放货完成信号未发送 - if (!schBaseTask.getCar_no().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货完成"))) { - packageinfoivtService.update(null, new UpdateWrapper().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); - log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:"+schBaseTask.getVehicle_code()); - } - } else { - //桁架放货完成信号未发送 + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + now + "被调用---------------------------------------------"); + //1.更改任务状态为完成 + updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()); + //2.校验桁架任务取放货完成信号 + if (StringUtils.isNotBlank(schBaseTask.getCar_no())) { + //桁架放货完成信号未发送 + if (!schBaseTask.getCar_no().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货完成"))) { packageinfoivtService.update(null, new UpdateWrapper().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); - log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:"+schBaseTask.getVehicle_code()); + log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:" + schBaseTask.getVehicle_code()); } - if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) { - if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) { - //桁架取货完成信号未发送 - if (!schBaseTask.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { - packageinfoivtService.update(null, new UpdateWrapper().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3())); - log.info(schBaseTask.getTask_code() + "检查检查->四个点任务,桁架取货完成信号未发送!已在手动点击完成时清除空载具位:" + schBaseTask.getPoint_code3() + "的库存"); - } - } else { - //桁架取货完成信号未发送 + } else { + //桁架放货完成信号未发送 + packageinfoivtService.update(null, new UpdateWrapper().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); + log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:" + schBaseTask.getVehicle_code()); + } + if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) { + if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) { + //桁架取货完成信号未发送 + if (!schBaseTask.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { packageinfoivtService.update(null, new UpdateWrapper().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3())); log.info(schBaseTask.getTask_code() + "检查检查->四个点任务,桁架取货完成信号未发送!已在手动点击完成时清除空载具位:" + schBaseTask.getPoint_code3() + "的库存"); } + } else { + //桁架取货完成信号未发送 + packageinfoivtService.update(null, new UpdateWrapper().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3())); + log.info(schBaseTask.getTask_code() + "检查检查->四个点任务,桁架取货完成信号未发送!已在手动点击完成时清除空载具位:" + schBaseTask.getPoint_code3() + "的库存"); } } + if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) { + //空载具缓存位缺少空载具,下发一个确定终点的空载具缓存位->输送线任务 + JSONObject jo1 = new JSONObject(); + //创建确定终点任务 + jo1.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); + jo1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")); + jo1.put("point_code2", "NBJ1002"); + jo1.put("vehicle_code", schBaseTask.getVehicle_code()); + jo1.put("task_status", TaskStatusEnum.SURE_END.getCode()); + jo1.put("is_send", false); + ssxDjwTask.createTask(jo1); + } + } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { @@ -160,7 +174,7 @@ public class MzhcwTask extends AbstractAcsTask { //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); - updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); + updateWrapper.set(SchBaseTask::getRemark, "任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } taskService.update(null, updateWrapper); @@ -376,8 +390,6 @@ public class MzhcwTask extends AbstractAcsTask { } - - @Override public void cancel(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() @@ -398,9 +410,4 @@ public class MzhcwTask extends AbstractAcsTask { } - - - - - } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java index c1b176d42..f53200c80 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java @@ -19,6 +19,7 @@ import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.WQL; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendMzToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendMzToDjq.java index 283ed5452..d6c98cfbf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendMzToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendMzToDjq.java @@ -101,13 +101,12 @@ public class AutoSendMzToDjq { log.error(THIS_CLASS + "满轴->待检区agv自动搬运任务暂无可用空位,子卷号为:" + mzqPackageinfoivtList.get(0).getContainer_name()); return; } - task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("取货二次分配")); + task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); task.put("vehicle_code", mzqPackageinfoivtList.get(0).getContainer_name()); - task.put("point_code1", packageinfoivtService.getWaitPoint(mzqPackageinfoivtList.get(0).getBlock(), mzqPackageinfoivtList.get(0).getWait_point_type())); + task.put("point_code1", mzqPackageinfoivtList.get(0).getPoint_code()); //如果浅库位和深库位都有空位,且为一组,优先深库位 task.put("point_code2", selectEmpPoints.get(0).getPoint_code()); - task.put("point_code3", mzqPackageinfoivtList.get(0).getPoint_code()); djqTask.createTask(task); } else { log.info("满轴->待检区agv自动搬运任务正在创建被锁住。"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/TaskQueue.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/TaskQueue.java index 51a7dbb17..c45322aad 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/TaskQueue.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/TaskQueue.java @@ -77,7 +77,7 @@ public class TaskQueue { .eq("vehicle_code2", block) .eq("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")) .eq("is_delete", IOSEnum.IS_NOTANDYES.code("否")) - .orderByDesc("create_time", "task_step")); + .orderByAsc("create_time")); log.info("当前zxq有起点任务数量"+list.size()); for (int i = 0; i < Math.min(empPointList.size(),list.size()); i++) { String empPoin = empPointList.get(i); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 950d29dc9..e4501f3dc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -1884,14 +1884,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result.put("message", "满轴位无可用位置"); return result; } - List empPoints = packageinfoivtService - .selectNoTargetTaskPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具")); - if (CollectionUtils.isEmpty(empPoints)) { - result.put("message", "空轴位无可用位置"); - return result; - } // 创建前先判断是否有已创建相同任务 - List taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))); + List taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))); List existTaskList1 = taskService.getExistTasks(taskTypes); List existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList()); List existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); @@ -1899,15 +1893,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result.put("message", "存在正在执行的输送线行架任务"); return result; } - List sortEmpPoint = empPoints.stream().sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)).collect(Collectors.toList()); JSONObject taskParam = new JSONObject(); taskParam.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); taskParam.put("vehicle_code", whereJson.getString("material_barcode")); taskParam.put("point_code1", whereJson.getString("device_code")); taskParam.put("point_code2", MzPoints.get(0).getPoint_code()); - taskParam.put("point_code3", sortEmpPoint.get(0).getPoint_code()); - taskParam.put("point_code4", whereJson.getString("device_code")); - taskParam.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")); + taskParam.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")); taskParam.put("is_send", true); mzhcwTask.createTask(taskParam); PdmProductSpecServiceImpl.doRecord(SpecEnum.XX, null, Boolean.TRUE, null, whereJson.getString("material_barcode")); @@ -1925,6 +1916,54 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return result; } + private JSONObject getJsonObject(JSONObject whereJson, JSONObject result) { + //1.查询满轴缓存位是否有空位 + List MzPoints = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")) + .orderByDesc(BstIvtPackageinfoivt::getSort_seq)); + if (CollectionUtils.isEmpty(MzPoints)) { + result.put("message", "满轴位无可用位置"); + return result; + } + List empPoints = packageinfoivtService + .selectNoTargetTaskPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具")); + if (CollectionUtils.isEmpty(empPoints)) { + result.put("message", "空轴位无可用位置"); + return result; + } + // 创建前先判断是否有已创建相同任务 + List taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))); + List existTaskList1 = taskService.getExistTasks(taskTypes); + List existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList()); + List existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(existTaskList2) || !CollectionUtils.isEmpty(existTaskList3)) { + result.put("message", "存在正在执行的输送线行架任务"); + return result; + } + List sortEmpPoint = empPoints.stream().sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)).collect(Collectors.toList()); + JSONObject taskParam = new JSONObject(); + taskParam.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); + taskParam.put("vehicle_code", whereJson.getString("material_barcode")); + taskParam.put("point_code1", whereJson.getString("device_code")); + taskParam.put("point_code2", MzPoints.get(0).getPoint_code()); + taskParam.put("point_code3", sortEmpPoint.get(0).getPoint_code()); + taskParam.put("point_code4", whereJson.getString("device_code")); + taskParam.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")); + taskParam.put("is_send", true); + mzhcwTask.createTask(taskParam); + PdmProductSpecServiceImpl.doRecord(SpecEnum.XX, null, Boolean.TRUE, null, whereJson.getString("material_barcode")); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + } + result.put("status", HttpStatus.OK.value()); + result.put("message", "反馈成功!"); + return result; + } + /** * 无空载具下发确定终点的补空桁架任务 */ diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java index 69221db72..3c4372e8f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java @@ -539,7 +539,7 @@ public class BakingServiceImpl implements BakingService { throw new BadRequestException("物料基础信息中无此物料!"); } - /*//查询该母卷对应最近的一条入烘箱记录 + //查询该母卷对应最近的一条入烘箱记录 JSONObject last_hot_mst = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst").query("container_name = '" + jsonHotIvt.getString("container_name") + "' AND io_type = '0' order by confirm_time desc").uniqueResult(0); JSONObject hotParam = new JSONObject(); @@ -565,7 +565,7 @@ public class BakingServiceImpl implements BakingService { } else { hotParam.put("oven_time", last_hot_mst.getString("oven_time")); } - this.createHotIoMst(hotParam);*/ + this.createHotIoMst(hotParam); } } JSONObject result = new JSONObject();