From 060ebfd8fb02479319b372b485da3821bd0bb680 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 11 Dec 2025 10:09:18 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=96=B0=E5=A2=9E=E6=AF=8D?= =?UTF-8?q?=E5=8D=B7=E8=BD=AC=E7=A7=BB=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/pda/mps/rest/FeedingController.java | 7 +++ .../wms/pda/mps/service/FeedingService.java | 2 + .../mps/service/impl/FeedingServiceImpl.java | 39 ++++++++++++- .../mps/service/impl/RawFoilServiceImpl.java | 2 +- .../org/nl/wms/sch/tasks/CallEmpReelTask.java | 56 +++++++++++++++++-- 5 files changed, 98 insertions(+), 8 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/FeedingController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/FeedingController.java index afd6e6d7a..67f7605f1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/FeedingController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/FeedingController.java @@ -53,6 +53,13 @@ public class FeedingController { return new ResponseEntity<>(feedingService.handleConfirm(whereJson), HttpStatus.OK); } + @PostMapping("/moveContainer") + @Log("母卷转移") + + public ResponseEntity moveContainer(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(feedingService.moveContainer(whereJson), HttpStatus.OK); + } + @PostMapping("/vehicleReturn") @Log("空轴送回") diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/FeedingService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/FeedingService.java index ea279aeef..a38b5c728 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/FeedingService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/FeedingService.java @@ -37,6 +37,8 @@ public interface FeedingService { */ JSONObject handleConfirm(JSONObject whereJson); + JSONObject moveContainer(JSONObject whereJson); + /** * 空轴送回 * diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java index 332b256ee..00a239d82 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java @@ -23,6 +23,7 @@ import org.nl.wms.pda.mps.eum.RegionTypeEnum; import org.nl.wms.pda.mps.service.FeedingService; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.sch.tasks.CallEmpReelTask; import org.nl.wms.sch.tasks.CoolCutTask; import org.nl.wms.sch.tasks.OutHotTask; import org.nl.wms.st.inbill.service.CheckOutBillService; @@ -305,7 +306,7 @@ public class FeedingServiceImpl implements FeedingService { } //创建AGV任务 JSONObject jo = new JSONObject(); - if (StrUtil.equals("01", cut_jo.getString("empty_point_status"))) { + if (StrUtil.equals("01", cut_jo.getString("empty_point_status")) || (StrUtil.isNotEmpty(cut_jo.getString("point_type")) && StrUtil.equals("1", cut_jo.getString("point_type")))) { jo.put("point_code1", cool_jo.getString("full_point_code")); jo.put("point_code2", cut_jo.getString("full_point_code")); jo.put("material_code", cool_jo.getString("container_name")); @@ -544,6 +545,42 @@ public class FeedingServiceImpl implements FeedingService { return result; } + @Override + public JSONObject moveContainer(JSONObject form) { + String point_code = form.getString("point_code"); + String container_name = form.getString("container_name"); + JSONObject cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code + "'").uniqueResult(0); + String reging_id = RegionTypeEnum.B1_HKZC.getId(); + JSONObject cache_map = new JSONObject(); + cache_map.put("flag", "4"); + cache_map.put("reging_id", reging_id); + cache_map.put("point_location", cool_jo.getString("point_location")); + //只找入箱点位(point_type : 4) + cache_map.put("point_type", "4"); + + JSONObject point_code2_jo = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(cache_map).process().uniqueResult(0); + if (ObjectUtil.isEmpty(point_code2_jo)) { + // 找不到就找其他上下位置的 + cache_map.put("point_location", cool_jo.getString("point_location").equals("0") ? "1" : "0"); + point_code2_jo = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(cache_map).process().uniqueResult(0); + } + if (ObjectUtil.isEmpty(point_code2_jo)) { + throw new BadRequestException("未查询到可用的点位类型为入箱的烘箱对接位!"); + } + + // 起点和终点确定 生成任务 + JSONObject param = new JSONObject(); + param.put("point_code1",point_code); + param.put("point_code2", point_code2_jo.getString("point_code")); + param.put("task_type", "010107"); + param.put("material_code", container_name); + param.put("product_area", cool_jo.getString("product_area")); + + CallEmpReelTask callEmpReelTask = SpringContextHolder.getBean(CallEmpReelTask.class); + callEmpReelTask.createTask(param); + return null; + } + @Transactional(rollbackFor = Exception.class) @Override public JSONObject vehicleReturn(JSONObject form) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java index 1d2285908..23afcf24d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java @@ -244,7 +244,7 @@ public class RawFoilServiceImpl implements RawFoilService { param.put("material_code", jsonRaw.getString("container_name")); param.put("product_area", jsonSb.getString("product_area")); - CallEmpReelTask callEmpReelTask = new CallEmpReelTask(); + CallEmpReelTask callEmpReelTask = SpringContextHolder.getBean(CallEmpReelTask.class); callEmpReelTask.createTask(param); } else { // 2.根据就近原则查对应空卷轴 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java index 881882fcc..24b9e7d1a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java @@ -181,11 +181,55 @@ public class CallEmpReelTask extends AbstractAcsTask { this.createTask(nextTaskParam); } } else { - // 取空 - JSONObject jsonCoolIvt = ivtTab.query("empty_point_code = '" + point_code1 + "'").uniqueResult(0); - jsonCoolIvt.put("empty_point_status", "01"); - jsonCoolIvt.put("empty_vehicle_code", ""); - ivtTab.update(jsonCoolIvt); + if (jsonTask.getString("task_type").equals("010107")) { + JSONObject jsonIvt = ivtTab.query("full_point_code ='" + point_code1 + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonIvt)) { + throw new BadRequestException("未找到可用点位:" + point_code1); + } + + // 更新冷却库存状态 + jsonIvt.put("full_point_status", "01"); + jsonIvt.put("full_vehicle_code", ""); + jsonIvt.put("container_name", ""); + ivtTab.update(jsonIvt); + // 校验终点是否存在 + JSONObject jsonIvt2 = point_tab.query("point_code ='" + point_code2 + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonIvt2)) { + throw new BadRequestException("终点未找到可用点位:" + point_code2); + } + JSONObject cache_param = new JSONObject(); + cache_param.put("flag", "4"); + cache_param.put("point_location", jsonIvt.getString("point_location")); + cache_param.put("product_area", jsonIvt.getString("product_area")); + // 创建半条任务 + JSONObject jo = new JSONObject(); + jo.put("task_id", IdUtil.getLongId()); + jo.put("task_code", IdUtil.getLongId()); + jo.put("task_type", "010206"); + jo.put("task_status", TaskStatusEnum.SURE_START.getCode()); + jo.put("point_code1", point_code2); + jo.put("point_code2", ""); + jo.put("material_code", jsonTask.getString("material_code")); + jo.put("product_area", jsonTask.getString("product_area")); + jo.put("handle_class", InHotTask.class.getName()); + jo.put("remark", cache_param); + jo.put("type", "3"); + jo.put("priority", "1"); + jo.put("sort_seq", "1"); + jo.put("create_time", DateUtil.now()); + jo.put("acs_task_type", "6"); + taskTab.insert(jo); + // 更新点位库存状态 + jsonIvt2.put("point_status", "2"); + jsonIvt2.put("material_code", jsonTask.getString("material_code")); + point_tab.update(jsonIvt2); + }else { + // 取空 + JSONObject jsonCoolIvt = ivtTab.query("empty_point_code = '" + point_code1 + "'").uniqueResult(0); + jsonCoolIvt.put("empty_point_status", "01"); + jsonCoolIvt.put("empty_vehicle_code", ""); + ivtTab.update(jsonCoolIvt); + } } } else { @@ -206,7 +250,7 @@ public class CallEmpReelTask extends AbstractAcsTask { // 校验终点是否存在 JSONObject jsonIvt2 = point_tab.query("point_code ='" + point_code4 + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonIvt2)) { - throw new BadRequestException("终点未找到可用点位:" + point_code2); + throw new BadRequestException("终点未找到可用点位:" + point_code4); } /*//创建桁架任务将子卷搬运到桁架下的半成品缓存位