From 0b2532edbd24f5125613051007f20c5083df5a65 Mon Sep 17 00:00:00 2001 From: tuqiang <437016993@qq.com> Date: Wed, 21 May 2025 16:53:57 +0800 Subject: [PATCH 001/146] =?UTF-8?q?add:=E6=96=B0=E5=A2=9E=E5=88=86?= =?UTF-8?q?=E5=88=87=E6=9A=82=E5=AD=98=E7=BB=B4=E6=8A=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/controller/SlitterPdaController.java | 8 ++ .../tasks/slitter/service/SlitterService.java | 7 ++ .../service/impl/SlitterServiceImpl.java | 113 ++++++++++++------ 3 files changed, 89 insertions(+), 39 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java index e6601d2ec..18021980a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java @@ -248,4 +248,12 @@ public class SlitterPdaController { public ResponseEntity returnShaft(@RequestBody JSONObject param) { return new ResponseEntity<>(slitterService.returnShaft(param), HttpStatus.OK); } + + @PostMapping("/cutCacheInventory") + @Log("分切暂存维护") + @SaIgnore + public ResponseEntity cutCacheInventory(@RequestBody JSONObject param) { + return new ResponseEntity<>(slitterService.cutCacheInventory(param), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index f67edcdf1..e9268fd2b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -362,4 +362,11 @@ public interface SlitterService { * @return */ JSONObject returnShaft(JSONObject param); + + /** + * 分切暂存维护 + * @param param + * @return + */ + JSONObject cutCacheInventory(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 308bdae3e..f28ce19d7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -1585,7 +1585,8 @@ public class SlitterServiceImpl implements SlitterService { data.put("status", "1".equals(point.getPoint_status()) ? "空位" : "2".equals(point.getPoint_status()) ? "有气胀轴" : "3".equals(point.getPoint_status()) - ? "有子卷" : "-"); + ? "有子卷" : "4".equals(point.getPoint_status()) + ? "有气胀轴(不带管芯)" : "-"); if (SlitterConstant.SLITTER_NO.equals(point.getIs_used())) { data.put("status", "已禁用"); } @@ -2402,11 +2403,15 @@ public class SlitterServiceImpl implements SlitterService { throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的行架任务!"); } // 校验是否存在agv任务 - List taskList = taskService.checkHaveStartTask(pointCode); + List taskList = taskService.checkHaveTask(pointCode); if (taskList.size() > 0) { throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的agv任务!"); } + if (ObjectUtil.equals(point.getPoint_status(), "1")) { + // 如果是没货 + throw new BadRequestException("点位:" + point.getPoint_code() + "未检测有气胀轴,请先设置点位信息再触发!!"); + } if (ObjectUtil.equals(point.getPoint_status(), "2")) { // 如果是没货 throw new BadRequestException("点位:" + point.getPoint_code() + "检测空气胀轴,请先清空点位信息再触发!!"); @@ -2417,46 +2422,46 @@ public class SlitterServiceImpl implements SlitterService { if (ObjectUtil.isNotEmpty(point.getQzz_no1()) || ObjectUtil.isNotEmpty(point.getQzz_no2())) { throw new BadRequestException("点位:" + point.getPoint_code() + " 的气胀轴编码不为空,请先清空点位信息再触发!!"); } - if (Objects.equals(point.getPoint_status(), "1") && ObjectUtil.isEmpty(point.getQzz_no1()) && ObjectUtil.isEmpty(point.getQzz_no2())) { - // 如果是没货 绑定为空轴状态 - point.setPoint_status("4"); - bcutpointivtService.updateById(point); - } - JSONObject taskParam = new JSONObject(); + if (Objects.equals(point.getPoint_status(), "4") && ObjectUtil.isEmpty(point.getQzz_no1()) && ObjectUtil.isEmpty(point.getQzz_no2())) { - // 获取内包间缓存位 - List areaEmptyNotTaskPoint = bcutpointivtService.getNBJCanUsePoint("1", "1", "0", "2"); - if (areaEmptyNotTaskPoint.size() <= 1) { - throw new BadRequestException("请求搬运失败,内包间没有可存放位置!"); - } - BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0); - RLock lock = redissonClient.getLock(endPoint.getPoint_code()); - boolean tryLock; - try { - tryLock = lock.tryLock(0, TimeUnit.SECONDS); - } catch (InterruptedException e) { - throw new BadRequestException("获取锁异常"); - } - try { - if (tryLock) { - taskParam.put("point_code1", point.getPoint_code()); - taskParam.put("point_code2", endPoint.getPoint_code()); - if (ObjectUtil.isNotEmpty(size1)) { - taskParam.put("vehicle_code1", IdUtil.getSnowflake(1, 1).nextIdStr() + size1); - } - if (ObjectUtil.isNotEmpty(size2)) { - taskParam.put("vehicle_code2", IdUtil.getSnowflake(1, 1).nextIdStr() + size2); - } - taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("分切机下料AGV到内包间")); - taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - returnShaftAgvTask.createTask(taskParam); - } else { - throw new BadRequestException("系统繁忙,稍后在试!!"); + JSONObject taskParam = new JSONObject(); + + // 获取内包间缓存位 + List areaEmptyNotTaskPoint = bcutpointivtService.getNBJCanUsePoint("1", "1", "0", "2"); + if (areaEmptyNotTaskPoint.size() <= 1) { + throw new BadRequestException("请求搬运失败,内包间没有可存放位置!"); } - } finally { - if (lock.isLocked() && lock.isHeldByCurrentThread()) { - lock.unlock(); + BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0); + RLock lock = redissonClient.getLock(endPoint.getPoint_code()); + boolean tryLock; + try { + tryLock = lock.tryLock(0, TimeUnit.SECONDS); + } catch (InterruptedException e) { + throw new BadRequestException("获取锁异常"); } + try { + if (tryLock) { + taskParam.put("point_code1", point.getPoint_code()); + taskParam.put("point_code2", endPoint.getPoint_code()); + if (ObjectUtil.isNotEmpty(size1)) { + taskParam.put("vehicle_code1", IdUtil.getSnowflake(1, 1).nextIdStr() + size1); + } + if (ObjectUtil.isNotEmpty(size2)) { + taskParam.put("vehicle_code2", IdUtil.getSnowflake(1, 1).nextIdStr() + size2); + } + taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("分切机下料AGV到内包间")); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + returnShaftAgvTask.createTask(taskParam); + } else { + throw new BadRequestException("系统繁忙,稍后在试!!"); + } + } finally { + if (lock.isLocked() && lock.isHeldByCurrentThread()) { + lock.unlock(); + } + } + }else { + throw new BadRequestException("点位:" + point.getPoint_code() + "点位状态不对,请先设置点位信息再触发!!"); } return res; } @@ -2667,4 +2672,34 @@ public class SlitterServiceImpl implements SlitterService { res.put("message", "饵料下卷成功!"); return res; } + + @Override + public JSONObject cutCacheInventory(JSONObject param) { + log.info("手持维护分切暂存库存:{}", param); + // param : point_code, type + String pointCode = param.getString("point_code"); + BstIvtCutpointivt bstIvtCutpointivt = bcutpointivtService.getPintByTrussCode(pointCode, false); + if (bstIvtCutpointivt.getTruss_point_code1().equals(pointCode)) { + bstIvtCutpointivt.setQzz_no1(""); + } + if (bstIvtCutpointivt.getTruss_point_code2().equals(pointCode)) { + bstIvtCutpointivt.setQzz_no2(""); + } + if (SlitterConstant.SLITTER_YES.equals(param.getString("type"))) { + if (ObjectUtil.isEmpty(bstIvtCutpointivt.getQzz_no1()) && ObjectUtil.isEmpty(bstIvtCutpointivt.getQzz_no2())) { + bstIvtCutpointivt.setPoint_status("4"); + } + } else { + if (ObjectUtil.isEmpty(bstIvtCutpointivt.getQzz_no1()) && ObjectUtil.isEmpty(bstIvtCutpointivt.getQzz_no2())) { + bstIvtCutpointivt.setPoint_status("1"); + } + } + TaskUtils.updateOptMessageByBCutPoint(bstIvtCutpointivt); + bcutpointivtService.updateById(bstIvtCutpointivt); + JSONObject res = new JSONObject(); + res.put("status", HttpStatus.HTTP_OK); + res.put("message", "分切暂存设置成功!"); + return res; + } + } From 5467a7514cbbf3ecbf99b06a9aa5dedb7d9d63ff Mon Sep 17 00:00:00 2001 From: zhangzq Date: Sun, 25 May 2025 21:07:15 +0800 Subject: [PATCH 002/146] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E7=83=98?= =?UTF-8?q?=E7=AE=B1=E5=86=B7=E5=8D=B4=E5=8C=BA=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pdm/ivt/rest/CoolPointIvtController.java | 7 +++++ .../pdm/ivt/rest/HotPointIvtController.java | 7 +++++ .../pdm/ivt/service/CoolPointIvtService.java | 4 ++- .../pdm/ivt/service/HotPointIvtService.java | 4 ++- .../service/impl/CoolPointIvtServiceImpl.java | 11 ++++++++ .../service/impl/HotPointIvtServiceImpl.java | 26 +++++++++++++++++++ 6 files changed, 57 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/CoolPointIvtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/CoolPointIvtController.java index c71c06d2c..2962bb6f8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/CoolPointIvtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/CoolPointIvtController.java @@ -1,6 +1,7 @@ package org.nl.wms.pdm.ivt.rest; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -79,4 +80,10 @@ public class CoolPointIvtController { return new ResponseEntity<>(HttpStatus.OK); } + @GetMapping("B1screen") + @SaIgnore + public ResponseEntity B1screen() { + return new ResponseEntity<>(coolpointivtService.B1screen(), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/HotPointIvtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/HotPointIvtController.java index b598d5d03..3b93a6000 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/HotPointIvtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/HotPointIvtController.java @@ -1,6 +1,7 @@ package org.nl.wms.pdm.ivt.rest; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -77,4 +78,10 @@ public class HotPointIvtController { hotpointivtService.uploadMes(form); return new ResponseEntity<>(HttpStatus.OK); } + + @GetMapping("B1screen") + @SaIgnore + public ResponseEntity B1screen() { + return new ResponseEntity<>(hotpointivtService.B1screen(), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/CoolPointIvtService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/CoolPointIvtService.java index a82690b39..168af342c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/CoolPointIvtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/CoolPointIvtService.java @@ -1,5 +1,6 @@ package org.nl.wms.pdm.ivt.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.wms.pdm.ivt.service.dto.CoolPointIvtDto; import org.springframework.data.domain.Pageable; @@ -79,4 +80,5 @@ public interface CoolPointIvtService { Map coolRegionIOQueryAll(Map whereJson, Pageable page); void uploadMes(JSONObject form); -} + + JSONArray B1screen();} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/HotPointIvtService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/HotPointIvtService.java index 9abfa2f79..61587c210 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/HotPointIvtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/HotPointIvtService.java @@ -1,5 +1,6 @@ package org.nl.wms.pdm.ivt.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; import org.springframework.data.domain.Pageable; @@ -79,5 +80,6 @@ public interface HotPointIvtService { Map taskDtlQuery(Map whereJson, Pageable page); void uploadMes(JSONObject form); + JSONArray B1screen(); -} \ No newline at end of file +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java index 914870d0f..37343b3cf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java @@ -41,6 +41,17 @@ import java.util.Map; @Slf4j public class CoolPointIvtServiceImpl implements CoolPointIvtService { + + @Override + public JSONArray B1screen() { + //获取人员对应的区域 + HashMap map = new HashMap(); + map.put("flag", "1"); + map.put("in_area_id", "('B1','B2')"); + JSONArray jsonArray = WQL.getWO("ST_IVT_COOLPOINTIVT").addParamMap(map).process().getResultJSONArray(0); + return jsonArray; + } + @Override public Map queryAll(Map whereJson, Pageable page) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java index e01c47318..b449876ba 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java @@ -45,6 +45,32 @@ public class HotPointIvtServiceImpl implements HotPointIvtService { @Autowired private RedisUtils redisUtils; + @Override + public JSONArray B1screen() { + HashMap map = new HashMap(); + map.put("flag", "1"); + map.put("in_area_id", "('B1','B2')"); + JSONArray rows = WQL.getWO("ST_IVT_HOTPOINTIVT").addParamMap(map).process().getResultJSONArray(0); + JSONArray new_rows = new JSONArray(); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + Object redisTemp = redisUtils.hget(row.getString("point_code"), "temperature"); + String temperature = "未知"; + if (redisTemp!=null){ + temperature = String.valueOf(redisTemp); + } + Object redislastTime = redisUtils.hget(row.getString("point_code"), "temperature"); + String lastTime = "未知"; + if (redislastTime!=null){ + lastTime = String.valueOf(redislastTime); + } + row.put("temperature", temperature); + row.put("c", lastTime); + new_rows.add(row); + } + return new_rows; + } + @Override public Map queryAll(Map whereJson, Pageable page) { //获取人员对应的区域 From 8fedac67aaea61365b0e879af4d3889d950dd4d5 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 27 May 2025 20:31:53 +0800 Subject: [PATCH 003/146] =?UTF-8?q?feat:=20=E5=A5=97=E8=BD=B4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../套轴点位日志记录实时看板.html | 416 ++++++++++++++++++ .../slitter/auto/AutoCallAirShaftTask.java | 36 +- .../slitter/controller/SlitterController.java | 19 +- .../tasks/slitter/mapper/SlitterMapper.java | 2 + .../tasks/slitter/mapper/SlitterMapper.xml | 49 +++ .../slitter/mapper/dto/CallPlanViewVO.java | 1 + .../tasks/slitter/service/SlitterService.java | 2 + .../service/impl/SlitterServiceImpl.java | 106 ++++- .../acs/service/impl/AcsToWmsServiceImpl.java | 19 +- .../src/test/java/org/nl/init/EventTest.java | 7 +- 10 files changed, 623 insertions(+), 34 deletions(-) create mode 100644 lms/nladmin-system/doc/套轴点位日志记录实时看板.html diff --git a/lms/nladmin-system/doc/套轴点位日志记录实时看板.html b/lms/nladmin-system/doc/套轴点位日志记录实时看板.html new file mode 100644 index 000000000..87c5eefce --- /dev/null +++ b/lms/nladmin-system/doc/套轴点位日志记录实时看板.html @@ -0,0 +1,416 @@ + + + + + + 套轴点位日志记录实时看板 + + + +

套轴点位日志记录实时看板

+
+
+

B_CBJ01

+ +
+
+ +
+
+
+

B_CBJ02

+ +
+
+ +
+
+
+ + +
+

套轴监控系统实时数据

+ + + + + + + + + + + + + + + + + +
设备子卷号轴位置气胀轴尺寸气胀轴代数气胀轴状态呼叫时间管芯规格套轴标记
+
+ + + + \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 0a6db0fc3..75434d60a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -47,6 +47,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; @@ -102,6 +103,7 @@ public class AutoCallAirShaftTask extends Prun { public final static String TZ_DAY = "TZ_DAY"; public final static String USE_XN = "USE_XN"; public String stepStr = ""; + public List stepErrorInfo = new ArrayList<>(); /** * hint: 目前只是考虑了上区域 @@ -122,11 +124,12 @@ public class AutoCallAirShaftTask extends Prun { // 1、获取空的插拔轴位(无任务) List emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2", "0", "0"); -// emptyPoints.forEach(empty -> doCallShaft(empty, isOnlyPulling, tzDay, paramObj)); for (BstIvtShafttubeivt empty : emptyPoints) { stepStr = ""; + stepErrorInfo = new ArrayList<>(); doCallShaft(empty, isOnlyPulling, tzDay, paramObj, useXn); redisUtils.set("INFO" + empty.getPoint_code(), stepStr); + redisUtils.set("ERROR" + empty.getPoint_code(), stepErrorInfo); } } @@ -137,6 +140,7 @@ public class AutoCallAirShaftTask extends Prun { String location = empty.getPoint_location(); stepStr += "1"; if (ObjectUtil.isNotEmpty(isOnlyPulling) && SlitterConstant.SLITTER_YES.equals(isOnlyPulling.getValue())) { + stepErrorInfo.add("系统设置了只做拔轴,详细看参数表:" + IS_ONLY_PULLING); // 只做拔轴 makePullShaft(empty, specification); return; @@ -150,12 +154,6 @@ public class AutoCallAirShaftTask extends Prun { } else { planAll = slittingproductionplanService.getAllCutPlan(integer); } - // 排序 - /* List planAll = planAllNoSort.stream() - .sorted(Comparator.comparing( - dto -> LocalDateTime.parse(dto.getStart_time(), TIME_FORMATTER) - )) - .collect(Collectors.toList());*/ // 过滤 String value = paramObj.getValue(); List prefixList = Arrays.asList(value.split("[,,]")); @@ -165,6 +163,7 @@ public class AutoCallAirShaftTask extends Prun { checkComputationPoint(p, empty) && checkHasTask(p)) .collect(Collectors.toList()); if (plans.size() == 0) { + stepErrorInfo.add("找不到需要套轴的信息,只做拔轴。"); // 如果不需要套轴,就只做拔轴 makePullShaft(empty, specification); return; @@ -225,6 +224,7 @@ public class AutoCallAirShaftTask extends Prun { .collect(Collectors.toList()); if (qzzs.size() == 0) { log.info("没有半个点位,或者对应的另一半分切计划没有找到!"); + stepErrorInfo.add("找不到需要套轴的信息,只做拔轴。"); // 如果不需要套轴,就只做拔轴 makePullShaft(empty, specification); return; @@ -235,6 +235,7 @@ public class AutoCallAirShaftTask extends Prun { if (ObjectUtil.isEmpty(tzOKPlans)) { stepStr += ",13"; log.info("计划找不到"); + stepErrorInfo.add("找不到气胀轴:" + qzzs + "对应的计划。"); return; } PdmBiSlittingproductionplan oneTzOkPlan = tzOKPlans.get(0); @@ -246,6 +247,7 @@ public class AutoCallAirShaftTask extends Prun { } if (plans.size() == 0) { log.info("没有找到对应的另一半分切计划没有找到"); + stepErrorInfo.add("没有找到对应的另一半分切计划, 只做拔轴"); // 如果不需要套轴,就只做拔轴 makePullShaft(empty, specification); return; @@ -263,6 +265,7 @@ public class AutoCallAirShaftTask extends Prun { .orElse(null); if (planDto == null) { log.warn("过滤3/6寸和代数输出结果为空,跳过此次套轴,直接拔轴。此时点位对应代数:{}", specification); + stepErrorInfo.add("过滤3/6寸和代数输出结果为空,跳过此次套轴,直接拔轴。此时点位对应代数:{}" + specification); // 如果不需要套轴,就只做拔轴 makePullShaft(empty, specification); return; @@ -303,11 +306,13 @@ public class AutoCallAirShaftTask extends Prun { List qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, specification); log.info("查找到满足到对应尺寸的点位-{}", qzzPoint); if (qzzPoint.size() == 0) { + stepErrorInfo.add("没有可拔轴的点位。"); stepStr += ",16"; //若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可 // 调用ACS滚条气涨轴下来 if (!toAcsOutShaft(qzzSize,location, empty)) { log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); + stepErrorInfo.add("呼叫出轴失败-穿拔轴" + empty.getPoint_code() + "不进行套轴,跳过!"); return; } toCallAgvMovePaperTube(needPlans, location, empty); @@ -325,6 +330,7 @@ public class AutoCallAirShaftTask extends Prun { if (oldQzzNo == null) { log.error("当前气胀轴的编码为空!"); stepStr += ",96"; + stepErrorInfo.add(startPoint.getPoint_code() + "的气胀轴编码为空,请检查..."); return; } String startPointCode = ObjectUtil.isNotEmpty(startPoint.getQzz_no1()) @@ -332,6 +338,7 @@ public class AutoCallAirShaftTask extends Prun { if (startPointCode == null) { log.error("当前点位的编码为空!"); stepStr += ",96"; + stepErrorInfo.add(startPoint.getPoint_code() + "的点位编码为空,检查A或B点位的信息是否正常"); return; } stepStr += ",34"; @@ -385,6 +392,7 @@ public class AutoCallAirShaftTask extends Prun { startPoint.setRemark("气胀轴" + oldQzzNo + "的计划不存在,无效点位自动禁用。"); startPoint.setUpdate_time(DateUtil.now()); bcutpointivtService.updateById(startPoint); + stepErrorInfo.add("当前气胀轴编码{" + oldQzzNo + "},找不到对应的计划, 点位" + startPoint.getPoint_code() + "已被禁用。"); return; } // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 @@ -514,6 +522,7 @@ public class AutoCallAirShaftTask extends Prun { // 缺省的数量 int needQuantity = 0; // 判断当前区域location对应的备货区是否含有相同的纸管 校验了不在搬运中 + // todo: 要考虑防止所需要的托盘被搬走! // type=1(桁架底下的托盘), 关联对象material_code=纸管, qty > 0 List useList = stockingivtService.getPaperTubePoint("1", tubes.get(0), location, 0); if (useList.size() > 0) { @@ -552,6 +561,7 @@ public class AutoCallAirShaftTask extends Prun { noticeService.createNotice("备货区找不到[" + tubes.get(0) + "]的纸管信息", "点位[" + empty.getPoint_name() + "]无法从备货区找到纸管信息", NoticeTypeEnum.EXCEPTION.getCode()); + stepErrorInfo.add("备货区找不到[" + tubes.get(0) + "]的纸管信息"); return false; } // 找到就创建AGV搬运任务 @@ -584,6 +594,7 @@ public class AutoCallAirShaftTask extends Prun { noticeService.createNotice("备货区找不到空位置搬运", "点位[" + empty.getPoint_name() + "]无法从备货区找到空位", NoticeTypeEnum.EXCEPTION.getCode()); + stepErrorInfo.add("备货区找不到空位置搬运。"); return false; } BstIvtStockingivt endPoint = list.get(0); @@ -598,6 +609,7 @@ public class AutoCallAirShaftTask extends Prun { param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); stockAreaSendVehicleTask.createTask(param); stepStr += ",26"; + stepErrorInfo.add("备货区交换托盘中...请等待。"); return true; } @@ -616,6 +628,7 @@ public class AutoCallAirShaftTask extends Prun { stepStr += ",28"; if (shafttubeivts.size() == 0) { log.error("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); + stepErrorInfo.add("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); stepStr += ",98"; return false; } @@ -630,9 +643,10 @@ public class AutoCallAirShaftTask extends Prun { // todo: 暂时都是B1 device_obj.put("product_area", "B1"); JSONObject pointStatus = wmsToAcsService.getPointStatus(device_rows); - if (ObjectUtil.isEmpty(pointStatus) || ObjectUtil.isEmpty(pointStatus.getJSONArray("data"))) { + if (ObjectUtil.isEmpty(pointStatus) || ObjectUtil.isEmpty(pointStatus.getJSONObject("data")) || ObjectUtil.isEmpty(pointStatus.getJSONArray("data"))) { stepStr += ",98"; log.error("获取气胀轴库信息失败"); + stepErrorInfo.add("获取ACS气胀轴库信息失败..."); return false; } boolean judgment1 = true; @@ -660,6 +674,7 @@ public class AutoCallAirShaftTask extends Prun { stepStr += ",30"; if (!judgment1 && !judgment2) { log.warn("没有气胀轴,不给ACS写出轴信息"); + stepErrorInfo.add("呼叫气胀轴失败,没有气胀轴(密集库/暂存架),不给ACS写出轴信息"); stepStr += ",98"; return false; } @@ -767,6 +782,7 @@ public class AutoCallAirShaftTask extends Prun { //根据point_code排序 if (notTaskPoints.size() == 0) { stepStr += ",99"; + stepErrorInfo.add("只进行拔轴,没有可以拔轴的点位。"); return; } stepStr += ",9"; @@ -780,6 +796,7 @@ public class AutoCallAirShaftTask extends Prun { .orElse(null); if (cutpointivt == null) { stepStr += ",99"; + stepErrorInfo.add("只进行拔轴,没有可以拔轴的点位。"); return; } stepStr += ",10"; @@ -797,7 +814,7 @@ public class AutoCallAirShaftTask extends Prun { .set("is_used","0") .set("remark","气胀轴" + qzzNo + "的计划不存在,无效点位自动禁用") .set("update_time",DateUtil.now())); - + stepErrorInfo.add("气胀轴" + qzzNo + "的计划不存在,无效点位自动禁用。"); return; } PdmBiSlittingproductionplan plan = list.get(0); @@ -822,6 +839,7 @@ public class AutoCallAirShaftTask extends Prun { param.put("is_bushing", SlitterConstant.SLITTER_NO); param.put("is_pulling", SlitterConstant.SLITTER_YES); trussCallAirShaftTask.createTask(param); + stepErrorInfo.add("只做拔轴,拔轴任务已经创建..."); stepStr += ",11"; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java index 063b53431..e7dae7e2d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java @@ -3,9 +3,7 @@ package org.nl.b_lms.sch.tasks.slitter.controller; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; -import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; -import org.nl.common.utils.TaskUtils; import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.logging.annotation.Log; import org.springframework.beans.factory.annotation.Autowired; @@ -16,11 +14,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - /** * @Author: lyd * @Description: @@ -47,4 +40,16 @@ public class SlitterController { public ResponseEntity tzInfo(@RequestBody JSONObject entity){ return new ResponseEntity<>(redisUtils.get("INFO" + entity.getString("device_code")), HttpStatus.CREATED); } + @PostMapping("/v2/tzInfo") + @Log("套轴BCP透明链路2") + @SaIgnore + public ResponseEntity tzInfo2(@RequestBody JSONObject entity){ + return new ResponseEntity<>(redisUtils.get("ERROR" + entity.getString("device_code")), HttpStatus.CREATED); + } + @PostMapping("/v2/tzTaskINfo") + @Log("套轴BCP透明链路2") + @SaIgnore + public ResponseEntity tzTaskINfo(@RequestBody JSONObject entity){ + return new ResponseEntity<>(slitterService.tzTaskINfo(entity), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java index 7f3030ba6..dfe387cc3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java @@ -62,4 +62,6 @@ public interface SlitterMapper { List nbjGetEmptyCutPointNotTask(String area, BigDecimal sortSeq, String location); List showManualView(); + + List showManualViewNoXn(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 4be038550..ff89f5cdc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -147,6 +147,7 @@ p.split_group, p.up_or_down, p.qzz_size, + p.container_name, p.qzz_generation, p.is_paper_ok, MIN(p.start_time) AS start_time, @@ -168,6 +169,7 @@ p.restruct_container_name, p.split_group, p.up_or_down, + p.container_name, p.qzz_size, p.is_paper_ok, p.manufacture_sort, @@ -182,4 +184,51 @@ manufacture_sort desc, start_time + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java index 7f88b3938..d784ecdbb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java @@ -18,6 +18,7 @@ public class CallPlanViewVO implements Serializable { * 分切设备 */ private String resource_name; + private String container_name; /** * 母卷 */ diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index e9268fd2b..6299cce06 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -369,4 +369,6 @@ public interface SlitterService { * @return */ JSONObject cutCacheInventory(JSONObject param); + + JSONObject tzTaskINfo(JSONObject entity); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index f28ce19d7..4ddaf905a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -9,9 +9,7 @@ import cn.hutool.http.HttpStatus; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; @@ -46,10 +44,13 @@ import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; +import org.nl.wms.basedata.master.service.ClassstandardService; +import org.nl.wms.basedata.master.service.dto.ClassstandardDto; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.sch.manage.TaskStatusEnum; import org.redisson.api.RLock; @@ -78,6 +79,7 @@ import static org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil.getPointLocati @Slf4j @Service public class SlitterServiceImpl implements SlitterService { + public final static String USE_XN = "USE_XN"; @Autowired private BstIvtStockingivtMapper bstIvtStockingivtMapper; @@ -129,25 +131,35 @@ public class SlitterServiceImpl implements SlitterService { private ReturnShaftAgvTask returnShaftAgvTask; @Autowired private ISysNoticeService noticeService; + @Autowired + private RedisUtils redisUtils; + @Autowired + private ClassstandardService classstandardService; @Override - public JSONObject acsRequestShaftLoadTube(JSONObject param) { // hint: 现在的考虑都是基于B1,B2的车间,后续的B3、B4需要再次修改 log.info("acs申请套轴的输入参数为:{}", param); JSONObject res = new JSONObject(); JSONObject con = new JSONObject(); String deviceCode = param.getString("device_code"); + List stepTipLogs = getRedisListValue("ERROR" + deviceCode); String size = param.getString("size"); BstIvtShafttubeivt point = shafttubeivtService.getByPointCode(deviceCode, false); Param autoSendEmpty = paramService.findByCode("autoSendEmpty"); if (ObjectUtil.isEmpty(autoSendEmpty)) { + stepTipLogs.add("未配置是否直接送气胀轴,请检查参数表:autoSendEmpty"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("未配置是否直接送气胀轴"); } log.info("获取的穿拔轴点位数据:{}", point); // 判断尺寸是否相同 if (!size.equals(point.getQzz_size())) { log.error("设备:{}对应的气胀轴尺寸不批对,需要气胀轴尺寸:{},实际尺寸:{}", deviceCode, point.getQzz_size(), size); + stepTipLogs.add("套轴请求->设备:{ " + deviceCode + " }对应的气胀轴尺寸不批对" + + ",需要气胀轴尺寸:{ " + point.getQzz_size() + " },实际尺寸:{ " + size + " }," + + " 请检查电气任务与LMS穿拔轴点位信息是否一致, 如果实际为空,让电气复位启动即可。"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("设备:{ " + deviceCode + " }对应的气胀轴尺寸不批对" + ",需要气胀轴尺寸:{ " + point.getQzz_size() + " },实际尺寸:{ " + size + " }"); } @@ -242,14 +254,19 @@ public class SlitterServiceImpl implements SlitterService { // 参数:设备号,type,插拔轴位,qzzSize JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); + List stepTipLogs = getRedisListValue("ERROR" + deviceCode); String qzzNo = param.getString("qzz_no"); if (ObjectUtil.isEmpty(qzzNo)) { log.error("气涨轴编码不能为空!"); + stepTipLogs.add("出现错误,点位气涨轴编码不能为空!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("气涨轴编码不能为空!"); } List plans = slittingproductionplanService.getByQzzNo(qzzNo); if (plans.size() == 0) { log.error("查询不到气胀轴编码「" + qzzNo + "」对应状态[结束]的子卷信息!"); + stepTipLogs.add("查询不到气胀轴编码「" + qzzNo + "」对应状态[结束]的子卷信息!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("查询不到气胀轴编码「" + qzzNo + "」对应的子卷信息!"); } String containers = plans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.joining(",")); @@ -274,6 +291,7 @@ public class SlitterServiceImpl implements SlitterService { JSONObject res = new JSONObject(); // 穿拔轴位 String deviceCode = param.getString("device_code"); + List stepTipLogs = getRedisListValue("ERROR" + deviceCode); // 纸管 String weight1 = param.getString("weight1"); String material1 = param.getString("material1"); @@ -285,6 +303,8 @@ public class SlitterServiceImpl implements SlitterService { .lt(SchBaseTask::getTask_status, "07")); if (list.size() > 0) { log.error("点位[{}]存在未完成得任务!", deviceCode); + stepTipLogs.add("套轴完成->点位[" + deviceCode + "]存在未完成得任务!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); } BstIvtShafttubeivt startPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() @@ -294,6 +314,8 @@ public class SlitterServiceImpl implements SlitterService { .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); if (collect.size() == 0) { log.error("找不到[{}]对应的分切计划!", deviceCode); + stepTipLogs.add("套轴完成->找不到[" + deviceCode + "]点位记录的分切计划!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("找不到[" + deviceCode + "]对应的分切计划!"); } List plans = slittingproductionplanService.list( @@ -339,6 +361,8 @@ public class SlitterServiceImpl implements SlitterService { } } } else { + stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,创建任务失败!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("[" + collect + "]对应的分切计划状态已更改,异常处理位没位置!"); } } @@ -375,6 +399,8 @@ public class SlitterServiceImpl implements SlitterService { List emptyNotTaskPoint = bcutpointivtService.getNBJAreaNotTaskPointByStatus( "1", "1", startPoint.getPoint_location(), "1"); if (emptyNotTaskPoint.size() == 0) { + stepTipLogs.add("套轴完成->找不到可用套轴对接位!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("找不到可用套轴对接位!"); } cutPoint = emptyNotTaskPoint.get(0); @@ -408,6 +434,8 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); trussSendAirShaftTask.createTask(taskParam); } else { + stepTipLogs.add("套轴完成->系统繁忙,稍后在试!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("系统繁忙,稍后在试!"); } } finally { @@ -429,6 +457,7 @@ public class SlitterServiceImpl implements SlitterService { String lock = "lock"; JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); + List stepTipLogs = getRedisListValue("ERROR" + deviceCode); String qzzSize = param.getString("size"); RLock lockPoint = redissonClient.getLock(lock + qzzSize); boolean tryLockPoint = lockPoint.tryLock(0, TimeUnit.SECONDS); @@ -439,6 +468,8 @@ public class SlitterServiceImpl implements SlitterService { .eq(SchBaseTask::getPoint_code1, deviceCode) .lt(SchBaseTask::getTask_status, "07")); if (list.size() > 0) { + stepTipLogs.add(">>>气胀轴入库请求异常:点位[" + deviceCode + "]存在未完成的任务,无法创建到气涨轴暂存位的任务!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); } BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); @@ -454,6 +485,8 @@ public class SlitterServiceImpl implements SlitterService { .eq(BstIvtShafttubeivt::getPoint_location, startPoint.getPoint_location()) .eq(BstIvtShafttubeivt::getPoint_type, "8")); if (ObjectUtil.isEmpty(putWaitPoint)) { + stepTipLogs.add(">>>气胀轴入库请求异常:未找到可存放气涨轴规格「" + qzzSize + "」的等待点位。"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的等待点位"); } // 创建任务 @@ -466,6 +499,8 @@ public class SlitterServiceImpl implements SlitterService { param.put("is_bushing", "0"); trussCallShaftCacheTask.createTask(param); } else { + stepTipLogs.add(">>>气胀轴入库请求异常:系统繁忙,稍后在试!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("系统繁忙,稍后在试!"); } } finally { @@ -483,12 +518,15 @@ public class SlitterServiceImpl implements SlitterService { log.info("ACS申请从气涨轴暂存位呼叫气胀轴的输入参数为:{}", param); JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); + List stepTipLogs = getRedisListValue("ERROR" + deviceCode); String qzzSize = param.getString("size"); // 判断是否有未完成的任务 List list = taskService.list(new LambdaQueryWrapper() .eq(SchBaseTask::getPoint_code1, deviceCode) .lt(SchBaseTask::getTask_status, "07")); if (list.size() > 0) { + stepTipLogs.add(">>>气胀轴出库请求异常:点位[" + deviceCode + "]存在未完成的任务,无法创建从气涨轴暂存位取轴的任务!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); } BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); @@ -502,6 +540,8 @@ public class SlitterServiceImpl implements SlitterService { .eq(BstIvtShafttubeivt::getPoint_location, startPoint.getPoint_location()) .eq(BstIvtShafttubeivt::getPoint_type, "7")); if (ObjectUtil.isEmpty(pickWaitPoint)) { + stepTipLogs.add(">>>气胀轴出库请求异常:未找到可存放气涨轴规格「" + qzzSize + "」的等待点位!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的等待点位"); } // BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); @@ -943,18 +983,6 @@ public class SlitterServiceImpl implements SlitterService { papervehicleService.update(mdPbPapervehicle); } // todo: 如果qty=0,创建AGV送空任务,(新的task_type)、后期优化可以新增诺宝取货完成提前释放货位,任务状态变成071 -// if (remove) { // hint: 错误 -// // 证明删除成功,创建任务搬走 -// // 查找一个没有任务的空位 -// List list = stockingivtService.getEmptyPointNotTask(device.getPoint_location(), "0"); -// if (list.size() == 0) { -// noticeService.createNotice("管芯抓取备货区找不到空位置搬运", -// "管芯抓取点位[" + device.getPoint_name() + "]无法从备货区找到空位", -// NoticeTypeEnum.EXCEPTION.getCode()); -// return res; -// } -// BstIvtStockingivt stockingivt = list.get(0); -// } } return res; } @@ -2246,7 +2274,11 @@ public class SlitterServiceImpl implements SlitterService { @Override public List showManualView(JSONObject param) { - return slitterMapper.showManualView(); + Param useXn = paramService.findByCode(USE_XN); + if (ObjectUtil.isNotEmpty(useXn) && "1".equals(useXn.getValue())) { + return slitterMapper.showManualView(); + } + return slitterMapper.showManualViewNoXn(); } @Override @@ -2702,4 +2734,46 @@ public class SlitterServiceImpl implements SlitterService { return res; } + @Override + public JSONObject tzTaskINfo(JSONObject entity) { + String deviceCode = entity.getString("device_code"); + BstIvtShafttubeivt tzPoint = shafttubeivtService.getByPointCode(deviceCode, false); + SchBaseTask one = taskService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTask::getIs_delete, "0") + .lt(SchBaseTask::getTask_status, "07") + .and(la2 -> la2.eq(SchBaseTask::getPoint_code1, deviceCode).or() + .eq(SchBaseTask::getPoint_code2, deviceCode)), false); + String tip = ""; + String tip2 = ""; + if (ObjectUtil.isNotEmpty(one)) { + ClassstandardDto code = classstandardService.findByCode(one.getTask_type()); + tip += "正在执行" + code.getClass_name() + "任务, "; + } + List tubes = Stream.of(tzPoint.getTube_code1(), tzPoint.getTube_code2()).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList()); + List containers = Stream.of(tzPoint.getContainer_name1(), tzPoint.getContainer_name2()).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList()); + + if (ObjectUtil.isNotEmpty(tzPoint.getTube_code1()) || ObjectUtil.isNotEmpty(tzPoint.getTube_code2())) { + tip += "该点位需要套轴"; + tip2 += "正在为计划" + containers + "套轴,管芯数据:" + tubes; + } else { + tip += "该点位不需要套轴"; + if ("1".equals(tzPoint.getHave_qzz())) { + tip2 += "正在执行拔轴..."; + } else { + tip2 += "点位空闲..."; + } + } + JSONObject res = new JSONObject(); + res.put("tip", tip); + res.put("tip2", tip2); + return res; + } + + public List getRedisListValue(String key) { + List stepTipLogs = (List) redisUtils.get(key); + if (CollectionUtil.isEmpty(stepTipLogs)) { + stepTipLogs = new ArrayList<>(); + } + return stepTipLogs; + } } 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 e132c5c9e..574af81fd 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 @@ -1,5 +1,6 @@ package org.nl.wms.ext.acs.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; @@ -51,6 +52,7 @@ import org.nl.common.utils.CodeUtil; import org.nl.common.utils.MapOf; import org.nl.common.utils.RedissonUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; @@ -183,7 +185,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private IStIvtIostorinvOutService iStIvtIostorinvOutService; @Autowired private IBstIvtShafttubeivtService shafttubeivtService; - + @Autowired + private RedisUtils redisUtils; /** * task_id:任务标识 @@ -2822,6 +2825,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (task.getPoint_code1().contains("QHD")) { // 请求取货 String deviceCode = task.getPoint_code2(); + List stepTipLogs = getRedisListValue("ERROR" + deviceCode); BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); JSONObject requestParam = JSONObject.parseObject(task.getRequest_param()); String qzzSize = requestParam.getString("qzz_size"); @@ -2829,6 +2833,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { List shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize, startPoint.getQzz_generation(), startPoint.getPoint_location()); if (shafttubeivts.size() == 0) { + stepTipLogs.add(">>>桁架取轴二次请求异常:未找到气涨轴规格「" + qzzSize + "」的暂存位"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位"); } BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); @@ -2854,7 +2860,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { startPoint.setQzz_size(qzzSize); // 获取空位 List shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint); + List stepTipLogs = getRedisListValue("ERROR" + deviceCode); if (shafttubeivts.size() == 0) { + stepTipLogs.add(">>>桁架放轴二次请求异常:未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); } BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); @@ -2909,4 +2918,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { log.info("acsRequestPoint输出参数为--------------------------:" + result.toString()); return result; } + + public List getRedisListValue(String key) { + List stepTipLogs = (List) redisUtils.get(key); + if (CollectionUtil.isEmpty(stepTipLogs)) { + stepTipLogs = new ArrayList<>(); + } + return stepTipLogs; + } } diff --git a/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java b/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java index 8fbb5fc47..1c06dfdb2 100644 --- a/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java +++ b/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java @@ -10,6 +10,7 @@ import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.nl.b_lms.bst.ivt.papervehicle.service.dao.mapper.MdPbPapervehicleMapper; import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.mapper.BstIvtShafttubeivtMapper; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; @@ -72,10 +73,14 @@ public class EventTest { @Autowired private SchBasePointMapper schBasePointMapper; @Autowired + private MdPbPapervehicleMapper papervehicleMapper; + @Autowired private IPdmBiSlittingproductionplanService slittingproductionplanService; @Test public void sss() { - System.out.println(schBasePointMapper.queryKZPoint()); +// System.out.println(schBasePointMapper.queryKZPoint()); + List list = Arrays.asList("482210000000001"); + System.out.println(papervehicleMapper.getGXs("0", list)); } @Test From d0ba3ac408ceb2dc8c08815f55f9e1acb76ef2d5 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 28 May 2025 16:11:10 +0800 Subject: [PATCH 004/146] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doc/套轴点位日志记录实时看板.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lms/nladmin-system/doc/套轴点位日志记录实时看板.html b/lms/nladmin-system/doc/套轴点位日志记录实时看板.html index 87c5eefce..0cbc559ab 100644 --- a/lms/nladmin-system/doc/套轴点位日志记录实时看板.html +++ b/lms/nladmin-system/doc/套轴点位日志记录实时看板.html @@ -189,9 +189,9 @@ - \ No newline at end of file + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml index 51dfdddc0..e8f0fdb1d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml @@ -102,8 +102,10 @@ WHERE bc.point_type = '1' AND bc.point_status = '2' AND (IFNULL(bc.qzz_no1,'') ]]> '' OR IFNULL(bc.qzz_no2,'') ]]> '' ) AND (IFNULL(bc.qzz_no1,'') = '' OR IFNULL(bc.qzz_no2,'') = '') AND p.resource_name = #{resource_name} - AND (p.restruct_container_name = #{parent_container_name} OR p.parent_container_name = #{parent_container_name}) + AND (p.restruct_container_name = #{parent_container_name} AND p.parent_container_name = #{parent_container_name}) AND p.split_group = #{split_group} + AND p.is_delete = '0' + AND bc.is_used = '1' SELECT bc.* FROM bst_ivt_cutpointivt bc - LEFT JOIN pdm_bi_slittingproductionplan p ON p.qzzno = bc.qzz_no1 OR p.qzzno = bc.qzz_no2 - WHERE bc.point_type = '1' AND bc.point_status = '2' AND (IFNULL(bc.qzz_no1,'') ]]> '' OR IFNULL(bc.qzz_no2,'') ]]> '' - ) AND (IFNULL(bc.qzz_no1,'') = '' OR IFNULL(bc.qzz_no2,'') = '') - AND p.resource_name = #{resource_name} - AND (p.restruct_container_name = #{parent_container_name} AND p.parent_container_name = #{parent_container_name}) - AND p.split_group = #{split_group} - AND p.is_delete = '0' - AND bc.is_used = '1' + LEFT JOIN pdm_bi_slittingproductionplan p + ON IFNULL(p.qzzno, '') ]]> '' AND (p.qzzno = bc.qzz_no1 OR p.qzzno = bc.qzz_no2) + WHERE bc.point_type = '1' + AND bc.point_status = '2' + AND (IFNULL(bc.qzz_no1, '') ]]> '' OR IFNULL(bc.qzz_no2, '') ]]> '' + ) + AND (IFNULL(bc.qzz_no1, '') = '' OR IFNULL(bc.qzz_no2, '') = '') + AND p.resource_name = #{resource_name} + AND p.parent_container_name = #{parent_container_name} + AND p.split_group = #{split_group} + AND p.is_delete = '0' + AND bc.is_used = '1' + UNION + SELECT bc.* + FROM bst_ivt_cutpointivt bc + LEFT JOIN pdm_bi_slittingproductionplan p + ON IFNULL(p.qzzno, '') ]]> '' AND (p.qzzno = bc.qzz_no1 OR p.qzzno = bc.qzz_no2) + WHERE bc.point_type = '1' + AND bc.point_status = '2' + AND (IFNULL(bc.qzz_no1, '') ]]> '' OR IFNULL(bc.qzz_no2, '') ]]> '' + ) + AND (IFNULL(bc.qzz_no1, '') = '' OR IFNULL(bc.qzz_no2, '') = '') + AND p.resource_name = #{resource_name} + AND p.restruct_container_name = #{parent_container_name} + AND p.split_group = #{split_group} + AND p.is_delete = '0' + AND bc.is_used = '1' + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java index 03a3a67eb..b5e7f8beb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java @@ -159,4 +159,9 @@ public class BstIvtShafttubeivtServiceImpl extends ServiceImpl value != null && !value.isEmpty()).collect(Collectors.toList()); if (collect.size() == 0) { log.error("找不到[{}]对应的分切计划!", deviceCode); - stepTipLogs.add("套轴完成->找不到[" + deviceCode + "]点位记录的分切计划!"); + stepTipLogs.add("套轴完成->找不到[" + deviceCode + "]点位记录的分切计划!分切计划可能被删除或者拼接!"); redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("找不到[" + deviceCode + "]对应的分切计划!"); } @@ -361,7 +361,7 @@ public class SlitterServiceImpl implements SlitterService { } } } else { - stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,创建任务失败!"); + stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,异常处理位没位置,创建任务失败!"); redisUtils.set("ERROR" + deviceCode, stepTipLogs); throw new BadRequestException("[" + collect + "]对应的分切计划状态已更改,异常处理位没位置!"); } @@ -1019,6 +1019,8 @@ public class SlitterServiceImpl implements SlitterService { if (SlitterConstant.SLITTER_NO.equals(shaftPoint.getHave_qzz())) { throw new BadRequestException("点位不存在气胀轴信息,无需初始化!"); } + String qzzSize = shaftPoint.getQzz_size(); + String qzzGen = shaftPoint.getQzz_generation(); if (SlitterConstant.SLITTER_YES.equals(isAgainTz)) { //2、把当前点位上子卷号对应的is_paper_ok改为1 List containers = Stream.of(shaftPoint.getContainer_name1(), shaftPoint.getContainer_name2()) @@ -1042,7 +1044,13 @@ public class SlitterServiceImpl implements SlitterService { shaftPoint.setQzz_size(""); TaskUtils.updateOptMessageByBShaftPoint(shaftPoint); shafttubeivtService.update(shaftPoint); - // todo: 初始化 预分配点位 + // 初始化 预分配点位 + BstIvtShafttubeivt shafttubeivt = shafttubeivtService.getNeedInitPoint(qzzSize, qzzGen, shaftPoint.getPoint_location()); + if (ObjectUtil.isNotEmpty(shafttubeivt)) { + shafttubeivt.setPlan(""); + shafttubeivt.setTube_name1(""); + shafttubeivtService.updateById(shafttubeivt); + } JSONObject res = new JSONObject(); res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功!"); From 338257ab9f95bb248593296f321803439a973c11 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 9 Jun 2025 17:18:33 +0800 Subject: [PATCH 019/146] =?UTF-8?q?opt:=20=E5=A5=97=E8=BD=B4=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IBstIvtCutpointivtService.java | 8 +++++++ .../impl/BstIvtCutpointivtServiceImpl.java | 12 ++++++++++ .../slitter/SendNBJExceptionPointTask.java | 22 ++++++++++++++++++- .../slitter/auto/AutoSendAirShaftAgvTask.java | 1 - .../service/impl/SlitterServiceImpl.java | 22 +++++++++---------- 5 files changed, 52 insertions(+), 13 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java index ac3e1fd77..6e27853d2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java @@ -138,4 +138,12 @@ public interface IBstIvtCutpointivtService extends IService { List getNBJCanUsePoint(String type, String pointStatus, String area, String sort); List getNBJAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort); + + /*** + * 获取桁架或者AGV点位编码 + * @param endPoint + * @param b + * @return + */ + BstIvtCutpointivt getPointByTrussOrAgvCode(String endPoint, boolean flag); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java index 5908cdfa2..ad873b347 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java @@ -169,4 +169,16 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl getNBJAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort) { return bstIvtCutpointivtMapper.getNBJAreaNotTaskPointByStatus(type, pointStatus, area, sort); } + + @Override + public BstIvtCutpointivt getPointByTrussOrAgvCode(String point, boolean flag) { + LambdaQueryWrapper lam = new QueryWrapper().lambda(); + lam.eq(flag, BstIvtCutpointivt::getIs_used, "1") + .and(ll -> ll.eq(BstIvtCutpointivt::getPoint_code, point) + .or() + .eq(BstIvtCutpointivt::getTruss_point_code1, point) + .or() + .eq(BstIvtCutpointivt::getTruss_point_code2, point)); + return bstIvtCutpointivtMapper.selectOne(lam); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java index bc7141c77..816794014 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java @@ -5,9 +5,13 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.IBstIvtShafttubeivtService; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; +import org.nl.b_lms.sch.point.dao.StIvtShaftivt; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; @@ -38,6 +42,8 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask { private IschBaseTaskService taskService; @Autowired private IBstIvtCutpointivtService bcutpointivtService; + @Autowired + private IBstIvtShafttubeivtService shaftivtService; @Override public List addTask() { /* @@ -80,8 +86,22 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask { // 互换资源 // update: 在acs请求取货完成就已经清空点位信息 String endPoint = task.getPoint_code2(); - BstIvtCutpointivt endPointObj = bcutpointivtService.getPintByAgvCode(endPoint, false); + BstIvtCutpointivt endPointObj = bcutpointivtService.getPointByTrussOrAgvCode(endPoint, false); TaskUtils.pointMaintenanceInventory(task, endPointObj, "2"); + // (桁架任务的时候)起点要清空 + if (task.getPoint_code2().equals(endPointObj.getTruss_point_code1()) + || task.getPoint_code2().equals(endPointObj.getTruss_point_code2())) { + BstIvtShafttubeivt shafttubeivt = shaftivtService.getByPointCode(task.getPoint_code1(), false); + shafttubeivt.setQzz_size(""); + shafttubeivt.setHave_qzz("0"); + shafttubeivt.setTube_code1(""); + shafttubeivt.setTube_code2(""); + shafttubeivt.setTube_name1(""); + shafttubeivt.setTube_name2(""); + shafttubeivt.setContainer_name1(""); + shafttubeivt.setContainer_name2(""); + shaftivtService.updateById(shafttubeivt); + } bcutpointivtService.updateById(endPointObj); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index a0591e595..df5bdebce 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -97,7 +97,6 @@ public class AutoSendAirShaftAgvTask { log.info("异常处理位无空位!"); // 点位禁用 cutPoint.setRemark("计划状态已被改变!"); - cutPoint.setIs_used("0"); cutPoint.setUpdate_time(DateUtil.now()); bcutpointivtService.updateById(cutPoint); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index cee41aae6..fdece2c57 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -326,8 +326,8 @@ public class SlitterServiceImpl implements SlitterService { // 去异常位 if (plans.size() == 0) { log.error("找不到[{}]对应的分切计划,分切计划可能被删除或者拼接!", collect); - // 移动到异常处理位 - List exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("4", "1", "0", "0"); + // 移动到异常处理位(随机一个点位,在送到B2对面的位置) + List exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "0", "0"); if (exceptionPoints.size() > 0) { BstIvtCutpointivt exceptionPoint = exceptionPoints.get(0); // 枷锁 @@ -335,17 +335,16 @@ public class SlitterServiceImpl implements SlitterService { boolean tryLockPointR = lockPointR.tryLock(0, TimeUnit.SECONDS); try { if (tryLockPointR) { - List planTemp = slittingproductionplanService.list( - new LambdaQueryWrapper() - .in(PdmBiSlittingproductionplan::getContainer_name, collect)); - PdmBiSlittingproductionplan tempPlan = planTemp.get(0); // 需要枷锁 JSONObject exParam = new JSONObject(); exParam.put("point_code1", startPoint.getPoint_code()); - exParam.put("point_code2", SlitterConstant.SLITTER_SHAFT_UP.equals(tempPlan.getUp_or_down()) + exParam.put("point_code2", ObjectUtil.isEmpty(exceptionPoint.getQzz_no1()) ? exceptionPoint.getTruss_point_code1() : exceptionPoint.getTruss_point_code2()); - exParam.put("vehicle_code1", SlitterTaskUtil.getQzzNoByUpOrDown(tempPlan)); - exParam.put("vehicle_code2", SlitterTaskUtil.getQzzNoByUpOrDown(tempPlan)); + if (ObjectUtil.isEmpty(exceptionPoint.getQzz_no1())) { + exParam.put("vehicle_code1", collect); + } else { + exParam.put("vehicle_code2", collect); + } exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理桁架任务")); exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); sendNBJExceptionPointTask.createTask(exParam); @@ -361,9 +360,9 @@ public class SlitterServiceImpl implements SlitterService { } } } else { - stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,异常处理位没位置,创建任务失败!"); + stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,无暂存位置,创建任务失败!"); redisUtils.set("ERROR" + deviceCode, stepTipLogs); - throw new BadRequestException("[" + collect + "]对应的分切计划状态已更改,异常处理位没位置!"); + throw new BadRequestException("[" + collect + "]对应的分切计划状态已更改,无暂存位置!"); } } // 分切计划设置纸卷重量 @@ -1097,6 +1096,7 @@ public class SlitterServiceImpl implements SlitterService { startPointObj.setPoint_status("1"); startPointObj.setQzz_no1(""); startPointObj.setQzz_no2(""); + startPointObj.setRemark(""); TaskUtils.updateOptMessageByBCutPoint(startPointObj); bcutpointivtService.updateById(startPointObj); task.setTask_status(TaskStatusEnum.PICK_UP_COMPLETED.getCode()); From 81bfb2b213eb246436711ce820fb82bf33ab0f84 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 11 Jun 2025 14:00:23 +0800 Subject: [PATCH 020/146] =?UTF-8?q?fix=EF=BC=9A=E7=A9=BA=E6=9C=A8=E7=AE=B1?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=96=B0=E5=A2=9E=E6=89=98=E7=9B=98=E9=87=8D?= =?UTF-8?q?=E9=87=8F=E6=A0=A1=E9=AA=8C=EF=BC=9B=E5=88=86=E5=88=87=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E5=A5=97=E8=BD=B4=E6=8C=89=E7=85=A7=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=8E=92=E5=BA=8F=EF=BC=9B=E7=83=98=E7=AE=B1?= =?UTF-8?q?=E5=86=B7=E5=8D=B4=E9=A1=B5=E9=9D=A2=E6=9F=A5=E8=AF=A2=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slitter/auto/AutoCallAirShaftTask.java | 7 ++++++- .../util/impl/InBoxManageServiceImpl.java | 17 +++++++++++++++-- .../org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql | 12 ++++++------ .../org/nl/wms/pdm/wql/ST_IVT_HOTPOINTIVT.wql | 8 ++++---- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 5889dfe85..d93af1908 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -104,6 +104,8 @@ public class AutoCallAirShaftTask extends Prun { public final static String USE_XN = "USE_XN"; public String stepStr = ""; public List stepErrorInfo = new ArrayList<>(); + private static final DateTimeFormatter TIME_FORMATTER = + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); /** * hint: 目前只是考虑了上区域 @@ -152,7 +154,10 @@ public class AutoCallAirShaftTask extends Prun { if (ObjectUtil.isNotEmpty(useXn) && "1".equals(useXn.getValue())) { planAll = slittingproductionplanService.getAllCutPlan2(integer); } else { - planAll = slittingproductionplanService.getAllCutPlan(integer); + planAll = slittingproductionplanService.getAllCutPlan(integer).stream() + .sorted(Comparator.comparing( + dto -> LocalDateTime.parse(dto.getStart_time(), TIME_FORMATTER) + )).collect(Collectors.toList()); } // 过滤 String value = paramObj.getValue(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index 553d0cae8..41bcb4423 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -115,12 +115,25 @@ public class InBoxManageServiceImpl implements InBoxManageService { .eq("is_delete", "0") .orderByDesc("task_id") .last("limit 1")); + String vehicleCode2 = one.getVehicle_code2(); if (one!=null){ - String vehicleCode2 = one.getVehicle_code2(); if (whereJson.getString("vehicle_code").equals(vehicleCode2)){ throw new BadRequestException("当前托盘"+whereJson.getString("vehicle_code")+"已经存在木箱入库任务"+one.getTask_code()); - }; + } } + + //查询托盘重量 + JSONObject vehicle_ext = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + vehicleCode2 + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(vehicle_ext)) { + throw new BadRequestException("未查询到托盘的扩展信息"); + }else { + //判断托盘重量是否为空或小于等于0 + String qty = vehicle_ext.getString("qty"); + if (StrUtil.isEmpty(qty) || Integer.parseInt(qty) <= 0){ + throw new BadRequestException("托盘【"+vehicleCode2+"】在系统的重量有误,请在载具维护页面中维护托盘实际重量!"); + } + } + //查询仓库是否存在相同木箱 JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxNo + "'").getResultJSONArray(0); if (stIvtStructattr != null && stIvtStructattr.size() > 0) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql index ecda2dc86..5dbf8ea89 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql @@ -63,19 +63,19 @@ WHERE cool.product_area in 输入.in_area_id OPTION 输入.point_code <> "" - point_code LIKE 输入.point_code + cool.point_code LIKE 输入.point_code ENDOPTION OPTION 输入.container_name <> "" - container_name LIKE 输入.container_name + cool.container_name LIKE 输入.container_name ENDOPTION OPTION 输入.full_point_status <> "" - full_point_status = 输入.full_point_status + cool.full_point_status = 输入.full_point_status ENDOPTION OPTION 输入.empty_point_status <> "" - empty_point_status = 输入.empty_point_status + cool.empty_point_status = 输入.empty_point_status ENDOPTION OPTION 输入.cool_ivt_status <> "" - cool_ivt_status = 输入.cool_ivt_status + cool.cool_ivt_status = 输入.cool_ivt_status ENDOPTION OPTION 输入.product_area <> "" cool.product_area = 输入.product_area @@ -84,7 +84,7 @@ is_used = 输入.is_used ENDOPTION OPTION 输入.point_location <> "" - point_location = 输入.point_location + cool.point_location = 输入.point_location ENDOPTION OPTION 输入.begin_time <> "" instorage_time >= 输入.begin_time diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_HOTPOINTIVT.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_HOTPOINTIVT.wql index 66242f97f..2967abff2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_HOTPOINTIVT.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_HOTPOINTIVT.wql @@ -61,16 +61,16 @@ WHERE hot.product_area in 输入.in_area_id OPTION 输入.point_location <> "" - point_location = 输入.point_location + hot.point_location = 输入.point_location ENDOPTION OPTION 输入.point_code <> "" - point_code LIKE 输入.point_code + hot.point_code LIKE 输入.point_code ENDOPTION OPTION 输入.point_status <> "" - point_status = 输入.point_status + hot.point_status = 输入.point_status ENDOPTION OPTION 输入.product_area <> "" - product_area = 输入.product_area + hot.product_area = 输入.product_area ENDOPTION OPTION 输入.is_used <> "" is_used = 输入.is_used From 18aa216a9b7dab7fe357cc6574b71f22b8dfabf8 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 11 Jun 2025 19:22:38 +0800 Subject: [PATCH 021/146] =?UTF-8?q?opt:=20=E5=A5=97=E8=BD=B4=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tasks/slitter/TrussSendAirShaftTask.java | 8 +- .../service/impl/SlitterServiceImpl.java | 112 ++++++++++++------ 2 files changed, 82 insertions(+), 38 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java index 60cfcc551..d64f0d76f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java @@ -142,7 +142,9 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { SchBaseTask task = new SchBaseTask(); task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) + ? form.getString("task_status") + : TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); task.setVehicle_code(form.getString("vehicle_code1")); @@ -164,7 +166,9 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { task.setPriority(priority_jo.getString("value")); } taskService.save(task); - this.immediateNotifyAcs(null); + if ("1".equals(form.getString("immediateNotifyAcs"))) { + this.immediateNotifyAcs(null); + } return task.getTask_id(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index fdece2c57..978a030ea 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -45,6 +45,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RedisUtils; +import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.param.ISysParamService; @@ -380,6 +381,19 @@ public class SlitterServiceImpl implements SlitterService { // 当前套轴的分切计划 PdmBiSlittingproductionplan demoPlan = plans.get(0); + // 分切计划设置套轴完成 + String resourceName = demoPlan.getResource_name(); + String qzzNo = resourceName.substring(0, 2) + + resourceName.substring(resourceName.length() - 2) + + demoPlan.getSplit_group() + + TaskUtils.getDateTime("yyMMddHHmmss") + "-" + + demoPlan.getUp_or_down(); + plans.forEach(plan -> { + plan.setIs_child_tz_ok(SlitterConstant.SLITTER_YES); + plan.setQzzno(qzzNo); + TaskUtils.updateOptMessageBySlitterPlan(plan); + }); + slittingproductionplanService.updateBatchById(plans); // 查找是否有同组的气胀轴位置 BstIvtCutpointivt cutPoint = slitterMapper.getSameGroupPoint(demoPlan); if (ObjectUtil.isEmpty(cutPoint)) { @@ -393,55 +407,57 @@ public class SlitterServiceImpl implements SlitterService { } if (ObjectUtil.isEmpty(cutPoint)) { // 获取一个空位 (上下区域) -// List emptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus( -// "1", "1", startPoint.getPoint_location(), "1"); List emptyNotTaskPoint = bcutpointivtService.getNBJAreaNotTaskPointByStatus( "1", "1", startPoint.getPoint_location(), "1"); - if (emptyNotTaskPoint.size() == 0) { - stepTipLogs.add("套轴完成->找不到可用套轴对接位!"); + if (emptyNotTaskPoint.size() > 0) { + cutPoint = emptyNotTaskPoint.get(0); + } else { + stepTipLogs.add("提示:套轴完成->找不到可用套轴对接位,创建半条任务,等待AGV取货完成触发!"); redisUtils.set("ERROR" + deviceCode, stepTipLogs); - throw new BadRequestException("找不到可用套轴对接位!"); - } - cutPoint = emptyNotTaskPoint.get(0); - } - String resourceName = demoPlan.getResource_name(); - // 枷锁 - RLock lockPoint = redissonClient.getLock(cutPoint.getPoint_code()); - boolean tryLockPoint = lockPoint.tryLock(0, TimeUnit.SECONDS); - try { - if (tryLockPoint) { - // 分切计划设置套轴完成 - String qzzNo = resourceName.substring(0, 2) - + resourceName.substring(resourceName.length() - 2) - + demoPlan.getSplit_group() - + TaskUtils.getDateTime("yyMMddHHmmss") + "-" - + demoPlan.getUp_or_down(); - plans.forEach(plan -> { - plan.setIs_child_tz_ok(SlitterConstant.SLITTER_YES); - plan.setQzzno(qzzNo); - TaskUtils.updateOptMessageBySlitterPlan(plan); - }); - slittingproductionplanService.updateBatchById(plans); // 创建任务 JSONObject taskParam = new JSONObject(); taskParam.put("point_code1", startPoint.getPoint_code()); - taskParam.put("point_code2", SlitterConstant.SLITTER_SHAFT_UP.equals(demoPlan.getUp_or_down()) - ? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2()); + taskParam.put("point_code2", "-"); + taskParam.put("needPosition", SlitterConstant.SLITTER_SHAFT_UP.equals(demoPlan.getUp_or_down()) + ? "A" : "B"); taskParam.put("vehicle_code1", SlitterConstant.SLITTER_SHAFT_UP.equals(demoPlan.getUp_or_down()) ? qzzNo : ""); taskParam.put("vehicle_code2", SlitterConstant.SLITTER_SHAFT_DOWN.equals(demoPlan.getUp_or_down()) ? qzzNo : ""); taskParam.put("task_type", "010814"); + taskParam.put("task_status", TaskStatusEnum.SURE_START.getCode()); taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + taskParam.put("immediateNotifyAcs", "0"); trussSendAirShaftTask.createTask(taskParam); - } else { - stepTipLogs.add("套轴完成->系统繁忙,稍后在试!"); - redisUtils.set("ERROR" + deviceCode, stepTipLogs); - throw new BadRequestException("系统繁忙,稍后在试!"); - } - } finally { - if (tryLockPoint) { - lockPoint.unlock(); } } + if (ObjectUtil.isNotEmpty(cutPoint)) { + // 枷锁 + RLock lockPoint = redissonClient.getLock(cutPoint.getPoint_code()); + boolean tryLockPoint = lockPoint.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLockPoint) { + // 创建任务 + JSONObject taskParam = new JSONObject(); + taskParam.put("point_code1", startPoint.getPoint_code()); + taskParam.put("point_code2", SlitterConstant.SLITTER_SHAFT_UP.equals(demoPlan.getUp_or_down()) + ? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2()); + taskParam.put("vehicle_code1", SlitterConstant.SLITTER_SHAFT_UP.equals(demoPlan.getUp_or_down()) ? qzzNo : ""); + taskParam.put("vehicle_code2", SlitterConstant.SLITTER_SHAFT_DOWN.equals(demoPlan.getUp_or_down()) ? qzzNo : ""); + taskParam.put("task_type", "010814"); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + taskParam.put("immediateNotifyAcs", "1"); + trussSendAirShaftTask.createTask(taskParam); + } else { + stepTipLogs.add("套轴完成->系统繁忙,稍后在试!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); + throw new BadRequestException("系统繁忙,稍后在试!"); + } + } finally { + if (tryLockPoint) { + lockPoint.unlock(); + } + } + } + res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功"); res.put("msg", msg); @@ -1093,6 +1109,30 @@ public class SlitterServiceImpl implements SlitterService { result.put("message", "不更新库存,放行!"); return result; } + // 判断是不是内包间的点位 + if (task.getPoint_code1().startsWith("TZZC")) { + // 查找半条任务,并创建下发 + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getTask_type, "010814") + .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) + .eq(SchBaseTask::getIs_delete, "0") + .orderByAsc(SchBaseTask::getCreate_time)); + if (list.size() > 0) { + SchBaseTask schBaseTask = list.get(0); + JSONObject requestParam = JSONObject.parseObject(schBaseTask.getRequest_param()); + if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "A".equals(requestParam.getString("needPosition"))) { + schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + } + if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "B".equals(requestParam.getString("needPosition"))) { + schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + } + schBaseTask.setRemark("AGV取货完成触发!"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + taskService.updateById(schBaseTask); + trussSendAirShaftTask.immediateNotifyAcs(schBaseTask.getTask_id()); + } + } startPointObj.setPoint_status("1"); startPointObj.setQzz_no1(""); startPointObj.setQzz_no2(""); From dbd45a5bf66f905a73d89e698ccef26069154859 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 12 Jun 2025 11:16:57 +0800 Subject: [PATCH 022/146] =?UTF-8?q?rev:=20=E5=8E=BB=E9=99=A4=E9=87=8D?= =?UTF-8?q?=E9=87=8F=E9=87=8D=E5=A4=8D=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java | 2 +- .../sch/tasks/slitter/service/impl/SlitterServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index 9eeed4658..00c34606c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -120,7 +120,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask { log.info("即将下卷的上下轴的子卷号数据1:{}", downCons); List downPlans = slittingproductionplanService.getByContainerNames(downCons); log.info("即将下卷的上下轴的子卷号数据2:{}", downPlans); - SlitterTaskUtil.setPaperWeightStr(point1.getRemark(), downPlans); +// SlitterTaskUtil.setPaperWeightStr(point1.getRemark(), downPlans); log.info("即将下卷的上下轴的子卷号数据3:{}", downPlans); List needUpdates = new ArrayList<>(); // 绑定气胀轴编码(可能没有气胀轴编码) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 978a030ea..190e911bd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -156,7 +156,7 @@ public class SlitterServiceImpl implements SlitterService { log.info("获取的穿拔轴点位数据:{}", point); // 判断尺寸是否相同 if (!size.equals(point.getQzz_size())) { - log.error("设备:{}对应的气胀轴尺寸不批对,需要气胀轴尺寸:{},实际尺寸:{}", deviceCode, point.getQzz_size(), size); + log.error("设备:{}对应的气胀轴尺寸不匹对,需要气胀轴尺寸:{},实际尺寸:{}", deviceCode, point.getQzz_size(), size); stepTipLogs.add("套轴请求->设备:{ " + deviceCode + " }对应的气胀轴尺寸不批对" + ",需要气胀轴尺寸:{ " + point.getQzz_size() + " },实际尺寸:{ " + size + " }," + " 请检查电气任务与LMS穿拔轴点位信息是否一致, 如果实际为空,让电气复位启动即可。"); From 917bf37baa86d6934fc137739f7ee2281a7082a6 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 12 Jun 2025 11:19:54 +0800 Subject: [PATCH 023/146] =?UTF-8?q?fix:=E5=B0=86=E7=AE=A1=E5=88=B6?= =?UTF-8?q?=E7=82=B9=E6=94=B9=E4=B8=BA=E6=9F=A5=E8=AF=A2=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/controller/VehicleTwoController.java | 24 +++++++++++++++++++ .../impl/BstIvtPackageinfoivtServiceImpl.java | 13 ++++------ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java index 0dabf07cc..d0538eeac 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java @@ -2,10 +2,14 @@ package org.nl.b_lms.pda.controller; import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.pda.service.VehicleTwoService; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.modules.logging.annotation.Log; import org.springframework.beans.factory.annotation.Autowired; @@ -17,7 +21,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author liuxy @@ -35,6 +41,8 @@ public class VehicleTwoController { private IbstIvtPackageinfoivtService bstIvtPackageInfoIvtService; @Autowired private IpdmBiSubpackagerelationService subpackagerelationService; + @Autowired + private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper; @PostMapping("/vehicleIn") @@ -80,4 +88,20 @@ public class VehicleTwoController { Map result = subpackagerelationService.toEndSubpackagerelation(whereJson.getString("container_name")); return new ResponseEntity<>(result, HttpStatus.OK); } + + @PostMapping("/getControlList") + @Log("获取管制下拉框") + @SaIgnore + public ResponseEntity getControlList(@RequestBody JSONObject whereJson) { + List bstIvtPackageinfoivts = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_status, "4")); + JSONArray jsonArray = bstIvtPackageinfoivts.stream() + .map(item -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("text", item.getPoint_code()); + jsonObject.put("value", item.getPoint_code()); + return jsonObject; + }) + .collect(Collectors.toCollection(JSONArray::new)); + return new ResponseEntity<>(jsonArray, HttpStatus.OK); + } } 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 758220be1..1fc23da89 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 @@ -1028,8 +1028,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode").equals("1") ? "ZXQ_135" : "ZXQ_136")); + dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("point_code"))); if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) { //获取子卷最新信息 jo.put("container_name", whereJson.getString("container_name")); @@ -1098,13 +1097,11 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl() .eq("is_delete", "0") - .eq("point_code1", of.get(pointCode)) + .eq("point_code1", pointCode) .lt("task_status", TaskStatusEnum.FINISHED.getCode())); if (count>0){ throw new BadRequestException("当前人工管制点存在任务,稍后操作"); @@ -1112,7 +1109,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl待检区)")); } - dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode").equals("1") ? "ZXQ_135" : "ZXQ_136")); + dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode"))); updateWrapper.set("container_name", null); updateWrapper.set("ivt_status", whereJson.getString("ivt_status")); } else { From 285605b151c2ee1a79225faa2bfc752fc667d399 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 12 Jun 2025 15:04:20 +0800 Subject: [PATCH 024/146] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=89=80?= =?UTF-8?q?=E6=9C=89=E5=86=99=E6=AD=BB=E7=9A=84=E7=AE=A1=E5=88=B6=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java | 2 +- .../sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java | 2 +- .../sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java index 13b82b838..3d1084c41 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java @@ -84,7 +84,7 @@ public class AutoSendDjqToGzq extends Prun{ //todo 新增NG卷放置临时管制区135136,只取空不补空 List ivtLists = gzqPackageinfoivtList.stream() - .filter(r -> r.getPoint_code().equals("ZXQ_135") || r.getPoint_code().equals("ZXQ_136")) + .filter(r -> r.getPoint_status().equals(4)) .collect(Collectors.toList()); if (ObjectUtils.isEmpty(ivtLists)) { log.info("待检区->管制区agv自动搬运任务暂无可用空位,子卷号为:" + djqPackageinfoivtList.get(0).getContainer_name()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java index 93204dd36..7718b73ec 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java @@ -68,7 +68,7 @@ public class AutoSendGzqToDjq extends Prun{ //todo 新增NG卷放置临时管制区135136,只取空不补空 List ivtLists = gzqIvtList.stream() - .filter(r -> r.getPoint_code().equals("ZXQ_135") || r.getPoint_code().equals("ZXQ_136")) + .filter(r -> r.getPoint_status().equals("4")) .collect(Collectors.toList()); if (ObjectUtils.isNotEmpty(ivtLists)) { pointCode3 = ivtLists.get(0).getPoint_code(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java index 80c383d43..496874659 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java @@ -111,7 +111,7 @@ public class AutoSendVehicleToDjq extends Prun{ //todo 新增NG卷放置临时管制区135136,只取空不补空 packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); packageList = packageList.stream() - .filter(r -> !r.getPoint_code().equals("ZXQ_135") && !r.getPoint_code().equals("ZXQ_136")) + .filter(r -> !r.getPoint_status().equals("4")) .collect(Collectors.toList()); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); } else { @@ -120,7 +120,7 @@ public class AutoSendVehicleToDjq extends Prun{ } else { packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); packageList = packageList.stream() - .filter(r -> !r.getPoint_code().equals("ZXQ_135") && !r.getPoint_code().equals("ZXQ_136")) + .filter(r -> r.getPoint_status().equals("4")) .collect(Collectors.toList()); if (ObjectUtils.isEmpty(packageList)) { packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); From 251723507c41387f80a3055f4429c948e2ee3add Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 12 Jun 2025 15:37:04 +0800 Subject: [PATCH 025/146] =?UTF-8?q?opt:=20=E5=A5=97=E8=BD=B4=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E6=9F=A5=E8=AF=A2SQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSlittingproductionplanMapper.xml | 133 +++++++----------- .../slitter/auto/AutoCallAirShaftTask.java | 5 +- 2 files changed, 54 insertions(+), 84 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml index e5c02f1b8..685998c9f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml @@ -4,94 +4,67 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java index 19b40105c..13ff27431 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java @@ -379,4 +379,9 @@ public class BstIvtStockingivtServiceImpl extends ServiceImpl getMoveTaskPoints() { + return bstIvtStockingivtMapper.getMoveTaskPoints(); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java index 6cd7a34ad..a27b395d4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java @@ -92,32 +92,44 @@ public class StockAreaSendVehicleTask extends AbstractAcsTask { String endPoint = task.getPoint_code2(); BstIvtStockingivt startPointObj = stockingivtService.getPointByCode(startPoint, false); BstIvtStockingivt endPointObj = stockingivtService.getPointByCode(endPoint, false); - // 互换资源 (交换载具号) - endPointObj.setIvt_status("1"); - endPointObj.setVehicle_code(task.getVehicle_code()); - TaskUtils.updateOptMessageByBStockingPoint(endPointObj); - stockingivtService.update(endPointObj); - startPointObj.setVehicle_code(""); - startPointObj.setIvt_status("0"); - TaskUtils.updateOptMessageByBStockingPoint(startPointObj); - stockingivtService.update(startPointObj); - // 创建搬运任务, 将所需要的纸管对应的托盘换过来。 - String requestParam = task.getRequest_param(); - JSONObject jsonObject = JSONObject.parseObject(requestParam); - if (ObjectUtil.isEmpty(requestParam)) { - throw new BadRequestException("任务 code = " + task.getTask_code() + " 参数错误"); + if (SlitterEnum.TASK_TYPE.code("备货区单独送空载具").equals(task.getTask_type())) { + // 终点赋值 + endPointObj.setIvt_status("1"); + endPointObj.setVehicle_code(task.getVehicle_code()); + TaskUtils.updateOptMessageByBStockingPoint(endPointObj); + stockingivtService.update(endPointObj); + startPointObj.setVehicle_code(""); + startPointObj.setIvt_status("0"); + TaskUtils.updateOptMessageByBStockingPoint(startPointObj); + stockingivtService.update(startPointObj); + } else { + // 互换资源 (交换载具号) + endPointObj.setIvt_status("1"); + endPointObj.setVehicle_code(task.getVehicle_code()); + TaskUtils.updateOptMessageByBStockingPoint(endPointObj); + stockingivtService.update(endPointObj); + startPointObj.setVehicle_code(""); + startPointObj.setIvt_status("0"); + TaskUtils.updateOptMessageByBStockingPoint(startPointObj); + stockingivtService.update(startPointObj); + // 创建搬运任务, 将所需要的纸管对应的托盘换过来。 + String requestParam = task.getRequest_param(); + JSONObject jsonObject = JSONObject.parseObject(requestParam); + if (ObjectUtil.isEmpty(requestParam)) { + throw new BadRequestException("任务 code = " + task.getTask_code() + " 参数错误"); + } + JSONObject callPoint = jsonObject.getJSONObject("call_point"); + JSONObject param = new JSONObject(); + param.put("point_code1", callPoint.getString("point_code")); + param.put("point_code2", startPoint); + param.put("vehicle_code", callPoint.getString("vehicle_code")); + param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送纸管")); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + List paperList = mdPbPapervehicleService.list(new LambdaQueryWrapper() + .eq(MdPbPapervehicle::getVehicle_code, callPoint.getString("vehicle_code"))); + doSavePaperInfos(paperList, param); + stockAreaCallTubeTask.createTask(param); } - JSONObject callPoint = jsonObject.getJSONObject("call_point"); - JSONObject param = new JSONObject(); - param.put("point_code1", callPoint.getString("point_code")); - param.put("point_code2", startPoint); - param.put("vehicle_code", callPoint.getString("vehicle_code")); - param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送纸管")); - param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - List paperList = mdPbPapervehicleService.list(new LambdaQueryWrapper() - .eq(MdPbPapervehicle::getVehicle_code, callPoint.getString("vehicle_code"))); - doSavePaperInfos(paperList, param); - stockAreaCallTubeTask.createTask(param); } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -138,7 +150,9 @@ public class StockAreaSendVehicleTask extends AbstractAcsTask { task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); - task.setPoint_code3(callPoint.getString("point_code")); + task.setPoint_code3(ObjectUtil.isNotEmpty(callPoint) + ? callPoint.getString("point_code") + : ""); task.setVehicle_code(form.getString("vehicle_code")); task.setAcs_task_type("3"); task.setIs_delete("0"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java index 29539c2fe..bf7167160 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java @@ -54,6 +54,8 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { private IBstIvtCutpointivtService bcutpointivtService; @Autowired private IBstIvtShafttubeivtService shafttubeivtService; + @Autowired + private TrussSendAirShaftTask trussSendAirShaftTask; @Override public List addTask() { /* @@ -117,6 +119,29 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { .set(BstIvtShafttubeivt::getUpdate_time, DateUtil.now()) .eq(BstIvtShafttubeivt::getPoint_code, task.getPoint_code2()); shafttubeivtService.update(shaftLamUpdate); + if (ObjectUtil.isEmpty(startPointObj.getQzz_no1()) && ObjectUtil.isEmpty(startPointObj.getQzz_no2())) { + // 查找半条任务,并创建下发 + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getTask_type, "010814") + .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) + .eq(SchBaseTask::getIs_delete, "0") + .orderByAsc(SchBaseTask::getCreate_time)); + if (list.size() > 0) { + SchBaseTask schBaseTask = list.get(0); + JSONObject requestParam = JSONObject.parseObject(schBaseTask.getRequest_param()); + if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "A".equals(requestParam.getString("needPosition"))) { + schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + } + if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "B".equals(requestParam.getString("needPosition"))) { + schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + } + schBaseTask.setRemark("AGV取货完成触发!"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + taskService.updateById(schBaseTask); + trussSendAirShaftTask.immediateNotifyAcs(schBaseTask.getTask_id()); + } + } } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 276bd59ef..a9edddd93 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -60,6 +60,7 @@ import java.util.stream.Stream; import static org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil.doSavePaperInfos; /** + * 定时器呼叫套轴任务 * @Author: lyd * @Date: 2024/2/1 * @Description: 自动任务 呼叫套轴 根据分切计划来呼叫套轴任务 桁架任务 @@ -105,10 +106,7 @@ public class AutoCallAirShaftTask extends Prun { public final static String IS_ONLY_PULLING = "IS_ONLY_PULLING"; public final static String TZ_DAY = "TZ_DAY"; public final static String USE_XN = "USE_XN"; - public String stepStr = ""; public List stepErrorInfo = new ArrayList<>(); - private static final DateTimeFormatter TIME_FORMATTER = - DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @Autowired private RedissonClient redissonClient; @@ -141,10 +139,9 @@ public class AutoCallAirShaftTask extends Prun { List emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2", "0", "0"); for (BstIvtShafttubeivt empty : emptyPoints) { - stepStr = ""; stepErrorInfo = new ArrayList<>(); doCallShaft(empty, isOnlyPulling, tzDay, paramObj, useXn); - redisUtils.set("INFO" + empty.getPoint_code(), stepStr); + log.info("--------------------------------------------------"); redisUtils.set("ERROR" + empty.getPoint_code(), stepErrorInfo); } } else { @@ -159,17 +156,16 @@ public class AutoCallAirShaftTask extends Prun { @Transactional(rollbackFor = Exception.class) public void doCallShaft(BstIvtShafttubeivt empty, Param isOnlyPulling, Param tzDay, Param paramObj, Param useXn) { + log.info(empty.getPoint_code() + "执行中..."); // 标箔:1,锂电:2 改:大小:4代5代 String specification = empty.getQzz_generation(); String location = empty.getPoint_location(); - stepStr += "1"; if (ObjectUtil.isNotEmpty(isOnlyPulling) && SlitterConstant.SLITTER_YES.equals(isOnlyPulling.getValue())) { stepErrorInfo.add("系统设置了只做拔轴,详细看参数表:" + IS_ONLY_PULLING); // 只做拔轴 makePullShaft(empty, specification); return; } - stepStr += ",2"; Integer integer = Integer.valueOf(ObjectUtil.isEmpty(tzDay.getValue()) ? "0" : tzDay.getValue()); // 2、获取分切计划数据 校验代数 List planAll; @@ -228,13 +224,11 @@ public class AutoCallAirShaftTask extends Prun { // 查看套轴对接位是否满了 List emptyShaftPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", location, "0"); - stepStr += ",6"; // 如果满了就只做拔轴 预留一个货位?,防止套轴直接站满 if (emptyShaftPoint.size() < 1) { log.info("暂存位没有空位!正在检测是否存在半个点位!"); // 校验是否存在半个位置,且有分切计划 // 获取只有一个位置的点位 - stepStr += ",7"; List halfPlacePoint = bcutpointivtService.getAllHalfPlacePoints("1", "1", location); List qzzs = halfPlacePoint.stream() @@ -247,11 +241,9 @@ public class AutoCallAirShaftTask extends Prun { makePullShaft(empty, specification); return; } - stepStr += ",12"; // 从寻查找分切计划,并放在plans, 没有考虑区域问题, 里面会考虑代数 List tzOKPlans = slittingproductionplanService.getByQzzNos(qzzs, "01"); if (ObjectUtil.isEmpty(tzOKPlans)) { - stepStr += ",13"; log.info("计划找不到"); List collect = halfPlacePoint.stream().map(BstIvtCutpointivt::getPoint_code).collect(Collectors.toList()); stepErrorInfo.add("找不到气胀[" + qzzs + "]对应的计划。请检查点位" + collect); @@ -273,7 +265,6 @@ public class AutoCallAirShaftTask extends Prun { } log.info("找到对应的另一半的计划 - {}", plans); } - stepStr += ",14"; // 获取一个分切计划的Dto。如果是6寸,可以直接使用、如果是3寸,需要判断当前位置是否满足 // todo: 需要校验分切设备是在对应的区域中 SlitterPlanDistinctDto planDto = plans.stream() @@ -316,12 +307,10 @@ public class AutoCallAirShaftTask extends Prun { String qzz_generation = needPlan.getQzz_generation(); // 从套轴对接位获取相同气涨轴大小 // update: 不需要(同标箔或者锂电分开) - stepStr += ",15"; List qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, specification); log.info("查找到满足到对应尺寸的点位-{}", qzzPoint); if (qzzPoint.size() == 0) { stepErrorInfo.add("没有可拔轴的点位。"); - stepStr += ",16"; //若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可 // 调用ACS滚条气涨轴下来 if (!toAcsOutShaft(qzzSize,location, empty)) { @@ -332,7 +321,6 @@ public class AutoCallAirShaftTask extends Prun { toCallAgvMovePaperTube(needPlans, location, empty); // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 saveCutPlanMessage(empty, needPlans, qzzSize); - stepStr += ",97"; return; } // 查找一条没任务的点位 @@ -340,10 +328,8 @@ public class AutoCallAirShaftTask extends Prun { // 当前纸管的规格信息 String oldQzzNo = ObjectUtil.isNotEmpty(startPoint.getQzz_no1()) ? startPoint.getQzz_no1() : startPoint.getQzz_no2(); - stepStr += ",33"; if (oldQzzNo == null) { log.error("当前气胀轴的编码为空!"); - stepStr += ",96"; stepErrorInfo.add(startPoint.getPoint_code() + "的气胀轴编码为空,请检查..."); return; } @@ -351,11 +337,9 @@ public class AutoCallAirShaftTask extends Prun { ? startPoint.getTruss_point_code1() : startPoint.getTruss_point_code2(); if (startPointCode == null) { log.error("当前点位的编码为空!"); - stepStr += ",96"; stepErrorInfo.add(startPoint.getPoint_code() + "的点位编码为空,检查A或B点位的信息是否正常"); return; } - stepStr += ",34"; // 如果A6寸 B3寸,则需要过滤到精确点位 if (ObjectUtil.isNotEmpty(startPoint.getQzz_no1()) && ObjectUtil.isNotEmpty(startPoint.getQzz_no2())) { // 获取需要的数据 @@ -378,7 +362,6 @@ public class AutoCallAirShaftTask extends Prun { } } } - stepStr += ",35"; // 创建任务 JSONObject param = new JSONObject(); param.put("point_code1", startPointCode); @@ -399,7 +382,6 @@ public class AutoCallAirShaftTask extends Prun { // 最多两条 List oldPlans = slittingproductionplanService.getByQzzNo(oldQzzNo); if (oldPlans.size() == 0) { - stepStr += ",96"; log.warn("当前气胀轴编码{},找不到对应的计划", oldQzzNo); // 把点位禁用 startPoint.setIs_used("0"); @@ -418,16 +400,13 @@ public class AutoCallAirShaftTask extends Prun { param.put("pullCount", oldPlans.size()); param.put("containers", oldPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); toCallAgvMovePaperTube(needPlans, location, empty); - stepStr += ",36"; trussCallAirShaftTask.createTask(param); - stepStr += ",37"; // 将分切计划is_paper_ok 1(纸管已经准备好) -> 2(已经套轴) needPlans.forEach(p -> { p.setIs_paper_ok("2"); TaskUtils.updateOptMessageBySlitterPlan(p); }); slittingproductionplanService.updateBatchById(needPlans); - stepStr += ",97"; } public List getSlitterPlanByTubesDtos(List filteredList @@ -516,7 +495,6 @@ public class AutoCallAirShaftTask extends Prun { // 从套轴对接位获取相同气涨轴大小 // update: 不需要(同标箔或者锂电分开) // todo: 需要校验区域0/1 - stepStr += ",15"; List qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, qzzGeneration); log.info("查找可以拔轴的点位数:{}", qzzPoint.size()); if (!judgment1 && !judgment2 && qzzPoint.size() == 0) { @@ -555,7 +533,6 @@ public class AutoCallAirShaftTask extends Prun { * @param location 位置 */ public Boolean toCallAgvMovePaperTube(List needPlans, String location, BstIvtShafttubeivt empty) { - stepStr += ",17"; // 最多两根 List tubes = needPlans.stream().map(plan -> { if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) { @@ -571,7 +548,6 @@ public class AutoCallAirShaftTask extends Prun { .eq(BstIvtShafttubeivt::getPoint_type, empty.getPoint_type()) .eq(BstIvtShafttubeivt::getIs_used, "1")); log.info("同位置的另一台穿拔轴机构:{}", one); - stepStr += ",18"; // 另一台所需要的数量 int otherDeviceTubeSize = 0; // 缺省的数量 @@ -590,7 +566,6 @@ public class AutoCallAirShaftTask extends Prun { } // 说明三个位置中有包含此纸管的数据。 if (sum >= tubes.size() + otherDeviceTubeSize) { - stepStr += ",19"; return true; } // 如果不够,就计算还缺多少个 @@ -598,7 +573,6 @@ public class AutoCallAirShaftTask extends Prun { // 兜底 needQuantity = needTemp > 0 ? needTemp : 1; } - stepStr += ",20"; // 查找type=0的位置(待命的托盘)中是否存在(需要判断的是单独一个托盘) 校验了不在搬运中 List stockingivtList = stockingivtService.getNeedPaperTubePoint("0", tubes.get(0), location); // 找一个点位: 目的需要的点位 @@ -611,7 +585,6 @@ public class AutoCallAirShaftTask extends Prun { } } if (needPoint == null) { - stepStr += ",21"; // 不存在则站内通知 noticeService.createNotice("备货区找不到[" + tubes.get(0) + "]的纸管信息", "点位[" + empty.getPoint_name() + "]无法从备货区找到纸管信息", @@ -624,7 +597,6 @@ public class AutoCallAirShaftTask extends Prun { List needMovePointList = stockingivtService.getCanMovePointList(location, "1"); // 空位就直接创建搬过来的任务 BhTubeMovePointDto needMovePoint = needMovePointList.size() > 0 ? needMovePointList.get(0) : null; - stepStr += ",22"; if (ObjectUtil.isEmpty(needMovePoint) || "0".equals(needMovePoint.getIvt_status())) { // 直接搬过来即可 JSONObject param = new JSONObject(); @@ -638,14 +610,29 @@ public class AutoCallAirShaftTask extends Prun { .eq(MdPbPapervehicle::getVehicle_code, needPoint.getVehicle_code())); doSavePaperInfos(paperList, param); stockAreaCallTubeTask.createTask(param); - stepStr += ",23"; return true; } - stepStr += ",24"; + // 判断是否有单独拉出去的任务,有的话直接拉过来。 + List stockingivts = stockingivtService.getMoveTaskPoints(); + if (CollectionUtil.isNotEmpty(stockingivts)) { + BstIvtStockingivt bstIvtStockingivt = stockingivts.get(0); + // 直接搬过来即可 + JSONObject param = new JSONObject(); + param.put("point_code1", needPoint.getPoint_code()); + param.put("point_code2", bstIvtStockingivt.getPoint_code()); + param.put("vehicle_code", needPoint.getVehicle_code()); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送纸管")); + // 存储纸管信息 + List paperList = mdPbPapervehicleService.list(new LambdaQueryWrapper() + .eq(MdPbPapervehicle::getVehicle_code, needPoint.getVehicle_code())); + doSavePaperInfos(paperList, param); + stockAreaCallTubeTask.createTask(param); + return true; + } // 查找一个没有任务的空位 List list = stockingivtService.getEmptyPointNotTask(location, "0"); if (list.size() == 0) { - stepStr += ",25"; noticeService.createNotice("备货区找不到空位置搬运", "点位[" + empty.getPoint_name() + "]无法从备货区找到空位", NoticeTypeEnum.EXCEPTION.getCode()); @@ -663,7 +650,6 @@ public class AutoCallAirShaftTask extends Prun { param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送载具")); param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); stockAreaSendVehicleTask.createTask(param); - stepStr += ",26"; stepErrorInfo.add("备货区交换托盘中...请等待。"); return true; } @@ -677,19 +663,15 @@ public class AutoCallAirShaftTask extends Prun { * @param empty 套拔轴点位 */ private Boolean toAcsOutShaft(String qzzSize, String location, BstIvtShafttubeivt empty) { - stepStr += ",27"; // 需要区分上下 List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize ,empty.getPoint_code(), location); - stepStr += ",28"; if (shafttubeivts.size() == 0) { log.error("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); stepErrorInfo.add("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); - stepStr += ",98"; return false; } // 气涨轴库 BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); - stepStr += ",29"; // 判断气胀轴是否有轴 JSONArray device_rows = new JSONArray(); JSONObject device_obj = new JSONObject(); @@ -699,7 +681,6 @@ public class AutoCallAirShaftTask extends Prun { device_obj.put("product_area", "B1"); JSONObject pointStatus = wmsToAcsService.getPointStatus(device_rows); if (ObjectUtil.isEmpty(pointStatus) || ObjectUtil.isEmpty(pointStatus.getJSONArray("data"))) { - stepStr += ",98"; log.error("获取气胀轴库信息失败"); stepErrorInfo.add("获取ACS气胀轴库信息失败..."); return false; @@ -707,7 +688,7 @@ public class AutoCallAirShaftTask extends Prun { boolean judgment1 = true; boolean judgment2 = true; // 获取气涨轴缓存没有任务的点位 - List qzzCache = bstIvtShafttubeivtService.getNotTaskShaftCache2(qzzSize, + List qzzCache = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, shafttubeivt.getQzz_generation(), location); if (qzzCache.size() == 0) { log.warn("未找到气胀轴密集库气涨轴规格「" + qzzSize + "」的暂存位"); @@ -717,20 +698,10 @@ public class AutoCallAirShaftTask extends Prun { if (data2.getInteger("qty") == 0) { log.warn("气胀轴库【" + shafttubeivt.getPoint_code() + "】没有气胀轴。"); judgment1 = false; - // 预扣除 - if (judgment2) { - BstIvtShafttubeivt waitUsedPoint = qzzCache.get(0); - waitUsedPoint.setPlan("1"); - waitUsedPoint.setTube_name1("预分配给" + empty.getPoint_code()); - waitUsedPoint.setUpdate_time(DateUtil.now()); - bstIvtShafttubeivtService.updateById(waitUsedPoint); - } } - stepStr += ",30"; if (!judgment1 && !judgment2) { log.warn("没有气胀轴,不给ACS写出轴信息"); stepErrorInfo.add("呼叫气胀轴失败,(密集库/暂存架)没有"+qzzSize+"寸的气胀轴,不给ACS写出轴信息。请人工补轴或将对应的分切计划点击入站完成"); - stepStr += ",98"; return false; } // 判断气胀轴密集库是否有数据 @@ -742,7 +713,6 @@ public class AutoCallAirShaftTask extends Prun { acsQzz.put("value", "1"); acsQzz.put("product_area", SlitterConstant.SLITTER_TASK_AREA); acsParam.add(acsQzz); - stepStr += ",31"; log.info("开始给ACS写信号出气胀轴 - {}", acsQzz); JSONObject action = wmsToAcsService.action(acsParam); log.info("下发给ACS写信号出气涨轴返回参数:{}", action); @@ -781,7 +751,6 @@ public class AutoCallAirShaftTask extends Prun { * @param qzzSize 气涨轴尺寸 */ private void saveCutPlanMessage(BstIvtShafttubeivt empty, List needPlans, String qzzSize) { - stepStr += ",32"; log.info("正在保存套轴信息 - {} , 尺寸 - {} 到点位 - {}", needPlans, qzzSize, empty); empty.setHave_qzz(SlitterConstant.SLITTER_YES); empty.setQzz_size(qzzSize); @@ -828,19 +797,15 @@ public class AutoCallAirShaftTask extends Prun { * @param specification 代数(4、5) */ private void makePullShaft(BstIvtShafttubeivt empty, String specification) { - stepStr += ",3"; - stepStr += ",8"; log.info("不需要套轴,只做拔轴!"); //查询套轴缓存位哦:point_type=1 List notTaskPoints = bcutpointivtService.getAreaNotTaskPointByTcQzzPoint(empty.getPoint_location()); //所有TC暂存位有卷的:Truss_point_code1,Truss_point_code2有任务的 //根据point_code排序 if (notTaskPoints.size() == 0) { - stepStr += ",99"; stepErrorInfo.add("只进行拔轴,没有可以拔轴的点位。"); return; } - stepStr += ",9"; // 筛选一个满足的位置:3寸:看代数4/5;6寸直接 //判断气胀轴代 CutpointAirShhaftDto cutpointivt = notTaskPoints.stream() @@ -850,11 +815,9 @@ public class AutoCallAirShaftTask extends Prun { .findFirst() .orElse(null); if (cutpointivt == null) { - stepStr += ",99"; stepErrorInfo.add("只进行拔轴,没有与机构匹配尺寸/代数可以拔轴的点位。"); return; } - stepStr += ",10"; String pointCode1 = cutpointivt.getQzz_point(); String qzzNo = cutpointivt.getQzz_no(); // 获取对应的分切计划 @@ -862,7 +825,6 @@ public class AutoCallAirShaftTask extends Prun { .eq(PdmBiSlittingproductionplan::getQzzno, qzzNo) .eq(PdmBiSlittingproductionplan::getIs_delete, "0")); if (list.size() == 0) { - stepStr += ",99"; log.warn("气涨轴[{}]对应的分切计划不存在!", qzzNo); bcutpointivtService.update(new UpdateWrapper() .eq("ivt_id",cutpointivt.getIvt_id()) @@ -895,7 +857,6 @@ public class AutoCallAirShaftTask extends Prun { param.put("is_pulling", SlitterConstant.SLITTER_YES); trussCallAirShaftTask.createTask(param); stepErrorInfo.add("只做拔轴,拔轴任务已经创建..."); - stepStr += ",11"; } /** @@ -912,7 +873,6 @@ public class AutoCallAirShaftTask extends Prun { } stepErrorInfo.add("存在为" + dto.getResource_name() + "送轴任务,不会继续套轴..."); log.info("存在任务,不允许套轴{}", dto); - stepStr += ",5"; return false; } @@ -947,7 +907,6 @@ public class AutoCallAirShaftTask extends Prun { && byContainerName.getSplit_group().equals(dto.getSplit_group())) { return true; } - stepStr += ",4"; stepErrorInfo.add("穿拔轴机" + shafttubeivt.getPoint_code() + "已经在为" + dto.getResource_name() + "套轴了..."); return false; } @@ -963,7 +922,6 @@ public class AutoCallAirShaftTask extends Prun { stepErrorInfo.add("设备" + dto.getResource_name() + "检测到暂存架" + stringList + "有套好的管芯,不会进行套轴。"); } log.info("检查有同母卷不允许套轴:{}", dto); - stepStr += ",4"; // 有就返回true return false; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java index ed852f5c2..be868717d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java @@ -22,7 +22,7 @@ public enum SlitterEnum { TASK_TYPE(MapOf.of("穿拔轴缓存<>穿拔轴位", "010801", "穿拔轴缓存<>分切对接位", "010802", "穿拔轴位<>气胀轴缓存位", "010803" , "分切机下料AGV任务", "010804", "分切机上气胀轴", "010805", "分切机下气胀轴", "010806", "备货区送载具", "010807" , "备货区送纸管", "010808", "分切机下料桁架任务", "010809", "分切机下料AGV到内包间", "010810", "套轴异常处理AGV任务", "010811" - , "套轴异常处理桁架任务", "010812", "送气胀轴到分切机任务", "010813", "拔轴完毕出轴", "010814", "穿拔轴缓存<>气胀轴缓存位", "010815")); + , "套轴异常处理桁架任务", "010812", "送气胀轴到分切机任务", "010813", "拔轴完毕出轴", "010814", "穿拔轴缓存<>气胀轴缓存位", "010815", "备货区单独送空载具", "010816")); private Map code; public String code(String desc) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 66dd383a2..0efc52077 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -41,6 +41,7 @@ import org.nl.b_lms.sch.tasks.slitter.mapper.dto.CallPlanViewVO; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.GxQtyDto; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; +import org.nl.common.enums.NoticeTypeEnum; import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; @@ -135,6 +136,8 @@ public class SlitterServiceImpl implements SlitterService { private RedisUtils redisUtils; @Autowired private ClassstandardService classstandardService; + @Autowired + private StockAreaSendVehicleTask stockAreaSendVehicleTask; @Override public JSONObject acsRequestShaftLoadTube(JSONObject param) { @@ -958,12 +961,13 @@ public class SlitterServiceImpl implements SlitterService { JSONObject res = new JSONObject(); res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功!"); + String deviceCode = param.getString("device_code"); // param: device_code row_num if (ObjectUtil.isEmpty(param.getString("row_num"))) { - log.error("设备:{},排数不能为空", param.getString("device_code")); - throw new BadRequestException("设备:" + param.getString("device_code") + "排数不能为空"); + log.error("设备:{},排数不能为空", deviceCode); + throw new BadRequestException("设备:" + deviceCode + "排数不能为空"); } - BstIvtStockingivt device = stockingivtService.getPointByCode(param.getString("device_code"), false); + BstIvtStockingivt device = stockingivtService.getPointByCode(deviceCode, false); String vehicleCode = device.getVehicle_code(); if (ObjectUtil.isEmpty(vehicleCode)) { // 如果托盘号为空,那就是任务没完成,需要从任务中获取 @@ -997,7 +1001,33 @@ public class SlitterServiceImpl implements SlitterService { } else { papervehicleService.update(mdPbPapervehicle); } - // todo: 如果qty=0,创建AGV送空任务,(新的task_type)、后期优化可以新增诺宝取货完成提前释放货位,任务状态变成071 + // 如果qty=0,创建AGV送空任务,(新的task_type 010816)、后期优化可以新增诺宝取货完成提前释放货位,任务状态变成071 + List papers = papervehicleService.list(new LambdaQueryWrapper() + .eq(MdPbPapervehicle::getVehicle_code, vehicleCode)); + BigDecimal reduce = papers.stream().map(MdPbPapervehicle::getQty).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + if (reduce.intValue() <= 0) { + // 搬走 + List tasks = taskService.checkHaveTask(deviceCode); + if (CollectionUtil.isEmpty(tasks)) { + // 查找一个没有任务的空位 + List list = stockingivtService.getEmptyPointNotTask(device.getPoint_location(), "0"); + if (list.size() == 0) { + noticeService.createNotice("备货区找不到空位置搬运", + "备货区" + deviceCode + "异常", + NoticeTypeEnum.EXCEPTION.getCode()); + return res; + } + BstIvtStockingivt moveEmptyPoint = list.get(0); + JSONObject moveTaskParam = new JSONObject(); + moveTaskParam.put("point_code1", deviceCode); + moveTaskParam.put("point_code2", moveEmptyPoint.getPoint_code()); + moveTaskParam.put("vehicle_code", vehicleCode); + moveTaskParam.put("task_type", SlitterEnum.TASK_TYPE.code("备货区单独送空载具")); + moveTaskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + stockAreaSendVehicleTask.createTask(moveTaskParam); + } + + } } return res; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index fecf5494f..e6133fb79 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -108,6 +108,7 @@ public class AcsToWmsController { return new ResponseEntity<>(acsToWmsService.actionFinishRequest(jo), HttpStatus.OK); } + /** 二期二楼取货完成上报 */ @PostMapping("/actionFinishRequest2") @SaIgnore public ResponseEntity actionFinishRequest2(@RequestBody JSONObject jo) { diff --git a/lms/nladmin-system/src/main/resources/logback-spring.xml b/lms/nladmin-system/src/main/resources/logback-spring.xml index 040e763ef..2c520ee34 100644 --- a/lms/nladmin-system/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/src/main/resources/logback-spring.xml @@ -12,7 +12,7 @@ https://juejin.cn/post/6844903775631572999 nlAdmin + value="%black(%contextName-) %X{traceId} %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %cyan(%msg%n)"/> From 094b7104fcf6da95ec412b65ac270dade63591d3 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 17 Jun 2025 17:49:12 +0800 Subject: [PATCH 037/146] =?UTF-8?q?opt:=20=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=97=A0=E7=82=B9=E4=BD=8D=E5=88=9B=E5=BB=BA=E5=8D=8A?= =?UTF-8?q?=E6=9D=A1=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slitter/SendNBJExceptionPointTask.java | 4 +- .../service/impl/SlitterServiceImpl.java | 63 +++++++++++++------ 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java index 7e5a28ded..11ff574cf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java @@ -121,7 +121,9 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask { SchBaseTask task = new SchBaseTask(); task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) + ? form.getString("task_status") + : TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); task.setVehicle_code(form.getString("vehicle_code1")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 0efc52077..b83a5fc76 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -366,7 +366,20 @@ public class SlitterServiceImpl implements SlitterService { } else { stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,无暂存位置,创建任务失败!"); redisUtils.set("ERROR" + deviceCode, stepTipLogs); - throw new BadRequestException("[" + collect + "]对应的分切计划状态已更改,无暂存位置!"); + JSONObject exParam = new JSONObject(); + exParam.put("point_code1", startPoint.getPoint_code()); + exParam.put("point_code2", "-"); + exParam.put("vehicle_code1", collect); + exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理桁架任务")); + exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + exParam.put("task_status", TaskStatusEnum.SURE_START.getCode()); + exParam.put("acs_task_type", "6"); + sendNBJExceptionPointTask.createTask(exParam); + res.put("status", HttpStatus.HTTP_OK); + res.put("message", "请求成功"); + res.put("msg", msg); + return res; +// throw new BadRequestException("[" + collect + "]对应的分切计划状态已更改,无暂存位置!"); } } // 分切计划设置纸卷重量 @@ -1142,13 +1155,29 @@ public class SlitterServiceImpl implements SlitterService { // 判断是不是内包间的点位 if (task.getPoint_code1().startsWith("TZZC")) { // 查找半条任务,并创建下发 - List list = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getTask_type, "010814") - .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) - .eq(SchBaseTask::getIs_delete, "0") - .orderByAsc(SchBaseTask::getCreate_time)); - if (list.size() > 0) { - SchBaseTask schBaseTask = list.get(0); + doCreatTrussSendShaftTask(task); + } + startPointObj.setPoint_status("1"); + startPointObj.setQzz_no1(""); + startPointObj.setQzz_no2(""); + startPointObj.setRemark(""); + TaskUtils.updateOptMessageByBCutPoint(startPointObj); + bcutpointivtService.updateById(startPointObj); + task.setTask_status(TaskStatusEnum.PICK_UP_COMPLETED.getCode()); + TaskUtils.updateOptMessageByTask(task); + taskService.updateById(task); + return result; + } + + public void doCreatTrussSendShaftTask(SchBaseTask task) { + List list = taskService.list(new LambdaQueryWrapper() + .in(SchBaseTask::getTask_type, "010814", "010812") + .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) + .eq(SchBaseTask::getIs_delete, "0") + .orderByAsc(SchBaseTask::getCreate_time)); + if (list.size() > 0) { + SchBaseTask schBaseTask = list.get(0); + if ("010814".equals(schBaseTask.getTask_type())) { JSONObject requestParam = JSONObject.parseObject(schBaseTask.getRequest_param()); if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "A".equals(requestParam.getString("needPosition"))) { schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); @@ -1161,18 +1190,16 @@ public class SlitterServiceImpl implements SlitterService { schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); taskService.updateById(schBaseTask); trussSendAirShaftTask.immediateNotifyAcs(schBaseTask.getTask_id()); + } else if ("010812".equals(schBaseTask.getTask_type())) { + schBaseTask.setRemark("AGV取货完成触发!"); + schBaseTask.setPoint_code2(task.getPoint_code1() + "_A"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + taskService.updateById(schBaseTask); + sendNBJExceptionPointTask.immediateNotifyAcs(schBaseTask.getTask_id()); } + } - startPointObj.setPoint_status("1"); - startPointObj.setQzz_no1(""); - startPointObj.setQzz_no2(""); - startPointObj.setRemark(""); - TaskUtils.updateOptMessageByBCutPoint(startPointObj); - bcutpointivtService.updateById(startPointObj); - task.setTask_status(TaskStatusEnum.PICK_UP_COMPLETED.getCode()); - TaskUtils.updateOptMessageByTask(task); - taskService.updateById(task); - return result; } @Override From 9781bbcc99d16c8b5721aa472bd947800641f3d5 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 17 Jun 2025 17:58:39 +0800 Subject: [PATCH 038/146] =?UTF-8?q?opt:=20=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=97=A0=E7=82=B9=E4=BD=8D=E5=88=9B=E5=BB=BA=E5=8D=8A?= =?UTF-8?q?=E6=9D=A1=E4=BB=BB=E5=8A=A12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tasks/slitter/TrussCallAirShaftTask.java | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java index bf7167160..8940903ee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java @@ -56,6 +56,8 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { private IBstIvtShafttubeivtService shafttubeivtService; @Autowired private TrussSendAirShaftTask trussSendAirShaftTask; + @Autowired + private SendNBJExceptionPointTask sendNBJExceptionPointTask; @Override public List addTask() { /* @@ -122,24 +124,34 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { if (ObjectUtil.isEmpty(startPointObj.getQzz_no1()) && ObjectUtil.isEmpty(startPointObj.getQzz_no2())) { // 查找半条任务,并创建下发 List list = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getTask_type, "010814") + .in(SchBaseTask::getTask_type, "010814", "010812") .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) .eq(SchBaseTask::getIs_delete, "0") .orderByAsc(SchBaseTask::getCreate_time)); if (list.size() > 0) { SchBaseTask schBaseTask = list.get(0); - JSONObject requestParam = JSONObject.parseObject(schBaseTask.getRequest_param()); - if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "A".equals(requestParam.getString("needPosition"))) { - schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + if ("010814".equals(schBaseTask.getTask_type())) { + JSONObject requestParam = JSONObject.parseObject(schBaseTask.getRequest_param()); + if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "A".equals(requestParam.getString("needPosition"))) { + schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + } + if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "B".equals(requestParam.getString("needPosition"))) { + schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + } + schBaseTask.setRemark("AGV取货完成触发!"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + taskService.updateById(schBaseTask); + trussSendAirShaftTask.immediateNotifyAcs(schBaseTask.getTask_id()); + } else if ("010812".equals(schBaseTask.getTask_type())) { + schBaseTask.setRemark("AGV取货完成触发!"); + schBaseTask.setPoint_code2(task.getPoint_code1() + "_A"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + taskService.updateById(schBaseTask); + sendNBJExceptionPointTask.immediateNotifyAcs(schBaseTask.getTask_id()); } - if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "B".equals(requestParam.getString("needPosition"))) { - schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); - } - schBaseTask.setRemark("AGV取货完成触发!"); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); - taskService.updateById(schBaseTask); - trussSendAirShaftTask.immediateNotifyAcs(schBaseTask.getTask_id()); + } } } From da54fc67abb6edb0a6f00e6a781664cc2e8b36d9 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 17 Jun 2025 18:27:51 +0800 Subject: [PATCH 039/146] =?UTF-8?q?fix:=E5=A5=97=E8=BD=B4=E9=80=BB?= =?UTF-8?q?=E8=BE=91SQL=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/BstIvtCutpointivtMapper.xml | 2 +- .../PdmBiSlittingproductionplanMapper.xml | 2 +- .../util/impl/InBoxManageServiceImpl.java | 4 +- lms/nladmin-ui/src/views/wms/pdm/bi/index.vue | 56 +++++++++---------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml index 51f3a1ccb..be5fe4937 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml @@ -131,7 +131,7 @@ SELECT bc.* FROM bst_ivt_cutpointivt bc LEFT JOIN pdm_bi_slittingproductionplan p ON p.qzzno = bc.qzz_no1 OR p.qzzno = bc.qzz_no2 - WHERE bc.point_type IN ('1', '3') AND bc.point_status = '2' + WHERE bc.point_type IN ('1', '3') AND bc.point_status = '2' and p.is_delete = '0' AND (IFNULL(bc.qzz_no1,'') ]]> '' OR IFNULL(bc.qzz_no2,'') ]]> '') AND p.resource_name = #{resource_name} AND IFNULL(p.qzzno, '') ]]> '' diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml index 36d9f4ee3..b21d6aab8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml @@ -64,7 +64,7 @@ p.qzz_generation ) AS combined_data ORDER BY - start_time + start_time,split_group + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java index c7ef3784e..143862573 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java @@ -101,4 +101,9 @@ public class MdPbPapervehicleServiceImpl extends ServiceImpl getInfoByTask() { + return mdPbPapervehicleMapper.getInfoByTask(); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java index a27b395d4..fa6a9f244 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java @@ -154,6 +154,7 @@ public class StockAreaSendVehicleTask extends AbstractAcsTask { ? callPoint.getString("point_code") : ""); task.setVehicle_code(form.getString("vehicle_code")); + task.setVehicle_code2(form.getString("vehicle_code2")); task.setAcs_task_type("3"); task.setIs_delete("0"); task.setRemark("point3只是记录点,不会下到ACS"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index a9edddd93..c99e2ac1f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -47,12 +47,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -548,22 +546,22 @@ public class AutoCallAirShaftTask extends Prun { .eq(BstIvtShafttubeivt::getPoint_type, empty.getPoint_type()) .eq(BstIvtShafttubeivt::getIs_used, "1")); log.info("同位置的另一台穿拔轴机构:{}", one); - // 另一台所需要的数量 + // 另一台所需要的数量(默认双管芯尺寸一致) int otherDeviceTubeSize = 0; + if (ObjectUtil.isNotEmpty(one)) { + if (one.getTube_code1().equals(tubes.get(0))) { + otherDeviceTubeSize = (int) Stream.of(one.getTube_code1(), one.getTube_code2()).filter(ObjectUtil::isNotEmpty).count(); + } + } // 缺省的数量 int needQuantity = 0; // 判断当前区域location对应的备货区是否含有相同的纸管 校验了不在搬运中 - // todo: 要考虑防止所需要的托盘被搬走! + // todo: 要考虑防止所需要的托盘被搬走!双管芯的尺寸不一致 // type=1(桁架底下的托盘), 关联对象material_code=纸管, qty > 0 List useList = stockingivtService.getPaperTubePoint("1", tubes.get(0), location, 0); if (useList.size() > 0) { // 求和,三个托盘中需要的管芯的数量。 int sum = useList.stream().mapToInt(BstIvtStockingivt::getQty).sum(); - if (ObjectUtil.isNotEmpty(one)) { - if (one.getTube_code1().equals(tubes.get(0))) { - otherDeviceTubeSize = (int) Stream.of(one.getTube_code1(), one.getTube_code2()).filter(ObjectUtil::isNotEmpty).count(); - } - } // 说明三个位置中有包含此纸管的数据。 if (sum >= tubes.size() + otherDeviceTubeSize) { return true; @@ -573,6 +571,31 @@ public class AutoCallAirShaftTask extends Prun { // 兜底 needQuantity = needTemp > 0 ? needTemp : 1; } + // 查询是否存在任务正在搬运过来。(路上的是另一台机构的轴) + List havePapers = papervehicleService.getInfoByTask(); + if (CollectionUtil.isNotEmpty(havePapers)) { + Map sumByMaterialCode = havePapers.stream() + .collect(Collectors.groupingBy( + MdPbPapervehicle::getMaterial_code, + Collectors.mapping( + MdPbPapervehicle::getQty, + Collectors.reducing( + BigDecimal.ZERO, + BigDecimal::add + ) + ) + )); + int sumQty = sumByMaterialCode.get(tubes.get(0)).intValue(); + if (sumQty >= needQuantity ) { + stepErrorInfo.add("AGV正在搬运管芯..."); + log.info("AGV正在搬运管芯..."); + return true; + } + // 如果不够,就计算还缺多少个 + int needTemp = needQuantity - sumQty; + // 兜底 + needQuantity = needTemp > 0 ? needTemp : tubes.size(); + } // 查找type=0的位置(待命的托盘)中是否存在(需要判断的是单独一个托盘) 校验了不在搬运中 List stockingivtList = stockingivtService.getNeedPaperTubePoint("0", tubes.get(0), location); // 找一个点位: 目的需要的点位 @@ -610,6 +633,7 @@ public class AutoCallAirShaftTask extends Prun { .eq(MdPbPapervehicle::getVehicle_code, needPoint.getVehicle_code())); doSavePaperInfos(paperList, param); stockAreaCallTubeTask.createTask(param); + stepErrorInfo.add("备货区正在搬运管芯过来,托盘号:[" + needPoint.getVehicle_code() + "]。"); return true; } // 判断是否有单独拉出去的任务,有的话直接拉过来。 @@ -628,6 +652,7 @@ public class AutoCallAirShaftTask extends Prun { .eq(MdPbPapervehicle::getVehicle_code, needPoint.getVehicle_code())); doSavePaperInfos(paperList, param); stockAreaCallTubeTask.createTask(param); + stepErrorInfo.add("备货区正在搬运管芯过来,托盘号:[" + needPoint.getVehicle_code() + "]。"); return true; } // 查找一个没有任务的空位 @@ -645,6 +670,7 @@ public class AutoCallAirShaftTask extends Prun { param.put("point_code1", needMovePoint.getPoint_code()); param.put("point_code2", endPoint.getPoint_code()); param.put("vehicle_code", needMovePoint.getVehicle_code()); + param.put("vehicle_code2", needPoint.getVehicle_code()); param.put("material_code", tubes.get(0)); param.put("call_point", needPoint); param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送载具")); From 43ba5878171d5b52722d94107ac649a97edecb6d Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 19 Jun 2025 20:11:59 +0800 Subject: [PATCH 041/146] =?UTF-8?q?opt:=20=E5=A4=87=E8=B4=A7=E5=8C=BA?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E7=AE=A1=E8=8A=AF=E4=BD=BF=E7=94=A8=EF=BC=8C?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E6=89=80=E9=9C=80=E8=A6=81=E7=9A=84=E6=89=98?= =?UTF-8?q?=E7=9B=98=E8=A2=AB=E6=90=AC=E8=B5=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IBstIvtStockingivtService.java | 18 ++++++++ .../service/dao/BstIvtStockingivt.java | 3 +- .../dao/mapper/BstIvtStockingivtMapper.java | 13 ++++++ .../dao/mapper/BstIvtStockingivtMapper.xml | 40 ++++++++++++++++++ .../impl/BstIvtStockingivtServiceImpl.java | 9 ++++ .../slitter/auto/AutoCallAirShaftTask.java | 42 +++++++++++++------ .../tasks/slitter/util/SlitterTaskUtil.java | 19 +++++++++ 7 files changed, 130 insertions(+), 14 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java index a581826e6..ba5854fc6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java @@ -58,6 +58,16 @@ public interface IBstIvtStockingivtService extends IService { */ List getPaperTubePoint(String pointType, String tube, String location, int qty); + + /** + * 获取备货区中指定条件的货位 + * @param pointType 类型:0暂存位置,1靠近分切机 + * @param location 位置:0上区域,1下区域 + * @param qty 数量 + * @return / + */ + List getPaperTubesPoint(String pointType, String location, int qty); + /** * 获取备货区空位,没有任务的位置 * @param location 位置:0上区域,1下区域 @@ -92,6 +102,14 @@ public interface IBstIvtStockingivtService extends IService { * @return */ List getNeedPaperTubePoint(String pointType, String tube, String location); + /** + * 分组聚合获取需要管芯数组的托盘位置 + * @param pointType + * @param tubes + * @param location + * @return + */ + List getNeedPaperTubesPoint(String pointType, List tubes, String location); /** * 获取3个托盘的数据 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/BstIvtStockingivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/BstIvtStockingivt.java index 9aabb4514..8ed6d4eff 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/BstIvtStockingivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/BstIvtStockingivt.java @@ -4,12 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; import java.io.Serializable; +import java.math.BigDecimal; /** * @description 添加'@Builder'注解最好不好添加'@NoArgsConstructor' diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java index 39b34d291..dcbb5e257 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java @@ -1,6 +1,7 @@ package org.nl.b_lms.bst.ivt.stockingivt.service.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle; import org.nl.b_lms.bst.ivt.stockingivt.service.dao.BstIvtStockingivt; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.BhTubeMovePointDto; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.BhTubePointDto; @@ -22,6 +23,9 @@ public interface BstIvtStockingivtMapper extends BaseMapper { * @return / */ List getPaperTubePoint(String pointType, String tube, String location, int qty); + + + List getPaperTubesPoint(String pointType, String location, int qty); /** * 获取备货区空位,没有任务的位置 * @param location 位置:0上区域,1下区域 @@ -40,8 +44,17 @@ public interface BstIvtStockingivtMapper extends BaseMapper { * @return / */ List getNeedPaperTubePoint(String pointType, String tube, String location); + /** + * 分组聚合获取备货区中数量够用的的货位 + * @param pointType 类型:0暂存位置,1靠近分切机 + * @param tubes 纸管号 两个不一定一样的 + * @param location 位置:0上区域,1下区域 + * @return / + */ + List getNeedPaperTubesPoint(String pointType, List tubes, String location); List getCanMovePointList(String location, String pointType); List getMoveTaskPoints(); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml index 5d3686ff4..faca57a91 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml @@ -19,6 +19,23 @@ t.point_code3 = bs.point_code) AND t.task_status '07') + + + SELECT p.* FROM sch_base_task t1 LEFT JOIN md_pb_papervehicle p ON p.vehicle_code = t1.vehicle_code2 AND p.qty > 0 - WHERE t1.task_type = '010807' AND t1.task_status '07' AND t1.is_delete = '0' + WHERE t1.task_type = '010807' AND t1.task_status '07' AND t1.is_delete = '0' AND IFNULL(t1.vehicle_code2,'') ]]> '' UNION SELECT p.* FROM sch_base_task t2 LEFT JOIN md_pb_papervehicle p ON p.vehicle_code = t2.vehicle_code AND p.qty > 0 - WHERE t2.task_type = '010808' AND t2.task_status '07' AND t2.is_delete = '0' + WHERE t2.task_type = '010808' AND t2.task_status '07' AND t2.is_delete = '0' AND IFNULL(t2.vehicle_code,'') ]]> '' From 594e90bb4889743b96cc5a32c21b2d8ec44e1f47 Mon Sep 17 00:00:00 2001 From: "DESKTOP-5DIJMF9\\admin" <2388969634@qq.com> Date: Thu, 26 Jun 2025 13:45:15 +0800 Subject: [PATCH 049/146] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/slitter/ReturnShaftAgvTask.java | 20 +++++++++++++++++++ .../sch/tasks/slitter/SlitterDownAgvTask.java | 19 ++++++++++++++++++ .../service/impl/SlitterServiceImpl.java | 1 - 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/ReturnShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/ReturnShaftAgvTask.java index ae2048170..b167e3140 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/ReturnShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/ReturnShaftAgvTask.java @@ -189,6 +189,12 @@ public class ReturnShaftAgvTask extends AbstractAcsTask { task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); + if (this.isSingleTask(form.getString("point_code1"))) { + throw new BadRequestException("点位:" + form.getString("point_code1") + "存在未完成的任务!"); + } + if (this.isSingleTask(form.getString("point_code2"))) { + throw new BadRequestException("点位:" + form.getString("point_code2") + "存在未完成的任务!"); + } task.setVehicle_code(form.getString("vehicle_code1")); task.setVehicle_code2(form.getString("vehicle_code2")); task.setAcs_task_type("3"); @@ -227,4 +233,18 @@ public class ReturnShaftAgvTask extends AbstractAcsTask { this.updateTaskStatus(taskObj, "0"); } + //判断该点位是否存在未完成的任务 + public boolean isSingleTask(String point_code) { + JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + + if (ObjectUtil.isNotEmpty(task1) || ObjectUtil.isNotEmpty(task2) || ObjectUtil.isNotEmpty(task3) || ObjectUtil.isNotEmpty(task4)) { + return true; + } else { + return false; + } + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java index e2cda5b25..0ba2786b5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java @@ -107,6 +107,12 @@ public class SlitterDownAgvTask extends AbstractAcsTask { task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); + if (this.isSingleTask(form.getString("point_code1"))) { + throw new BadRequestException("点位:" + form.getString("point_code1") + "存在未完成的任务!"); + } + if (this.isSingleTask(form.getString("point_code2"))) { + throw new BadRequestException("点位:" + form.getString("point_code2") + "存在未完成的任务!"); + } task.setVehicle_code(form.getString("vehicle_code1")); task.setVehicle_code2(form.getString("vehicle_code2")); task.setAcs_task_type("3"); @@ -142,4 +148,17 @@ public class SlitterDownAgvTask extends AbstractAcsTask { JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); this.updateTaskStatus(taskObj, "0"); } + //判断该点位是否存在未完成的任务 + public boolean isSingleTask(String point_code) { + JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + + if (ObjectUtil.isNotEmpty(task1) || ObjectUtil.isNotEmpty(task2) || ObjectUtil.isNotEmpty(task3) || ObjectUtil.isNotEmpty(task4)) { + return true; + } else { + return false; + } + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 050b9dce6..16c11d05e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -2574,7 +2574,6 @@ public class SlitterServiceImpl implements SlitterService { } @Override - @Transactional(rollbackFor = Exception.class) public JSONObject returnShaft(JSONObject param) { log.info("空轴退回 - {}", param); JSONObject res = new JSONObject(); From d30e25a8cd7ed03a80fcfa84d87a6d4be7a4bf66 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 30 Jun 2025 10:30:34 +0800 Subject: [PATCH 050/146] =?UTF-8?q?opt:=20=E5=A4=87=E8=B4=A7=E5=8C=BA?= =?UTF-8?q?=E3=80=81=E9=80=81=E8=BD=B4=EF=BC=88=E5=8E=BB=E9=99=A4=E5=88=86?= =?UTF-8?q?=E5=88=87=E8=AE=A1=E5=88=92=E7=8A=B6=E6=80=81=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IMdPbPapervehicleService.java | 7 ++ .../impl/MdPbPapervehicleServiceImpl.java | 12 +++ .../service/IBstIvtStockingivtService.java | 9 +++ .../dao/mapper/BstIvtStockingivtMapper.java | 13 +++- .../dao/mapper/BstIvtStockingivtMapper.xml | 20 +++++ .../impl/BstIvtStockingivtServiceImpl.java | 5 ++ .../IPdmBiSlittingproductionplanService.java | 2 + ...dmBiSlittingproductionplanServiceImpl.java | 23 ++++++ .../tasks/slitter/StockAreaCallTubeTask.java | 4 +- .../slitter/StockAreaSendVehicleTask.java | 31 +++++++- .../tasks/slitter/TrussCallAirShaftTask.java | 11 +-- .../slitter/auto/AutoCallAirShaftTask.java | 78 ++++++++++++++++--- .../slitter/auto/AutoSendAirShaftAgvTask.java | 9 +-- .../slitter/mapper/dto/BhTubePointDto.java | 8 +- .../service/impl/SlitterServiceImpl.java | 9 --- .../system/service/quartz/task/TestTask.java | 17 +++- 16 files changed, 223 insertions(+), 35 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java index cee710038..8ad3f4768 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java @@ -69,4 +69,11 @@ public interface IMdPbPapervehicleService extends IService { * @return */ List getInfoByTask(); + + /** + * 通过载具获取管芯编码 + * @param vehicleCode + * @return + */ + List getTubeCodesByVehicle(String vehicleCode); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java index 143862573..1e8a362c2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java @@ -23,6 +23,7 @@ import javax.annotation.Resource; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** * @description 服务实现 @@ -106,4 +107,15 @@ public class MdPbPapervehicleServiceImpl extends ServiceImpl getTubeCodesByVehicle(String vehicleCode) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(MdPbPapervehicle::getVehicle_code, vehicleCode); + List list = list(lam); + if (list.size() == 0) { + return null; + } + return list.stream().map(MdPbPapervehicle::getMaterial_code).distinct().collect(Collectors.toList()); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java index ba5854fc6..23e590a41 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java @@ -111,6 +111,15 @@ public interface IBstIvtStockingivtService extends IService { */ List getNeedPaperTubesPoint(String pointType, List tubes, String location); + /** + * 分组聚合获取需要管芯数组的托盘位置(搬运中的数据) + * @param pointType + * @param tube + * @param location + * @return + */ + List getNeedPaperTubePointInTasking(String pointType, String tube, String location); + /** * 获取3个托盘的数据 * @param location diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java index dcbb5e257..eebb68b15 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java @@ -38,7 +38,7 @@ public interface BstIvtStockingivtMapper extends BaseMapper { /** * 分组聚合获取备货区中数量够用的的货位 - * @param pointType 类型:0暂存位置,1靠近分切机 + * @param pointType 类型:2暂存位置,1靠近桁架 * @param tube 纸管号 两个都是一样的,因此拿一个就行 * @param location 位置:0上区域,1下区域 * @return / @@ -46,7 +46,7 @@ public interface BstIvtStockingivtMapper extends BaseMapper { List getNeedPaperTubePoint(String pointType, String tube, String location); /** * 分组聚合获取备货区中数量够用的的货位 - * @param pointType 类型:0暂存位置,1靠近分切机 + * @param pointType 类型:2暂存位置,1靠近桁架 * @param tubes 纸管号 两个不一定一样的 * @param location 位置:0上区域,1下区域 * @return / @@ -56,5 +56,12 @@ public interface BstIvtStockingivtMapper extends BaseMapper { List getCanMovePointList(String location, String pointType); List getMoveTaskPoints(); - + /** + * 分组聚合获取备货区中数量够用的的货位(任务中) + * @param pointType 类型:2暂存位置,1靠近桁架 + * @param tube 纸管号 两个都是一样的,因此拿一个就行 + * @param location 位置:0上区域,1下区域 + * @return / + */ + List getNeedPaperTubePointInTasking(String pointType, String tube, String location); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml index faca57a91..7cd6d3991 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml @@ -140,4 +140,24 @@ AND t.task_status ]]> '07' AND t.is_delete = '0' + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java index 0f7024b73..41d162682 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java @@ -321,6 +321,11 @@ public class BstIvtStockingivtServiceImpl extends ServiceImpl getNeedPaperTubePointInTasking(String pointType, String tube, String location) { + return bstIvtStockingivtMapper.getNeedPaperTubePointInTasking(pointType, tube, location); + } + @Override public List getCanMovePointList(String location, String pointType) { return bstIvtStockingivtMapper.getCanMovePointList(location, pointType); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java index 284c52eda..616fd1bf9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java @@ -152,4 +152,6 @@ public interface IPdmBiSlittingproductionplanService extends IService getXnPlanByDevice(String deviceCode); + + List getPlansByDto(SlitterPlanDistinctDto dto); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java index 218a276ed..bc81b5c00 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java @@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; @@ -212,4 +213,26 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl getPlansByDto(SlitterPlanDistinctDto dto) { + List checkPlans = list(new LambdaQueryWrapper() + .eq(PdmBiSlittingproductionplan::getResource_name, dto.getResource_name()) + .eq(PdmBiSlittingproductionplan::getParent_container_name, dto.getParent_container_name()) + .eq(PdmBiSlittingproductionplan::getUp_or_down, dto.getUp_or_down()) + .eq(PdmBiSlittingproductionplan::getSplit_group, dto.getSplit_group()) + .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO) + .eq(PdmBiSlittingproductionplan::getIs_paper_ok, SlitterConstant.SLITTER_YES)); + if (checkPlans.size() == 0) { + // 可能是改切,所以换成restruct_container_name来使用 + checkPlans = list(new LambdaQueryWrapper() + .eq(PdmBiSlittingproductionplan::getResource_name, dto.getResource_name()) + .eq(PdmBiSlittingproductionplan::getRestruct_container_name, dto.getParent_container_name()) + .eq(PdmBiSlittingproductionplan::getUp_or_down, dto.getUp_or_down()) + .eq(PdmBiSlittingproductionplan::getSplit_group, dto.getSplit_group()) + .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO) + .eq(PdmBiSlittingproductionplan::getIs_paper_ok, SlitterConstant.SLITTER_YES)); + } + return checkPlans; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java index af17ec2f4..31f700348 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java @@ -119,7 +119,9 @@ public class StockAreaCallTubeTask extends AbstractAcsTask { SchBaseTask task = new SchBaseTask(); task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) + ? form.getString("task_status") + : TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); task.setVehicle_code(form.getString("vehicle_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java index fa6a9f244..e30a4f8cd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java @@ -21,6 +21,7 @@ import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; @@ -30,6 +31,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil.doSavePaperInfos; @@ -129,6 +132,30 @@ public class StockAreaSendVehicleTask extends AbstractAcsTask { .eq(MdPbPapervehicle::getVehicle_code, callPoint.getString("vehicle_code"))); doSavePaperInfos(paperList, param); stockAreaCallTubeTask.createTask(param); + // 如果有半条任务,要看看是不是这个任务的后置任务,是的话需要修改状态并下发。 + List tasks = taskService.list(new LambdaQueryWrapper() + .in(SchBaseTask::getTask_type, Stream.of(SlitterEnum.TASK_TYPE.code("备货区送载具"), SlitterEnum.TASK_TYPE.code("备货区送纸管")).collect(Collectors.toList())) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) + .eq(SchBaseTask::getIs_delete, "0") + .orderByAsc(SchBaseTask::getCreate_time)); + for (SchBaseTask baseTask : tasks) { + JSONObject halfRequestParam = JSONObject.parseObject(baseTask.getRequest_param()); + if (ObjectUtil.isEmpty(halfRequestParam) || ObjectUtil.isEmpty(halfRequestParam.getString("task_id"))) { + break; + } + String taskId = halfRequestParam.getString("task_id"); + if (task.getTask_id().equals(taskId)) { + baseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + baseTask.setRemark("前置任务触发后置任务"); + taskService.updateById(baseTask); + if (THIS_CLASS.equals(baseTask.getHandle_class())) { + this.immediateNotifyAcs(null); + } + if (StockAreaCallTubeTask.class.getName().equals(baseTask.getHandle_class())) { + stockAreaCallTubeTask.immediateNotifyAcs(null); + } + } + } } } // 取消 @@ -147,7 +174,9 @@ public class StockAreaSendVehicleTask extends AbstractAcsTask { SchBaseTask task = new SchBaseTask(); task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) + ? form.getString("task_status") + : TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); task.setPoint_code3(ObjectUtil.isNotEmpty(callPoint) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java index 8940903ee..4b2ca1892 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java @@ -121,6 +121,7 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { .set(BstIvtShafttubeivt::getUpdate_time, DateUtil.now()) .eq(BstIvtShafttubeivt::getPoint_code, task.getPoint_code2()); shafttubeivtService.update(shaftLamUpdate); + // todo: 有问题 if (ObjectUtil.isEmpty(startPointObj.getQzz_no1()) && ObjectUtil.isEmpty(startPointObj.getQzz_no2())) { // 查找半条任务,并创建下发 List list = taskService.list(new LambdaQueryWrapper() @@ -133,19 +134,19 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { if ("010814".equals(schBaseTask.getTask_type())) { JSONObject requestParam = JSONObject.parseObject(schBaseTask.getRequest_param()); if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "A".equals(requestParam.getString("needPosition"))) { - schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + schBaseTask.setPoint_code2(task.getPoint_code1().split("_")[0] + "_" + requestParam.getString("needPosition")); } if (ObjectUtil.isNotEmpty(requestParam.getString("needPosition")) && "B".equals(requestParam.getString("needPosition"))) { - schBaseTask.setPoint_code2(task.getPoint_code1() + "_" + requestParam.getString("needPosition")); + schBaseTask.setPoint_code2(task.getPoint_code1().split("_")[0] + "_" + requestParam.getString("needPosition")); } - schBaseTask.setRemark("AGV取货完成触发!"); + schBaseTask.setRemark("桁架任务完成触发!"); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); taskService.updateById(schBaseTask); trussSendAirShaftTask.immediateNotifyAcs(schBaseTask.getTask_id()); } else if ("010812".equals(schBaseTask.getTask_type())) { - schBaseTask.setRemark("AGV取货完成触发!"); - schBaseTask.setPoint_code2(task.getPoint_code1() + "_A"); + schBaseTask.setRemark("桁架任务完成触发!"); + schBaseTask.setPoint_code2(task.getPoint_code1().split("_")[0] + "_A"); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); taskService.updateById(schBaseTask); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 508a33d03..01fcb9649 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -41,6 +41,7 @@ import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; import org.nl.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.sch.manage.TaskStatusEnum; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; @@ -315,9 +316,9 @@ public class AutoCallAirShaftTask extends Prun { stepErrorInfo.add("呼叫出轴失败-穿拔轴" + empty.getPoint_code() + "不进行套轴,跳过!"); return; } - toCallAgvMovePaperTube(needPlans, location, empty); // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 saveCutPlanMessage(empty, needPlans, qzzSize); + toCallAgvMovePaperTube(needPlans, location, empty, plans); return; } // 查找一条没任务的点位 @@ -396,7 +397,7 @@ public class AutoCallAirShaftTask extends Prun { // 拔管数量 param.put("pullCount", oldPlans.size()); param.put("containers", oldPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); - toCallAgvMovePaperTube(needPlans, location, empty); + toCallAgvMovePaperTube(needPlans, location, empty, plans); trussCallAirShaftTask.createTask(param); // 将分切计划is_paper_ok 1(纸管已经准备好) -> 2(已经套轴) needPlans.forEach(p -> { @@ -528,8 +529,10 @@ public class AutoCallAirShaftTask extends Prun { *

默认双管芯尺寸一致 * @param needPlans 所需要套轴的分切计划 * @param location 位置 + * @param empty 穿拔轴点位 + * @param plans 总计划 */ - public Boolean toCallAgvMovePaperTube(List needPlans, String location, BstIvtShafttubeivt empty) { + public Boolean toCallAgvMovePaperTube(List needPlans, String location, BstIvtShafttubeivt empty, List plans) { // 1 前置参数获取 // 最多两根 List tubes = needPlans.stream().map(plan -> { @@ -608,12 +611,25 @@ public class AutoCallAirShaftTask extends Prun { } // 2.3 查找type=0的位置(待命的托盘)中是否存在(需要判断的是单独一个托盘) 校验了不在搬运中 List stockingivtList = stockingivtService.getNeedPaperTubePoint("0", tubes.get(0), location); + String flag = "0"; + // 如果找不到,可能当前的管芯正在搬出去 + if (stockingivtList.size() == 0) { + stockingivtList = stockingivtService.getNeedPaperTubePointInTasking("1", tubes.get(0), location); + if (stockingivtList.size() > 0) { + flag = "1"; + } + } // 找一个点位: 目的需要的点位 // 筛选单独托盘有超过所需数 BhTubePointDto needPoint = null; for (BhTubePointDto bhTubePointDto : stockingivtList) { if (bhTubePointDto.getQty() >= needQuantity) { needPoint = bhTubePointDto; + // 如果是任务中的,需要反查,获取任务中的point_code2 + if ("1".equals(flag)) { + SchBaseTask baseTask = taskService.getById(needPoint.getTask_id()); + needPoint.setPoint_code(baseTask.getPoint_code2()); + } break; } } @@ -627,14 +643,15 @@ public class AutoCallAirShaftTask extends Prun { } // 3 找到就创建AGV搬运任务 // 筛选3个位置中数量最少的搬走, 如果是空位,直接搬运过来 - List needMovePointListAll = stockingivtService.getCanMovePointList(location, "1"); + List canMovePointListAll = stockingivtService.getCanMovePointList(location, "1"); // 过滤掉另一台穿拔轴需要的轴的数据 - List needMovePointList = new ArrayList<>(); + List canMovePointList; if (ObjectUtil.isEmpty(one)) { - needMovePointList = needMovePointListAll; + canMovePointList = canMovePointListAll; } else { + // 把另一台机构所需要的管芯对应的位置过滤掉 List otherTubes = Stream.of(one.getTube_code1(), one.getTube_code2()).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList()); - needMovePointList = needMovePointListAll.stream().filter(bh -> { + canMovePointList = canMovePointListAll.stream().filter(bh -> { String vehicleCode = bh.getVehicle_code(); if (otherTubes.size() == 0 || "0".equals(bh.getIvt_status()) || ObjectUtil.isEmpty(vehicleCode)) { return true; @@ -645,7 +662,8 @@ public class AutoCallAirShaftTask extends Prun { }).collect(Collectors.toList()); } // 3.1 空位就直接创建搬过来的任务 - BhTubeMovePointDto needMovePoint = needMovePointList.size() > 0 ? needMovePointList.get(0) : null; + // 如果有空位,第一个肯定是空位,所以获取第一个元素判断状态即可canMovePointList + BhTubeMovePointDto needMovePoint = canMovePointList.size() > 0 ? canMovePointList.get(0) : null; if (ObjectUtil.isEmpty(needMovePoint) || "0".equals(needMovePoint.getIvt_status())) { // 直接搬过来即可 JSONObject param = new JSONObject(); @@ -653,6 +671,8 @@ public class AutoCallAirShaftTask extends Prun { param.put("point_code2", needMovePoint.getPoint_code()); param.put("vehicle_code", needPoint.getVehicle_code()); param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + param.put("task_id", "1".equals(flag) ? needPoint.getTask_id() : ""); + param.put("task_status", "1".equals(flag) ? TaskStatusEnum.SURE_START.getCode() : TaskStatusEnum.START_AND_POINT.getCode()); param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送纸管")); // 存储纸管信息 List paperList = mdPbPapervehicleService.list(new LambdaQueryWrapper() @@ -673,6 +693,8 @@ public class AutoCallAirShaftTask extends Prun { param.put("vehicle_code", needPoint.getVehicle_code()); param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送纸管")); + param.put("task_id", "1".equals(flag) ? needPoint.getTask_id() : ""); + param.put("task_status", "1".equals(flag) ? TaskStatusEnum.SURE_START.getCode() : TaskStatusEnum.START_AND_POINT.getCode()); // 存储纸管信息 List paperList = mdPbPapervehicleService.list(new LambdaQueryWrapper() .eq(MdPbPapervehicle::getVehicle_code, needPoint.getVehicle_code())); @@ -681,7 +703,43 @@ public class AutoCallAirShaftTask extends Prun { stepErrorInfo.add("备货区正在搬运管芯过来,托盘号:[" + needPoint.getVehicle_code() + "]。"); return true; } - // 3.3 查找一个没有任务的空位(创建交换任务) + // 3.3 排序,获取最后的起点,需要根据下一趟需要套轴的管芯规格来进行过滤 + if (plans.size() > 0) { + PdmBiSlittingproductionplan needDemoPlan = needPlans.get(0); + // 除去当前计划的设备. + List willPassPlan = plans.stream() + .filter(p -> !p.getResource_name().equals(needDemoPlan.getResource_name())) + .collect(Collectors.toList()); + if (ObjectUtil.isNotEmpty(willPassPlan)) { + log.info("即将套轴的计划:{}", willPassPlan); + SlitterPlanDistinctDto distinctDto = willPassPlan.get(0); + // 获取对应的计划 + List willNextPlans = slittingproductionplanService.getPlansByDto(distinctDto); + // 过滤计划中的管芯编码 + List nextTubs = willNextPlans.stream().map(p -> "1".equals(p.getPaper_tube_or_FRP()) + ? p.getPaper_tube_material() + : p.getFRP_material()).distinct().collect(Collectors.toList()); + log.info("预期下一个所需管芯: {}", nextTubs); + // 通过canMovePointList过滤 + List movePointDtos = canMovePointList.stream().filter(p -> { + // 获取载具对应的管芯编码 + List vehicleTubes = papervehicleService.getTubeCodesByVehicle(p.getVehicle_code()); + // 过滤掉在nextTubs的数据 + for (String vehicleTube : vehicleTubes) { + if (nextTubs.contains(vehicleTube)) { + return false; + } + } + return true; + }).collect(Collectors.toList()); + if (ObjectUtil.isNotEmpty(movePointDtos)) { + // 避免3个全是包含所需的 + needMovePoint = movePointDtos.get(0); + } + } + } + log.info("可以移出来的点位:{}", needMovePoint); + // 3.4 查找一个没有任务的空位(创建交换任务) List list = stockingivtService.getEmptyPointNotTask(location, "0"); if (list.size() == 0) { noticeService.createNotice("备货区找不到空位置搬运", @@ -700,6 +758,8 @@ public class AutoCallAirShaftTask extends Prun { param.put("material_code", tubes.get(0)); param.put("call_point", needPoint); param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送载具")); + param.put("task_id", "1".equals(flag) ? needPoint.getTask_id() : ""); + param.put("task_status", "1".equals(flag) ? TaskStatusEnum.SURE_START.getCode() : TaskStatusEnum.START_AND_POINT.getCode()); param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); stockAreaSendVehicleTask.createTask(param); stepErrorInfo.add("备货区交换托盘中...请等待。"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index df5bdebce..50ec0ac7c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -73,12 +73,11 @@ public class AutoSendAirShaftAgvTask { continue; } // 最多4条分切计划 - List plans = slittingproductionplanService.list(new LambdaQueryWrapper() - .in(PdmBiSlittingproductionplan::getQzzno, collect) - .eq(PdmBiSlittingproductionplan::getStatus, "01") - .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO)); + List plans = slittingproductionplanService.list(new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getQzzno, collect) + .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO)); if (plans.size() == 0) { - log.info("找不到状态01的分切计划,送到异常处理位置!"); + log.info("找不到分切计划,送到异常处理位置!"); // 不能抛异常,需要通过通知的形式,并且创建agv搬到异常处理位(4)。 // 判断套轴暂存位异常点位是否含有任务 List exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("4", "1", "0", "0"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/BhTubePointDto.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/BhTubePointDto.java index 6c63ba254..4628f66e5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/BhTubePointDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/BhTubePointDto.java @@ -2,12 +2,14 @@ package org.nl.b_lms.sch.tasks.slitter.mapper.dto; import lombok.Data; +import java.io.Serializable; + /** * @Author: lyd * @Date: 2025/3/18 */ @Data -public class BhTubePointDto { +public class BhTubePointDto implements Serializable { /** * 点位 @@ -21,4 +23,8 @@ public class BhTubePointDto { * 数量 */ private Integer qty; + /** + * 任务id + */ + private String task_id; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 16c11d05e..8f84eb584 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -169,10 +169,6 @@ public class SlitterServiceImpl implements SlitterService { List tubes = Stream.of(point.getTube_code1(), point.getTube_code2()) .filter(ObjectUtil::isNotEmpty) .collect(Collectors.toList()); - // 判断是否存在纸管(查找三点位是否有所需的管芯) -// List list = papervehicleService.list(new LambdaQueryWrapper() -// .in(MdPbPapervehicle::getMaterial_code, tubes) -// .gt(MdPbPapervehicle::getQty, 0)); List gxQtyList = papervehicleService.getGxPoints(point.getPoint_location(), tubes); // point.getTube_code1() 编码 , getTube_name1() : 纸制筒管|纸管|6英寸|1300 or 纸制筒管|纸管|3英寸|12|650 res.put("device_code", deviceCode); @@ -180,11 +176,6 @@ public class SlitterServiceImpl implements SlitterService { if ("1".equals(autoSendEmpty.getValue()) && gxQtyList.size() == 0) { con.put("is_bushing", SlitterConstant.TO_SHAFT_INFO_97); } else { -// int sum = list.stream() -// .mapToInt(e -> e.getQty().intValue()) -// .sum(); -// // 需要求和判断当前数量和所需数 -// con.put("is_bushing", sum >= tubes.size() ? SlitterConstant.SLITTER_YES : SlitterConstant.SLITTER_NO); List hasNeedPoint = gxQtyList.stream() .filter(gx -> "1".equals(gx.getPoint_type()) && gx.getQty() >= tubes.size()) .collect(Collectors.toList()); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/TestTask.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/TestTask.java index 8b731cc3f..e6330b657 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/TestTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/TestTask.java @@ -1,8 +1,14 @@ package org.nl.system.service.quartz.task; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.tasks.first_floor_area.auto.Prun; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.concurrent.TimeUnit; + /** * @Author: lyd * @Description: 测试例子 @@ -10,10 +16,19 @@ import org.springframework.stereotype.Component; */ @Slf4j @Component -public class TestTask { +public class TestTask extends Prun { + @Autowired + private RedissonClient redissonClient; public void run() { + log.info("测试"); + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } log.info("run 执行成功"); + } public void run1(String str) { From 56285ab21cf2e30c66ab4aef985bed6364ed6b1c Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 2 Jul 2025 10:26:22 +0800 Subject: [PATCH 051/146] =?UTF-8?q?opt:=20=E7=9C=8B=E6=9D=BF=E5=8A=A0?= =?UTF-8?q?=E6=80=A5=E5=AD=97=E6=AE=B5=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...轴点位日志记录实时看板v3.html | 38 +++++++++++-------- .../tasks/slitter/mapper/SlitterMapper.xml | 4 +- .../slitter/mapper/dto/CallPlanViewVO.java | 1 + .../src/test/java/org/nl/init/EventTest.java | 4 +- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html b/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html index 8a3c44405..d1de733de 100644 --- a/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html +++ b/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html @@ -157,13 +157,13 @@ margin-bottom: 15px; gap: 20px; } - + .legend-item { display: flex; align-items: center; font-size: 0.9em; } - + .color-box { display: inline-block; width: 16px; @@ -171,11 +171,11 @@ margin-right: 8px; border-radius: 3px; } - + .red-box { background-color: #8B0000; } - + .yellow-box { background-color: #FFC107; } @@ -223,6 +223,7 @@ 呼叫时间 管芯规格 套轴标记 + 是否加急 一键恢复 @@ -241,7 +242,7 @@ recoverApiUrl: `${BASE_URL}/api/wms/apply/recover`, tipApiUrl: `${BASE_URL}/api/wms/apply/v2/tzTaskINfo` }; - + const refreshInterval = 5000; // 刷新间隔统一为5秒 const devices = ['B_CBJ01', 'B_CBJ02']; @@ -254,9 +255,9 @@ }, body: JSON.stringify({ device_code: deviceCode }), }); - + if (!response.ok) { - const errorText = await response.text(); + const errorText = await response.text(); console.error(`HTTP error response for ${deviceCode} (log):`, errorText); throw new Error(`HTTP error! status: ${response.status} for ${deviceCode} (log). Response: ${errorText}`); } @@ -374,7 +375,7 @@ row.insertCell().textContent = item.up_or_down === '1' ? '上' : (item.up_or_down === '2' ? '下' : item.up_or_down || 'N/A'); row.insertCell().textContent = item.qzz_size || 'N/A'; row.insertCell().textContent = item.qzz_generation || 'N/A'; - + let statusText = '已完成'; if (item.status === '01') { statusText = '准备套轴'; @@ -389,7 +390,7 @@ const startTimeCell = row.insertCell(); startTimeCell.textContent = item.start_time || 'N/A'; - + row.insertCell().textContent = item.tube || 'N/A'; let tzText = '未套轴'; @@ -406,7 +407,14 @@ tzText = '套轴异常'; } row.insertCell().textContent = tzText || 'N/A'; - + + // 是否加急 + let urgentText = '未加急'; + if (item.manufacture_sort === 'P2') { + urgentText = '已加急'; + } + row.insertCell().textContent = urgentText || 'N/A'; + // 添加恢复按钮 const recoverCell = row.insertCell(); const recoverBtn = document.createElement('button'); @@ -424,7 +432,7 @@ container_name: item.container_name }) }); - + if (response.ok) { const alertDiv = document.createElement('div'); alertDiv.style.position = 'fixed'; @@ -451,7 +459,7 @@ } }; recoverCell.appendChild(recoverBtn); - + // 检查start_time是否超过2小时,并设置行样式 if (item.start_time) { const startTime = new Date(item.start_time.replace(/-/g, '/')); @@ -467,7 +475,7 @@ } else { const row = tableBody.insertRow(); const cell = row.insertCell(); - cell.colSpan = 7; + cell.colSpan = 11; cell.textContent = '暂无数据。'; cell.style.textAlign = 'center'; } @@ -492,7 +500,7 @@ const data = await response.json(); tip = data.tip || ''; tip2 = data.tip2 || ''; - + // 显示tip2在对应设备标题下方 document.getElementById('tip2-' + deviceCode).textContent = tip2; } @@ -544,4 +552,4 @@ cursor: not-allowed; opacity: 0.6; } - \ No newline at end of file + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 055ef1974..11068d2c0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -201,7 +201,8 @@ MIN(p.start_time) AS start_time, IF(p.paper_tube_or_FRP = '1', p.paper_tube_description, p.FRP_description) AS tube, MIN(p.`status`) AS `status`, - MAX(p.qzzno) AS qzzno + MAX(p.qzzno) AS qzzno, + MAX(p.manufacture_sort) AS manufacture_sort FROM `pdm_bi_slittingproductionplan` p WHERE p.`status` '09' AND p.is_delete = '0' @@ -228,7 +229,6 @@ p.container_name ORDER BY `status`, - qzz_size, manufacture_sort desc, start_time diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java index acfa1d738..f3298760f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java @@ -47,4 +47,5 @@ public class CallPlanViewVO implements Serializable { private String start_time; private String is_paper_ok; private String qzzno; + private String manufacture_sort; } diff --git a/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java b/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java index b68e8981f..81e8ee1b5 100644 --- a/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java +++ b/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java @@ -90,11 +90,11 @@ public class EventTest { // List list = Arrays.asList("482210000000001"); // System.out.println(papervehicleMapper.getGXs("0", list)); // PdmBiSlittingproductionplan byContainerName = slittingproductionplanService.getByContainerName("B1虚拟-B50FQ00001-2"); - PdmBiSlittingproductionplan byContainerName = slittingproductionplanService.getByContainerName("B1虚拟-B50FQ00003-0"); + PdmBiSlittingproductionplan byContainerName = slittingproductionplanService.getByContainerName("BB3X2410280907A1"); List plans = new ArrayList<>(); plans.add(byContainerName); BstIvtShafttubeivt shafttubeivt = bstIvtShafttubeivtMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtShafttubeivt::getPoint_code, "B_CBJ01")); - autoCallAirShaftTask.toCallAgvMovePaperTube(plans, "0", shafttubeivt); + autoCallAirShaftTask.toCallAgvMovePaperTube(plans, "0", shafttubeivt, slittingproductionplanService.getAllCutPlan(0)); } @Test From a1d219ec6b30d5719fc8cfadbe397528bc6f8b9f Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 2 Jul 2025 17:03:49 +0800 Subject: [PATCH 052/146] =?UTF-8?q?opt:=20=E5=8D=B7=E5=8F=B7=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=88=B0=E4=BB=BB=E5=8A=A1=E9=87=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java | 3 ++- .../sch/tasks/slitter/service/impl/SlitterServiceImpl.java | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index 50ec0ac7c..748ee407c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -95,7 +95,7 @@ public class AutoSendAirShaftAgvTask { } else { log.info("异常处理位无空位!"); // 点位禁用 - cutPoint.setRemark("计划状态已被改变!"); + cutPoint.setRemark("找不到分切计划!"); cutPoint.setUpdate_time(DateUtil.now()); bcutpointivtService.updateById(cutPoint); } @@ -154,6 +154,7 @@ public class AutoSendAirShaftAgvTask { param.put("vehicle_code2", cutPoint.getQzz_no2()); param.put("task_type", SlitterEnum.TASK_TYPE.code("送气胀轴到分切机任务")); param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + param.put("containers", plans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); sendAirShaftAgvTask.createTask(param); } else { throw new BadRequestException("系统繁忙,稍后在试!"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 8f84eb584..f2e9fbab7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -668,6 +668,7 @@ public class SlitterServiceImpl implements SlitterService { TaskUtils.updateOptMessageBySlitterPlan(plan); }); // 创建任务 + taskParam.put("d_containers", currentPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); slitterDownTrussTask.createTask(taskParam); slittingproductionplanService.updateBatchById(currentPlans); return res; @@ -742,6 +743,8 @@ public class SlitterServiceImpl implements SlitterService { // 创建任务 taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("分切机下料桁架任务")); taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + taskParam.put("d_containers", currentPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); + taskParam.put("u_containers", nextPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); slitterDownTrussTask.createTask(taskParam); // 下来的分切计划修改状态:05 -> 06 currentPlans.forEach(plan -> { @@ -1942,7 +1945,7 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("empty_site", "0"); taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("分切机上气胀轴")); taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - + taskParam.put("u_containers", plans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); // 创建任务 upShaftTrussTask.createTask(taskParam); res.put("msg", containers); From 8be4276360152358eaac7a35ac59e46e0d706b1b Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 3 Jul 2025 14:03:30 +0800 Subject: [PATCH 053/146] opt: 1 --- .../sch/tasks/slitter/SlitterDownTrussTask.java | 6 +++--- .../tasks/slitter/auto/AutoSendAirShaftAgvTask.java | 12 +++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index 00c34606c..bf13e4b26 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -7,7 +7,6 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; @@ -115,13 +114,14 @@ public class SlitterDownTrussTask extends AbstractAcsTask { log.info("起点数据:{}", point1); log.info("终点数据:{}", point2); // 更新分切计划 - // 下来的分切计划状态:06 -> 09, 设置重量 + // 下来的分切计划状态:06 -> 09, 不在需要设置重量 List downCons = containers.toJavaList(String.class); log.info("即将下卷的上下轴的子卷号数据1:{}", downCons); List downPlans = slittingproductionplanService.getByContainerNames(downCons); log.info("即将下卷的上下轴的子卷号数据2:{}", downPlans); // SlitterTaskUtil.setPaperWeightStr(point1.getRemark(), downPlans); - log.info("即将下卷的上下轴的子卷号数据3:{}", downPlans); +// log.info("即将下卷的上下轴的子卷号数据3:{}", downPlans); + // 下来的卷的集合 List needUpdates = new ArrayList<>(); // 绑定气胀轴编码(可能没有气胀轴编码) List deviceUpPlans = downPlans.stream().filter(p -> SlitterConstant.SLITTER_SHAFT_UP.equals(p.getUp_or_down())).collect(Collectors.toList()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index 748ee407c..9320b3b5f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -73,11 +73,12 @@ public class AutoSendAirShaftAgvTask { continue; } // 最多4条分切计划 - List plans = slittingproductionplanService.list(new LambdaQueryWrapper() - .in(PdmBiSlittingproductionplan::getQzzno, collect) - .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO)); + List plans = slittingproductionplanService.list(new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getQzzno, collect) + .eq(PdmBiSlittingproductionplan::getStatus, "01") + .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO)); if (plans.size() == 0) { - log.info("找不到分切计划,送到异常处理位置!"); + log.info("找不到状态01的分切计划,送到异常处理位置!"); // 不能抛异常,需要通过通知的形式,并且创建agv搬到异常处理位(4)。 // 判断套轴暂存位异常点位是否含有任务 List exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("4", "1", "0", "0"); @@ -95,7 +96,8 @@ public class AutoSendAirShaftAgvTask { } else { log.info("异常处理位无空位!"); // 点位禁用 - cutPoint.setRemark("找不到分切计划!"); + cutPoint.setRemark("计划状态已被改变!"); + cutPoint.setIs_used("0"); cutPoint.setUpdate_time(DateUtil.now()); bcutpointivtService.updateById(cutPoint); } From 03c0f641c4099537e251f3311509620626c0855a Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 7 Jul 2025 13:37:25 +0800 Subject: [PATCH 054/146] =?UTF-8?q?opt:=20=E6=A0=A1=E9=AA=8C=E7=82=B9?= =?UTF-8?q?=E4=BD=8D=E5=8F=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java index 4b2ca1892..9053e2405 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java @@ -122,7 +122,8 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { .eq(BstIvtShafttubeivt::getPoint_code, task.getPoint_code2()); shafttubeivtService.update(shaftLamUpdate); // todo: 有问题 - if (ObjectUtil.isEmpty(startPointObj.getQzz_no1()) && ObjectUtil.isEmpty(startPointObj.getQzz_no2())) { + if (ObjectUtil.isEmpty(startPointObj.getQzz_no1()) && ObjectUtil.isEmpty(startPointObj.getQzz_no2()) + && "1".equals(startPointObj.getIs_used())) { // 查找半条任务,并创建下发 List list = taskService.list(new LambdaQueryWrapper() .in(SchBaseTask::getTask_type, "010814", "010812") From 39d780ad5c9f76b47fdee4fca32838caf9aeb2d5 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 7 Jul 2025 16:03:48 +0800 Subject: [PATCH 055/146] =?UTF-8?q?opt:=20=E6=B7=BB=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java index f88afd89e..6487923c7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java @@ -35,6 +35,7 @@ public class AutoQueryDeviceStatus { boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock){ + log.info("正在更新温度...."); for (URLEnum url : URLEnum.values()) { try { String product_area = url.getProduct_area(); @@ -54,7 +55,7 @@ public class AutoQueryDeviceStatus { String countdown_house = row.getString("countdown_house"); String countdown_min = row.getString("countdown_min"); String countdown_sec = row.getString("countdown_sec"); - + log.info("设备:{} - 温度:{}", device_code, row.getString("now_temperature")); if (StrUtil.isEmpty(countdown_house)) { countdown_house = "0"; } From 8243742007e0b09a748a30f27b8d06cc0a0c93f1 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 8 Jul 2025 18:29:05 +0800 Subject: [PATCH 056/146] =?UTF-8?q?fix:=20=E5=8F=8D=E6=94=B6=E5=8D=B7?= =?UTF-8?q?=E4=B8=8B=E5=8D=B7=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/slitter/service/impl/SlitterServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index f2e9fbab7..b27a46172 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -630,7 +630,7 @@ public class SlitterServiceImpl implements SlitterService { // 如果没有下一组的分切计划,就只做下卷任务(判断下单/下双) // 获取分切对接位没任务的空位置 List emptyPoints = slitterMapper.getEmptyCutPointNotTask(area, - device.getSort_seq(), + actualDevice.getSort_seq(), getPointLocationInCutDevice(getNumberByResourceCode(actualDeviceCode), area)); if (emptyPoints.size() == 0) { log.error("分切机【" + device.getExt_code() + "】对应的对接位有货, 或已存在任务!"); From 5cf38152f9a430cd403e8358548dcb1ba6e519d1 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 10 Jul 2025 09:00:02 +0800 Subject: [PATCH 057/146] =?UTF-8?q?fix:=E5=87=BA=E5=BA=93=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E8=A2=AB=E5=8D=A0=E7=94=A8=EF=BC=8C=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/st/outbill/service/impl/CheckOutBillServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index d1a5fcfe9..f60fc41d1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -3113,7 +3113,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { + "' and row_num = '" + jsonRow.getString("row_num") + "' and is_used = '1' and is_delete = '0' and lock_type not in ('1','6','3')").getResultJSONArray(0); if (ObjectUtil.isNotEmpty(structArr)) { - throw new BadRequestException("有其他任务正在执行中,请稍后在试!"); + JSONObject jsonObject = structArr.getJSONObject(0); + throw new BadRequestException("当前排存在单据号为【"+jsonObject.getString("inv_code")+"】的仓位【"+jsonObject.getString("struct_code")+"】正在执行任务,请稍后在试!"); } } From a89e7507fd3ea022fef986022f4823de31af361d Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 10 Jul 2025 09:00:02 +0800 Subject: [PATCH 058/146] =?UTF-8?q?feat(wms):=20=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=96=B0=E5=A2=9E=E6=9C=A8=E7=AE=B1=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E5=92=8C=E6=9C=A8=E7=AE=B1=E6=8F=8F=E8=BF=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在出库查询界面添加木箱编码和木箱描述两个新字段 - 更新后端服务和数据库查询以支持新增字段 --- .../service/impl/OutBillQueryServiceImpl.java | 230 ++++++++++-------- .../nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql | 6 + 2 files changed, 128 insertions(+), 108 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java index 32172a27e..98856c850 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java @@ -29,7 +29,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedDeque; import java.util.function.Function; import java.util.stream.Collectors; @@ -45,7 +44,8 @@ import java.util.stream.Collectors; public class OutBillQueryServiceImpl implements OutBillQueryService { @Autowired - private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService; + private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService; + @Override public Map queryAll(Map whereJson, Pageable page, String[] bill_types) { String stor_id = MapUtil.getStr(whereJson, "stor_id"); @@ -285,6 +285,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { String end_time = MapUtil.getStr(map, "end_time"); String pcsn = MapUtil.getStr(map, "pcsn"); String customer_name = MapUtil.getStr(map, "customer_name"); + map.put("flag", "22"); map.put("stor_id", stor_id); if (ObjectUtil.isNotEmpty(bill_types)) { @@ -299,9 +300,11 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { if (StrUtil.isNotEmpty(pcsn)){ // 判断是否有空格 boolean matches = pcsn.matches(".*\\s.*"); + if (matches) { String[] s = pcsn.split(" "); String pcsn_in = String.join("','", Arrays.asList(s)); + map.put("pcsn_in", "('"+pcsn_in+"')"); map.put("pcsn", ""); } else { @@ -311,6 +314,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { if (ObjectUtil.isNotEmpty(customer_name)) { map.put("customer_name", "%" + customer_name + "%"); } + // 处理时间 if (ObjectUtil.isNotEmpty(begin_time) && ObjectUtil.isNotEmpty(end_time)) { String begin_time_today = begin_time.substring(0, 10); @@ -342,122 +346,133 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { for (List jsonObjects : deque) { datas.addAll(jsonObjects); } - List> list = new ArrayList<>(); - for (int i = 0; i < resultJSONArray.size(); i++) { - JSONObject json = resultJSONArray.getJSONObject(i); - Map mp = new LinkedHashMap<>(); - // 查询第一次入库的源销售订单 - JSONObject jsonSub = datas.stream() - .filter(row -> row.getString("container_name").equals(json.getString("pcsn"))) - .min(Comparator.comparing(row -> row.getString("insert_time"))) - .orElse(null); + ConcurrentLinkedDeque>> listDeque = new ConcurrentLinkedDeque<>(); + Lists.partition(resultJSONArray,1000).stream().map((Function) o->CompletableFuture.runAsync(() -> { + List> items = new ArrayList<>(); + for (Object item : o) { + JSONObject json = (JSONObject) item; + Map mp = new LinkedHashMap<>(); + // 查询第一次入库的源销售订单 + JSONObject jsonSub = datas.stream() + .filter(row -> row.getString("container_name").equals(json.getString("pcsn"))) + .min(Comparator.comparing(row -> row.getString("insert_time"))) + .orElse(null); - mp.put("仓库", json.getString("stor_name")); - if (ObjectUtil.isNotEmpty(bill_type) && "1004".equals(bill_type)) { - mp.put("移入仓库", json.getString("in_stor_name")); - } - mp.put("库区", json.getString("sect_name")); - mp.put("生产区域", json.getString("pcsn").substring(0, 2)); - String bill_type1 = json.getString("bill_type"); - - String bill_name = ""; - switch (bill_type1) { - case "1001" : - bill_name = "发货出库"; - break; - case "1003" : - bill_name = "改切出库"; - break; - case "1004" : - bill_name = "调拨出库"; - break; - case "1005" : - bill_name = "拆箱出库"; - break; - case "1006" : - bill_name = "返检出库"; - break; - case "1007" : - bill_name = "超期报废"; - break; - case "1008" : - bill_name = "退货报废"; - break; - case "1010" : - bill_name = "质量问题报废"; - break; - case "1002" : - bill_name = "其他报废"; - break; - case "1011" : - bill_name = "分拣出库"; - break; - case "1009" : - bill_name = "手工出库"; - break; - } - mp.put("业务类型", bill_name); - mp.put("交货单号", json.getString("vbeln")); - mp.put("物流公司", json.getString("cust_name")); - mp.put("运费", json.getString("estimated_freight")); - mp.put("木箱号", json.getString("box_no")); - mp.put("物料编码", json.getString("material_code")); - mp.put("物料名称", json.getString("material_name")); - mp.put("子卷号", json.getString("pcsn")); - mp.put("sap批次", json.getString("sap_pcsn")); - mp.put("净重", json.getString("net_weight")); - mp.put("单位", json.getString("qty_unit_name")); - mp.put("管件类型", json.getString("paper_type")); - mp.put("管件编码", json.getString("paper_code")); - mp.put("管件描述", json.getString("paper_name")); - mp.put("客户编码", json.getString("customer_name")); - mp.put("发货客户名称", json.getString("customer_description")); - mp.put("销售订单", json.getString("sale_order_name")); - mp.put("行号", ""); - mp.put("原销售订单", json.getString("sale_order_name")); - mp.put("原行号", ""); - - if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { - try { - mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); - mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("销售订单", json.getString("sale_order_name")); - mp.put("行号", ""); + mp.put("仓库", json.getString("stor_name")); + if (ObjectUtil.isNotEmpty(bill_type) && "1004".equals(bill_type)) { + mp.put("移入仓库", json.getString("in_stor_name")); } - } - // 原销售订单 - if (ObjectUtil.isEmpty(jsonSub)) { + mp.put("库区", json.getString("sect_name")); + mp.put("生产区域", json.getString("pcsn").substring(0, 2)); + String bill_type1 = json.getString("bill_type"); + + String bill_name = ""; + switch (bill_type1) { + case "1001" : + bill_name = "发货出库"; + break; + case "1003" : + bill_name = "改切出库"; + break; + case "1004" : + bill_name = "调拨出库"; + break; + case "1005" : + bill_name = "拆箱出库"; + break; + case "1006" : + bill_name = "返检出库"; + break; + case "1007" : + bill_name = "超期报废"; + break; + case "1008" : + bill_name = "退货报废"; + break; + case "1010" : + bill_name = "质量问题报废"; + break; + case "1002" : + bill_name = "其他报废"; + break; + case "1011" : + bill_name = "分拣出库"; + break; + case "1009" : + bill_name = "手工出库"; + break; + } + mp.put("业务类型", bill_name); + mp.put("交货单号", json.getString("vbeln")); + mp.put("物流公司", json.getString("cust_name")); + mp.put("运费", json.getString("estimated_freight")); + mp.put("木箱号", json.getString("box_no")); + mp.put("木箱编码", json.getString("box_material_code")); + mp.put("木箱描述", json.getString("box_material_name")); + mp.put("物料编码", json.getString("material_code")); + mp.put("物料名称", json.getString("material_name")); + mp.put("子卷号", json.getString("pcsn")); + mp.put("sap批次", json.getString("sap_pcsn")); + mp.put("净重", json.getString("net_weight")); + mp.put("单位", json.getString("qty_unit_name")); + mp.put("管件类型", json.getString("paper_type")); + mp.put("管件编码", json.getString("paper_code")); + mp.put("管件描述", json.getString("paper_name")); + mp.put("客户编码", json.getString("customer_name")); + mp.put("发货客户名称", json.getString("customer_description")); + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("行号", ""); + mp.put("原销售订单", json.getString("sale_order_name")); + mp.put("原行号", ""); + if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { try { - mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); - mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); + mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); + mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); } catch (Exception e) { - mp.put("原销售订单", json.getString("sale_order_name")); - mp.put("原行号", ""); + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("行号", ""); } } - } else { - if (ObjectUtil.isNotEmpty(jsonSub.getString("sale_order_name"))) { - try { - mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-"))); - mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("原销售订单", jsonSub.getString("sale_order_name")); - mp.put("原行号", ""); + // 原销售订单 + if (ObjectUtil.isEmpty(jsonSub)) { + if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { + try { + mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); + mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("原销售订单", json.getString("sale_order_name")); + mp.put("原行号", ""); + } + } + } else { + if (ObjectUtil.isNotEmpty(jsonSub.getString("sale_order_name"))) { + try { + mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-"))); + mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("原销售订单", jsonSub.getString("sale_order_name")); + mp.put("原行号", ""); + } } } + + mp.put("业务员", json.getString("sales_owner")); + mp.put("出库日期", json.getString("input_time")); + mp.put("产品规格", String.format("%.0f", json.getDoubleValue("width"))); + mp.put("产品厚度", json.getString("thickness")); + mp.put("单位面积", json.getString("mass_per_unit_area")); + mp.put("制单人", json.getString("input_optname")); + mp.put("备注", json.getString("remark")); + items.add(mp); } - mp.put("业务员", json.getString("sales_owner")); - mp.put("出库日期", json.getString("input_time")); - mp.put("产品规格", String.format("%.0f", json.getDoubleValue("width"))); - mp.put("产品厚度", json.getString("thickness")); - mp.put("单位面积", json.getString("mass_per_unit_area")); - mp.put("制单人", json.getString("input_optname")); - mp.put("备注", json.getString("remark")); - list.add(mp); + listDeque.add(items); + })).parallel().forEach(CompletableFuture::join); + List> list = new ArrayList<>(); + for (List> maps : listDeque) { + list.addAll(maps); } - Set set = list.get(0).keySet(); + Set set = listDeque.getFirst().get(0).keySet(); int colIndex = 0; String[] col = new String[set.size()]; for (String s : set) { @@ -465,6 +480,5 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { colIndex++; } new FileUtil().downloadExcelIO(list,col,response); -// FileUtil.downloadExcel(list, response); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql index 4c0bacbcd..05a64a90d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql @@ -266,6 +266,8 @@ base.cust_name, dis.sect_name, dis.box_no, + bib.material_code box_material_code, + bib.material_name box_material_name, dis.qty_unit_name, mater.material_code, mater.material_name, @@ -317,6 +319,7 @@ a.pcsn ) AS c inner JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id + inner JOIN bst_ivt_boxinfo bib ON dis.box_no = bib.box_no inner JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id inner JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code @@ -385,6 +388,8 @@ base.cust_name, dis.sect_name, dis.box_no, + bib.material_code box_material_code, + bib.material_name box_material_name, dis.qty_unit_name, mater.material_code, mater.material_name, @@ -436,6 +441,7 @@ a.pcsn ) AS c inner JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id + inner JOIN bst_ivt_boxinfo bib ON dis.box_no = bib.box_no inner JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id inner JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code From 4a1b8ac17a8f1242306b401d207c55e7c81acf67 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 10 Jul 2025 14:55:34 +0800 Subject: [PATCH 059/146] =?UTF-8?q?Revert=20"feat(wms):=20=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E6=9F=A5=E8=AF=A2=E6=96=B0=E5=A2=9E=E6=9C=A8=E7=AE=B1?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E5=92=8C=E6=9C=A8=E7=AE=B1=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit a89e7507fd3ea022fef986022f4823de31af361d. --- .../service/impl/OutBillQueryServiceImpl.java | 230 ++++++++---------- .../nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql | 6 - 2 files changed, 108 insertions(+), 128 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java index 98856c850..32172a27e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java @@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedDeque; import java.util.function.Function; import java.util.stream.Collectors; @@ -44,8 +45,7 @@ import java.util.stream.Collectors; public class OutBillQueryServiceImpl implements OutBillQueryService { @Autowired - private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService; - + private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService; @Override public Map queryAll(Map whereJson, Pageable page, String[] bill_types) { String stor_id = MapUtil.getStr(whereJson, "stor_id"); @@ -285,7 +285,6 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { String end_time = MapUtil.getStr(map, "end_time"); String pcsn = MapUtil.getStr(map, "pcsn"); String customer_name = MapUtil.getStr(map, "customer_name"); - map.put("flag", "22"); map.put("stor_id", stor_id); if (ObjectUtil.isNotEmpty(bill_types)) { @@ -300,11 +299,9 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { if (StrUtil.isNotEmpty(pcsn)){ // 判断是否有空格 boolean matches = pcsn.matches(".*\\s.*"); - if (matches) { String[] s = pcsn.split(" "); String pcsn_in = String.join("','", Arrays.asList(s)); - map.put("pcsn_in", "('"+pcsn_in+"')"); map.put("pcsn", ""); } else { @@ -314,7 +311,6 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { if (ObjectUtil.isNotEmpty(customer_name)) { map.put("customer_name", "%" + customer_name + "%"); } - // 处理时间 if (ObjectUtil.isNotEmpty(begin_time) && ObjectUtil.isNotEmpty(end_time)) { String begin_time_today = begin_time.substring(0, 10); @@ -346,133 +342,122 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { for (List jsonObjects : deque) { datas.addAll(jsonObjects); } - ConcurrentLinkedDeque>> listDeque = new ConcurrentLinkedDeque<>(); - Lists.partition(resultJSONArray,1000).stream().map((Function) o->CompletableFuture.runAsync(() -> { - List> items = new ArrayList<>(); - for (Object item : o) { - JSONObject json = (JSONObject) item; - Map mp = new LinkedHashMap<>(); - // 查询第一次入库的源销售订单 - JSONObject jsonSub = datas.stream() - .filter(row -> row.getString("container_name").equals(json.getString("pcsn"))) - .min(Comparator.comparing(row -> row.getString("insert_time"))) - .orElse(null); + List> list = new ArrayList<>(); + for (int i = 0; i < resultJSONArray.size(); i++) { + JSONObject json = resultJSONArray.getJSONObject(i); + Map mp = new LinkedHashMap<>(); + // 查询第一次入库的源销售订单 + JSONObject jsonSub = datas.stream() + .filter(row -> row.getString("container_name").equals(json.getString("pcsn"))) + .min(Comparator.comparing(row -> row.getString("insert_time"))) + .orElse(null); - mp.put("仓库", json.getString("stor_name")); - if (ObjectUtil.isNotEmpty(bill_type) && "1004".equals(bill_type)) { - mp.put("移入仓库", json.getString("in_stor_name")); + mp.put("仓库", json.getString("stor_name")); + if (ObjectUtil.isNotEmpty(bill_type) && "1004".equals(bill_type)) { + mp.put("移入仓库", json.getString("in_stor_name")); + } + mp.put("库区", json.getString("sect_name")); + mp.put("生产区域", json.getString("pcsn").substring(0, 2)); + String bill_type1 = json.getString("bill_type"); + + String bill_name = ""; + switch (bill_type1) { + case "1001" : + bill_name = "发货出库"; + break; + case "1003" : + bill_name = "改切出库"; + break; + case "1004" : + bill_name = "调拨出库"; + break; + case "1005" : + bill_name = "拆箱出库"; + break; + case "1006" : + bill_name = "返检出库"; + break; + case "1007" : + bill_name = "超期报废"; + break; + case "1008" : + bill_name = "退货报废"; + break; + case "1010" : + bill_name = "质量问题报废"; + break; + case "1002" : + bill_name = "其他报废"; + break; + case "1011" : + bill_name = "分拣出库"; + break; + case "1009" : + bill_name = "手工出库"; + break; + } + mp.put("业务类型", bill_name); + mp.put("交货单号", json.getString("vbeln")); + mp.put("物流公司", json.getString("cust_name")); + mp.put("运费", json.getString("estimated_freight")); + mp.put("木箱号", json.getString("box_no")); + mp.put("物料编码", json.getString("material_code")); + mp.put("物料名称", json.getString("material_name")); + mp.put("子卷号", json.getString("pcsn")); + mp.put("sap批次", json.getString("sap_pcsn")); + mp.put("净重", json.getString("net_weight")); + mp.put("单位", json.getString("qty_unit_name")); + mp.put("管件类型", json.getString("paper_type")); + mp.put("管件编码", json.getString("paper_code")); + mp.put("管件描述", json.getString("paper_name")); + mp.put("客户编码", json.getString("customer_name")); + mp.put("发货客户名称", json.getString("customer_description")); + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("行号", ""); + mp.put("原销售订单", json.getString("sale_order_name")); + mp.put("原行号", ""); + + if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { + try { + mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); + mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("行号", ""); } - mp.put("库区", json.getString("sect_name")); - mp.put("生产区域", json.getString("pcsn").substring(0, 2)); - String bill_type1 = json.getString("bill_type"); - - String bill_name = ""; - switch (bill_type1) { - case "1001" : - bill_name = "发货出库"; - break; - case "1003" : - bill_name = "改切出库"; - break; - case "1004" : - bill_name = "调拨出库"; - break; - case "1005" : - bill_name = "拆箱出库"; - break; - case "1006" : - bill_name = "返检出库"; - break; - case "1007" : - bill_name = "超期报废"; - break; - case "1008" : - bill_name = "退货报废"; - break; - case "1010" : - bill_name = "质量问题报废"; - break; - case "1002" : - bill_name = "其他报废"; - break; - case "1011" : - bill_name = "分拣出库"; - break; - case "1009" : - bill_name = "手工出库"; - break; - } - mp.put("业务类型", bill_name); - mp.put("交货单号", json.getString("vbeln")); - mp.put("物流公司", json.getString("cust_name")); - mp.put("运费", json.getString("estimated_freight")); - mp.put("木箱号", json.getString("box_no")); - mp.put("木箱编码", json.getString("box_material_code")); - mp.put("木箱描述", json.getString("box_material_name")); - mp.put("物料编码", json.getString("material_code")); - mp.put("物料名称", json.getString("material_name")); - mp.put("子卷号", json.getString("pcsn")); - mp.put("sap批次", json.getString("sap_pcsn")); - mp.put("净重", json.getString("net_weight")); - mp.put("单位", json.getString("qty_unit_name")); - mp.put("管件类型", json.getString("paper_type")); - mp.put("管件编码", json.getString("paper_code")); - mp.put("管件描述", json.getString("paper_name")); - mp.put("客户编码", json.getString("customer_name")); - mp.put("发货客户名称", json.getString("customer_description")); - mp.put("销售订单", json.getString("sale_order_name")); - mp.put("行号", ""); - mp.put("原销售订单", json.getString("sale_order_name")); - mp.put("原行号", ""); - + } + // 原销售订单 + if (ObjectUtil.isEmpty(jsonSub)) { if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { try { - mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); - mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); + mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); + mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); } catch (Exception e) { - mp.put("销售订单", json.getString("sale_order_name")); - mp.put("行号", ""); + mp.put("原销售订单", json.getString("sale_order_name")); + mp.put("原行号", ""); } } - // 原销售订单 - if (ObjectUtil.isEmpty(jsonSub)) { - if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { - try { - mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); - mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("原销售订单", json.getString("sale_order_name")); - mp.put("原行号", ""); - } - } - } else { - if (ObjectUtil.isNotEmpty(jsonSub.getString("sale_order_name"))) { - try { - mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-"))); - mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("原销售订单", jsonSub.getString("sale_order_name")); - mp.put("原行号", ""); - } + } else { + if (ObjectUtil.isNotEmpty(jsonSub.getString("sale_order_name"))) { + try { + mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-"))); + mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("原销售订单", jsonSub.getString("sale_order_name")); + mp.put("原行号", ""); } } - - mp.put("业务员", json.getString("sales_owner")); - mp.put("出库日期", json.getString("input_time")); - mp.put("产品规格", String.format("%.0f", json.getDoubleValue("width"))); - mp.put("产品厚度", json.getString("thickness")); - mp.put("单位面积", json.getString("mass_per_unit_area")); - mp.put("制单人", json.getString("input_optname")); - mp.put("备注", json.getString("remark")); - items.add(mp); } - listDeque.add(items); - })).parallel().forEach(CompletableFuture::join); - List> list = new ArrayList<>(); - for (List> maps : listDeque) { - list.addAll(maps); + mp.put("业务员", json.getString("sales_owner")); + mp.put("出库日期", json.getString("input_time")); + mp.put("产品规格", String.format("%.0f", json.getDoubleValue("width"))); + mp.put("产品厚度", json.getString("thickness")); + mp.put("单位面积", json.getString("mass_per_unit_area")); + mp.put("制单人", json.getString("input_optname")); + mp.put("备注", json.getString("remark")); + list.add(mp); } - Set set = listDeque.getFirst().get(0).keySet(); + Set set = list.get(0).keySet(); int colIndex = 0; String[] col = new String[set.size()]; for (String s : set) { @@ -480,5 +465,6 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { colIndex++; } new FileUtil().downloadExcelIO(list,col,response); +// FileUtil.downloadExcel(list, response); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql index 05a64a90d..4c0bacbcd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql @@ -266,8 +266,6 @@ base.cust_name, dis.sect_name, dis.box_no, - bib.material_code box_material_code, - bib.material_name box_material_name, dis.qty_unit_name, mater.material_code, mater.material_name, @@ -319,7 +317,6 @@ a.pcsn ) AS c inner JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id - inner JOIN bst_ivt_boxinfo bib ON dis.box_no = bib.box_no inner JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id inner JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code @@ -388,8 +385,6 @@ base.cust_name, dis.sect_name, dis.box_no, - bib.material_code box_material_code, - bib.material_name box_material_name, dis.qty_unit_name, mater.material_code, mater.material_name, @@ -441,7 +436,6 @@ a.pcsn ) AS c inner JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id - inner JOIN bst_ivt_boxinfo bib ON dis.box_no = bib.box_no inner JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id inner JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code From f6cbfb876fa34d5adb24ecc26babc64fd504ac15 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 11 Jul 2025 14:33:13 +0800 Subject: [PATCH 060/146] =?UTF-8?q?fix:=20=E4=BA=BA=E5=B7=A5=E5=91=BC?= =?UTF-8?q?=E5=8F=AB=E5=A5=97=E8=BD=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/controller/SlitterPdaController.java | 12 +++++ .../PdmBiSlittingproductionplanMapper.xml | 6 ++- .../tasks/slitter/SlitterDownTrussTask.java | 9 ---- .../tasks/slitter/mapper/SlitterMapper.java | 2 + .../tasks/slitter/mapper/SlitterMapper.xml | 52 +++++++++++++++++- .../tasks/slitter/service/SlitterService.java | 12 +++++ .../service/impl/SlitterServiceImpl.java | 53 ++++++++++++++++++- 7 files changed, 133 insertions(+), 13 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java index 18021980a..11baf0eee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java @@ -255,5 +255,17 @@ public class SlitterPdaController { public ResponseEntity cutCacheInventory(@RequestBody JSONObject param) { return new ResponseEntity<>(slitterService.cutCacheInventory(param), HttpStatus.OK); } + @PostMapping("/doCallTubeShaftShow") + @Log("呼叫套轴") + @SaIgnore + public ResponseEntity doCallTubeShaftShow(@RequestBody JSONObject param) { + return new ResponseEntity<>(slitterService.doCallTubeShaftShow(param), HttpStatus.OK); + } + @PostMapping("/doCallTubeShaft") + @Log("呼叫套轴") + @SaIgnore + public ResponseEntity doCallTubeShaft(@RequestBody JSONObject param) { + return new ResponseEntity<>(slitterService.doCallTubeShaft(param), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml index bc436ca99..2b992a018 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml @@ -18,12 +18,13 @@ p.up_or_down, p.qzz_size, p.qzz_generation, - MIN(p.start_time) AS start_time, + MIN(p.call_time) AS start_time, MAX(p.manufacture_sort) AS manufacture_sort FROM `pdm_bi_slittingproductionplan` p WHERE p.`status` = '01' AND p.is_child_tz_ok = '0' AND p.is_paper_ok = '1' + AND p.is_call = '1' AND p.is_delete = '0' AND IFNULL(p.up_or_down, '') ]]> '' AND IFNULL(p.left_or_right, '') ]]> '' @@ -46,12 +47,13 @@ p.up_or_down, p.qzz_size, p.qzz_generation, - MIN(p.start_time) AS start_time, + MIN(p.call_time) AS start_time, MAX(p.manufacture_sort) AS manufacture_sort FROM `pdm_bi_slittingproductionplan` p WHERE p.`status` = '01' AND p.is_child_tz_ok = '0' AND p.is_paper_ok = '1' + AND p.is_call = '1' AND p.is_delete = '0' AND IFNULL(p.up_or_down, '') ]]> '' AND IFNULL(p.left_or_right, '') ]]> '' diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index bf13e4b26..8578f19f3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -119,8 +119,6 @@ public class SlitterDownTrussTask extends AbstractAcsTask { log.info("即将下卷的上下轴的子卷号数据1:{}", downCons); List downPlans = slittingproductionplanService.getByContainerNames(downCons); log.info("即将下卷的上下轴的子卷号数据2:{}", downPlans); -// SlitterTaskUtil.setPaperWeightStr(point1.getRemark(), downPlans); -// log.info("即将下卷的上下轴的子卷号数据3:{}", downPlans); // 下来的卷的集合 List needUpdates = new ArrayList<>(); // 绑定气胀轴编码(可能没有气胀轴编码) @@ -159,13 +157,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask { } } -// downPlans.forEach(downPlan -> { -// downPlan.setStatus("09"); -// downPlan.setEnd_time(DateUtil.now()); -// TaskUtils.updateOptMessageBySlitterPlan(downPlan); -// }); log.info("即将下卷的上下轴的子卷号数据4-需要更新的新数组:{}", needUpdates); -// slittingproductionplanService.updateBatchById(downPlans); for (int i = 0; i < needUpdates.size(); i++) { boolean flag = slittingproductionplanService.updateById(needUpdates.get(i)); log.info(flag+"即将下卷的上下轴的子卷号数据5:{}", needUpdates); @@ -201,7 +193,6 @@ public class SlitterDownTrussTask extends AbstractAcsTask { p1.setUpdate_optname(SecurityUtils.getCurrentNickName()); p1.setUpdate_optid(SecurityUtils.getCurrentUserId()); }); -// slittingproductionplanService.updateBatchById(plans); for (int i = 0; i < plans.size(); i++) { slittingproductionplanService.updateById(plans.get(i)); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java index dfe387cc3..32c7546d7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java @@ -64,4 +64,6 @@ public interface SlitterMapper { List showManualView(); List showManualViewNoXn(); + + List showManualCall(Integer days); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 11068d2c0..84ed79a1d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -198,7 +198,7 @@ p.qzz_size, p.qzz_generation, p.is_paper_ok, - MIN(p.start_time) AS start_time, + MIN(p.call_time) AS start_time, IF(p.paper_tube_or_FRP = '1', p.paper_tube_description, p.FRP_description) AS tube, MIN(p.`status`) AS `status`, MAX(p.qzzno) AS qzzno, @@ -206,6 +206,7 @@ FROM `pdm_bi_slittingproductionplan` p WHERE p.`status` '09' AND p.is_delete = '0' + AND p.is_call = '1' AND IFNULL(p.up_or_down, '') ]]> '' AND IFNULL(p.left_or_right, '') ]]> '' AND DATE (p.start_time) >= DATE_SUB(CURDATE() @@ -232,4 +233,53 @@ manufacture_sort desc, start_time + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index e1be1d675..e5bbe72b0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -380,4 +380,16 @@ public interface SlitterService { JSONObject tzTaskINfo(JSONObject entity); void recover(JSONObject param); + + /** + * 呼叫套轴 + * @param param + */ + JSONObject doCallTubeShaft(JSONObject param); + + /** + * 呼叫套轴展示 + * @param param + */ + List doCallTubeShaftShow(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index b27a46172..dd1417b90 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -66,6 +66,7 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -80,8 +81,12 @@ import static org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil.getPointLocati @Slf4j @Service public class SlitterServiceImpl implements SlitterService { + /** 是否使用虚拟卷 */ public final static String USE_XN = "USE_XN"; - + /** 套轴期限 */ + public final static String TZ_DAY = "TZ_DAY"; + /** 套轴区域 */ + public final static String PARAM_CODE_PLAN_AREA = "PARAM_CODE_PLAN_AREA"; @Autowired private BstIvtStockingivtMapper bstIvtStockingivtMapper; @Autowired @@ -2938,6 +2943,52 @@ public class SlitterServiceImpl implements SlitterService { slittingproductionplanService.update(lam); } + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject doCallTubeShaft(JSONObject param) { + // param: device_code、row + String deviceCode = param.getString("device_code"); + JSONObject row = param.getJSONObject("row"); + String parentContainerName = row.getString("parent_container_name"); + String splitGroup = row.getString("split_group"); + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(PdmBiSlittingproductionplan::getSplit_group, splitGroup) + .eq(PdmBiSlittingproductionplan::getResource_name, deviceCode) + .and(la -> la.eq(PdmBiSlittingproductionplan::getParent_container_name, parentContainerName) + .or() + .eq(PdmBiSlittingproductionplan::getRestruct_container_name, parentContainerName)); + List plans = slittingproductionplanService.list(lam); + for (PdmBiSlittingproductionplan plan : plans) { + plan.setIs_call("1"); + plan.setCall_time(DateUtil.now()); + plan.setUpdate_optid(SecurityUtils.getCurrentUserId()); + plan.setUpdate_optname(SecurityUtils.getCurrentNickName()); + plan.setUpdate_time(DateUtil.now()); + } + slittingproductionplanService.updateBatchById(plans); + JSONObject res = new JSONObject(); + res.put("status", HttpStatus.HTTP_OK); + res.put("message", "呼叫套轴成功!"); + return res; + } + + @Override + public List doCallTubeShaftShow(JSONObject param) { + // param: device_code + String deviceCode = param.getString("device_code"); + Param tzDay = paramService.findByCode(TZ_DAY); + Integer days = Integer.valueOf(ObjectUtil.isEmpty(tzDay.getValue()) ? "0" : tzDay.getValue()); + // 区域固定B1、B2 +// Param paramObj = paramService.findByCode(PARAM_CODE_PLAN_AREA); +// String value = paramObj.getValue(); +// List area = Arrays.asList(value.split("[,,]")); + List callPlanViewVOS = slitterMapper.showManualCall(days); + if (callPlanViewVOS.size() == 0) { + return null; + } + return callPlanViewVOS.stream().filter(p -> p.getResource_name().equals(deviceCode)).collect(Collectors.toList()); + } + public List getRedisListValue(String key) { List stepTipLogs = (List) redisUtils.get(key); if (CollectionUtil.isEmpty(stepTipLogs)) { From dd1ba4810e36e2d9693361c6b9a69c666b0c19d7 Mon Sep 17 00:00:00 2001 From: "DESKTOP-5DIJMF9\\admin" <2388969634@qq.com> Date: Fri, 11 Jul 2025 17:55:30 +0800 Subject: [PATCH 061/146] =?UTF-8?q?opt:=E4=BF=AE=E6=AD=A3=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E9=85=8D=E7=BD=AE=E6=9C=AA=E7=94=9F?= =?UTF-8?q?=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/system/service/quartz/config/QuartzConfig.java | 1 - .../java/org/nl/system/service/quartz/utils/QuartzManage.java | 2 +- lms/nladmin-system/src/main/resources/config/application.yml | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java index 82c430eff..270e81e76 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java @@ -18,7 +18,6 @@ import java.util.Properties; * @date 2019-01-07 */ @Configuration -@ConditionalOnProperty(name = "autojob", havingValue = "true") public class QuartzConfig { /** diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java index eed54d2e1..7b214cffe 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java @@ -23,7 +23,7 @@ import static org.quartz.TriggerBuilder.newTrigger; public class QuartzManage { private static final String JOB_NAME = "TASK_"; - @Resource(name = "quartzScheduler") + @Resource(name = "scheduler") private Scheduler scheduler; public void addJob(SysQuartzJob quartzJob) { diff --git a/lms/nladmin-system/src/main/resources/config/application.yml b/lms/nladmin-system/src/main/resources/config/application.yml index a435e1108..3b2d3e2a3 100644 --- a/lms/nladmin-system/src/main/resources/config/application.yml +++ b/lms/nladmin-system/src/main/resources/config/application.yml @@ -69,7 +69,7 @@ spring: threadPool: threadCount: 14 # class: org.nl.system.service.quartz.SimpleThreadPool - scheduler-name: quartzScheduler + scheduler-name: scheduler task: pool: # 核心线程池大小 From 40cca955bb8456a333dba8f725cabcddef390c68 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 14 Jul 2025 10:40:12 +0800 Subject: [PATCH 062/146] =?UTF-8?q?fix:=E5=90=8C=E7=B1=BB=E6=9C=A8?= =?UTF-8?q?=E7=AE=B1=E5=85=BC=E5=AE=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BstIvtStockingivtController.java | 18 ++++++++++- .../PdmBiSubpackagerelationServiceImpl.java | 12 +++++-- .../service/impl/MdpbBoxtypeServiceImpl.java | 28 ++++++++++++++-- .../wms/pdm/order/slittingplan/index.vue | 2 +- .../pdm/order/slittingplan/tubeDialog2.vue | 32 +++++++++++++++++-- 5 files changed, 83 insertions(+), 9 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java index 8a194adae..565b48fd7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java @@ -1,7 +1,12 @@ package org.nl.b_lms.bst.ivt.stockingivt.controller; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.info.dao.PdmBiOrderbominfo; +import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; @@ -13,6 +18,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Set; @@ -27,6 +34,8 @@ public class BstIvtStockingivtController { @Autowired private IBstIvtStockingivtService bstIvtStockingivtService; + @Autowired + private IMdpbSameBoxService imdpbSameBoxService; @GetMapping @Log("查询备货区点位库存表") @@ -83,7 +92,14 @@ public class BstIvtStockingivtController { @Log("查询bom记录") @GetMapping("/showBom2") public ResponseEntity showBom2(@RequestParam Map param) { - return new ResponseEntity<>(bstIvtStockingivtService.showBom2(param), HttpStatus.OK); + PdmBiOrderbominfo pdmBiOrderbominfo = bstIvtStockingivtService.showBom2(param); + List list = imdpbSameBoxService.list(new LambdaQueryWrapper().eq(MdpbSameBox::getBox_code, pdmBiOrderbominfo.getProductName())); + JSONObject json = (JSONObject) JSONObject.toJSON(pdmBiOrderbominfo); + ArrayList arrayList = new ArrayList<>(); + list.stream().map(MdpbSameBox::getSame_box_code).forEach(arrayList::add); + json.put("sameBoxCode", arrayList); + json.put("sameBoxName", arrayList); + return new ResponseEntity<>(json, HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 7f755b9e7..76e4a7444 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -44,7 +44,9 @@ import org.nl.b_lms.sch.tasks.TwoOutBoxTask; import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask; import org.nl.b_lms.sch.tasks.first_floor_area.auto.TaskQueue; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; +import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox; import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.OutBoxManageServiceImpl; @@ -138,6 +140,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl list = mdpbSameBoxService.list(new LambdaQueryWrapper().eq(MdpbSameBox::getBox_code, packagerelationList.get(0).getBox_type())); + List collect = list.stream().filter(row -> row.getSame_box_code().equals(whereJson.getString("checked"))).collect(Collectors.toList()); + //改为支持多种木箱进行 + if (!packagerelationList.get(0).getBox_type().equals(whereJson.getString("checked")) && ObjectUtil.isEmpty(collect)) { + throw new BadRequestException("子卷订单bom的木箱规格及同类木箱与所选木箱规格不符合,请重新操作"); } //检查是否存在已分配规格的子卷号 if (packagerelationList.stream() diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java index 935bbd16e..70042c6a7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.database.service.impl; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,7 +13,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.b_lms.pdm.info.dao.PdmBiOrderbominfo; import org.nl.b_lms.pdm.info.service.IPdmBiOrderbominfoService; import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; +import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService; import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox; import org.nl.b_lms.storage_manage.database.service.dao.mapper.MdpbBoxtypeMapper; import org.nl.common.domain.query.PageQuery; import org.nl.modules.common.exception.BadRequestException; @@ -20,8 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Map; -import java.util.Set; +import java.util.*; /** *

@@ -36,6 +38,8 @@ public class MdpbBoxtypeServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { // 查询条件 @@ -99,10 +103,30 @@ public class MdpbBoxtypeServiceImpl extends ServiceImpl().lambda() .eq(PdmBiOrderbominfo::getMfgOrder,whereJson.getString("mfgOrder")) .set(PdmBiOrderbominfo::getProductName, whereJson.getString("productName")) .set(PdmBiOrderbominfo::getDescription, boxtype.getBox_name()) ); + + //更新该木箱对应相同木箱类型1、先删除2、再插入 + //删除 + mdpbSameBoxService.remove(new QueryWrapper().lambda().eq(MdpbSameBox::getBox_code,whereJson.getString("productName"))); + + ArrayList sameBoxCode = (ArrayList) whereJson.get("sameBoxCode"); + //插入 + MdpbSameBox[] array = sameBoxCode.stream().map(a -> { + MdpbSameBox mdpbSameBox = new MdpbSameBox(); + mdpbSameBox.setBox_code(whereJson.getString("productName")); + mdpbSameBox.setSame_box_code(a); + MdpbBoxtype same_box_name = this.getById(a); + if (ObjectUtil.isEmpty(boxtype)) { + throw new BadRequestException("木箱编码:"+whereJson.getString("productName")+"查询木箱类型失败!"); + } + mdpbSameBox.setSame_box_name(same_box_name.getBox_name()); + return mdpbSameBox; + }).toArray(MdpbSameBox[]::new); + mdpbSameBoxService.saveBatch(Arrays.asList(array)); } } diff --git a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue index e889e3015..51643cd78 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue @@ -500,7 +500,7 @@ - + diff --git a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/tubeDialog2.vue b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/tubeDialog2.vue index 8a84a1ab0..d313e8884 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/tubeDialog2.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/tubeDialog2.vue @@ -15,11 +15,11 @@ - + - + - + + + + + + + + + + @@ -101,6 +124,9 @@ export default { hand(value) { this.form.productName = value }, + hand2(value) { + this.form.sameBoxCode = value + }, close() { this.$emit('update:dialogShow', false) this.form = {} From 47d57d9977fa5b5375de176499bcec7e2dc29e88 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 14 Jul 2025 15:53:41 +0800 Subject: [PATCH 063/146] =?UTF-8?q?fix:=E5=90=8C=E7=B1=BB=E6=9C=A8?= =?UTF-8?q?=E7=AE=B1=E5=85=BC=E5=AE=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MdpbSameBoxController.java | 65 +++++++++++++++++++ .../database/service/IMdpbSameBoxService.java | 17 +++++ .../database/service/dao/MdpbSameBox.java | 46 +++++++++++++ .../service/dao/mapper/MdpbSameboxMapper.java | 16 +++++ .../service/dao/mapper/MdpbSameboxMapper.xml | 5 ++ .../service/impl/MdpbSameBoxServiceImpl.java | 20 ++++++ 6 files changed, 169 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbSameBoxController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbSameBoxService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbSameBox.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbSameboxMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbSameboxMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbSameBoxServiceImpl.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbSameBoxController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbSameBoxController.java new file mode 100644 index 000000000..be30e0a7e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbSameBoxController.java @@ -0,0 +1,65 @@ +package org.nl.b_lms.storage_manage.database.controller; + + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.nl.b_lms.sch.point.dao.StIvtCutpointivt; +import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; +import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox; +import org.nl.modules.logging.annotation.Log; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 前端控制器 + *

+ * + * @author author + * @since 2024-02-06 + */ +@RestController +@RequestMapping("/api/samebox") +public class MdpbSameBoxController { + + @Autowired + private IMdpbSameBoxService mdpbSameBoxService; + @Autowired + private IMdpbBoxtypeService mdpbBoxtypeService; + + @PostMapping("/getSameBoxList") + @Log("保存bom") + @SaIgnore + public ResponseEntity getSameBoxList(@RequestBody JSONObject whereJson) { + List list = mdpbSameBoxService.list(new LambdaQueryWrapper().eq(MdpbSameBox::getBox_code, whereJson.getString("box_code"))); + MdpbSameBox mdpbSameBox = new MdpbSameBox(); + MdpbBoxtype boxtype = mdpbBoxtypeService.getOne(new LambdaQueryWrapper().eq(MdpbBoxtype::getBox_type, whereJson.getString("box_code"))); + + mdpbSameBox.setSame_box_code(boxtype.getBox_type()); + mdpbSameBox.setSame_box_name(boxtype.getBox_name()); + list.add(0, mdpbSameBox); + JSONArray jsonArray; + jsonArray = list.stream() + .map(item -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("text", item.getSame_box_name()); + jsonObject.put("value", item.getSame_box_code()); + return jsonObject; + }) + .collect(Collectors.toCollection(JSONArray::new)); + return new ResponseEntity<>(jsonArray, HttpStatus.OK); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbSameBoxService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbSameBoxService.java new file mode 100644 index 000000000..a957ba510 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbSameBoxService.java @@ -0,0 +1,17 @@ +package org.nl.b_lms.storage_manage.database.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxlashbound; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox; + +/** + *

+ * 服务类 + *

+ * + * @author author + * @since 2024-02-06 + */ +public interface IMdpbSameBoxService extends IService { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbSameBox.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbSameBox.java new file mode 100644 index 000000000..f0d3e84f4 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbSameBox.java @@ -0,0 +1,46 @@ +package org.nl.b_lms.storage_manage.database.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * 木箱规格信息表 + *

+ * + * @author author + * @since 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("mdpb_samebox") +public class MdpbSameBox implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 木箱类型 + */ + @TableId(value = "id") + private String id; + + /** + * 木箱编码 + */ + private String box_code; + + /** + * 同类木箱编码 + */ + private String same_box_code; + + /** + * 同类木箱描述 + */ + private String same_box_name; + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbSameboxMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbSameboxMapper.java new file mode 100644 index 000000000..eef5782ac --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbSameboxMapper.java @@ -0,0 +1,16 @@ +package org.nl.b_lms.storage_manage.database.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox; + +/** + *

+ * Mapper 接口 + *

+ * + * @author author + * @since 2024-02-06 + */ +public interface MdpbSameboxMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbSameboxMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbSameboxMapper.xml new file mode 100644 index 000000000..0018acb2a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbSameboxMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbSameBoxServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbSameBoxServiceImpl.java new file mode 100644 index 000000000..db4d62e32 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbSameBoxServiceImpl.java @@ -0,0 +1,20 @@ +package org.nl.b_lms.storage_manage.database.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox; +import org.nl.b_lms.storage_manage.database.service.dao.mapper.MdpbSameboxMapper; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author author + * @since 2024-02-06 + */ +@Service +public class MdpbSameBoxServiceImpl extends ServiceImpl implements IMdpbSameBoxService { + +} From e65081ae692617a1a15a2be41ddb36d0f748e00f Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 14 Jul 2025 16:15:10 +0800 Subject: [PATCH 064/146] =?UTF-8?q?fix:=20=E7=A9=BF=E6=8B=94=E8=BD=B4?= =?UTF-8?q?=E5=8C=BA=E5=A2=9E=E5=8A=A0=E8=AE=BE=E5=A4=87=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tasks/slitter/constant/SlitterEnum.java | 12 ++++-- .../slitter/controller/SlitterController.java | 37 ++++++++++++++++++- .../tasks/slitter/util/SlitterTaskUtil.java | 33 +++++++++++++++++ 3 files changed, 77 insertions(+), 5 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java index be868717d..fe4f6c9b2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java @@ -19,10 +19,14 @@ public enum SlitterEnum { /** * 任务类型 */ - TASK_TYPE(MapOf.of("穿拔轴缓存<>穿拔轴位", "010801", "穿拔轴缓存<>分切对接位", "010802", "穿拔轴位<>气胀轴缓存位", "010803" - , "分切机下料AGV任务", "010804", "分切机上气胀轴", "010805", "分切机下气胀轴", "010806", "备货区送载具", "010807" - , "备货区送纸管", "010808", "分切机下料桁架任务", "010809", "分切机下料AGV到内包间", "010810", "套轴异常处理AGV任务", "010811" - , "套轴异常处理桁架任务", "010812", "送气胀轴到分切机任务", "010813", "拔轴完毕出轴", "010814", "穿拔轴缓存<>气胀轴缓存位", "010815", "备货区单独送空载具", "010816")); + TASK_TYPE(MapOf.of("穿拔轴缓存<>穿拔轴位", "010801", "穿拔轴缓存<>分切对接位", "010802" + , "穿拔轴位<>气胀轴缓存位", "010803", "分切机下料AGV任务", "010804" + , "分切机上气胀轴", "010805", "分切机下气胀轴", "010806", "备货区送载具", "010807" + , "备货区送纸管", "010808", "分切机下料桁架任务", "010809", "分切机下料AGV到内包间", "010810" + , "套轴异常处理AGV任务", "010811", "套轴异常处理桁架任务", "010812", "送气胀轴到分切机任务", "010813" + , "拔轴完毕出轴", "010814", "穿拔轴缓存<>气胀轴缓存位", "010815", "备货区单独送空载具", "010816") + ); + private Map code; public String code(String desc) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java index d2113a883..7399f82ca 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java @@ -1,11 +1,17 @@ package org.nl.b_lms.sch.tasks.slitter.controller; import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; +import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.dict.ISysDictService; +import org.nl.system.service.dict.dao.Dict; +import org.nl.wms.ext.acs.service.WmsToAcsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -14,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @Author: lyd * @Description: @@ -28,6 +36,10 @@ public class SlitterController { private SlitterService slitterService; @Autowired private RedisUtils redisUtils; + @Autowired + private WmsToAcsService wmsToAcsService; + @Autowired + private ISysDictService dictService; @PostMapping("/calPaperNum") @Log("扣除纸管库存") @SaIgnore @@ -44,7 +56,30 @@ public class SlitterController { @Log("套轴BCP透明链路2") @SaIgnore public ResponseEntity tzInfo2(@RequestBody JSONObject entity){ - return new ResponseEntity<>(redisUtils.get("ERROR" + entity.getString("device_code")), HttpStatus.CREATED); + List list = SlitterTaskUtil.objectToList(redisUtils.get("ERROR" + entity.getString("device_code"))); + try { + // 获取字典数据 + List bcbjError = dictService.getDictByName("CBJ_ERROR"); + // 判断气胀轴是否有轴 + JSONArray device_rows = new JSONArray(); + JSONObject device_obj = new JSONObject(); + device_rows.add(device_obj); + device_obj.put("device_code", entity.getString("device_code")); + // todo: 暂时都是B1 + device_obj.put("product_area", "B1"); + JSONObject pointStatus = wmsToAcsService.getPointStatus(device_rows); + JSONObject data = pointStatus.getJSONArray("data").getJSONObject(0); + Dict error = bcbjError.stream() + .filter(p -> p.getValue().equals(data.getString("error"))) + .findFirst() + .orElse(null); + list.add(">>>实时获取电气上报异常信息:" + (error != null + ? error.getLabel() + : (data.getString("error") + "对应异常信息未定义"))); + } catch (Exception e) { + list.add(">>>获取电气上报异常信息失败(此记录不影响流程)..."); + } + return new ResponseEntity<>(list, HttpStatus.CREATED); } @PostMapping("/v2/tzTaskINfo") @Log("套轴BCP透明链路2") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java index ba1a267ad..827138d94 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java @@ -1,5 +1,6 @@ package org.nl.b_lms.sch.tasks.slitter.util; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; @@ -573,4 +574,36 @@ public class SlitterTaskUtil { Integer::sum )); } + + + public static List mapList(Collection from, Function func) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return from.stream().map(func).collect(Collectors.toList()); + } + + /** + * 转换List + * @param obj + * @return + */ + public static List objectToList(Object obj) { + // 安全转换为List + List errorList = new ArrayList<>(); + if (obj instanceof List) { + for (Object item : (List) obj) { + if (item instanceof String) { + errorList.add((String) item); + } else { + // 非字符串元素处理(按需调整) + errorList.add(item.toString()); + } + } + } else if (obj != null) { + // 如果存储的不是List(如JSON字符串),需额外处理 + throw new IllegalStateException("Expected List type from Redis, but got: " + obj.getClass()); + } + return errorList; + } } From 4d6344c4bb8322c5859173677b3f35556ca4b07b Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 14 Jul 2025 17:57:32 +0800 Subject: [PATCH 065/146] =?UTF-8?q?fix:=E5=BA=93=E5=AD=98=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E5=AD=97=E6=AE=B5=E9=80=89=E5=8F=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 62a2ed76f..4e670a163 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 @@ -1061,7 +1061,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("point_code"))); + dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode"))); if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) { //获取子卷最新信息 jo.put("container_name", whereJson.getString("container_name")); From a366af32ddcc768a848d12288d8736ec13bab5e1 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Sun, 20 Jul 2025 18:49:04 +0800 Subject: [PATCH 066/146] =?UTF-8?q?fix:=E5=BC=82=E5=B8=B8=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E3=80=81NG=E5=8D=B7=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 204 ++++++------ .../mapper/BstIvtPackageinfoivtMapper.java | 1 + .../dao/mapper/BstIvtPackageinfoivtMapper.xml | 9 + .../impl/BstIvtPackageinfoivtServiceImpl.java | 310 ++++++++++-------- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 2 +- .../sch/tasks/first_floor_area/GzqTask.java | 43 +-- .../auto/AutoSendMzToDjq.java | 82 ++++- .../util/impl/LashManageServiceImpl.java | 84 +++-- .../acs/service/impl/AcsToWmsServiceImpl.java | 257 ++++++++------- .../wms/ext/mes/rest/LmsToMesController.java | 7 + .../wms/ext/mes/service/LmsToMesService.java | 2 + .../mes/service/impl/LmsToMesServiceImpl.java | 92 ++++-- 12 files changed, 655 insertions(+), 438 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 76e4a7444..b68ce311a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -166,8 +166,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")))) { // throw new BadRequestException("该子卷不在待检区,请检查!"); // } @@ -276,11 +286,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class); + List packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class); //子卷信息校验 checkEntityList(whereJson, packagerelationList); //均衡获取木箱出库装箱区对接位 - //= getPointCode(packagerelationList.size()); + //= getPointCode(packagerelationList.size()); List workIdList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream() .map(PdmBiSubpackagerelation::getWorkorder_id) .map(String::valueOf) @@ -295,13 +305,13 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getContainer_name, containerNameList) - .eq(PdmBiSlittingproductionplan::getIs_delete,IOSEnum.IS_NOTANDYES.code("否")) + .eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) ); List subpackagerelations = this.list(new QueryWrapper().in("workorder_id", workIdList)); if (ObjectUtils.isEmpty(planList)) { @@ -310,9 +320,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl any = subpackagerelations.stream() .filter(sub -> sub.getStatus().equals("0") && StringUtils.isNotEmpty(sub.getPackage_box_sn())) .findAny(); - if (any.isPresent()){ + if (any.isPresent()) { PdmBiSubpackagerelation subpackagerelation = any.get(); - throw new BadRequestException(subpackagerelation.getPackage_box_sn()+"包装关系已存在"+subpackagerelation.getPackage_box_sn()+",如重新生成请确认MES跟LMS包装关系已解绑定"); + throw new BadRequestException(subpackagerelation.getPackage_box_sn() + "包装关系已存在" + subpackagerelation.getPackage_box_sn() + ",如重新生成请确认MES跟LMS包装关系已解绑定"); } BigDecimal totalWeight; @@ -338,23 +348,23 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl collect = ivtList.stream().map(a -> a.getIvt_id()).collect(Collectors.toList()); packageinfoivtService.update(new UpdateWrapper() .set("update_time", DateUtil.now()) - .in("ivt_id",collect)); + .in("ivt_id", collect)); } @Override public List zjInBound(JSONObject whereJson) { String containerName = whereJson.getString("container_name"); - if (StringUtils.isEmpty(containerName)){ + if (StringUtils.isEmpty(containerName)) { throw new BadRequestException("子卷编码不能为空"); } String[] split = containerName.split(","); List subList = this.list(new QueryWrapper() .eq("status", "0") .in("container_name", split)); - if (CollectionUtils.isEmpty(subList)){ + if (CollectionUtils.isEmpty(subList)) { throw new BadRequestException("当前子卷还为组盘"); } - if (subList.size() != split.length){ + if (subList.size() != split.length) { throw new BadRequestException("子卷包装信息与子卷不相符合"); } return subList; @@ -364,7 +374,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl() - .eq("point_status",PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) - .eq("ivt_status",PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); - if (count+count2>8){ + .eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) + .eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); + if (count + count2 > 8) { throw new BadRequestException("当前装箱区木箱任务已满,稍后再试"); } @@ -384,63 +394,63 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl subList = this.list(new QueryWrapper() .eq("status", "0") .in("container_name", split)); - if (subList.size() != split.length){ + if (subList.size() != split.length) { throw new BadRequestException("子卷包装信息与子卷不相符合"); } Set collect = subList.stream().map(PdmBiSubpackagerelation::getPackage_box_sn).collect(Collectors.toSet()); Set containers = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toSet()); List containerList = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toList()); - if (collect.size() == 0){ + if (collect.size() == 0) { throw new BadRequestException("当前子卷还未进行装箱组盘操作"); } - if (collect.size()>1){ - throw new BadRequestException("当前子卷不属于同一组"+ collect); + if (collect.size() > 1) { + throw new BadRequestException("当前子卷不属于同一组" + collect); } - if (subList.get(0).getQuanlity_in_box().intValue()!= split.length){ - throw new BadRequestException("当前木箱"+subList.get(0).getQuanlity_in_box()+"要装箱的子卷"+split.length+"未装完"); + if (subList.get(0).getQuanlity_in_box().intValue() != split.length) { + throw new BadRequestException("当前木箱" + subList.get(0).getQuanlity_in_box() + "要装箱的子卷" + split.length + "未装完"); } String boxSn = subList.get(0).getPackage_box_sn(); //查询木箱所在货位 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); JSONArray boxAttrs = attrTab.query("storagevehicle_code = '" + boxSn + "' and sect_id = '1748219897940414464'").getResultJSONArray(0); - if (boxAttrs.size() == 0){ - throw new BadRequestException("当前木箱"+boxSn+"库存信息查询不到,请确认"); + if (boxAttrs.size() == 0) { + throw new BadRequestException("当前木箱" + boxSn + "库存信息查询不到,请确认"); } - JSONObject boxAttr = boxAttrs.getJSONObject(0); + JSONObject boxAttr = boxAttrs.getJSONObject(0); List hasTask = taskService.list(new QueryWrapper() .select("point_code2") .eq("is_delete", "0") .eq("point_code1", boxAttr.getString("struct_code")) .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (!CollectionUtils.isEmpty(hasTask)){ + if (!CollectionUtils.isEmpty(hasTask)) { boolean zxq = hasTask.stream().map(a -> a.getPoint_code2()).filter(a -> a.contains("ZXQ")).findAny().isPresent(); - if (zxq){ + if (zxq) { throw new BadRequestException("当前子卷正在执行装箱入库操作"); - }else{ - throw new BadRequestException("当前空木箱"+boxSn+"存在正在执行的任务,稍后再操作"); + } else { + throw new BadRequestException("当前空木箱" + boxSn + "存在正在执行的任务,稍后再操作"); } } // 查询木箱对应的托盘号 JSONObject jsonVeExt = WQLObject.getWQLObject("md_pb_storagevehicleext").query("pcsn = '" + boxSn + "'") .uniqueResult(0); if (ObjectUtil.isEmpty(jsonVeExt)) { - throw new BadRequestException("此木箱没有绑定托盘号!"+boxSn); + throw new BadRequestException("此木箱没有绑定托盘号!" + boxSn); } //子卷到装箱区 agvTransfer(containers, deviceCode, boxSn); String task_group_id = null; if (boxAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { 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); - if (ObjectUtil.isEmpty(浅Attr)){ - throw new BadRequestException(boxAttr.getString("struct_code")+"对应浅货位信息不正确"); + 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("未锁定"))) { - throw new BadRequestException("木箱货位"+boxAttr.getString("struct_code")+"的浅货位存在正在执行的任务"); + throw new BadRequestException("木箱货位" + boxAttr.getString("struct_code") + "的浅货位存在正在执行的任务"); } - }else { + } else { if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { // 判断浅货位木箱和深货位木箱是否相同规格 task_group_id = outBoxManageService.createBoxMove(浅Attr); @@ -449,11 +459,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl { try { log.error("----回传子卷包装关系----"); @@ -670,7 +679,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl djqPointList = packageinfoivtService .list(new LambdaUpdateWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) - .in(BstIvtPackageinfoivt::getContainer_name,containerNameList)); - if (CollectionUtils.isEmpty(djqPointList)){ - throw new BadRequestException(containerNameList+"子卷信息不存在"); + .in(BstIvtPackageinfoivt::getContainer_name, containerNameList)); + if (CollectionUtils.isEmpty(djqPointList)) { + throw new BadRequestException(containerNameList + "子卷信息不存在"); } boolean hasNo = djqPointList.stream().anyMatch(a -> !a.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); - if (hasNo){ - throw new BadRequestException(containerNameList+"子卷未质检合格"); + if (hasNo) { + throw new BadRequestException(containerNameList + "子卷未质检合格"); } List djqPoints = djqPointList.stream().filter(a -> a.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList()); //任务组id @@ -767,14 +775,14 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl taskList = taskService.list(new LambdaQueryWrapper() .eq(SchBaseTask::getVehicle_code, item.getContainer_name()).eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")) .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())); - if (CollectionUtils.isEmpty(taskList)){ + if (CollectionUtils.isEmpty(taskList)) { JSONObject jo = new JSONObject(); //确定搬运任务不执行 jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); jo.put("vehicle_code", item.getContainer_name()); jo.put("point_code1", item.getPoint_code()); - jo.put("date",now); - jo.put("task_step",i1); + jo.put("date", now); + jo.put("task_step", i1); jo.put("task_status", TaskStatusEnum.SURE_START.getCode()); jo.put("vehicle_code2", groupId); zxqTask.createTaskReturnTask(jo); @@ -786,39 +794,39 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl().eq("container_name", code)); - if (containerName==null){ - throw new BadRequestException("当前子卷"+code+"还未生成子卷包装"); + if (containerName == null) { + throw new BadRequestException("当前子卷" + code + "还未生成子卷包装"); } if (SUBEnum.STATUS.code("入库").equals(containerName.getStatus()) - ||SUBEnum.STATUS.code("出库").equals(containerName.getStatus())){ - throw new BadRequestException("当前子卷"+code+"已完成出入库不允许手动解除"); + || SUBEnum.STATUS.code("出库").equals(containerName.getStatus())) { + 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); - if (ObjectUtils.isNotEmpty(attr)){ + if (ObjectUtils.isNotEmpty(attr)) { String structCode = attr.getString("struct_code"); int count = taskService.count(new QueryWrapper() .eq("task_type", "010704") .eq("is_delete", "0") .eq("point_code1", structCode) .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (count>0){ + if (count > 0) { throw new BadRequestException("当前子卷已经生成装箱入库任务,不允许直接解绑"); } - attr.put("lock_type","1"); + attr.put("lock_type", "1"); attrTab.update(attr); } } this.removeById(containerName.getWorkorder_id()); - result.put("message", code+"子卷包装解除成功,同时确认MES装箱以解绑定"); - PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_REMOVE,MapOf.of("子卷编号",code),Boolean.TRUE,null,code); + result.put("message", code + "子卷包装解除成功,同时确认MES装箱以解绑定"); + PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_REMOVE, MapOf.of("子卷编号", code), Boolean.TRUE, null, code); return result; } @@ -836,12 +844,12 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl() .eq("container_name", whereJson.getString("container_name"))); - if (one!=null){ + if (one != null) { throw new BadRequestException("包装关系存在,请先在MES和LMS解绑包装关系"); } BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper() @@ -861,16 +869,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl3){ + if (day > 3) { throw new BadRequestException("只能导出前三天数据"); } Date time = DateUtil.offsetDay(new Date(), -day); @@ -884,57 +892,57 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl> log = new ArrayList<>(); - if (total>0){ - PageResult page = (PageResult)logPage.get("page"); + List> log = new ArrayList<>(); + if (total > 0) { + PageResult page = (PageResult) logPage.get("page"); for (LogRepositoryDTO dto : page) { String message = dto.getMessage(); - if (!StringUtils.isEmpty(message)){ + if (!StringUtils.isEmpty(message)) { String requestTime = dto.getRequestTime(); int start = message.indexOf("{"); int end = message.lastIndexOf("}"); - if (start>0 && end>start){ + if (start > 0 && end > start) { String substring = message.substring(start, end + 1); JSONObject object = JSONObject.parseObject(substring); String deviceCode = object.getString("device_code"); - log.add(MapOf.of("呼叫时间",requestTime,"设备",deviceCode)); + log.add(MapOf.of("呼叫时间", requestTime, "设备", deviceCode)); } } } } - List> databases = this.baseMapper.downloadData(time.toString()); + List> databases = this.baseMapper.downloadData(time.toString()); List> ioData = new ArrayList<>(); int max = Math.max(databases.size(), log.size()); for (int i = 0; i < max; i++) { Map item = new HashMap<>(); - if (databases.size()>i){ + if (databases.size() > i) { Map item1 = databases.get(i); item.putAll(item1); - }else { - item.put("下卷设备",""); - item.put("下卷开始",""); - item.put("下卷结束",""); + } else { + item.put("下卷设备", ""); + item.put("下卷开始", ""); + item.put("下卷结束", ""); } - if (log.size()>i){ + if (log.size() > i) { Map item2 = log.get(i); item.putAll(item2); - }else { - item.put("设备",""); - item.put("呼叫时间",""); + } else { + item.put("设备", ""); + item.put("呼叫时间", ""); } - item.put("分割",""); - if (item.keySet().size()==6){ + item.put("分割", ""); + if (item.keySet().size() == 6) { ioData.add(item); } } String[] strings = new String[6]; strings[0] = "下卷设备"; - strings[1] ="下卷开始"; - strings[2] ="下卷结束"; + strings[1] = "下卷开始"; + strings[2] = "下卷结束"; strings[3] = "分割"; strings[4] = "设备"; strings[5] = "呼叫时间"; - new FileUtil().downloadExcelIO(ioData,strings,response); + new FileUtil().downloadExcelIO(ioData, strings, response); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java index 57a11a602..a11405429 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java @@ -36,5 +36,6 @@ public interface BstIvtPackageinfoivtMapper extends BaseMapper getTaskList(Set pointCodes1, Set pointCodes2, Set pointCodes3, Set pointCodes4); List selectNoTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus); + List selectNoTaskPoint2(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus); List selectNoTargetTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml index 699c3b2c9..d684b52d2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml @@ -90,6 +90,15 @@ AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code3 = p.point_code OR t.point_code4 = p.point_code) AND t.is_delete = '0') + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java index ad873b347..2d0f80778 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java @@ -96,6 +96,15 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl getCanUseMinPointByShelf(String type, String area) { + return bstIvtCutpointivtMapper.getCanUseMinPointByShelf(type, area); + } + @Override + public List getCanUseMinPointByShelfSpecial(String type, String area) { + return bstIvtCutpointivtMapper.getCanUseMinPointByShelfSpecial(type, area); + } + @Override public List getAreaNotTaskPointByStatusNotCheckPickUpCompleted(String type, String pointStatus, String area, String sort) { return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatusNotCheckPickUpCompleted(type, pointStatus, area, sort); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java index 11ff574cf..305c2ceb6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java @@ -87,20 +87,37 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask { // update: 在acs请求取货完成就已经清空点位信息 String endPoint = task.getPoint_code2(); BstIvtCutpointivt endPointObj = bcutpointivtService.getPointByTrussOrAgvCode(endPoint, false); - TaskUtils.pointMaintenanceInventory(task, endPointObj, "2"); + // 设置有异常 + TaskUtils.pointMaintenanceInventory(task, endPointObj, "4"); // (桁架任务的时候)起点要清空 if (task.getPoint_code2().equals(endPointObj.getTruss_point_code1()) || task.getPoint_code2().equals(endPointObj.getTruss_point_code2())) { BstIvtShafttubeivt shafttubeivt = shaftivtService.getByPointCode(task.getPoint_code1(), false); - shafttubeivt.setQzz_size(""); - shafttubeivt.setHave_qzz("0"); - shafttubeivt.setTube_code1(""); - shafttubeivt.setTube_code2(""); - shafttubeivt.setTube_name1(""); - shafttubeivt.setTube_name2(""); - shafttubeivt.setContainer_name1(""); - shafttubeivt.setContainer_name2(""); - shaftivtService.updateById(shafttubeivt); + if (ObjectUtil.isNotEmpty(shafttubeivt)) { + shafttubeivt.setQzz_size(""); + shafttubeivt.setHave_qzz("0"); + shafttubeivt.setTube_code1(""); + shafttubeivt.setTube_code2(""); + shafttubeivt.setTube_name1(""); + shafttubeivt.setTube_name2(""); + shafttubeivt.setContainer_name1(""); + shafttubeivt.setContainer_name2(""); + shafttubeivt.setUpdate_time(DateUtil.now()); + shaftivtService.updateById(shafttubeivt); + } else { + BstIvtCutpointivt trussCode = bcutpointivtService.getPintByTrussCode(task.getPoint_code1(), false); + if (trussCode.getTruss_point_code1().equals(task.getPoint_code1())) { + trussCode.setQzz_no1(""); + } else { + trussCode.setQzz_no2(""); + } + if (ObjectUtil.isEmpty(trussCode.getQzz_no1()) && ObjectUtil.isEmpty(trussCode.getQzz_no2())) { + trussCode.setPoint_status("1"); + trussCode.setRemark(""); + } + trussCode.setUpdate_time(DateUtil.now()); + bcutpointivtService.updateById(trussCode); + } } bcutpointivtService.updateById(endPointObj); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoExceptionTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoExceptionTrussTask.java new file mode 100644 index 000000000..c8e189487 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoExceptionTrussTask.java @@ -0,0 +1,84 @@ +package org.nl.b_lms.sch.tasks.slitter.auto; + +import com.alibaba.fastjson.JSONObject; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; +import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; +import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService; +import org.nl.b_lms.sch.tasks.slitter.SendNBJExceptionPointTask; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum; +import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; +import org.nl.modules.common.exception.BadRequestException; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * 自动创建异常任务 + * + * @Author: lyd + * @Date: 2025/9/4 + */ +@Slf4j +@Component +public class AutoExceptionTrussTask { + @Autowired + private IBstIvtCutpointivtService bcutpointivtService; + @Autowired + private IstIvtCutpointivtService cutpointivtService; + @Autowired + private IPdmBiSlittingproductionplanService slittingproductionplanService; + @Autowired + private SlitterMapper slitterMapper; + @Autowired + private SendNBJExceptionPointTask sendNBJExceptionPointTask; + @Autowired + private RedissonClient redissonClient; + + @SneakyThrows + public void run() { + log.info("正在执行异常轴补偿机制..."); + RLock lock = redissonClient.getLock("doAcsFinishLoadShaft"); + boolean tryLock = lock.tryLock(10, TimeUnit.SECONDS); + try { + if (tryLock) { + // 获取能够拉走的点位 + List needMoves = slitterMapper.getMoveTzdjwExceptionPoint(); + for (String needMove : needMoves) { + List exceptionPointCodes = bcutpointivtService.getCanUseMinPointByShelf("4", "0"); + if (exceptionPointCodes.size() == 0) { + log.info("没有可用的异常处理位..."); + return; + } + BstIvtCutpointivt cutpointivt = bcutpointivtService.getPintByTrussCode(needMove, false); + // 创建任务 + JSONObject exParam = new JSONObject(); + exParam.put("point_code1", needMove); + exParam.put("point_code2", exceptionPointCodes.get(0)); + if (needMove.endsWith("A")) { + exParam.put("vehicle_code1", cutpointivt.getQzz_no1()); + } else { + exParam.put("vehicle_code2", cutpointivt.getQzz_no2()); + } + exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理桁架任务")); + exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + exParam.put("acs_task_type", "6"); + sendNBJExceptionPointTask.createTask(exParam); + } + } else { + log.info("系统繁忙,稍后在试..."); + } + } finally { + if (tryLock) { + lock.unlock(); + } + } + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index 9320b3b5f..297f8a0d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -79,28 +79,34 @@ public class AutoSendAirShaftAgvTask { .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO)); if (plans.size() == 0) { log.info("找不到状态01的分切计划,送到异常处理位置!"); + // hint: 搬运到异常处理位不在使用AGV,用新的定时器执行,此处只是改点位状态 // 不能抛异常,需要通过通知的形式,并且创建agv搬到异常处理位(4)。 // 判断套轴暂存位异常点位是否含有任务 - List exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("4", "1", "0", "0"); - if (exceptionPoints.size() > 0) { - BstIvtCutpointivt exceptionPoint = exceptionPoints.get(0); - // 需要枷锁 - JSONObject exParam = new JSONObject(); - exParam.put("point_code1", cutPoint.getPoint_code()); - exParam.put("point_code2", exceptionPoint.getPoint_code()); - exParam.put("vehicle_code1", cutPoint.getQzz_no1()); - exParam.put("vehicle_code2", cutPoint.getQzz_no2()); - exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理AGV任务")); - exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - sendNBJExceptionPointTask.createTask(exParam); - } else { - log.info("异常处理位无空位!"); - // 点位禁用 - cutPoint.setRemark("计划状态已被改变!"); - cutPoint.setIs_used("0"); - cutPoint.setUpdate_time(DateUtil.now()); - bcutpointivtService.updateById(cutPoint); - } +// List exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("4", "1", "0", "0"); +// if (exceptionPoints.size() > 0) { +// BstIvtCutpointivt exceptionPoint = exceptionPoints.get(0); +// // 需要枷锁 +// JSONObject exParam = new JSONObject(); +// exParam.put("point_code1", cutPoint.getPoint_code()); +// exParam.put("point_code2", exceptionPoint.getPoint_code()); +// exParam.put("vehicle_code1", cutPoint.getQzz_no1()); +// exParam.put("vehicle_code2", cutPoint.getQzz_no2()); +// exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理AGV任务")); +// exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); +// sendNBJExceptionPointTask.createTask(exParam); +// } else { +// log.info("异常处理位无空位!"); +// // 点位禁用 +// cutPoint.setRemark("计划状态已被改变!"); +// cutPoint.setIs_used("0"); +// cutPoint.setUpdate_time(DateUtil.now()); +// bcutpointivtService.updateById(cutPoint); +// } + // 点位禁用 + cutPoint.setRemark("计划状态已被改变, 等待搬运到异常处理位..."); + cutPoint.setPoint_status("4"); + cutPoint.setUpdate_time(DateUtil.now()); + bcutpointivtService.updateById(cutPoint); continue; } // 获取任意一条 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java index 32c7546d7..9f5d88912 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java @@ -66,4 +66,10 @@ public interface SlitterMapper { List showManualViewNoXn(); List showManualCall(Integer days); + + /** + * 套轴对接位异常位搬运到异常处理架子 + * @return + */ + List getMoveTzdjwExceptionPoint(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 84ed79a1d..136b17715 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -282,4 +282,52 @@ manufacture_sort desc, start_time + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index a5762b2dd..2df88396b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -349,14 +349,14 @@ public class SlitterServiceImpl implements SlitterService { if (plans.size() == 0) { log.error("找不到[{}]对应的分切计划,分切计划可能被删除或者拼接!", collect); // 移动到异常处理位(随机一个点位,在送到B2对面的位置) - List exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "0", "0"); - if (exceptionPoints.size() > 0) { - BstIvtCutpointivt exceptionPoint = exceptionPoints.get(0); +// List exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("4", "1", "0", "0"); + List exceptionPointCodes = bcutpointivtService.getCanUseMinPointByShelf("4", "0"); + if (exceptionPointCodes.size() > 0) { + String exceptionPoint = exceptionPointCodes.get(0); JSONObject exParam = new JSONObject(); exParam.put("point_code1", startPoint.getPoint_code()); - exParam.put("point_code2", ObjectUtil.isEmpty(exceptionPoint.getQzz_no1()) - ? exceptionPoint.getTruss_point_code1() : exceptionPoint.getTruss_point_code2()); - if (ObjectUtil.isEmpty(exceptionPoint.getQzz_no1())) { + exParam.put("point_code2", exceptionPoint); + if (exceptionPoint.endsWith("A")) { exParam.put("vehicle_code1", collect); } else { exParam.put("vehicle_code2", collect); @@ -369,24 +369,46 @@ public class SlitterServiceImpl implements SlitterService { res.put("status", HttpStatus.HTTP_OK); res.put("message", "创建送至异常处理位!"); return res; - } else { - stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,无暂存位置,创建任务失败!"); - redisUtils.set("ERROR" + deviceCode, stepTipLogs); + } + // 找套轴对接位(任取一个空点) + exceptionPointCodes = bcutpointivtService.getCanUseMinPointByShelfSpecial("1", "0"); + if (exceptionPointCodes.size() > 0) { + String exceptionPoint = exceptionPointCodes.get(0); JSONObject exParam = new JSONObject(); exParam.put("point_code1", startPoint.getPoint_code()); - exParam.put("point_code2", "-"); - exParam.put("vehicle_code1", collect); + exParam.put("point_code2", exceptionPoint); + if (exceptionPoint.endsWith("A")) { + exParam.put("vehicle_code1", collect); + } else { + exParam.put("vehicle_code2", collect); + } exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理桁架任务")); exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - exParam.put("task_status", TaskStatusEnum.SURE_START.getCode()); exParam.put("acs_task_type", "6"); exParam.put("containers", collect); sendNBJExceptionPointTask.createTask(exParam); res.put("status", HttpStatus.HTTP_OK); - res.put("message", "请求成功"); - res.put("msg", msg); + res.put("message", "创建送至对接位等待异常处理位!"); return res; } + + // 半条任务等待补齐 + stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,无暂存位置,创建任务失败!"); + redisUtils.set("ERROR" + deviceCode, stepTipLogs); + JSONObject exParam = new JSONObject(); + exParam.put("point_code1", startPoint.getPoint_code()); + exParam.put("point_code2", "-"); + exParam.put("vehicle_code1", collect); + exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理桁架任务")); + exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + exParam.put("task_status", TaskStatusEnum.SURE_START.getCode()); + exParam.put("acs_task_type", "6"); + exParam.put("containers", collect); + sendNBJExceptionPointTask.createTask(exParam); + res.put("status", HttpStatus.HTTP_OK); + res.put("message", "请求成功"); + res.put("msg", msg); + return res; } // 分切计划设置纸卷重量 for (PdmBiSlittingproductionplan plan : plans) { @@ -1265,7 +1287,7 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); slitterDownAgvTask.createTask(taskParam); } else { - throw new BadRequestException("系统繁忙,稍后在试!!"); + throw new BadRequestException("内包间正在分配点位,请重试!"); } } finally { if (lock.isLocked() && lock.isHeldByCurrentThread()) { From 522abe91c7abc9264435aef5a226e132150addc9 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 8 Sep 2025 17:02:58 +0800 Subject: [PATCH 088/146] =?UTF-8?q?fix:B1=E5=85=A5=E7=83=98=E7=AE=B1?= =?UTF-8?q?=E6=89=BE=E5=86=B7=E5=8D=B4=E7=82=B9=E7=BB=9F=E4=B8=80=E7=94=A8?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E5=99=A8=E5=8E=BB=E6=89=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/wms/sch/tasks/CallEmpReelTask.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) 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 8fb2a5ff2..7a15ebd8a 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 @@ -209,7 +209,7 @@ public class CallEmpReelTask extends AbstractAcsTask { throw new BadRequestException("终点未找到可用点位:" + point_code2); } - //创建桁架任务将子卷搬运到桁架下的半成品缓存位 + /*//创建桁架任务将子卷搬运到桁架下的半成品缓存位 //查询当前点位为空且没有任务的桁架内缓存点 JSONObject cache_param = new JSONObject(); cache_param.put("flag", "4"); @@ -250,7 +250,29 @@ public class CallEmpReelTask extends AbstractAcsTask { param.put("type", "3"); InHotTask inHotTask = SpringContextHolder.getBean(InHotTask.class); inHotTask.createTask(param); - } + }*/ + 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.getSnowflake(1, 1).nextId()); + jo.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("task_type", "010206"); + jo.put("task_status", TaskStatusEnum.SURE_START.getCode()); + jo.put("point_code1", point_code4); + 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")); From 2bcaebfa1440d2e2e4e0e29440a44083b7934e23 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 9 Sep 2025 13:41:57 +0800 Subject: [PATCH 089/146] =?UTF-8?q?fix:=E6=B7=B1=E6=B5=85=E8=B4=A7?= =?UTF-8?q?=E4=BD=8D=E8=A2=AB=E9=94=81=E5=AE=9A=E6=8F=90=E7=A4=BA=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 4 +- .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 42 ++++++++++--------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index b00647279..72f4ecbd6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -460,10 +460,10 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl{ + RedissonUtils.lock(c -> { if (status.equals(TaskStatusEnum.FINISHED.getCode())) { immediateNotifyAcs(null); } - },"zjInBound",20,this); + }, "zjInBound", 20, this); } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -229,10 +233,10 @@ public class TwoOutBoxTask extends AbstractAcsTask { throw new BadRequestException("木箱号不能为空!"); } String vehicle_code = form.getString("vehicle_code"); - String point_code1 = form.getString("start_device_code"); + String point_code1 = form.getString("start_device_code"); JSONObject task1 = isSingleTask(point_code1); - if ( ObjectUtil.isNotEmpty(task1)) { - throw new BadRequestException("载具:"+vehicle_code+"所在点位:" + point_code1 + "存在未完成的任务:"+task1.getString("task_code")); + if (ObjectUtil.isNotEmpty(task1)) { + throw new BadRequestException("载具:" + vehicle_code + "所在点位:" + point_code1 + "存在未完成的任务:" + task1.getString("task_code")); } JSONObject json = new JSONObject(); json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); @@ -276,13 +280,13 @@ public class TwoOutBoxTask extends AbstractAcsTask { JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - if(ObjectUtil.isNotEmpty(task1)){ + if (ObjectUtil.isNotEmpty(task1)) { return task1; - }else if(ObjectUtil.isNotEmpty(task2)){ + } else if (ObjectUtil.isNotEmpty(task2)) { return task2; - }else if(ObjectUtil.isNotEmpty(task3)){ + } else if (ObjectUtil.isNotEmpty(task3)) { return task3; - }else if(ObjectUtil.isNotEmpty(task4)){ + } else if (ObjectUtil.isNotEmpty(task4)) { return task4; } From 67e8002ffd2b00d28cf7470ebd2b99a5b15a5b5b Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 9 Sep 2025 15:46:08 +0800 Subject: [PATCH 090/146] =?UTF-8?q?opt:=20=E5=A4=87=E8=B4=A7=E5=8C=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E3=80=81=E6=8B=89=E5=8F=96=E5=AD=90=E5=8D=B7?= =?UTF-8?q?=E4=BC=98=E5=85=88=E8=83=BD=E9=87=8A=E6=94=BE=E6=9E=B6=E5=AD=90?= =?UTF-8?q?=E7=9A=84=E7=82=B9=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...轴点位日志记录实时看板v3.html | 3 + .../service/IBstIvtCutpointivtService.java | 9 + .../dao/mapper/BstIvtCutpointivtMapper.java | 2 + .../dao/mapper/BstIvtCutpointivtMapper.xml | 98 ++++++++-- .../impl/BstIvtCutpointivtServiceImpl.java | 5 + .../tasks/slitter/StockAreaCallTubeTask.java | 32 +++- .../slitter/auto/AutoCallAirShaftTask.java | 172 +++++++++++------- .../service/impl/SlitterServiceImpl.java | 106 +++++------ 8 files changed, 288 insertions(+), 139 deletions(-) diff --git a/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html b/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html index d1de733de..4f3a91983 100644 --- a/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html +++ b/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html @@ -403,6 +403,9 @@ if (item.is_paper_ok === '4') { tzText = '已下发套轴'; } + if (item.is_paper_ok === '95') { + tzText = '等待更换管芯托盘'; + } if (item.is_paper_ok === '99') { tzText = '套轴异常'; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java index 4920c32d3..221a0b8b8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java @@ -155,4 +155,13 @@ public interface IBstIvtCutpointivtService extends IService { * @return */ BstIvtCutpointivt getPointByTrussOrAgvCode(String endPoint, boolean flag); + + /** + * 获取可以拔轴的卷 + * @param qzzSize 尺寸 + * @param generation 代数 + * @param pointLocation 点位半区(0下,1上) + * @return + */ + List getCanPullPoints(String qzzSize, String generation, String pointLocation); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java index 27b75a71e..f3d8d0338 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java @@ -35,4 +35,6 @@ public interface BstIvtCutpointivtMapper extends BaseMapper { List getCanUseMinPointByShelf(String type, String area); List getCanUseMinPointByShelfSpecial(String type, String area); + + List getCanPullPoints(String size, String generation, String area); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml index 13bd48f6d..315865d87 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml @@ -211,30 +211,42 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java index 2d0f80778..6724178e0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java @@ -190,4 +190,9 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl getCanPullPoints(String qzzSize, String generation, String pointLocation) { + return bstIvtCutpointivtMapper.getCanPullPoints(qzzSize, generation, pointLocation); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java index 31f700348..e36bf10ca 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java @@ -11,6 +11,8 @@ import org.nl.b_lms.bst.ivt.papervehicle.service.IMdPbPapervehicleService; import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle; import org.nl.b_lms.bst.ivt.stockingivt.service.IBstIvtStockingivtService; import org.nl.b_lms.bst.ivt.stockingivt.service.dao.BstIvtStockingivt; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; @@ -29,7 +31,9 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * @Author: lyd @@ -47,6 +51,8 @@ public class StockAreaCallTubeTask extends AbstractAcsTask { @Autowired private IMdPbPapervehicleService mdPbPapervehicleService; @Autowired + private IPdmBiSlittingproductionplanService slittingproductionplanService; + @Autowired private WmsToAcsService wmsToAcsService; @Override @@ -101,7 +107,31 @@ public class StockAreaCallTubeTask extends AbstractAcsTask { startPointObj.setIvt_status("0"); TaskUtils.updateOptMessageByBStockingPoint(startPointObj); stockingivtService.update(startPointObj); - + JSONObject object = JSONObject.parseObject(task.getRequest_param()); + if (ObjectUtil.isNotEmpty(object) && ObjectUtil.isNotEmpty(object.getString("to_material"))) { + String toMaterial = object.getString("to_material"); + List tubes = Arrays.stream(toMaterial.split(",")).collect(Collectors.toList()); + // 将95的计划恢复 + // 批量设置 + List list = slittingproductionplanService.list(new LambdaQueryWrapper() + .eq(PdmBiSlittingproductionplan::getStatus, "01") + .eq(PdmBiSlittingproductionplan::getIs_child_tz_ok, "0") + .eq(PdmBiSlittingproductionplan::getIs_paper_ok, "95") + .eq(PdmBiSlittingproductionplan::getIs_call, "1") + .eq(PdmBiSlittingproductionplan::getIs_delete, "0") + .and(la2 -> la2.in(PdmBiSlittingproductionplan::getPaper_tube_material, tubes) + .or() + .in(PdmBiSlittingproductionplan::getFRP_material, tubes)) + ); + if (list.size() > 0) { + for (PdmBiSlittingproductionplan p : list) { + p.setIs_paper_ok("1"); + p.setUpdate_optname("任务完成"); + p.setUpdate_time(DateUtil.now()); + } + slittingproductionplanService.updateBatchById(list); + } + } } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 01fcb9649..e316887b5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; @@ -304,65 +305,29 @@ public class AutoCallAirShaftTask extends Prun { String qzz_generation = needPlan.getQzz_generation(); // 从套轴对接位获取相同气涨轴大小 - // update: 不需要(同标箔或者锂电分开) - List qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, specification); + List notTaskPoints = bcutpointivtService.getCanPullPoints(qzzSize, specification, empty.getPoint_location()); + List qzzPoint = sortByPointEmpty(notTaskPoints); log.info("查找到满足到对应尺寸的点位-{}", qzzPoint); if (qzzPoint.size() == 0) { stepErrorInfo.add("没有可拔轴的点位。"); //若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可 // 调用ACS滚条气涨轴下来 - if (!toAcsOutShaft(qzzSize,location, empty)) { + if (!toAcsOutShaft(needPlans, plans, qzzSize,location, empty)) { log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); stepErrorInfo.add("呼叫出轴失败-穿拔轴" + empty.getPoint_code() + "不进行套轴,跳过!"); return; } // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 saveCutPlanMessage(empty, needPlans, qzzSize); - toCallAgvMovePaperTube(needPlans, location, empty, plans); +// toCallAgvMovePaperTube(needPlans, location, empty, plans); return; } // 查找一条没任务的点位 - BstIvtCutpointivt startPoint = qzzPoint.get(0); - // 当前纸管的规格信息 - String oldQzzNo = ObjectUtil.isNotEmpty(startPoint.getQzz_no1()) - ? startPoint.getQzz_no1() : startPoint.getQzz_no2(); - if (oldQzzNo == null) { - log.error("当前气胀轴的编码为空!"); - stepErrorInfo.add(startPoint.getPoint_code() + "的气胀轴编码为空,请检查..."); - return; - } - String startPointCode = ObjectUtil.isNotEmpty(startPoint.getQzz_no1()) - ? startPoint.getTruss_point_code1() : startPoint.getTruss_point_code2(); - if (startPointCode == null) { - log.error("当前点位的编码为空!"); - stepErrorInfo.add(startPoint.getPoint_code() + "的点位编码为空,检查A或B点位的信息是否正常"); - return; - } - // 如果A6寸 B3寸,则需要过滤到精确点位 - if (ObjectUtil.isNotEmpty(startPoint.getQzz_no1()) && ObjectUtil.isNotEmpty(startPoint.getQzz_no2())) { - // 获取需要的数据 - List aPlans = slittingproductionplanService.getByQzzNoByStatus(startPoint.getQzz_no1(), null); - List bPlans = slittingproductionplanService.getByQzzNoByStatus(startPoint.getQzz_no2(), null); - log.info("筛选得到的计划值:{},{}", aPlans, bPlans); - if (aPlans.size() > 0) { - PdmBiSlittingproductionplan aPlan = aPlans.get(0); - if (needPlan.getQzz_size().equals(aPlan.getQzz_size())) { - oldQzzNo = aPlan.getQzzno(); - startPointCode = startPoint.getTruss_point_code1(); - } else { - if (bPlans.size() > 0) { - PdmBiSlittingproductionplan bPlan = bPlans.get(0); - if (needPlan.getQzz_size().equals(bPlan.getQzz_size())) { - oldQzzNo = bPlan.getQzzno(); - startPointCode = startPoint.getTruss_point_code2(); - } - } - } - } - } + CutpointAirShhaftDto startPoint = qzzPoint.get(0); + String oldQzzNo = startPoint.getQzz_no(); // 创建任务 JSONObject param = new JSONObject(); - param.put("point_code1", startPointCode); + param.put("point_code1", startPoint.getQzz_point()); param.put("point_code2", empty.getPoint_code()); param.put("vehicle_code", oldQzzNo); // 气胀轴号 @@ -373,22 +338,34 @@ public class AutoCallAirShaftTask extends Prun { param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴缓存<>穿拔轴位")); param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); param.put("qzz_size", needPlan.getQzz_size()); - // 所需的纸管规格 - SlitterTaskUtil.putNeedPaperSpec(param, needPlans); - // 设置是否套轴:1:正常套轴,2:待定(到后面还会申请套轴) - setIsSleeveShaft(param); // 最多两条 List oldPlans = slittingproductionplanService.getByQzzNo(oldQzzNo); if (oldPlans.size() == 0) { log.warn("当前气胀轴编码{},找不到对应的计划", oldQzzNo); // 把点位禁用 - startPoint.setIs_used("0"); - startPoint.setRemark("气胀轴" + oldQzzNo + "的计划不存在,无效点位自动禁用。"); - startPoint.setUpdate_time(DateUtil.now()); - bcutpointivtService.updateById(startPoint); + bcutpointivtService.update(new LambdaUpdateWrapper() + .set(BstIvtCutpointivt::getIs_used, "0") + .set(BstIvtCutpointivt::getRemark, "气胀轴" + oldQzzNo + "的计划不存在,无效点位自动禁用。") + .set(BstIvtCutpointivt::getUpdate_time, DateUtil.now()) + .eq(BstIvtCutpointivt::getIvt_id, startPoint.getIvt_id())); stepErrorInfo.add("当前气胀轴编码{" + oldQzzNo + "},找不到对应的计划, 点位" + startPoint.getPoint_code() + "已被系统禁用。"); return; } + // 0.1和0.2有先后顺序 + // 0.1 所需的纸管规格 + SlitterTaskUtil.putNeedPaperSpec(param, needPlans); + // 0.2 设置是否套轴:1:正常套轴,2:待定(到后面还会申请套轴) + setIsSleeveShaft(param); + Integer movePaperTube = toCallAgvMovePaperTube(needPlans, location, empty, plans); + if (movePaperTube == 2) { + stepErrorInfo.add("桁架下的3个位置均有任务...先只做拔轴任务..."); + makePullShaft(empty, specification); + return; + } + if (movePaperTube == 1) { + skipTheSameTubePlans(needPlans); + return; + } // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 saveCutPlanMessage(empty, needPlans, qzzSize); SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans); @@ -397,7 +374,6 @@ public class AutoCallAirShaftTask extends Prun { // 拔管数量 param.put("pullCount", oldPlans.size()); param.put("containers", oldPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); - toCallAgvMovePaperTube(needPlans, location, empty, plans); trussCallAirShaftTask.createTask(param); // 将分切计划is_paper_ok 1(纸管已经准备好) -> 2(已经套轴) needPlans.forEach(p -> { @@ -449,6 +425,9 @@ public class AutoCallAirShaftTask extends Prun { * @return */ public boolean havaEmptyShaft(SlitterPlanDistinctDto planD, BstIvtShafttubeivt empty) { + if (true) { + return true; + } String qzzSize = planD.getQzz_size(); String qzzGeneration = planD.getQzz_generation(); String location = empty.getPoint_location(); @@ -524,6 +503,41 @@ public class AutoCallAirShaftTask extends Prun { } } + /** + * 跳过跟当前套轴计划一样的管芯的分切计划 + * @param needPlans 当前能套轴的计划 + */ + public void skipTheSameTubePlans(List needPlans) { + stepErrorInfo.add("批量将AGV搬运的管芯设置95状态..."); + List tubes = needPlans.stream().map(plan -> { + if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) { + return plan.getPaper_tube_material(); + } else { + return plan.getFRP_material(); + } + }).distinct().collect(Collectors.toList()); + // 批量设置 + List list = slittingproductionplanService.list(new LambdaQueryWrapper() + .eq(PdmBiSlittingproductionplan::getStatus, "01") + .eq(PdmBiSlittingproductionplan::getIs_child_tz_ok, "0") + .eq(PdmBiSlittingproductionplan::getIs_paper_ok, "1") + .eq(PdmBiSlittingproductionplan::getIs_call, "1") + .eq(PdmBiSlittingproductionplan::getIs_delete, "0") + .and(la2 -> la2.in(PdmBiSlittingproductionplan::getPaper_tube_material, tubes) + .or() + .in(PdmBiSlittingproductionplan::getFRP_material, tubes)) + ); + if (list.size() > 0) { + for (PdmBiSlittingproductionplan p : list) { + p.setIs_paper_ok("95"); + p.setUpdate_optname("定时任务"); + p.setUpdate_time(DateUtil.now()); + } + slittingproductionplanService.updateBatchById(list); + } + stepErrorInfo.add("批量将AGV搬运的管芯设置95状态完毕,本次不套轴..."); + } + /** *

呼叫AGV更换纸管

*

默认双管芯尺寸一致 @@ -531,8 +545,9 @@ public class AutoCallAirShaftTask extends Prun { * @param location 位置 * @param empty 穿拔轴点位 * @param plans 总计划 + * @return 0: false, 1: true, 2: 只作拔轴 */ - public Boolean toCallAgvMovePaperTube(List needPlans, String location, BstIvtShafttubeivt empty, List plans) { + public Integer toCallAgvMovePaperTube(List needPlans, String location, BstIvtShafttubeivt empty, List plans) { // 1 前置参数获取 // 最多两根 List tubes = needPlans.stream().map(plan -> { @@ -569,7 +584,7 @@ public class AutoCallAirShaftTask extends Prun { int sum = useList.stream().mapToInt(BstIvtStockingivt::getQty).sum(); // 说明三个位置中有包含此纸管的数据。 if (sum >= tubes.size() + otherDeviceTubeSize) { - return true; + return 0; } // 如果不够,就计算还缺多少个 int needTemp = tubes.size() + otherDeviceTubeSize - sum; @@ -597,7 +612,7 @@ public class AutoCallAirShaftTask extends Prun { if (sumQty >= needQuantity ) { stepErrorInfo.add("AGV正在搬运管芯..."); log.info("AGV正在搬运管芯..."); - return true; + return 1; } // 如果不够,就计算还缺多少个 int needTemp = needQuantity - sumQty; @@ -639,7 +654,7 @@ public class AutoCallAirShaftTask extends Prun { "点位[" + empty.getPoint_name() + "]无法从备货区找到纸管信息", NoticeTypeEnum.EXCEPTION.getCode()); stepErrorInfo.add("备货区找不到[" + tubes.get(0) + "]的纸管信息"); - return false; + return 0; } // 3 找到就创建AGV搬运任务 // 筛选3个位置中数量最少的搬走, 如果是空位,直接搬运过来 @@ -664,7 +679,11 @@ public class AutoCallAirShaftTask extends Prun { // 3.1 空位就直接创建搬过来的任务 // 如果有空位,第一个肯定是空位,所以获取第一个元素判断状态即可canMovePointList BhTubeMovePointDto needMovePoint = canMovePointList.size() > 0 ? canMovePointList.get(0) : null; - if (ObjectUtil.isEmpty(needMovePoint) || "0".equals(needMovePoint.getIvt_status())) { + if (needMovePoint == null) { + // 如果三个位置都被占用,只做拔轴 + return 2; + } + if ("0".equals(needMovePoint.getIvt_status())) { // 直接搬过来即可 JSONObject param = new JSONObject(); param.put("point_code1", needPoint.getPoint_code()); @@ -680,7 +699,7 @@ public class AutoCallAirShaftTask extends Prun { doSavePaperInfos(paperList, param); stockAreaCallTubeTask.createTask(param); stepErrorInfo.add("备货区正在搬运管芯过来,托盘号:[" + needPoint.getVehicle_code() + "]。"); - return true; + return 1; } // 3.2 判断是否有单独拉出去的任务,有的话直接拉过来。 List stockingivts = stockingivtService.getMoveTaskPoints(); @@ -701,7 +720,7 @@ public class AutoCallAirShaftTask extends Prun { doSavePaperInfos(paperList, param); stockAreaCallTubeTask.createTask(param); stepErrorInfo.add("备货区正在搬运管芯过来,托盘号:[" + needPoint.getVehicle_code() + "]。"); - return true; + return 1; } // 3.3 排序,获取最后的起点,需要根据下一趟需要套轴的管芯规格来进行过滤 if (plans.size() > 0) { @@ -742,11 +761,8 @@ public class AutoCallAirShaftTask extends Prun { // 3.4 查找一个没有任务的空位(创建交换任务) List list = stockingivtService.getEmptyPointNotTask(location, "0"); if (list.size() == 0) { - noticeService.createNotice("备货区找不到空位置搬运", - "点位[" + empty.getPoint_name() + "]无法从备货区找到空位", - NoticeTypeEnum.EXCEPTION.getCode()); - stepErrorInfo.add("备货区找不到空位置搬运。"); - return false; + stepErrorInfo.add("备货区找不到空位置搬运, 请检查备货区点位情况!"); + throw new RuntimeException("备货区找不到空位置搬运, 请检查备货区点位情况!"); } BstIvtStockingivt endPoint = list.get(0); // 创建任务 -> HINT: 在此任务完成之后会调用搬回来的任务,因此任务中要记录需要搬运的点位放在任务请求参数中。 @@ -763,7 +779,7 @@ public class AutoCallAirShaftTask extends Prun { param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); stockAreaSendVehicleTask.createTask(param); stepErrorInfo.add("备货区交换托盘中...请等待。"); - return true; + return 1; } @@ -774,7 +790,12 @@ public class AutoCallAirShaftTask extends Prun { * @param location 位置:上半部分还是下半部分 * @param empty 套拔轴点位 */ - private Boolean toAcsOutShaft(String qzzSize, String location, BstIvtShafttubeivt empty) { + private Boolean toAcsOutShaft(List needPlans, List plans, String qzzSize, String location, BstIvtShafttubeivt empty) { + Integer movePaperTube = toCallAgvMovePaperTube(needPlans, location, empty, plans); + if (movePaperTube != 0) { + skipTheSameTubePlans(needPlans); + return false; + } // 需要区分上下 List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize ,empty.getPoint_code(), location); if (shafttubeivts.size() == 0) { @@ -913,14 +934,15 @@ public class AutoCallAirShaftTask extends Prun { //查询套轴缓存位哦:point_type=1 List notTaskPoints = bcutpointivtService.getAreaNotTaskPointByTcQzzPoint(empty.getPoint_location()); //所有TC暂存位有卷的:Truss_point_code1,Truss_point_code2有任务的 - //根据point_code排序 if (notTaskPoints.size() == 0) { stepErrorInfo.add("只进行拔轴,没有可以拔轴的点位。"); return; } + // 根据point_code排序 保证一个架子的先清空 + List notTaskPointsSort = sortByPointEmpty(notTaskPoints); // 筛选一个满足的位置:3寸:看代数4/5;6寸直接 //判断气胀轴代 - CutpointAirShhaftDto cutpointivt = notTaskPoints.stream() + CutpointAirShhaftDto cutpointivt = notTaskPointsSort.stream() .sorted(Comparator.comparingLong(CutpointAirShhaftDto::getIvt_id)) .filter(cut -> "6".equals(cut.getQzz_size()) || ("3".equals(cut.getQzz_size()) && specification.equals(cut.getQzz_generation()))) @@ -971,6 +993,20 @@ public class AutoCallAirShaftTask extends Prun { stepErrorInfo.add("只做拔轴,拔轴任务已经创建..."); } + /** + * 排序 + * @param notTaskPoints + * @return + */ + private List sortByPointEmpty(List notTaskPoints) { + Map countMap = notTaskPoints.stream() + .collect(Collectors.groupingBy(CutpointAirShhaftDto::getPoint_code, Collectors.counting())); + return notTaskPoints.stream() + .sorted(Comparator.comparing((CutpointAirShhaftDto dto) -> countMap.get(dto.getPoint_code())) + .thenComparing(CutpointAirShhaftDto::getPoint_code)) + .collect(Collectors.toList()); + } + /** * 检查是否有同设备的任务 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 2df88396b..d1e589727 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -2604,56 +2604,57 @@ public class SlitterServiceImpl implements SlitterService { res.put("message", "创建AGV任务成功!"); // param: point_code String pointCode = param.getString("point_code"); - //缓存A气胀轴规格 3-4 三寸四代 - String size1 = param.getString("size1"); - //缓存B气胀轴规格 - String size2 = param.getString("size2"); + RLock lock = redissonClient.getLock("doAcsFinishLoadShaft"); + boolean tryLock; + try { + tryLock = lock.tryLock(0, TimeUnit.SECONDS); + } catch (InterruptedException e) { + throw new BadRequestException("获取锁异常"); + } + try { + if (tryLock) { + //缓存A气胀轴规格 3-4 三寸四代 + String size1 = param.getString("size1"); + //缓存B气胀轴规格 + String size2 = param.getString("size2"); - BstIvtCutpointivt point = bcutpointivtService.getPintByAgvCode(pointCode, false); - // 校验是否存在行架任务 - Boolean haveTaskByZcPoint = taskService.checkHaveTaskByZcPoint(point); - if (haveTaskByZcPoint) { - throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的行架任务!"); - } - // 校验是否存在agv任务 - List taskList = taskService.checkHaveTask(pointCode); - if (taskList.size() > 0) { - throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的agv任务!"); - } + BstIvtCutpointivt point = bcutpointivtService.getPintByAgvCode(pointCode, false); + // 校验是否存在行架任务 + Boolean haveTaskByZcPoint = taskService.checkHaveTaskByZcPoint(point); + if (haveTaskByZcPoint) { + throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的行架任务!"); + } + // 校验是否存在agv任务 + List taskList = taskService.checkHaveTask(pointCode); + if (taskList.size() > 0) { + throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的agv任务!"); + } - if (ObjectUtil.equals(point.getPoint_status(), "1")) { - // 如果是没货 - throw new BadRequestException("点位:" + point.getPoint_code() + "未检测有气胀轴,请先设置点位信息再触发!!"); - } - if (ObjectUtil.equals(point.getPoint_status(), "2")) { - // 如果是没货 - throw new BadRequestException("点位:" + point.getPoint_code() + "检测空气胀轴,请先清空点位信息再触发!!"); - } - if (ObjectUtil.equals(point.getPoint_status(), "3")) { - throw new BadRequestException("点位:" + point.getPoint_code() + "检测子卷,请先清空点位信息再触发!!"); - } - if (ObjectUtil.isNotEmpty(point.getQzz_no1()) || ObjectUtil.isNotEmpty(point.getQzz_no2())) { - throw new BadRequestException("点位:" + point.getPoint_code() + " 的气胀轴编码不为空,请先清空点位信息再触发!!"); - } - if (Objects.equals(point.getPoint_status(), "4") && ObjectUtil.isEmpty(point.getQzz_no1()) && ObjectUtil.isEmpty(point.getQzz_no2())) { + if (ObjectUtil.equals(point.getPoint_status(), "1")) { + // 如果是没货 + throw new BadRequestException("点位:" + point.getPoint_code() + "未检测有气胀轴,请先设置点位信息再触发!!"); + } + if (ObjectUtil.equals(point.getPoint_status(), "2")) { + // 如果是没货 + throw new BadRequestException("点位:" + point.getPoint_code() + "检测空气胀轴,请先清空点位信息再触发!!"); + } + if (ObjectUtil.equals(point.getPoint_status(), "3")) { + throw new BadRequestException("点位:" + point.getPoint_code() + "检测子卷,请先清空点位信息再触发!!"); + } + if (ObjectUtil.isNotEmpty(point.getQzz_no1()) || ObjectUtil.isNotEmpty(point.getQzz_no2())) { + throw new BadRequestException("点位:" + point.getPoint_code() + " 的气胀轴编码不为空,请先清空点位信息再触发!!"); + } + if (Objects.equals(point.getPoint_status(), "4") && ObjectUtil.isEmpty(point.getQzz_no1()) && ObjectUtil.isEmpty(point.getQzz_no2())) { - JSONObject taskParam = new JSONObject(); + JSONObject taskParam = new JSONObject(); + + // 获取内包间缓存位 + List areaEmptyNotTaskPoint = bcutpointivtService.getNBJCanUsePoint("1", "1", "0", "2"); + if (areaEmptyNotTaskPoint.size() <= 1) { + throw new BadRequestException("请求搬运失败,内包间没有可存放位置!"); + } + BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0); - // 获取内包间缓存位 - List areaEmptyNotTaskPoint = bcutpointivtService.getNBJCanUsePoint("1", "1", "0", "2"); - if (areaEmptyNotTaskPoint.size() <= 1) { - throw new BadRequestException("请求搬运失败,内包间没有可存放位置!"); - } - BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0); - RLock lock = redissonClient.getLock(endPoint.getPoint_code()); - boolean tryLock; - try { - tryLock = lock.tryLock(0, TimeUnit.SECONDS); - } catch (InterruptedException e) { - throw new BadRequestException("获取锁异常"); - } - try { - if (tryLock) { taskParam.put("point_code1", point.getPoint_code()); taskParam.put("point_code2", endPoint.getPoint_code()); if (ObjectUtil.isNotEmpty(size1)) { @@ -2668,13 +2669,14 @@ public class SlitterServiceImpl implements SlitterService { } else { throw new BadRequestException("系统繁忙,稍后在试!!"); } - } finally { - if (lock.isLocked() && lock.isHeldByCurrentThread()) { - lock.unlock(); - } + + } else { + throw new BadRequestException("点位:" + pointCode + "点位状态不对,请先设置点位信息再触发!!"); + } + } finally { + if (lock.isLocked() && lock.isHeldByCurrentThread()) { + lock.unlock(); } - } else { - throw new BadRequestException("点位:" + point.getPoint_code() + "点位状态不对,请先设置点位信息再触发!!"); } return res; } From 0e3f21c27ca3db4f760b6a33ade207b070aff9a6 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 9 Sep 2025 15:47:15 +0800 Subject: [PATCH 091/146] =?UTF-8?q?opt:=20=E5=8E=BB=E6=8E=89=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index e316887b5..0b8ca63d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -425,9 +425,6 @@ public class AutoCallAirShaftTask extends Prun { * @return */ public boolean havaEmptyShaft(SlitterPlanDistinctDto planD, BstIvtShafttubeivt empty) { - if (true) { - return true; - } String qzzSize = planD.getQzz_size(); String qzzGeneration = planD.getQzz_generation(); String location = empty.getPoint_location(); From 0fd2500e4f61d340fd8d1fde7f2003f92eb4734b Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 15 Sep 2025 09:31:04 +0800 Subject: [PATCH 092/146] =?UTF-8?q?opt=EF=BC=9A=E5=A4=87=E8=B4=A7=E5=8C=BA?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slitter/auto/AutoCallAirShaftTask.java | 48 ++++++++++++------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 0b8ca63d0..76778e9f3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -54,6 +54,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -701,23 +702,36 @@ public class AutoCallAirShaftTask extends Prun { // 3.2 判断是否有单独拉出去的任务,有的话直接拉过来。 List stockingivts = stockingivtService.getMoveTaskPoints(); if (CollectionUtil.isNotEmpty(stockingivts)) { - BstIvtStockingivt bstIvtStockingivt = stockingivts.get(0); - // 直接搬过来即可 - JSONObject param = new JSONObject(); - param.put("point_code1", needPoint.getPoint_code()); - param.put("point_code2", bstIvtStockingivt.getPoint_code()); - param.put("vehicle_code", needPoint.getVehicle_code()); - param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送纸管")); - param.put("task_id", "1".equals(flag) ? needPoint.getTask_id() : ""); - param.put("task_status", "1".equals(flag) ? TaskStatusEnum.SURE_START.getCode() : TaskStatusEnum.START_AND_POINT.getCode()); - // 存储纸管信息 - List paperList = mdPbPapervehicleService.list(new LambdaQueryWrapper() - .eq(MdPbPapervehicle::getVehicle_code, needPoint.getVehicle_code())); - doSavePaperInfos(paperList, param); - stockAreaCallTubeTask.createTask(param); - stepErrorInfo.add("备货区正在搬运管芯过来,托盘号:[" + needPoint.getVehicle_code() + "]。"); - return 1; + // 判断当前这个拉出去的点位有没有拉进来的任务 + BstIvtStockingivt bstIvtStockingivt = stockingivts.stream().filter(p -> { + int count = taskService.count(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, "07") + .eq(SchBaseTask::getIs_delete, "0") + .and(lam2 -> lam2.eq(SchBaseTask::getPoint_code2, p.getPoint_code()) + .or() + .eq(SchBaseTask::getPoint_code3, p.getPoint_code()))); + return count == 0; + }).findFirst().orElse(null); +// BstIvtStockingivt bstIvtStockingivt = stockingivts.get(0); + if (ObjectUtil.isNotEmpty(bstIvtStockingivt)) { + // 直接搬过来即可 + JSONObject param = new JSONObject(); + param.put("point_code1", needPoint.getPoint_code()); + param.put("point_code2", bstIvtStockingivt.getPoint_code()); + param.put("vehicle_code", needPoint.getVehicle_code()); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送纸管")); + param.put("task_id", "1".equals(flag) ? needPoint.getTask_id() : ""); + param.put("task_status", "1".equals(flag) ? TaskStatusEnum.SURE_START.getCode() : TaskStatusEnum.START_AND_POINT.getCode()); + // 存储纸管信息 + List paperList = mdPbPapervehicleService.list(new LambdaQueryWrapper() + .eq(MdPbPapervehicle::getVehicle_code, needPoint.getVehicle_code())); + doSavePaperInfos(paperList, param); + stockAreaCallTubeTask.createTask(param); + stepErrorInfo.add("备货区正在搬运管芯过来,托盘号:[" + needPoint.getVehicle_code() + "]。"); + return 1; + } + // 继续往下查询 } // 3.3 排序,获取最后的起点,需要根据下一趟需要套轴的管芯规格来进行过滤 if (plans.size() > 0) { From 78409838dc38cbde564f938bec563a3dbd27fd8f Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 15 Sep 2025 17:18:46 +0800 Subject: [PATCH 093/146] =?UTF-8?q?fix:=E5=BE=85=E6=A3=80=E5=8C=BA?= =?UTF-8?q?=E5=88=B0=E7=AE=A1=E5=88=B6=E5=8C=BA=E4=BB=BB=E5=8A=A1=E4=B8=8B?= =?UTF-8?q?=E5=8F=91=E4=BC=98=E5=8C=96=E3=80=81=E5=87=BA=E5=85=A5=E7=83=98?= =?UTF-8?q?=E7=AE=B1=E5=8E=BB=E9=99=A4=E6=8F=92=E5=85=A5=E5=88=B0=E8=A1=A8?= =?UTF-8?q?=E5=86=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auto/AutoSendDjqToGzq.java | 152 ++---------------- .../auto/AutoSendVehicleToKzj.java | 66 ++++++++ .../mps/service/impl/BakingServiceImpl.java | 4 +- .../wms/sch/manage/AutoIntoHotCacheTask.java | 4 +- 4 files changed, 82 insertions(+), 144 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java index 4638707fb..be472b8b3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendDjqToGzq.java @@ -33,7 +33,7 @@ import java.util.stream.Collectors; @Slf4j @Component @RequiredArgsConstructor -public class AutoSendDjqToGzq extends Prun{ +public class AutoSendDjqToGzq extends Prun { private final String THIS_CLASS = AutoSendDjqToGzq.class.getName(); @Resource @@ -54,7 +54,7 @@ public class AutoSendDjqToGzq extends Prun{ public void run() { try { this.sendDjqToGzq(); - }catch (Exception ex){ + } catch (Exception ex) { log.error(ex.getMessage()); } } @@ -65,35 +65,29 @@ public class AutoSendDjqToGzq extends Prun{ */ @SneakyThrows public void sendDjqToGzq() { - log.info(THIS_CLASS+"-待检区->管制区定时任务开始执行扫描。"); + log.info(THIS_CLASS + "-待检区->管制区定时任务开始执行扫描。"); RLock lock = redissonClient.getLock(THIS_CLASS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { //待检区有管制品且过滤未完成任务 - List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("管制品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("待检区->管制区")); - List djqPackageinfoivtList2 = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("管制品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("待检区->管制区")); + List djqPackageinfoivtList = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("管制品")); + // List djqPackageinfoivtList2 = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("管制品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("待检区->管制区")); if (CollectionUtils.isEmpty(djqPackageinfoivtList)) { return; } - if (!CollectionUtils.isEmpty(djqPackageinfoivtList2)){ - djqPackageinfoivtList.addAll(djqPackageinfoivtList2); - } //管制区有空位且过滤未完成任务 - List gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("待检区->管制区")); - //todo 新增NG卷放置临时管制区135136,只取空不补空 - List ivtLists = - gzqPackageinfoivtList.stream() - .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status())) - .collect(Collectors.toList()); - if (ObjectUtils.isEmpty(ivtLists)) { + List gzqPackageinfoivtList = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空")); + if (ObjectUtils.isEmpty(gzqPackageinfoivtList)) { log.info("待检区->管制区agv自动搬运任务暂无可用空位,子卷号为:" + djqPackageinfoivtList.get(0).getContainer_name()); throw new BadRequestException("待检区->管制区agv自动搬运任务暂无可用空位,子卷号为:" + djqPackageinfoivtList.get(0).getContainer_name()); } JSONObject task = new JSONObject(); - task.put("point_code2", ivtLists.get(0).getPoint_code()); + task.put("vehicle_code", djqPackageinfoivtList.get(0).getContainer_name()); + task.put("point_code1", djqPackageinfoivtList.get(0).getPoint_code()); + task.put("point_code2", gzqPackageinfoivtList.get(0).getPoint_code()); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->管制区")); - createTask(djqPackageinfoivtList, task); + gzqTask.createTask(task); } else { log.info("待检区->管制区任务正在创建被锁住。"); } @@ -104,128 +98,4 @@ public class AutoSendDjqToGzq extends Prun{ } } - - - - /** - * 创建任务 - */ - private void createTask(List djqPackageinfoivtList, JSONObject task) { - // 浅货位和深货位 - Map> ivtMap = djqPackageinfoivtList.stream() - .collect(Collectors.partitioningBy(r -> r.getDepth().equals(PackageInfoIvtEnum.DEPTH_TYPE.code("浅货位")))); - List shallowIvtList = ivtMap.get(true); - List deepIvtList = ivtMap.get(false); - if (ObjectUtils.isNotEmpty(shallowIvtList)) { - // 优先处理浅货位 - handleTaskForShallow(task, shallowIvtList.get(0)); - } else if (ObjectUtils.isNotEmpty(deepIvtList)) { - // 处理深货位 - handleTaskForDeep(task, deepIvtList.get(0)); - } - } - - /** - * 处理浅货位 - */ - private void handleTaskForShallow(JSONObject task, BstIvtPackageinfoivt shallowIvt) { - task.put("vehicle_code", shallowIvt.getContainer_name()); - task.put("point_code1", shallowIvt.getPoint_code()); - gzqTask.createTask(task); - } - - /** - * 处理深货位 - */ - private void handleTaskForDeep(JSONObject task, BstIvtPackageinfoivt deepIvt) { - String pointCode1 = deepIvt.getPoint_code(); - List groupIvtList = packageinfoivtService.list(new LambdaQueryWrapper() - .eq(BstIvtPackageinfoivt::getCol_num, deepIvt.getCol_num())) - .stream() - .filter(r -> r.getDepth().equals(PackageInfoIvtEnum.DEPTH_TYPE.code("浅货位"))) - .collect(Collectors.toList()); - if (ObjectUtils.isNotEmpty(groupIvtList)) { - BstIvtPackageinfoivt shallowIvt = groupIvtList.get(0); - //处理深货位对应浅货位的状态 - handleShallowIvtStatus(task, deepIvt, shallowIvt, pointCode1); - } - } - - - /** - * 处理深货位对应浅货位的状态 - */ - private void handleShallowIvtStatus(JSONObject task, BstIvtPackageinfoivt deepIvt, BstIvtPackageinfoivt shallowIvt, String pointCode1) { - Set pointCodes2 = Collections.singleton(shallowIvt.getPoint_code()); - //浅货位状态为空,查询该货位是否存在运行中的放货任务 - //如果不存在,则直接创建主任务 - //如果存在,则1.建立确定起点的主任务,2.运行中的放货任务完成后,再让下发执行主任务 - //浅货位状态不为空,查询该货位是否存在运行中的取货任务 - //如果不存在,1.创建主任务不下发;2.创建移库任务,绑定主任务关联关系task_group_id,等待移库任务完成后,再下发主任务 - //如果存在,不需要移库,绑定与主任务关联关系task_group_id,等待运行中的取货任务完成后,再让下发执行主任务 - List existTaskList = shallowIvt.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空")) - ? bstIvtPackageinfoivtMapper.getTaskList(null, pointCodes2, null, null) - : bstIvtPackageinfoivtMapper.getTaskList(pointCodes2, null, null, null); - //创建搬运任务 - task.put("vehicle_code", deepIvt.getContainer_name()); - task.put("point_code1", pointCode1); - //不存在搬运任务 - if (ObjectUtils.isEmpty(existTaskList)) { - //浅库位状态为空 - if (shallowIvt.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))) { - gzqTask.createTask(task); - } else { - createMainTask(task, deepIvt, shallowIvt, pointCode1, null); - } - //存在搬运任务 - } else { - //浅库位状态为空 - if (shallowIvt.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))) { - createMainTask(task, deepIvt, shallowIvt, pointCode1, existTaskList.get(0)); - } else { - //浅库位状态不为空 - task.put("task_status", TaskStatusEnum.SURE_END.getCode()); - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, existTaskList.get(0).getTask_id()); - updateWrapper.set(SchBaseTask::getTask_group_id, gzqTask.createTask(task)); - taskService.update(null, updateWrapper); - } - } - } - - /** - * 创建搬运和移库任务 - */ - private void createMainTask(JSONObject task, BstIvtPackageinfoivt deepIvt, BstIvtPackageinfoivt shallowIvt, String pointCode1, SchBaseTask existTask) { - String taskId; - String shiftingTaskId; - task.put("vehicle_code", deepIvt.getContainer_name()); - task.put("point_code1", pointCode1); - task.put("task_status", TaskStatusEnum.SURE_END.getCode()); - taskId = gzqTask.createTask(task); - //获取移库任务目标点 - String pointCode4 = packageinfoivtService.getDjqShiftingPoint(shallowIvt,true); - JSONObject task1 = new JSONObject(); - if (existTask != null) { - task1.put("task_status", StringUtils.isBlank(pointCode4) ? TaskStatusEnum.SURE_START.getCode() : TaskStatusEnum.SURE_END.getCode()); - } else { - task1.put("task_status", StringUtils.isBlank(pointCode4) ? TaskStatusEnum.SURE_START.getCode() : TaskStatusEnum.START_AND_POINT.getCode()); - } - task1.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); - task1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区移库任务")); - task1.put("vehicle_code", shallowIvt.getContainer_name()); - task1.put("point_code1", shallowIvt.getPoint_code()); - task1.put("point_code2", pointCode4); - task1.put("task_group_id", taskId); - task1.put("material_code", shallowIvt.getIvt_status()); - shiftingTaskId = shiftingTask.createTask(task1); - if (existTask != null) { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, existTask.getTask_id()); - updateWrapper.set(SchBaseTask::getTask_group_id, shiftingTaskId); - taskService.update(null, updateWrapper); - } - } - - - } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java index 46eec179c..406344abe 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java @@ -16,6 +16,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.first_floor_area.DjqToKzjhcwTask; import org.nl.b_lms.sch.tasks.first_floor_area.GzqToKzjhcwTask; +import org.nl.b_lms.sch.tasks.first_floor_area.SendDjqKzjTask; import org.nl.b_lms.sch.tasks.first_floor_area.ShiftingTask; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; @@ -53,11 +54,14 @@ public class AutoSendVehicleToKzj extends Prun{ private ShiftingTask shiftingTask; @Resource private IschBaseTaskService taskService; + @Resource + private SendDjqKzjTask sendDjqKzjTask; //待检区或管制区->空载具缓存位补空 public void run() { try { this.toKzjHcw(); + this.sendVehicleToDjqOrGzq(IOSEnum.IS_NOTANDYES.code("否"), null); }catch (Exception ex){ log.error(ex.getMessage()); } @@ -82,6 +86,17 @@ public class AutoSendVehicleToKzj extends Prun{ if (existTask.size() <= 1) { List empPoints = this.packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空")); List vehiclePoints = this.packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具")); + //如果待检区没有可用的空载具 + if (CollectionUtils.isEmpty(vehiclePoints)){ + List taskList = taskService.list(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(SchBaseTask::getTask_type, "010909")); + if (ObjectUtils.isEmpty(taskList)){ + vehiclePoints = packageinfoivtService + .selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具")); + } + } if (!CollectionUtils.isEmpty(empPoints) && !CollectionUtils.isEmpty(vehiclePoints) && existTask.size() < empPoints.size()) { //增加空洞判断 //车 04 05 06 @@ -111,6 +126,57 @@ public class AutoSendVehicleToKzj extends Prun{ } } + @SneakyThrows + public void sendVehicleToDjqOrGzq(String isCalling, String block) { + log.info(THIS_CLASS + "-装箱区->待检区或管制区补空任务开始执行扫描。"); + RLock lock = redissonClient.getLock("todjq"); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + if (isCalling.equals(IOSEnum.IS_NOTANDYES.code("否"))) { + //存在正在执行的行架任务 + List taskList = taskService.list(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(SchBaseTask::getTask_type, "010909")); + if (ObjectUtils.isNotEmpty(taskList)) { + log.warn("当前装箱区存在执行的行架任务"+taskList.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(","))); + return; + } + } + //存在装箱区有空载具的点位 + List zxqVehicleList = packageinfoivtService + .selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具")); + List djqEmpList = packageinfoivtService + .selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空")); + if (CollectionUtils.isEmpty(zxqVehicleList) || CollectionUtils.isEmpty(djqEmpList)) { + log.info(THIS_CLASS + "装箱区或待检区没有可用点位"); + return; + } + JSONObject task = new JSONObject(); + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); + task.put("point_code1", zxqVehicleList.get(0).getPoint_code()); + task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); + task.put("task_status", TaskStatusEnum.SURE_END.getCode()); + task.put("point_code2", djqEmpList.get(0).getPoint_code()); + try { + sendDjqKzjTask.createTask(task); + }catch (Exception ex){ + log.error(THIS_CLASS+"任务创建失败"+ex.getMessage()); + } + + } else { + log.info(THIS_CLASS + "装箱区搬空任务正在创建被锁住"); + } + } finally { + if (lock.isLocked() && lock.isHeldByCurrentThread()) { + lock.unlock(); + } + } + } + + + private void getPointCode(JSONObject task, String taskType) { List packageList; 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 f68add9e2..0d1e08ab3 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(); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java index ef6db9464..d41b80875 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java @@ -10,6 +10,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.first_floor_area.auto.AutoSendToZxq; import org.nl.modules.wql.WQL; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.sch.tasks.InCoolIvtTask; import org.nl.wms.sch.tasks.InHotTask; import org.redisson.api.RLock; @@ -54,7 +55,6 @@ public class AutoIntoHotCacheTask { log.info("烘箱对接位:{} 没找到暂存位!", task.getPoint_code1()); return; } - new InHotTask().immediateNotifyAcs(task.getTask_id()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code2(cache_jo.getString("point_code")); @@ -62,6 +62,8 @@ public class AutoIntoHotCacheTask { task.setUpdate_time(DateUtil.now()); task.setTask_type("010204"); taskService.updateById(task); + + SpringContextHolder.getBean(InHotTask.class).immediateNotifyAcs(task.getTask_id()); } } else { log.info("定时对B1入暂存任务被锁住。"); From cfd64e92e79b37a2a6e2297b3599aee70767a983 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 16 Sep 2025 14:19:35 +0800 Subject: [PATCH 094/146] =?UTF-8?q?opt=EF=BC=9A=E5=A5=97=E8=BD=B4=E3=80=81?= =?UTF-8?q?B2=E5=85=A5=E7=83=98=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...轴点位日志记录实时看板v3.html | 4 +-- .../slitter/auto/AutoCallAirShaftTask.java | 5 +++ .../mps/service/impl/BakingServiceImpl.java | 4 +-- .../wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql | 35 +++++++++++++++++++ 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html b/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html index 4f3a91983..60bfa33da 100644 --- a/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html +++ b/lms/nladmin-system/doc/套轴点位日志记录实时看板v3.html @@ -235,7 +235,7 @@ + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml index ce6856888..4d1cb13a7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml @@ -32,6 +32,7 @@ #{code} AND mp.qty > 0 + AND bs.point_type '2' AND bs.point_location = #{pointLocation} GROUP BY bs.point_code, bs.point_type From 6ae7704463babb8dbc6d186c1be6bfec6a865bce Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 23 Sep 2025 10:28:02 +0800 Subject: [PATCH 101/146] =?UTF-8?q?opt:=20=E7=A9=BA=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MdPbPapervehicleServiceImpl.java | 8 ++++++-- .../service/impl/BstIvtShafttubeivtServiceImpl.java | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java index 1e8a362c2..ad80667a7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.b_lms.bst.ivt.papervehicle.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -110,10 +112,12 @@ public class MdPbPapervehicleServiceImpl extends ServiceImpl getTubeCodesByVehicle(String vehicleCode) { LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); - lam.eq(MdPbPapervehicle::getVehicle_code, vehicleCode); + lam.eq(MdPbPapervehicle::getVehicle_code, vehicleCode) + .isNotNull(MdPbPapervehicle::getMaterial_code) + .ne(MdPbPapervehicle::getMaterial_code, ""); List list = list(lam); if (list.size() == 0) { - return null; + return new ArrayList<>(); } return list.stream().map(MdPbPapervehicle::getMaterial_code).distinct().collect(Collectors.toList()); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java index b5e7f8beb..d67cf84a6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java @@ -24,6 +24,7 @@ import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -109,7 +110,7 @@ public class BstIvtShafttubeivtServiceImpl extends ServiceImpl getAllByPointType(String type, boolean flag) { if (ObjectUtil.isEmpty(type)) { - return null; + return new ArrayList<>(); } LambdaQueryWrapper lam = new QueryWrapper().lambda(); lam.eq(BstIvtShafttubeivt::getPoint_type, type) From c9d6657060170553346265535c72be76d9ef943c Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 24 Sep 2025 10:12:27 +0800 Subject: [PATCH 102/146] =?UTF-8?q?fix:=E5=AD=90=E5=8D=B7=E4=B8=8B?= =?UTF-8?q?=E7=BA=BF=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(); From 2f79ccca13ea04917fc1164c1a3ca683fded2f8d Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 24 Sep 2025 17:47:50 +0800 Subject: [PATCH 103/146] =?UTF-8?q?fix:=E6=8D=A2=E6=A0=87=E5=87=BA?= =?UTF-8?q?=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/controller/VehicleTwoController.java | 7 + .../b_lms/pda/service/VehicleTwoService.java | 2 + .../service/impl/VehicleTwoServiceImpl.java | 177 +++++++++++++++--- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 16 +- .../storage_manage/ios/enums/IOSEnum.java | 4 +- .../impl/StIvtIostorinvOutServiceImpl.java | 15 +- 6 files changed, 187 insertions(+), 34 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java index d0538eeac..0e47b395a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java @@ -104,4 +104,11 @@ public class VehicleTwoController { .collect(Collectors.toCollection(JSONArray::new)); return new ResponseEntity<>(jsonArray, HttpStatus.OK); } + + @PostMapping("/relabel") + @Log("换标出库") + @SaIgnore + public ResponseEntity Relabel(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(vehicleTwoService.relabel(whereJson), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/VehicleTwoService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/VehicleTwoService.java index 92910b437..fdea4676d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/VehicleTwoService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/VehicleTwoService.java @@ -52,4 +52,6 @@ public interface VehicleTwoService { * @return :JSONObject:返回前端参数~ */ JSONObject reback(JSONObject whereJson); + + JSONObject relabel(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java index bbefbee98..5c9a6343a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java @@ -1,6 +1,8 @@ package org.nl.b_lms.pda.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -15,30 +17,36 @@ import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.TwoInEmpExcepTask; +import org.nl.b_lms.sch.tasks.TwoOutTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvdisMapper; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.impl.StIvtIostorinvOutServiceImpl; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBoxManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InVehicleManageService; import org.nl.common.enums.SpecEnum; +import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata.st.service.StructattrService; +import org.nl.wms.basedata.st.service.dto.StructattrDto; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.mes.service.LmsToMesService; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TranUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @Service @@ -69,8 +77,6 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { @Autowired private LmsToMesService lmsToMesService; - - /** * 点位服务 */ @@ -82,6 +88,15 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { @Autowired private IPdmBiContainerinboundService iPdmBiContainerinboundService; + @Autowired + private IStIvtIostorinvOutService iStIvtIostorinvOutService; + + @Autowired + private StIvtIostorinvdisMapper stIvtIostorinvdisMapper; + + @Autowired + private StructattrService structattrService; + @Override @Transactional(rollbackFor = Exception.class) public JSONObject vehicleIn(JSONObject whereJson) { @@ -183,9 +198,9 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { public JSONObject boxIn(JSONObject whereJson) { // 调用接口 String startCode = whereJson.getString("point_code"); - if ("MXRKW1".equals(startCode)){ + if ("MXRKW1".equals(startCode)) { inBoxManageService.boxBinVehicle(whereJson); - }else if ("THRKDJW1".equals(startCode)){ + } else if ("THRKDJW1".equals(startCode)) { inBoxManageService.boxBinVehicleByTHRK(whereJson); } JSONObject result = new JSONObject(); @@ -211,10 +226,11 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { String a = JSONObject.toJSONString(msg); List list = JSONObject.parseObject(a, List.class); Optional 称重 = list.stream().filter(m -> m.contains("称重")).findAny(); - if (称重.isPresent()){ + if (称重.isPresent()) { System.out.println(称重.get()); } } + @Override @Transactional(rollbackFor = Exception.class) public JSONObject reback(JSONObject whereJson) { @@ -223,25 +239,25 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { String bill_type = whereJson.getString("bill_type"); whereJson.put("material_barcode", whereJson.getString("box_no")); whereJson.put("device_code", whereJson.getString("point_code")); - if ("RK1002".equals(whereJson.getString("point_code"))){ + if ("RK1002".equals(whereJson.getString("point_code"))) { List list = ischBaseTaskService.list(new QueryWrapper() .select("task_id") .eq("point_code2", "RK1004") .eq("task_type", "010706") .eq("is_delete", "0") .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (!CollectionUtils.isEmpty(list)){ - throw new BadRequestException("稍后再试,异常口存在正在执行的任务"+ list.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); + if (!CollectionUtils.isEmpty(list)) { + throw new BadRequestException("稍后再试,异常口存在正在执行的任务" + list.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); } Param forceWeight = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("force_weight"); - if (forceWeight!=null && "1".equals(forceWeight.getValue())){ + if (forceWeight != null && "1".equals(forceWeight.getValue())) { PdmBiContainerinbound one = iPdmBiContainerinboundService.getOne(new QueryWrapper() .eq("box", whereJson.getString("box_no"))); - if (one!=null && !StringUtils.isEmpty(one.getRemark())){ + if (one != null && !StringUtils.isEmpty(one.getRemark())) { List remark = JSONObject.parseObject(one.getRemark(), List.class); Optional 称重 = remark.stream().filter(m -> m.contains("称重")).findAny(); - if (称重.isPresent()){ - throw new BadRequestException("开启称重强制校验"+称重.get()); + if (称重.isPresent()) { + throw new BadRequestException("开启称重强制校验" + 称重.get()); } } } @@ -254,12 +270,21 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { whereJson.put("bill_type", IOSEnum.IN_TYPE.code("生产入库")); } else if (bill_type.equals("0009")) { whereJson.put("bill_type", IOSEnum.IN_TYPE.code("手工入库")); + } else if (bill_type.equals("0012")) { + whereJson.put("bill_type", IOSEnum.IN_TYPE.code("换标入库")); } whereJson.put("box_no", whereJson.getString("box_no")); JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("material_barcode") + "' AND status in ('0','1')").getResultJSONArray(0); if (ObjectUtil.isEmpty(resultJSONArray)) { throw new BadRequestException("未查询到子卷包装信息!"); } + String sub_type = resultJSONArray.getJSONObject(0).getString("sub_type"); + if (ObjectUtil.isNotEmpty(sub_type) && sub_type.equals("9") && !bill_type.equals("0012")) { + throw new BadRequestException("当前木箱是换标进行出库的,只能进行换标入库!"); + } + if ((ObjectUtil.isEmpty(sub_type) || !sub_type.equals("9")) && bill_type.equals("0012")) { + throw new BadRequestException("当前木箱不是换标进行出库的,不能进行换标入库!"); + } String material_barcode = ""; List subs = new ArrayList<>(); for (int i = 0; i < resultJSONArray.size(); i++) { @@ -305,30 +330,140 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { // 更新载具对应木箱信息 JSONObject jsonExt = extTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonExt)) { - throw new BadRequestException("载具不存在!"+whereJson.getString("vehicle_code")); + throw new BadRequestException("载具不存在!" + whereJson.getString("vehicle_code")); } int hasTask = ischBaseTaskService.count(new QueryWrapper() .eq("is_delete", "0") .eq("vehicle_code2", whereJson.getString("vehicle_code")) .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (hasTask>0){ - throw new BadRequestException("托盘"+whereJson.getString("vehicle_code")+"存在执行的任务"); + if (hasTask > 0) { + throw new BadRequestException("托盘" + whereJson.getString("vehicle_code") + "存在执行的任务"); } String pcsn = jsonExt.getString("pcsn"); - if (StringUtils.isNotEmpty(pcsn)){ + if (StringUtils.isNotEmpty(pcsn)) { JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0); if (stIvtStructattr != null && stIvtStructattr.size() > 0) { - throw new BadRequestException("当前托盘"+whereJson.getString("vehicle_code")+"已经绑定木箱"+pcsn); + throw new BadRequestException("当前托盘" + whereJson.getString("vehicle_code") + "已经绑定木箱" + pcsn); } } jsonExt.put("pcsn", whereJson.getString("box_no")); extTab.update(jsonExt); inBussManageService.inTask(whereJson); - PdmProductSpecServiceImpl.doRecord(SpecEnum.RK_YC,null,Boolean.TRUE,null,subs); + HashMap sub_map = new HashMap(); + sub_map.put("sub_type", "0"); + WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(sub_map, "package_box_sn = '" + whereJson.getString("box_no")+"'"); + PdmProductSpecServiceImpl.doRecord(SpecEnum.RK_YC, null, Boolean.TRUE, null, subs); JSONObject result = new JSONObject(); result.put("message", "入库成功!"); return result; } + @Override + public JSONObject relabel(JSONObject whereJson) { + String box_no = whereJson.getString("box_no"); + + JSONObject jsonMst = new JSONObject(); + jsonMst.put("detail_count", 1); + jsonMst.put("bill_status", "10"); + jsonMst.put("create_mode", "03"); + jsonMst.put("bill_type", "1012"); + jsonMst.put("biz_date", DateUtil.now()); + jsonMst.put("user", "sap"); + + JSONArray dtls = new JSONArray(); + if (StrUtil.isEmpty("package_box_sn")) { + throw new BadRequestException("输入的木箱号不能为空!"); + } + JSONObject sub_jo = WQLObject.getWQLObject("PDM_BI_SubPackageRelation").query("package_box_sn = '" + box_no + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(sub_jo)) { + throw new BadRequestException("LMS中不存在木箱号为【" + box_no + "】的包装关系"); + } + String container_name = sub_jo.getString("container_name"); + JSONObject struct_ivt = WQLObject.getWQLObject("st_ivt_structivt").query("pcsn = '" + container_name + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(struct_ivt)) { + throw new BadRequestException("子卷号为【" + container_name + "】的成品卷不存在或已经出库!"); + } else { + if (struct_ivt.getDoubleValue("frozen_qty") > 0) { + throw new BadRequestException("子卷号为【" + container_name + "】的成品卷已经被分配或出库中"); + } else { + JSONObject dtl = new JSONObject(); + //查询该物料 + JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + sub_jo.getString("product_name") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(mater_jo)) { + throw new BadRequestException("未查询到物料:" + sub_jo.getString("product_name") + ",信息!"); + } + dtl.put("material_id", mater_jo.getString("material_id")); + dtl.put("pcsn", container_name); + dtl.put("box_no", sub_jo.getString("package_box_sn")); + JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '" + mater_jo.getString("base_unit_id") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(unit)) { + throw new BadRequestException("未查询到物料计量单位:" + mater_jo.getString("base_unit_id") + ",信息!"); + } + dtl.put("qty_unit_id", unit.getString("measure_unit_id")); + dtl.put("qty_unit_name", unit.getString("unit_name")); + dtl.put("plan_qty", sub_jo.getString("net_weight")); + dtls.add(dtl); + } + } + + StructattrDto structCode = structattrService.findByCode(struct_ivt.getString("struct_code")); + jsonMst.put("stor_id", structCode.getStor_id()); + jsonMst.put("stor_code", structCode.getStor_code()); + jsonMst.put("stor_name", structCode.getStor_name()); + jsonMst.put("tableData", dtls); + if (!structCode.getSect_code().equals("BZC01")){ + throw new BadRequestException("只能针对兰州二期仓库的木箱进行换标出库!"); + } + String iostorinv_id = iStIvtIostorinvOutService.insertMst(jsonMst); + + //调用自动分配 + JSONObject out_jo = new JSONObject(); + out_jo.put("iostorinv_id", iostorinv_id); + out_jo.put("div_type", "1"); + iStIvtIostorinvOutService.allDiv(out_jo); + whereJson.put("iostorinv_id", iostorinv_id); + StIvtIostorinvOutServiceImpl bean = SpringContextHolder.getBean(StIvtIostorinvOutServiceImpl.class); + //调用下发任务逻辑 + ArrayList arr = new ArrayList<>(); + TranUtil.openTransaction((req, allTransactionConsumer) -> { + // 查询此明细所有未生成的分配明细 + List disDaoList = stIvtIostorinvdisMapper.getNotCreateDis(whereJson); + + if (ObjectUtil.isEmpty(disDaoList)) { + throw new BadRequestException("当前没有可设置的分配明细!"); + } + + /* + * 下发任务 + * 1.根据木箱 长、宽、高、订单号、物料分组 + * 2.相同木箱规格、订单号、物料的木箱一个任务组 + */ + // 定义一个函数,将需要分组的元素映射到一个建的集合里 + Function> compositeKey = row -> + Arrays.asList(row.getString("box_length"), row.getString("box_width"), + row.getString("box_high"), row.getString("sale_order_name"), + row.getString("material_id") + ); + + Map, List> groupingDisMap = + disDaoList.stream().collect(Collectors.groupingBy(compositeKey, Collectors.toList())); + + for (List disLikeList : groupingDisMap.values()) { + // 调用任务生成处理 + List taskMangeList = bean.createTaskMange2(disLikeList, iostorinv_id, allTransactionConsumer); + + // 创建任务并下发一组任务 + bean.createTask2(taskMangeList, disLikeList, "RK1003", allTransactionConsumer); + + allTransactionConsumer.accept("finish"); + } + return arr; + }, new JSONArray()); + SpringContextHolder.getBean(TwoOutTask.class).immediateNotifyAcs(null); + + JSONObject result = new JSONObject(); + result.put("message", "出库成功!"); + return result; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java index 3ad577019..ffda475e2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java @@ -197,13 +197,15 @@ public class TwoOutTask extends AbstractAcsTask { jsonExt.put("inv_code", ""); attrTab.update(jsonExt); } - JSONObject jsonParam = new JSONObject(); - jsonParam.put("device_code",jsonTask.getString("point_code2")); - jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code")); - jsonParam.put("task_group_id",jsonTask.getString("task_group_id")); - jsonParam.put("vehicle_type",jsonTask.getJSONObject("request_param").getString("containerType")); - LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); - bean1.createHeapTask(jsonParam); + if (!jsonTask.getString("point_code2").equals("RK1003")){ + JSONObject jsonParam = new JSONObject(); + jsonParam.put("device_code",jsonTask.getString("point_code2")); + jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code")); + jsonParam.put("task_group_id",jsonTask.getString("task_group_id")); + jsonParam.put("vehicle_type",jsonTask.getJSONObject("request_param").getString("containerType")); + LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); + bean1.createHeapTask(jsonParam); + } // 判断此任务组是否全部完成 JSONArray resultJSONArray = taskTab.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "' and handle_class = '"+THIS_CLASS+"'") .getResultJSONArray(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java index 6de79e0a5..610ee8ec5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java @@ -37,13 +37,13 @@ public enum IOSEnum { //入库单据类型 IN_TYPE(MapOf.of("生产入库", "0001", "退货入库", "0002", "报废入库", "0003", "调拨入库", "0004", - "拆箱入库", "0005", "返检入库", "0006", "改切入库", "0007", "手工入库", "0009" + "拆箱入库", "0005", "返检入库", "0006", "改切入库", "0007", "手工入库", "0009", "换标入库", "0012" )), //出库单据类型 OUT_TYPE(MapOf.of("发货出库", "1001", "改切出库", "1003", "调拨出库", "1004", "拆箱出库", "1005", "返检出库", "1006", "超期报废", "1007", "退货报废", "1008", "质量问题报废", "1010", "其他报废", "1002", - "手工出库", "1009","管控出库", "1099" + "手工出库", "1009","管控出库", "1099","换标出库", "1012" )), //移库单据类型 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index 54775a766..3b3250612 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -925,12 +925,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl 生成任务的集合 */ - private List createTaskMange2(List disLikeList, String iostorinv_id, Consumer allTransactionConsumer) { + public List createTaskMange2(List disLikeList, String iostorinv_id, Consumer allTransactionConsumer) { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); @@ -1781,7 +1785,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl taskMangeList, List disLikeList, String point_code, Consumer allTransactionConsumer) { + public void createTask2(List taskMangeList, List disLikeList, String point_code, Consumer allTransactionConsumer) { // 任务表 WQLObject taskService = WQLObject.getWQLObject("sch_base_task"); // 点位表 @@ -1875,6 +1879,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl Date: Wed, 24 Sep 2025 20:20:43 +0800 Subject: [PATCH 104/146] =?UTF-8?q?fix:=E4=B8=80=E6=AC=A1=E4=B8=8B?= =?UTF-8?q?=E5=8F=91=E4=B8=A4=E4=B8=AA=E7=A9=BA=E8=BD=BD=E5=85=B7=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=B0=E5=AD=90=E5=8D=B7=E4=B8=8B=E7=BA=BF=E6=A1=81?= =?UTF-8?q?=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auto/AutoSendVehicleToKzj.java | 51 +++++++++++++------ 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java index 406344abe..ba3d7b381 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java @@ -101,22 +101,43 @@ public class AutoSendVehicleToKzj extends Prun{ //增加空洞判断 //车 04 05 06 //☒☒口 ☒口☒ ☒口口: - BstIvtPackageinfoivt disPoint = empPoints.get(0); - int count = packageinfoivtService.count(new QueryWrapper() - .lt("sort_seq", disPoint.getSort_seq()) - .eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) - .eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具"))); - if (count>0){ - log.warn("当前点位存在空洞的情况"+disPoint.getPoint_code()); - return; + if (existTask.size()==0 && empPoints.size() > 1 && vehiclePoints.size() > 1) { + for (int i = 0; i < 2; i++) { + BstIvtPackageinfoivt disPoint = empPoints.get(i); + int count = packageinfoivtService.count(new QueryWrapper() + .lt("sort_seq", disPoint.getSort_seq()) + .eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) + .eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具"))); + if (count>0){ + log.warn("当前点位存在空洞的情况"+disPoint.getPoint_code()); + return; + } + JSONObject task = new JSONObject(); + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); + task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); + task.put("point_code1", vehiclePoints.get(i).getPoint_code()); + task.put("point_code2", this.packageinfoivtService.getWaitPoint(disPoint.getBlock(), disPoint.getWait_point_type())); + task.put("point_code3", disPoint.getPoint_code()); + this.djqToKzjhcwTask.createTask(task); + } + }else { + BstIvtPackageinfoivt disPoint = empPoints.get(0); + int count = packageinfoivtService.count(new QueryWrapper() + .lt("sort_seq", disPoint.getSort_seq()) + .eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) + .eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具"))); + if (count>0){ + log.warn("当前点位存在空洞的情况"+disPoint.getPoint_code()); + return; + } + JSONObject task = new JSONObject(); + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); + task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); + task.put("point_code1", vehiclePoints.get(0).getPoint_code()); + task.put("point_code2", this.packageinfoivtService.getWaitPoint(disPoint.getBlock(), disPoint.getWait_point_type())); + task.put("point_code3", disPoint.getPoint_code()); + this.djqToKzjhcwTask.createTask(task); } - JSONObject task = new JSONObject(); - task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); - task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); - task.put("point_code1", vehiclePoints.get(0).getPoint_code()); - task.put("point_code2", this.packageinfoivtService.getWaitPoint(disPoint.getBlock(), disPoint.getWait_point_type())); - task.put("point_code3", disPoint.getPoint_code()); - this.djqToKzjhcwTask.createTask(task); } } } finally { From f2fa6fbb0929a15f871f080b0f07f983c3fee34e Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 26 Sep 2025 13:32:50 +0800 Subject: [PATCH 105/146] =?UTF-8?q?opt:=20=E5=A5=97=E8=BD=B4=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doc/套轴点位日志记录实时看板v4.html | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/doc/套轴点位日志记录实时看板v4.html b/lms/nladmin-system/doc/套轴点位日志记录实时看板v4.html index 349c45224..73d2b0054 100644 --- a/lms/nladmin-system/doc/套轴点位日志记录实时看板v4.html +++ b/lms/nladmin-system/doc/套轴点位日志记录实时看板v4.html @@ -405,7 +405,13 @@ let statusText = '已完成'; if (item.status === '01') { - statusText = '准备套轴'; + if (item.is_paper_ok === '2') { + statusText = '等待配送'; + } else if(item.is_paper_ok === '3') { + statusText = '套轴执行中'; + } else { + statusText = '准备套轴'; + } } else if (item.status === '02') { statusText = '正在配送'; } else if (item.status === '03') { @@ -554,7 +560,7 @@ // 正则表达式:匹配10位字符,第一个是字母,第四第五是FQ const regex = /\b[A-Za-z][A-Za-z0-9]{2}FQ[A-Za-z0-9]{5}\b/g; const matches = text.match(regex); - + // 去除重复的设备ID return matches ? [...new Set(matches)] : []; } From 56ebd7734f3c93476762bf4fc274af2f0534147b Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Sun, 28 Sep 2025 10:06:41 +0800 Subject: [PATCH 106/146] =?UTF-8?q?opt:=20=E7=AE=A1=E9=87=8D=E7=B2=BE?= =?UTF-8?q?=E5=BA=A62?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tasks/slitter/service/impl/SlitterServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 32dbaaa55..8e111ec99 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpStatus; import com.alibaba.fastjson.JSONArray; @@ -316,9 +317,9 @@ public class SlitterServiceImpl implements SlitterService { if (tryLock) { log.info("ACS申请套管完成参数: {}", param); // 纸管 - String weight1 = param.getString("weight1"); + BigDecimal weight1 = param.getBigDecimal("weight1"); String material1 = param.getString("material1"); - String weight2 = param.getString("weight2"); + BigDecimal weight2 = param.getBigDecimal("weight2"); String material2 = param.getString("material2"); BstIvtShafttubeivt startPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() .eq(BstIvtShafttubeivt::getPoint_code, deviceCode)); @@ -415,10 +416,10 @@ public class SlitterServiceImpl implements SlitterService { // 分切计划设置纸卷重量 for (PdmBiSlittingproductionplan plan : plans) { if (SlitterConstant.SLITTER_SUB_VOLUME_LEFT.equals(plan.getLeft_or_right())) { - plan.setPaper_weight(weight1); + plan.setPaper_weight(String.valueOf(NumberUtil.round(weight1, 2))); msg = msg + "子卷号:" + plan.getContainer_name() + "的纸管重量: " + weight1 + " | "; } else { - plan.setPaper_weight(weight2); + plan.setPaper_weight(String.valueOf(NumberUtil.round(weight2, 2))); msg = msg + "子卷号:" + plan.getContainer_name() + "的纸管重量: " + weight2 + " | "; } TaskUtils.updateOptMessageBySlitterPlan(plan); From 7c2e6d7d7d5a448579bd91a732dae556f28cffa8 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Sun, 28 Sep 2025 10:10:45 +0800 Subject: [PATCH 107/146] =?UTF-8?q?fix:=E7=A9=BA=E6=9C=A8=E7=AE=B1?= =?UTF-8?q?=E7=A7=BB=E5=BA=93=E5=8A=A0=E5=B9=B6=E5=8F=91=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/impl/InBoxManageServiceImpl.java | 191 ++++++++++-------- 1 file changed, 108 insertions(+), 83 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index 004bfad9c..b03807621 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -5,11 +5,13 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpStatus; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.sch.point.dao.SchBasePoint; @@ -37,12 +39,15 @@ import org.nl.wms.ext.mes.service.LmsToMesService; import org.nl.wms.pda.mps.eum.RegionTypeEnum; import org.nl.wms.pdm.bi.service.SubpackagerelationService; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -91,6 +96,9 @@ public class InBoxManageServiceImpl implements InBoxManageService { @Autowired private InBussManageService inBussManageService; + @Autowired + private RedissonClient redissonClient; + @Override @Transactional(rollbackFor = Exception.class) public void inBox(JSONObject whereJson) { @@ -677,6 +685,7 @@ public class InBoxManageServiceImpl implements InBoxManageService { return result; } + /** * 找一个空仓位(木箱区) * @@ -689,6 +698,7 @@ public class InBoxManageServiceImpl implements InBoxManageService { * } * @return JSONObject : 仓位对象 */ + @SneakyThrows public JSONObject getStruct(JSONObject jsonParam) { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); @@ -699,95 +709,110 @@ public class InBoxManageServiceImpl implements InBoxManageService { */ String block_num = jsonParam.getString("move_block_num"); - JSONArray structArray = new JSONArray(); + JSONObject jsonAttr = new JSONObject(); - String height = jsonParam.getString("height"); - if (height.equals("1")) { - height = "('1','2','3')"; - } else if (height.equals("2")) { - height = "('2','3')"; - } else { - height = "('3')"; - } + RLock lock = redissonClient.getLock("getEmptyBox-----"+block_num); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + JSONArray structArray = new JSONArray(); - if (ObjectUtil.isEmpty(block_num)) { - structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + - "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + - "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + - "AND height IN " + height + " " + - "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + - "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0); - } else { - structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + - "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + - "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + - "AND height IN " + height + " " + - "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + - "AND sect_id = '" + jsonParam.getString("sect_id") + "' AND block_num = '" + block_num + "'").getResultJSONArray(0); - } - - if (ObjectUtil.isEmpty(structArray)) { - notInRowList.clear(); - notInBlockList.clear(); - throw new BadRequestException("仓位不足!"); - } - - // 确定巷道:查看每个巷道最小木箱数的巷道,获取最小木箱数的巷道 - // 不是移库则需要找新巷道 - jsonParam.put("height", height); - if (ObjectUtil.isEmpty(block_num)) { - block_num = getMinBlock(jsonParam); - } - - // 确定排:查看每排的木箱数量,找到数量最小的那排 - jsonParam.put("block_num", block_num); - String row_num = getMinRow(jsonParam); - - // 确定仓位: 找到仓位 - jsonParam.put("row_num", row_num); - JSONObject jsonAttr = queryStruct(jsonParam); - - // 如果是移库空并且仓位为空则报错 - if (ObjectUtil.isNotEmpty(block_num) && ObjectUtil.isEmpty(jsonAttr)) { - throw new BadRequestException("转库任务巷道"+block_num+"仓位不足!"); - } - - // 为空则新找巷道 - if (ObjectUtil.isEmpty(jsonAttr)) { - - jsonParam.put("flag", "1"); - notInBlockList.add(jsonParam.getString("block_num")); - - String join = "('" + String.join("','", notInBlockList) + "')"; - jsonParam.put("not_block", join); - - List blockList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); - - for (int i = 0; i < blockList.size(); i++) { - JSONObject json = blockList.get(i); - json.put("stor_id", jsonParam.getString("stor_id")); - json.put("sect_id", jsonParam.getString("sect_id")); - json.put("box_length", jsonParam.getString("box_length")); - json.put("box_width", jsonParam.getString("box_width")); - json.put("box_high", jsonParam.getString("box_high")); - json.put("vehicle_type", jsonParam.getString("vehicle_type")); - json.put("height", jsonParam.getString("height")); - - String row_num_2 = getMinRow(json); - json.put("row_num", row_num_2); - JSONObject jsonAttr_2 = queryStruct(json); - - if (ObjectUtil.isNotEmpty(jsonAttr_2)) { - jsonAttr = jsonAttr_2; - break; + String height = jsonParam.getString("height"); + if (height.equals("1")) { + height = "('1','2','3')"; + } else if (height.equals("2")) { + height = "('2','3')"; } else { - continue; + height = "('3')"; } + + if (ObjectUtil.isEmpty(block_num)) { + structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + + "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + + "AND height IN " + height + " " + + "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + + "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0); + } else { + structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + + "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + + "AND height IN " + height + " " + + "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + + "AND sect_id = '" + jsonParam.getString("sect_id") + "' AND block_num = '" + block_num + "'").getResultJSONArray(0); + } + + if (ObjectUtil.isEmpty(structArray)) { + notInRowList.clear(); + notInBlockList.clear(); + throw new BadRequestException("仓位不足!"); + } + + // 确定巷道:查看每个巷道最小木箱数的巷道,获取最小木箱数的巷道 + // 不是移库则需要找新巷道 + jsonParam.put("height", height); + if (ObjectUtil.isEmpty(block_num)) { + block_num = getMinBlock(jsonParam); + } + + // 确定排:查看每排的木箱数量,找到数量最小的那排 + jsonParam.put("block_num", block_num); + String row_num = getMinRow(jsonParam); + + // 确定仓位: 找到仓位 + jsonParam.put("row_num", row_num); + jsonAttr = queryStruct(jsonParam); + + // 如果是移库空并且仓位为空则报错 + if (ObjectUtil.isNotEmpty(block_num) && ObjectUtil.isEmpty(jsonAttr)) { + throw new BadRequestException("转库任务巷道"+block_num+"仓位不足!"); + } + + // 为空则新找巷道 + if (ObjectUtil.isEmpty(jsonAttr)) { + + jsonParam.put("flag", "1"); + notInBlockList.add(jsonParam.getString("block_num")); + + String join = "('" + String.join("','", notInBlockList) + "')"; + jsonParam.put("not_block", join); + + List blockList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + for (int i = 0; i < blockList.size(); i++) { + JSONObject json = blockList.get(i); + json.put("stor_id", jsonParam.getString("stor_id")); + json.put("sect_id", jsonParam.getString("sect_id")); + json.put("box_length", jsonParam.getString("box_length")); + json.put("box_width", jsonParam.getString("box_width")); + json.put("box_high", jsonParam.getString("box_high")); + json.put("vehicle_type", jsonParam.getString("vehicle_type")); + json.put("height", jsonParam.getString("height")); + + String row_num_2 = getMinRow(json); + json.put("row_num", row_num_2); + JSONObject jsonAttr_2 = queryStruct(json); + + if (ObjectUtil.isNotEmpty(jsonAttr_2)) { + jsonAttr = jsonAttr_2; + break; + } else { + continue; + } + } + } + notInRowList.clear(); + notInBlockList.clear(); + + } else { + throw new BadRequestException("存在正在分配的空木箱任务,请稍后再试!"); + } + } finally { + if (lock.isLocked() && lock.isHeldByCurrentThread()) { + lock.unlock(); } } - notInRowList.clear(); - notInBlockList.clear(); return jsonAttr; } From 61bf30c6dca510acb20a04859949676da2c77c9e Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 30 Sep 2025 11:17:32 +0800 Subject: [PATCH 108/146] =?UTF-8?q?fix:=E5=8F=96=E6=94=BE=E8=B4=A7?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8F=96=E6=B6=88=E7=9D=A1=E7=9C=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../point/service/impl/BstIvtPackageinfoivtServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 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 ec0365829..bc879e3d5 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 @@ -159,10 +159,11 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl { - try { + //用于解决主从延迟的问题 + /* try { Thread.sleep(1000); } catch (InterruptedException e) { - } + }*/ String pointCode = ""; String action = ""; switch (actionType) { From 2aa091125cf82a9fd420a251f234c811d3d4195c Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 9 Oct 2025 16:47:16 +0800 Subject: [PATCH 109/146] =?UTF-8?q?fix:=E6=8F=90=E7=A4=BA=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java | 2 +- .../sch/tasks/slitter/service/impl/SlitterServiceImpl.java | 6 ++++++ .../src/main/java/org/nl/wms/sch/ComPareUtil.java | 3 +++ .../src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java | 6 ++++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java index 5c9a6343a..4ce284ed7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java @@ -351,7 +351,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { inBussManageService.inTask(whereJson); HashMap sub_map = new HashMap(); - sub_map.put("sub_type", "0"); + sub_map.put("sub_type", ""); WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(sub_map, "package_box_sn = '" + whereJson.getString("box_no")+"'"); PdmProductSpecServiceImpl.doRecord(SpecEnum.RK_YC, null, Boolean.TRUE, null, subs); JSONObject result = new JSONObject(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 8e111ec99..c3fc04e9b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -1247,6 +1247,9 @@ public class SlitterServiceImpl implements SlitterService { if (tryLock) { // param: point_code String pointCode = param.getString("point_code"); + if (ObjectUtil.isEmpty(pointCode)){ + throw new BadRequestException("点位编码不能为空!"); + } // 校验是否存在任务 List taskList = taskService.checkHaveStartTask(pointCode); if (taskList.size() > 0) { @@ -1331,6 +1334,9 @@ public class SlitterServiceImpl implements SlitterService { try { if (openLock) { BstIvtCutpointivt agvCode = bcutpointivtService.getPintByTrussCode(pointCode, false); + if (ObjectUtil.isEmpty(agvCode)) { + throw new BadRequestException("请输入正确的点位编码,未查询到该点位【" + pointCode + "】"); + } if (agvCode.getTruss_point_code1().equals(pointCode)) { agvCode.setQzz_no1(""); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java index ecc4992d0..725afc1eb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java @@ -52,6 +52,9 @@ public class ComPareUtil { if (ObjectUtil.isEmpty(vehicle_ext)) { throw new BadRequestException("未查询到托盘的扩展信息"); } + if (!subList.get(0).getString("package_box_sn").equals(vehicle_ext.getString("pcsn"))) { + throw new BadRequestException("托盘绑定的木箱号与当前的不一致!"); + } IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService = SpringContextHolder.getBean(IpdmBiSubpackagerelationService.class); List list = ipdmBiSubpackagerelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, vehicle_ext.getString("pcsn"))); if (ObjectUtil.isEmpty(list)) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java index 67f31c97f..d89e078cc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java @@ -362,6 +362,12 @@ public class CoolCutTask extends AbstractAcsTask { if ("010303".equals(jsonTask.getString("task_type"))) { //更新分切区空轴库存 JSONObject cut_jo2 = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("empty_point_code = '" + point_code1 + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(cut_jo2)) { + cut_jo2 = WQLObject.getWQLObject("st_ivt_coolpointivt").query("empty_point_code = '" + point_code1 + "'").uniqueResult(0); + } + if (ObjectUtil.isEmpty(cut_jo2)) { + throw new BadRequestException("未查询到对应的点位【" + point_code1 + "】!"); + } cut_jo2.put("empty_point_status", "01"); cut_jo2.put("empty_vehicle_code", ""); cut_jo2.put("update_optid", currentUserId); From 5387fad522762cfaf296bf86cc1c1f07242009c9 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 10 Oct 2025 11:12:01 +0800 Subject: [PATCH 110/146] =?UTF-8?q?fix:=E6=8D=A2=E6=A0=87=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E4=B8=8D=E5=9B=9E=E4=BC=A0=EF=BC=8C=E6=89=98=E7=9B=98?= =?UTF-8?q?=E4=B8=A4=E8=BE=B9=E6=9D=A1=E7=A0=81=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/StIvtIostorinvServiceImpl.java | 2 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 23 +++++++++++++++++-- .../main/java/org/nl/wms/sch/ComPareUtil.java | 18 ++------------- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java index 8a92a0780..15f0ad341 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java @@ -1005,7 +1005,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl pcsnList = Arrays.asList(material_barcode.split(",")); + // 查询子卷包装关系 + List subList = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name in ('" + String.join("','", pcsnList) + "') and status in ('0','1','99')") + .getResultJSONArray(0).toJavaList(JSONObject.class); + if (ObjectUtil.isEmpty(subList)) { + throw new BadRequestException("未查询到子卷包装信息!"); + } List errorMsg = new ArrayList<>(); + whereJson.put("sub_box",subList.get(0).getString("package_box_sn")); JSONObject jsonObject = ComPareUtil.CompareWhight(whereJson); Boolean inbound = jsonObject.getBoolean("inbound"); Boolean compaerResult = jsonObject.getBoolean("compaer_result"); @@ -2115,12 +2128,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } } String is_normal_rk = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_normal_rk").getValue(); - if (!inbound && is_normal_rk.equals("0")){ + if (!inbound && is_normal_rk.equals("0")) { errorMsg.add("手动至异常口"); } if (count > 0) { errorMsg.add(whereJson.getString("vehicle_code") + "存在任务"); } + if (StringUtils.isBlank(subList.get(0).getString("package_box_sn"))) { + throw new BadRequestException("包装关系的木箱号不能为空!"); + } + if (!subList.get(0).getString("package_box_sn").equals(jsonExt.getString("pcsn"))) { + errorMsg.add("托盘绑定的木箱号与当前的不一致!"); + } //"material_barcode":"C1101,","device_code":"RK1018","weight":500.95,"vehicle_code":"B01401","type":"1" if (CollectionUtils.isEmpty(errorMsg)) { whereJson.put("bill_type", IOSEnum.IN_TYPE.code("生产入库")); @@ -2152,7 +2171,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject param = new JSONObject(); param.put("status", IOSEnum.IS_NOTANDYES.code("否")); WQLObject.getWQLObject("pdm_bi_subpackagerelation") - .update(param, "package_box_sn = '" + jsonObject.getString("box_no") + "'"); + .update(param, "package_box_sn = '" + subList.get(0).getString("package_box_sn") + "'"); jsonTaskParam.put("request_param", request_param); TwoExceptionInTask bean = SpringContextHolder.getBean(TwoExceptionInTask.class); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java index 725afc1eb..0f5516224 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java @@ -27,8 +27,6 @@ public class ComPareUtil { public static JSONObject CompareWhight(JSONObject jsonObject) { - WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); - String vehicle_code = jsonObject.getString("vehicle_code"); // 处理子卷号 @@ -37,26 +35,14 @@ public class ComPareUtil { throw new BadRequestException("子卷号不能为空!"); } - List pcsnList = Arrays.asList(material_barcode.split(",")); - // 查询子卷包装关系 - List subList = subTab.query("container_name in ('" + String.join("','", pcsnList) + "') and status in ('0','1','99')") - .getResultJSONArray(0).toJavaList(JSONObject.class); - if (ObjectUtil.isEmpty(subList)) { - throw new BadRequestException("未查询到子卷包装信息!"); - } - if (StringUtils.isBlank(subList.get(0).getString("package_box_sn"))) { - throw new BadRequestException("木箱号不能为空!"); - } //查询托盘重量 JSONObject vehicle_ext = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + vehicle_code + "'").uniqueResult(0); if (ObjectUtil.isEmpty(vehicle_ext)) { throw new BadRequestException("未查询到托盘的扩展信息"); } - if (!subList.get(0).getString("package_box_sn").equals(vehicle_ext.getString("pcsn"))) { - throw new BadRequestException("托盘绑定的木箱号与当前的不一致!"); - } + IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService = SpringContextHolder.getBean(IpdmBiSubpackagerelationService.class); - List list = ipdmBiSubpackagerelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, vehicle_ext.getString("pcsn"))); + List list = ipdmBiSubpackagerelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, jsonObject.getString("sub_box"))); if (ObjectUtil.isEmpty(list)) { throw new BadRequestException("未查询到对应的木箱包装关系!"); } From 32eb2c5b1ff07185cced55df5ec228bd56e61610 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 10 Oct 2025 17:08:45 +0800 Subject: [PATCH 111/146] =?UTF-8?q?opt:=20=E7=A9=BA=E6=8C=87=E9=92=88?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ProductOutTwoServiceImpl.java | 3 +++ .../slitter/auto/AutoCallAirShaftTask.java | 1 + .../slitter/auto/AutoExceptionTrussTask.java | 2 +- .../sch/tasks/slitter/mapper/SlitterMapper.xml | 4 ++-- .../service/impl/SlitterServiceImpl.java | 5 ++++- .../tasks/slitter/util/SlitterTaskUtil.java | 18 +++++++++++++++++- .../util/impl/InBoxManageServiceImpl.java | 6 ++++++ .../mps/service/impl/BakingServiceImpl.java | 7 +++++++ 8 files changed, 41 insertions(+), 5 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java index 781abfd42..18bf5bfad 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java @@ -184,6 +184,9 @@ public class ProductOutTwoServiceImpl implements ProductOutTwoService { @Override public List woodenBoxPoint(JSONObject whereJson) { + if (ObjectUtil.isEmpty(whereJson.getString("container_name"))) { + throw new BadRequestException("卷号不能为空!"); + } JSONObject jsonPlan = WQLObject.getWQLObject("pdm_bi_slittingproductionplan") .query("container_name = '" + whereJson.getString("container_name") + "' and is_delete = '0'") .uniqueResult(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index ad8d25d99..f31cae110 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -774,6 +774,7 @@ public class AutoCallAirShaftTask extends Prun { List list = stockingivtService.getEmptyPointNotTask(location, "0"); if (list.size() == 0) { stepErrorInfo.add("备货区找不到空位置搬运, 请检查备货区点位情况!"); + redisUtils.set("ERROR" + empty.getPoint_code(), stepErrorInfo); throw new RuntimeException("备货区找不到空位置搬运, 请检查备货区点位情况!"); } BstIvtStockingivt endPoint = list.get(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoExceptionTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoExceptionTrussTask.java index c8e189487..452612d45 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoExceptionTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoExceptionTrussTask.java @@ -52,7 +52,7 @@ public class AutoExceptionTrussTask { // 获取能够拉走的点位 List needMoves = slitterMapper.getMoveTzdjwExceptionPoint(); for (String needMove : needMoves) { - List exceptionPointCodes = bcutpointivtService.getCanUseMinPointByShelf("4", "0"); + List exceptionPointCodes = bcutpointivtService.getCanUseMinPointByShelf("5", "0"); if (exceptionPointCodes.size() == 0) { log.info("没有可用的异常处理位..."); return; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 136b17715..e52e8055e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -292,7 +292,7 @@ WHERE bic.point_type = '1' AND bic.is_used = '1' AND bic.point_location = '0' - AND bic.point_status = '4' + AND bic.point_status = '5' AND IFNULL(bic.qzz_no1, '') ]]> '' AND 0 = (SELECT COUNT(*) FROM sch_base_task t @@ -314,7 +314,7 @@ WHERE bic.point_type = '1' AND bic.is_used = '1' AND bic.point_location = '0' - AND bic.point_status = '4' + AND bic.point_status = '5' AND IFNULL(bic.qzz_no2, '') ]]> '' AND 0 = (SELECT COUNT(*) FROM sch_base_task t diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index c3fc04e9b..dca0cb144 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -1474,6 +1474,10 @@ public class SlitterServiceImpl implements SlitterService { // param : container_name, point_code String containerName = param.getString("container_name"); String pointCode1 = param.getString("point_code"); + BstIvtCutpointivt pointCode = bcutpointivtService.getPintByTrussCode(pointCode1, false); + if (ObjectUtil.isEmpty(pointCode)) { + throw new BadRequestException("点位" + pointCode1 + "不存在,请确认点位编码是否正确!"); + } if (ObjectUtil.isEmpty(containerName)) { throw new BadRequestException("子卷号不能为空!"); } @@ -1487,7 +1491,6 @@ public class SlitterServiceImpl implements SlitterService { if (taskList.size() > 0) { throw new BadRequestException("操作失败,点位[" + pointCode1 + "]存在未完成的任务!"); } - BstIvtCutpointivt pointCode = bcutpointivtService.getPintByTrussCode(pointCode1, false); PdmBiSlittingproductionplan demoPlan = plans.get(0); String resourceName = demoPlan.getResource_name(); // 创建新的气胀轴编码 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java index c1dbb7c5c..fba8d6d24 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java @@ -134,7 +134,11 @@ public class SlitterTaskUtil { } public static void main(String[] args) { - System.out.println(getComposePaperTubeInformation("玻璃纤维及其制品|FRP管|6英寸|15|1100", "1")); +// System.out.println(getComposePaperTubeInformation("玻璃纤维及其制品|FRP管|6英寸|15|1100", "1")); + System.out.println(isNumeric(",3000")); + System.out.println(isNumeric("3000")); + System.out.println(isNumeric("3000.32")); + System.out.println(isNumeric("-3000.32")); } /** @@ -642,4 +646,16 @@ public class SlitterTaskUtil { } return errorList; } + + /** + * 判断字符串是否为数字(整数、小数、负数) + */ + public static boolean isNumeric(String str) { + if (str == null || str.isEmpty() || str.trim().isEmpty()) { + return false; + } + String s = str.trim(); + return s.matches("-?\\d+(\\.\\d+)?"); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index b03807621..b848cc138 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -102,6 +102,9 @@ public class InBoxManageServiceImpl implements InBoxManageService { @Override @Transactional(rollbackFor = Exception.class) public void inBox(JSONObject whereJson) { + if (ObjectUtil.isEmpty(whereJson.getString("vehicle_code"))) { + throw new BadRequestException("托盘号不能为空!"); + } /* * 1.找木箱区的一个仓位 * 2.插入木箱对象载具表 @@ -381,6 +384,9 @@ public class InBoxManageServiceImpl implements InBoxManageService { new QueryWrapper().lambda() .eq(BstIvtBoxinfo::getBox_no, whereJson.getString("box_no")) ); + if (ObjectUtil.isEmpty(boxDao)) { + throw new BadRequestException("找不到木箱号[" + whereJson.getString("box_no") + "]的信息!"); + } // 下发桁架任务 JSONObject taskParam = new JSONObject(); taskParam.put("task_type", "010713"); 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 3c4372e8f..59c638c0a 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 @@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RedisUtils; @@ -78,6 +79,12 @@ public class BakingServiceImpl implements BakingService { String temperature = whereJson.getString("temperature"); // 温度 String hours = whereJson.getString("hours"); // 时间 String point_code1 = whereJson.getString("point_code"); // 点位 + if (SlitterTaskUtil.isNumeric(hours)) { + throw new BadRequestException("请输入合法的时间!"); + } + if (SlitterTaskUtil.isNumeric(temperature)) { + throw new BadRequestException("请输入合法的温度!"); + } //查询该点位是否存在未完成的任务 JSONObject hasTask = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code1 + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); if (hasTask != null) { From 3997b836df725855cd7670b4283b08ea1b10793e Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Sat, 11 Oct 2025 09:43:49 +0800 Subject: [PATCH 112/146] =?UTF-8?q?fix:=E5=AE=8C=E5=96=84=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PdmBiSubpackagerelationServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 72f4ecbd6..3b0e334ba 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -551,6 +551,10 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl().lambda() .eq(BstIvtBoxinfo::getBox_no, boxSn) ); + String box_weight = boxDao.getBox_weight(); + if (ObjectUtils.isEmpty(box_weight)) { + throw new BadRequestException("木箱重量为空!"); + } //木箱重量 BigDecimal boxWeight = new BigDecimal(boxDao.getBox_weight()); totalWeight = totalWeight.add(boxWeight); From 9604b20f722b268a19fed3ace9be029e2955cff0 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Sat, 11 Oct 2025 16:33:14 +0800 Subject: [PATCH 113/146] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E9=9B=AA?= =?UTF-8?q?=E8=8A=B1=E7=AE=97=E6=B3=95=E7=9A=84=E6=9C=BA=E5=99=A8=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-system/src/main/resources/config/application.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lms/nladmin-system/src/main/resources/config/application.yml b/lms/nladmin-system/src/main/resources/config/application.yml index 3b2d3e2a3..69e869bb4 100644 --- a/lms/nladmin-system/src/main/resources/config/application.yml +++ b/lms/nladmin-system/src/main/resources/config/application.yml @@ -190,3 +190,7 @@ lucene: tlog: id-generator: org.nl.config.TlogIdGenerator + +snowflake: + worker-id: 1 # 机器ID,0-31之间 + datacenter-id: 1 # 数据中心ID,0-31之间 \ No newline at end of file From fc3c800edbea5d48674a6bcae7267ee3c22c2688 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 13 Oct 2025 08:41:06 +0800 Subject: [PATCH 114/146] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E9=9B=AA?= =?UTF-8?q?=E8=8A=B1=E7=AE=97=E6=B3=95=E7=9A=84=E6=9C=BA=E5=99=A8=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BstIvtCutpointivtServiceImpl.java | 4 +- .../impl/MdPbPapervehicleServiceImpl.java | 4 +- .../impl/BstIvtScaleboundServiceImpl.java | 4 +- .../impl/BstIvtScalehistoryServiceImpl.java | 4 +- .../impl/BstIvtShafttubeivtServiceImpl.java | 4 +- .../impl/BstIvtStockingivtServiceImpl.java | 6 +- ...dmBiSlittingproductionplanServiceImpl.java | 4 +- .../impl/PdmBiContainerinfoServiceImpl.java | 4 +- .../service/impl/StPointIvtServiceImpl.java | 4 +- .../PdmBiSubpackagerelationServiceImpl.java | 4 +- .../service/impl/PdmBiTrayServiceImpl.java | 4 +- .../service/impl/TrayplanServiceImpl.java | 4 +- .../org/nl/b_lms/sch/tasks/ProcessTask.java | 6 +- .../org/nl/b_lms/sch/tasks/SurfaceTask.java | 6 +- .../nl/b_lms/sch/tasks/TwoBoxExcepTask.java | 6 +- .../sch/tasks/TwoExcepionalMoveTask.java | 6 +- .../b_lms/sch/tasks/TwoExceptionInTask.java | 6 +- .../org/nl/b_lms/sch/tasks/TwoInBoxTask.java | 6 +- .../nl/b_lms/sch/tasks/TwoInBoxTrussTask.java | 6 +- .../nl/b_lms/sch/tasks/TwoInEmpExcepTask.java | 6 +- .../org/nl/b_lms/sch/tasks/TwoInEmpTask.java | 6 +- .../org/nl/b_lms/sch/tasks/TwoInTask.java | 6 +- .../org/nl/b_lms/sch/tasks/TwoLashTask.java | 6 +- .../nl/b_lms/sch/tasks/TwoMoveBoxTask.java | 6 +- .../b_lms/sch/tasks/TwoOutBoxExcepTask.java | 6 +- .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 6 +- .../org/nl/b_lms/sch/tasks/TwoOutEmpTask.java | 6 +- .../sch/tasks/TwoOutExceptionalTask.java | 6 +- .../nl/b_lms/sch/tasks/TwoOutHeapTask.java | 6 +- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 6 +- .../nl/b_lms/sch/tasks/TwoSendOutTask.java | 6 +- .../slitter/AgvCallShaftManuallyTask.java | 6 +- .../sch/tasks/slitter/MoveVehicleAgvTask.java | 6 +- .../sch/tasks/slitter/ReturnShaftAgvTask.java | 6 +- .../tasks/slitter/SendAirShaftAgvTask.java | 6 +- .../SendCopperFoilSubRollTrussTask.java | 6 +- .../slitter/SendNBJExceptionPointTask.java | 6 +- .../tasks/slitter/SendShaftToCacheTask.java | 6 +- .../sch/tasks/slitter/SlitterDownAgvTask.java | 6 +- .../tasks/slitter/SlitterDownTrussTask.java | 6 +- .../tasks/slitter/SlitterPinDanTrussTask.java | 6 +- .../tasks/slitter/StockAreaCallTubeTask.java | 6 +- .../sch/tasks/slitter/StockAreaInOutTask.java | 6 +- .../slitter/StockAreaSendVehicleTask.java | 6 +- .../tasks/slitter/TrussCallAirShaftTask.java | 6 +- .../slitter/TrussCallShaftCacheTask.java | 6 +- .../slitter/TrussCallShaftManuallyTask.java | 6 +- .../tasks/slitter/TrussSendAirShaftTask.java | 6 +- .../slitter/TrussSendShaftCacheTask.java | 6 +- .../sch/tasks/slitter/UpShaftTrussTask.java | 6 +- .../service/impl/SlitterServiceImpl.java | 14 +-- .../impl/StIvtIostorinvOutServiceImpl.java | 4 +- .../impl/StIvtIostorinvServiceImpl.java | 2 +- .../main/java/org/nl/common/utils/IdUtil.java | 9 +- .../java/org/nl/config/TlogIdGenerator.java | 4 +- .../service/impl/StageImageServiceImpl.java | 2 +- .../service/impl/StageServiceImpl.java | 2 +- .../service/impl/CodeDetailServiceImpl.java | 2 +- .../service/impl/GenCodeServiceImpl.java | 2 +- .../service/impl/LocalStorageServiceImpl.java | 6 +- .../src/main/java/org/nl/start/Init.java | 15 ++-- .../impl/SysCodeRuleDetailServiceImpl.java | 4 +- .../coderule/impl/SysCodeRuleServiceImpl.java | 4 +- .../service/dict/impl/SysDictServiceImpl.java | 6 +- .../generator/dao/CodeColumnConfig.java | 4 +- .../impl/CodeGenConfigServiceImpl.java | 4 +- .../impl/SysInterfaceLogServiceImpl.java | 4 +- .../logging/impl/SysLogServiceImpl.java | 4 +- .../notice/impl/SysNoticeServiceImpl.java | 6 +- .../param/impl/SysParamServiceImpl.java | 4 +- .../impl/SysDataPermissionServiceImpl.java | 4 +- .../quartz/impl/SysQuartzJobServiceImpl.java | 2 +- .../service/quartz/utils/ExecutionJob.java | 4 +- .../service/role/impl/SysRoleServiceImpl.java | 4 +- .../impl/ToolLocalStorageServiceImpl.java | 4 +- .../impl/ClassstandardServiceImpl.java | 4 +- .../service/impl/CustomerbaseServiceImpl.java | 4 +- .../service/impl/FaultDeviceServiceImpl.java | 6 +- .../impl/InterfacebackServiceImpl.java | 4 +- .../service/impl/MaterialbaseServiceImpl.java | 4 +- .../master/service/impl/SalesServiceImpl.java | 4 +- .../impl/StoragevehicleinfoServiceImpl.java | 4 +- .../service/impl/SupplierbaseServiceImpl.java | 4 +- .../impl/TransportationbaseServiceImpl.java | 4 +- .../master/service/impl/UnitServiceImpl.java | 4 +- .../wms/basedata/st/StoreIvtServiceImpl.java | 6 +- .../st/service/impl/SectattrServiceImpl.java | 4 +- .../st/service/impl/StorattrServiceImpl.java | 4 +- .../service/impl/StructattrServiceImpl.java | 8 +- .../st/service/impl/StructivtServiceImpl.java | 4 +- .../impl/StructrelamaterialServiceImpl.java | 4 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 10 +-- .../crm/service/impl/CrmToLmsServiceImpl.java | 6 +- .../mes/service/impl/LmsToMesServiceImpl.java | 4 +- .../mes/service/impl/MesToLmsServiceImpl.java | 22 ++--- .../sap/service/impl/SapToLmsServiceImpl.java | 6 +- .../mps/service/impl/BakingServiceImpl.java | 8 +- .../mps/service/impl/FeedingServiceImpl.java | 6 +- .../service/impl/HandleBakingServiceImpl.java | 8 +- .../mps/service/impl/RawFoilServiceImpl.java | 6 +- .../impl/ProductInstorServiceImpl.java | 4 +- .../impl/SubpackagerelationServiceImpl.java | 4 +- .../service/impl/CoolPointIvtServiceImpl.java | 4 +- .../service/impl/CutPointIvtServiceImpl.java | 4 +- .../impl/DeliveryPointIvtServiceImpl.java | 4 +- .../service/impl/HotPointIvtServiceImpl.java | 4 +- .../impl/PackagePointIvtServiceImpl.java | 4 +- .../service/impl/SbPointIvtServiceImpl.java | 4 +- .../impl/RawfoilworkorderServiceImpl.java | 4 +- .../SlittingproductionplanServiceImpl.java | 4 +- .../sch/service/impl/PointServiceImpl.java | 6 +- .../sch/service/impl/RegionServiceImpl.java | 4 +- .../org/nl/wms/sch/tasks/CallEmpReelTask.java | 16 ++-- .../org/nl/wms/sch/tasks/CoolCutTask.java | 6 +- .../org/nl/wms/sch/tasks/CutConveyorTask.java | 6 +- .../org/nl/wms/sch/tasks/CutTrussTask.java | 6 +- .../nl/wms/sch/tasks/EmptyVehicleTask.java | 6 +- .../org/nl/wms/sch/tasks/InCoolIvtTask.java | 6 +- .../java/org/nl/wms/sch/tasks/InHotTask.java | 14 +-- .../java/org/nl/wms/sch/tasks/InTask.java | 6 +- .../java/org/nl/wms/sch/tasks/OutHotTask.java | 6 +- .../java/org/nl/wms/sch/tasks/OutTask.java | 6 +- .../org/nl/wms/sch/tasks/PaperTrussTask.java | 6 +- .../org/nl/wms/sch/tasks/PaperTubeTask.java | 6 +- .../org/nl/wms/sch/tasks/SendOutTask.java | 6 +- .../service/impl/InbillServiceImpl.java | 4 +- .../service/impl/InchargeServiceImpl.java | 10 +-- .../service/impl/OutChargeServiceImpl.java | 8 +- .../impl/RawAssistIStorServiceImpl.java | 18 ++-- .../service/impl/StorPublicServiceImpl.java | 8 +- .../service/impl/ChangeServiceImpl.java | 20 ++--- .../instor/service/impl/CheckServiceImpl.java | 18 ++-- .../service/impl/HandMoveStorServiceImpl.java | 22 ++--- .../service/impl/ProductScrapServiceImpl.java | 6 +- .../service/impl/RecutPlanServiceImpl.java | 6 +- .../nl/wms/st/instor/task/EmpMoveTask.java | 6 +- .../st/instor/task/HandMoveStorAcsTask.java | 6 +- .../service/impl/CheckOutBillServiceImpl.java | 88 +++++++++---------- .../service/impl/RegionioOutServiceImpl.java | 4 +- .../impl/InEmptyvehiclerecordServiceImpl.java | 4 +- .../OutEmptyvehiclerecordServiceImpl.java | 4 +- .../src/main/java/org/nl/wms/util/IdUtil.java | 2 +- 142 files changed, 467 insertions(+), 459 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java index 6724178e0..aef40dfbf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.b_lms.bst.ivt.cutpointivt.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -58,7 +58,7 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl().eq(PdmBiSubpackagerelation::getContainer_name, container_name)); if (ObjectUtil.isEmpty(subpackagerelation)) { subpackagerelation = new PdmBiSubpackagerelation(); - subpackagerelation.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + subpackagerelation.setWorkorder_id(IdUtil.getStringId()); subpackagerelation.setQuality_guaran_period(quality_guaran_period); subpackagerelation.setSale_order_name(containerinfo.getSale_order_name()); subpackagerelation.setCustomer_name(containerinfo.getCustomer_name()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/ivt/service/impl/StPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/ivt/service/impl/StPointIvtServiceImpl.java index 5fca064db..11549c5a8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/ivt/service/impl/StPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/ivt/service/impl/StPointIvtServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.b_lms.pdm.ivt.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -96,7 +96,7 @@ public class StPointIvtServiceImpl implements StPointIvtService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setPoint_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setPoint_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 3b0e334ba..76e4ce6fe 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.b_lms.pdm.subpackagerelation.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -725,7 +725,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl i @Override public void create(Trayplan entity) { - entity.setPlan_id(IdUtil.getSnowflake(1, 1).nextId()); + entity.setPlan_id(IdUtil.getLongId()); trayplanMapper.insert(entity); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/ProcessTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/ProcessTask.java index 7d031340a..9676fbb6f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/ProcessTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/ProcessTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -247,8 +247,8 @@ public class ProcessTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("material_code", form.getString("material_code")); json.put("vehicle_code", form.getString("vehicle_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/SurfaceTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/SurfaceTask.java index 082927402..1e20d4388 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/SurfaceTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/SurfaceTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -151,8 +151,8 @@ public class SurfaceTask extends AbstractAcsTask { throw new BadRequestException("点位:" + point_code3 + "存在未完成的任务!"); } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", form.getString("point_code1")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoBoxExcepTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoBoxExcepTask.java index b90de07d7..24db641d1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoBoxExcepTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoBoxExcepTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -135,8 +135,8 @@ public class TwoBoxExcepTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_type", form.getString("vehicle_type")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java index 06bd7a4ce..bdf9f7cca 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -145,8 +145,8 @@ public class TwoExcepionalMoveTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_type", form.getString("vehicle_type")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExceptionInTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExceptionInTask.java index f52abad09..d1b54d308 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExceptionInTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExceptionInTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -124,8 +124,8 @@ public class TwoExceptionInTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInBoxTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInBoxTask.java index 65ea580b4..5ff03e206 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInBoxTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInBoxTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -185,8 +185,8 @@ public class TwoInBoxTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_code2", form.getString("vehicle_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInBoxTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInBoxTrussTask.java index 252b350e9..e688d0a33 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInBoxTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInBoxTrussTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -139,8 +139,8 @@ public class TwoInBoxTrussTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_code2", form.getString("vehicle_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpExcepTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpExcepTask.java index d60532111..54e93f66d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpExcepTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpExcepTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -139,8 +139,8 @@ public class TwoInEmpExcepTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_type", form.getString("vehicle_type")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpTask.java index ef2e7f9a2..3ffdba5cc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -166,8 +166,8 @@ public class TwoInEmpTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_type", form.getString("vehicle_type")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInTask.java index f9930c5a0..f381ed8b6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -171,8 +171,8 @@ public class TwoInTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_code2", form.getString("vehicle_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java index e328b8783..a1187e0df 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -275,8 +275,8 @@ public class TwoLashTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoMoveBoxTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoMoveBoxTask.java index 79774630f..cd887ecf9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoMoveBoxTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoMoveBoxTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -180,8 +180,8 @@ public class TwoMoveBoxTask extends AbstractAcsTask { throw new BadRequestException("载具:"+vehicle_code+"所在点位:" + point_code1 + "存在未完成的任务:"+task1.getString("task_code")); } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_code2", form.getString("vehicle_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java index e3f7a88da..756a10959 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -167,8 +167,8 @@ public class TwoOutBoxExcepTask extends AbstractAcsTask { throw new BadRequestException("载具:"+vehicle_code+"所在点位:" + point_code1 + "存在未完成的任务:"+task1.getString("task_code")); } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_code2", form.getString("vehicle_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java index aee51efcb..47d6f8faa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -239,8 +239,8 @@ public class TwoOutBoxTask extends AbstractAcsTask { throw new BadRequestException("载具:" + vehicle_code + "所在点位:" + point_code1 + "存在未完成的任务:" + task1.getString("task_code")); } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_code2", form.getString("vehicle_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java index 69804d842..78810b4d7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -158,8 +158,8 @@ public class TwoOutEmpTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_type", form.getString("vehicle_type")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java index 1370ee266..c8cccf4a3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -182,8 +182,8 @@ public class TwoOutExceptionalTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_code2", form.getString("vehicle_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java index 5b9d0ff3f..7bd1d80eb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -267,8 +267,8 @@ public class TwoOutHeapTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java index ffda475e2..fd78342c2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -239,8 +239,8 @@ public class TwoOutTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoSendOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoSendOutTask.java index 17fe94d8f..43980bdaf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoSendOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoSendOutTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -190,8 +190,8 @@ public class TwoSendOutTask extends AbstractAcsTask { CutConveyorTask cutConveyorTask = new CutConveyorTask(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", form.getString("point_code1")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/AgvCallShaftManuallyTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/AgvCallShaftManuallyTask.java index e41d1c4df..096397779 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/AgvCallShaftManuallyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/AgvCallShaftManuallyTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -99,8 +99,8 @@ public class AgvCallShaftManuallyTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) ? form.getString("task_status") : TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/MoveVehicleAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/MoveVehicleAgvTask.java index 62d70f2b2..4dbd053e8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/MoveVehicleAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/MoveVehicleAgvTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -102,8 +102,8 @@ public class MoveVehicleAgvTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/ReturnShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/ReturnShaftAgvTask.java index b167e3140..4a134a9e8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/ReturnShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/ReturnShaftAgvTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -184,8 +184,8 @@ public class ReturnShaftAgvTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java index d591095bd..c66082940 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -126,8 +126,8 @@ public class SendAirShaftAgvTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendCopperFoilSubRollTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendCopperFoilSubRollTrussTask.java index 9f69b132d..cc0b4e55e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendCopperFoilSubRollTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendCopperFoilSubRollTrussTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -100,8 +100,8 @@ public class SendCopperFoilSubRollTrussTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java index 305c2ceb6..707bcfe81 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -136,8 +136,8 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) ? form.getString("task_status") : TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendShaftToCacheTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendShaftToCacheTask.java index ecf61e6df..6cd8880e4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendShaftToCacheTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendShaftToCacheTask.java @@ -2,7 +2,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -139,8 +139,8 @@ public class SendShaftToCacheTask extends AbstractAcsTask { throw new BadRequestException("所在点位:" + point_code1 + "存在未完成的任务:" + task1.getString("task_code")); } SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java index 0ba2786b5..57a3618e0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownAgvTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -102,8 +102,8 @@ public class SlitterDownAgvTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index 8578f19f3..35b1b100a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -259,8 +259,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterPinDanTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterPinDanTrussTask.java index 826b17da2..b1c12cd96 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterPinDanTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterPinDanTrussTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -137,8 +137,8 @@ public class SlitterPinDanTrussTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java index e36bf10ca..10110aac8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaCallTubeTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -147,8 +147,8 @@ public class StockAreaCallTubeTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) ? form.getString("task_status") : TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java index 650c95e61..075cb233f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -109,8 +109,8 @@ public class StockAreaInOutTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) ? form.getString("task_status") : TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java index e30a4f8cd..3d7e4522f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaSendVehicleTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -172,8 +172,8 @@ public class StockAreaSendVehicleTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject callPoint = form.getJSONObject("call_point"); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) ? form.getString("task_status") : TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java index 9053e2405..a46b8f5ee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -189,8 +189,8 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftCacheTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftCacheTask.java index 193fabd35..5615d91ec 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftCacheTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftCacheTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -111,8 +111,8 @@ public class TrussCallShaftCacheTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftManuallyTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftManuallyTask.java index b0e6e1eac..333470b4c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftManuallyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftManuallyTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -132,8 +132,8 @@ public class TrussCallShaftManuallyTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) ? form.getString("task_status") : TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java index d64f0d76f..9b6c48569 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -140,8 +140,8 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(ObjectUtil.isNotEmpty(form.getString("task_status")) ? form.getString("task_status") : TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendShaftCacheTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendShaftCacheTask.java index 8d6baec7c..a5df5a7f3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendShaftCacheTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendShaftCacheTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -107,8 +107,8 @@ class TrussSendShaftCacheTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java index a8b0c3e37..73c3895ff 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java @@ -1,7 +1,7 @@ package org.nl.b_lms.sch.tasks.slitter; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -167,8 +167,8 @@ public class UpShaftTrussTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); SchBaseTask task = new SchBaseTask(); - task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(IdUtil.getStringId()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index dca0cb144..593f6c000 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.b_lms.sch.tasks.slitter.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpStatus; @@ -826,7 +826,7 @@ public class SlitterServiceImpl implements SlitterService { String now = DateUtil.now(); // 记录数据库 BstIvtScalehistory history = new BstIvtScalehistory(); - history.setHistory_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + history.setHistory_id(IdUtil.getStringId()); history.setScale_code(scaleEquipment.getScale_code()); history.setDevice_code(scaleEquipment.getDevice_code()); history.setCurrent_weight(currentWeight); @@ -2241,7 +2241,7 @@ public class SlitterServiceImpl implements SlitterService { PdmBiSlittingproductionplan plan = slittingproductionplanService.getByContainerNameNotStatus(containerName); if (ObjectUtil.isEmpty(plan)) { plan = new PdmBiSlittingproductionplan(); - plan.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + plan.setWorkorder_id(IdUtil.getStringId()); } // 公共部分插入 plan.setOrder_type("1"); @@ -2670,10 +2670,10 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("point_code1", point.getPoint_code()); taskParam.put("point_code2", endPoint.getPoint_code()); if (ObjectUtil.isNotEmpty(size1)) { - taskParam.put("vehicle_code1", IdUtil.getSnowflake(1, 1).nextIdStr() + size1); + taskParam.put("vehicle_code1", IdUtil.getStringId() + size1); } if (ObjectUtil.isNotEmpty(size2)) { - taskParam.put("vehicle_code2", IdUtil.getSnowflake(1, 1).nextIdStr() + size2); + taskParam.put("vehicle_code2", IdUtil.getStringId() + size2); } taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("分切机下料AGV到内包间")); taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); @@ -2730,7 +2730,7 @@ public class SlitterServiceImpl implements SlitterService { for (int i = 0; i < num; i++) { String containerName = area + code + "-" + i; PdmBiSlittingproductionplan plan = new PdmBiSlittingproductionplan(); - plan.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + plan.setWorkorder_id(IdUtil.getStringId()); // 公共部分插入 plan.setOrder_type("1"); plan.setContainer_name(containerName); @@ -3080,7 +3080,7 @@ public class SlitterServiceImpl implements SlitterService { throw new BadRequestException("点位[" + pointCode + "]存在未完成得任务!"); } BstIvtCutpointivt agvPoint = bcutpointivtService.getPintByAgvCode(pointCode, false); - String groupId = IdUtil.getSnowflake(1, 1).nextIdStr(); + String groupId = IdUtil.getStringId(); // 找终点 // 获取一个空位 (上下区域) List emptyNotTaskPoint = bcutpointivtService.getNBJAreaNotTaskPointByStatus( diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index 3b3250612..bdae6de1c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -915,7 +915,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl impleme if (ObjectUtil.isNotEmpty(oldDict)) { throw new BadRequestException("字典[" + dict.getCode() + "]已存在"); } - dict.setDict_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + dict.setDict_id(IdUtil.getStringId()); dict.setCreate_id(currentUserId); dict.setCreate_name(nickName); dict.setCreate_time(date); @@ -161,7 +161,7 @@ public class SysDictServiceImpl extends ServiceImpl impleme return; } // 插入新的数据 - dict.setDict_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + dict.setDict_id(IdUtil.getStringId()); dict.setCode(dic.getCode()); dict.setName(dic.getName()); dict.setCreate_id(SecurityUtils.getCurrentUserId()); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeColumnConfig.java b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeColumnConfig.java index 3041172b7..9941e63dc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeColumnConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeColumnConfig.java @@ -1,6 +1,6 @@ package org.nl.system.service.generator.dao; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -81,7 +81,7 @@ public class CodeColumnConfig implements Serializable { */ public static CodeColumnConfig createDefault(String tableName, ColumnInfo config) { CodeColumnConfig columnConfig = new CodeColumnConfig(); - columnConfig.setColumn_id(IdUtil.getSnowflake(1,1).nextIdStr()); + columnConfig.setColumn_id(IdUtil.getStringId()); columnConfig.setTable_name(tableName); columnConfig.setColumn_name(config.getColumn_name()); columnConfig.setColumn_type(config.getColumn_type()); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/impl/CodeGenConfigServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/impl/CodeGenConfigServiceImpl.java index 7d0f5af1a..1effbfdc7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/impl/CodeGenConfigServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/impl/CodeGenConfigServiceImpl.java @@ -1,6 +1,6 @@ package org.nl.system.service.generator.impl; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -63,7 +63,7 @@ public class CodeGenConfigServiceImpl extends ServiceImpl impleme logDto.setUsername(username); logDto.setParams(getParameter(method, joinPoint.getArgs())); logDto.setBrowser(browser); - logDto.setLog_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + logDto.setLog_id(IdUtil.getStringId()); logDto.setCreate_time(DateUtil.now()); logMapper.insert(logDto); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java index 5daf406e1..7c57b2c21 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.system.service.notice.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -76,7 +76,7 @@ public class SysNoticeServiceImpl extends ServiceImpl impl if (ObjectUtil.isNotEmpty(code)) { throw new BadRequestException("编码不能一致"); } - param.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + param.setId(IdUtil.getStringId()); String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/impl/SysDataPermissionServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/impl/SysDataPermissionServiceImpl.java index 8b62f83b9..595343535 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/impl/SysDataPermissionServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/impl/SysDataPermissionServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.system.service.permission.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -62,7 +62,7 @@ public class SysDataPermissionServiceImpl extends ServiceImpl impl String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); // 插入 - sysRole.setRole_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + sysRole.setRole_id(IdUtil.getStringId()); sysRole.setCreate_id(userId); sysRole.setCreate_name(nickName); sysRole.setCreate_time(now); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/tools/impl/ToolLocalStorageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/impl/ToolLocalStorageServiceImpl.java index 34066c7ea..6b7324742 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/tools/impl/ToolLocalStorageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/impl/ToolLocalStorageServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.system.service.tools.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -60,7 +60,7 @@ public class ToolLocalStorageServiceImpl extends ServiceImpl().eq(PdmBiContainerinfo::getContainer_name, ContainerName)); if (ObjectUtil.isEmpty(one)) { PdmBiContainerinfo containerinfo = PdmBiContainerinfo.builder() - .workorder_id(IdUtil.getSnowflake(1, 1).nextId()) + .workorder_id(IdUtil.getLongId()) .container_name(ContainerName) .sap_pcsn(SAPLotNumber) .sale_order_name(SaleOrderName) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index c53411798..97d561ab5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.wms.ext.mes.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -175,7 +175,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { // 插入生箔工序工单表 JSONObject json = new JSONObject(); - json.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("workorder_id", IdUtil.getLongId()); json.put("container_name", containerName); json.put("resource_name", ResourceName); json.put("mfg_order_name", MfgOrderName); @@ -669,7 +669,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { } JSONObject json = new JSONObject(); - json.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("workorder_id", IdUtil.getLongId()); json.put("order_type", orderType); json.put("container_name", ContainerName); json.put("product_name", ProductName); @@ -836,7 +836,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonCool.put("iostorinv_id", IdUtil.getLongId()); jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); jsonCool.put("io_type", "1"); jsonCool.put("material_id", mater_jo.getString("material_id")); @@ -1318,7 +1318,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { } JSONObject jo = new JSONObject(); - jo.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("workorder_id", IdUtil.getLongId()); jo.put("package_box_sn", PackageBoxSN); jo.put("sap_pcsn", sap_pcsn); jo.put("sub_type", sub_type); @@ -1438,7 +1438,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { for (String stor_code : storSet) { double total_qty = 0; double detail_count = 0; - String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String changeinv_id = IdUtil.getLongId() + ""; JSONObject jsonStor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("stor_code = '" + stor_code + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonStor)) { @@ -1471,7 +1471,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { for (int j = 0; j < container_rows.size(); j++) { JSONObject container_row = container_rows.getJSONObject(j); JSONObject change_jo = new JSONObject(); - change_jo.put("changeinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + change_jo.put("changeinvdtl_id", IdUtil.getLongId() + ""); change_jo.put("changeinv_id", changeinv_id); change_jo.put("seq_no", detail_count + 1); JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + container_row.getString("product_name") + "'").uniqueResult(0); @@ -1840,7 +1840,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { // 插入生箔工序工单表 JSONObject json = new JSONObject(); - json.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("workorder_id", IdUtil.getLongId()); json.put("foil_container_ame", FoilContainerName); json.put("container_name", TRContainerName); json.put("resource_name", ResourceName); @@ -1976,7 +1976,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { "HL11": null } */ - Long id = IdUtil.getSnowflake(1, 1).nextId(); + Long id = IdUtil.getLongId(); //设备级工单号 String mfg_order = param.getString("MfgOrderName"); //木箱物料编码 @@ -2269,7 +2269,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { PdmBiContainerinfo one = containerinfoService.getOne(new LambdaQueryWrapper().eq(PdmBiContainerinfo::getContainer_name, ContainerName)); if (ObjectUtil.isEmpty(one)) { PdmBiContainerinfo containerinfo = PdmBiContainerinfo.builder() - .workorder_id(IdUtil.getSnowflake(1, 1).nextId()) + .workorder_id(IdUtil.getLongId()) .container_name(ContainerName) .sap_pcsn(SAPLotNumber) .sale_order_name(SaleOrderName) @@ -2361,7 +2361,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { String now = DateUtil.now(); // 记录数据库 BstIvtScalehistory history = new BstIvtScalehistory(); - history.setHistory_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + history.setHistory_id(IdUtil.getStringId()); history.setScale_code(scaleEquipment.getScale_code()); history.setDevice_code(scaleEquipment.getDevice_code()); history.setCurrent_weight(currentWeight); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java index 4d498fcc4..1bc9ac53e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.wms.ext.sap.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -283,7 +283,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { JSONObject base_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + MATNR + "'").uniqueResult(0); if (ObjectUtil.isEmpty(base_jo)) { JSONObject mater_base_jo = new JSONObject(); - mater_base_jo.put("material_id", IdUtil.getSnowflake(1, 1).nextId()); + mater_base_jo.put("material_id", IdUtil.getLongId()); mater_base_jo.put("material_code", MATNR); mater_base_jo.put("material_name", MATNR01); JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("unit_code = '" + MEINS + "'").uniqueResult(0); @@ -450,7 +450,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { if (ObjectUtil.isEmpty(sub_jo)) { //为空新增一条 sub_jo = new JSONObject(); - sub_jo.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); + sub_jo.put("workorder_id", IdUtil.getLongId()); sub_jo.put("package_box_sn", package_box_sn); sub_jo.put("quanlity_in_box", 1); sub_jo.put("sale_order_name", sale_order_name); 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 59c638c0a..30d9808cb 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 @@ -1,7 +1,7 @@ package org.nl.wms.pda.mps.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -366,7 +366,7 @@ public class BakingServiceImpl implements BakingService { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonCool.put("iostorinv_id", IdUtil.getLongId()); jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); jsonCool.put("io_type", "1"); jsonCool.put("material_id", jsonMater.getString("material_id")); @@ -724,7 +724,7 @@ public class BakingServiceImpl implements BakingService { } JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonCool.put("iostorinv_id", IdUtil.getLongId()); jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); jsonCool.put("io_type", "0"); jsonCool.put("material_id", jsonMater.getString("material_id")); @@ -764,7 +764,7 @@ public class BakingServiceImpl implements BakingService { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject jsonHotMst = new JSONObject(); - jsonHotMst.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonHotMst.put("iostorinv_id", IdUtil.getLongId()); jsonHotMst.put("bill_code", CodeUtil.getNewCode("HOT_BILL_CODE")); jsonHotMst.put("container_name", param.getString("container_name")); jsonHotMst.put("workorder_id", param.getString("workorder_id")); 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 05e546584..332b256ee 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 @@ -1,7 +1,7 @@ package org.nl.wms.pda.mps.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -143,7 +143,7 @@ public class FeedingServiceImpl implements FeedingService { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonCool.put("iostorinv_id", IdUtil.getLongId()); jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); jsonCool.put("io_type", "1"); jsonCool.put("material_id", mater_jo.getString("material_id")); @@ -517,7 +517,7 @@ public class FeedingServiceImpl implements FeedingService { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonCool.put("iostorinv_id", IdUtil.getLongId()); jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); jsonCool.put("io_type", "1"); jsonCool.put("material_id", mater_jo.getString("material_id")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java index f6998423d..b3dc37735 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.wms.pda.mps.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -92,7 +92,7 @@ public class HandleBakingServiceImpl implements HandleBakingService { //插入冷却区出入库单表 // 生成冷却区出入表 JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonCool.put("iostorinv_id", IdUtil.getLongId()); jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); jsonCool.put("io_type", "1"); jsonCool.put("material_id", jsonMater.getString("material_id")); @@ -218,7 +218,7 @@ public class HandleBakingServiceImpl implements HandleBakingService { //生成冷却区入库记录 JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonCool.put("iostorinv_id", IdUtil.getLongId()); jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); jsonCool.put("io_type", "0"); jsonCool.put("material_id", jsonMater.getString("material_id")); @@ -343,7 +343,7 @@ public class HandleBakingServiceImpl implements HandleBakingService { WQLObject stIvtHotregioniomstService = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst"); // 烘箱区出入主表 JSONObject jsonHotMst = new JSONObject(); - jsonHotMst.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonHotMst.put("iostorinv_id", IdUtil.getLongId()); jsonHotMst.put("bill_code", CodeUtil.getNewCode("HOT_BILL_CODE")); jsonHotMst.put("container_name", param.getString("container_name")); jsonHotMst.put("workorder_id", param.getString("workorder_id")); 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 4ab5579ae..cfd75bbe3 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 @@ -2,7 +2,7 @@ package org.nl.wms.pda.mps.service.impl; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -373,7 +373,7 @@ public class RawFoilServiceImpl implements RawFoilService { // 插入生箔工序工单表 JSONObject json = new JSONObject(); - json.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("workorder_id", IdUtil.getLongId()); json.put("container_name", container_name); json.put("resource_name", device_jo.getString("ext_code")); json.put("mfg_order_name", "test"); @@ -410,7 +410,7 @@ public class RawFoilServiceImpl implements RawFoilService { String bigType = whereJson.getString("big_type"); // 插入生箔工序工单表 JSONObject json = new JSONObject(); - json.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("workorder_id", IdUtil.getLongId()); json.put("container_name", whereJson.getString("container_name")); json.put("resource_name", device_jo.getString("ext_code")); json.put("mfg_order_name", "test"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java index 2476e55b0..1ee8b37c8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.pda.st.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -406,7 +406,7 @@ public class ProductInstorServiceImpl implements ProductInstorService { throw new BadRequestException("该木箱已经分配过货位,无法继续分配!"); } - String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String task_id = IdUtil.getLongId() + ""; //直接分配虚拟区货位,并确认 if ("BC01".equals(sub_jo.getString("ext_code"))) { JSONObject jsonObject = WQLObject.getWQLObject("st_ivt_sectattr").query("sect_id = '" + whereJson.getString("sect_id") + "'") diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/bi/service/impl/SubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/bi/service/impl/SubpackagerelationServiceImpl.java index 401ec7ed3..6e5cd739a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/bi/service/impl/SubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/bi/service/impl/SubpackagerelationServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.pdm.bi.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -152,7 +152,7 @@ public class SubpackagerelationServiceImpl implements SubpackagerelationService String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setWorkorder_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setCreate_time(now); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java index 37343b3cf..6f985189f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.pdm.ivt.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -118,7 +118,7 @@ public class CoolPointIvtServiceImpl implements CoolPointIvtService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setIvt_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setIvt_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CutPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CutPointIvtServiceImpl.java index 526b58fd9..11063d774 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CutPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CutPointIvtServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.pdm.ivt.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -93,7 +93,7 @@ public class CutPointIvtServiceImpl implements CutPointIvtService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setIvt_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setIvt_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/DeliveryPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/DeliveryPointIvtServiceImpl.java index 04d1d1b4a..81f5d709b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/DeliveryPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/DeliveryPointIvtServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.pdm.ivt.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -91,7 +91,7 @@ public class DeliveryPointIvtServiceImpl implements DeliveryPointIvtService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setIvt_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setIvt_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java index b449876ba..fb0ca506e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.pdm.ivt.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -143,7 +143,7 @@ public class HotPointIvtServiceImpl implements HotPointIvtService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setIvt_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setIvt_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/PackagePointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/PackagePointIvtServiceImpl.java index 7fafae9da..23d481570 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/PackagePointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/PackagePointIvtServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.pdm.ivt.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -91,7 +91,7 @@ public class PackagePointIvtServiceImpl implements PackagePointIvtService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setIvt_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setIvt_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/SbPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/SbPointIvtServiceImpl.java index edc370da3..26a8bc3db 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/SbPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/SbPointIvtServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.pdm.ivt.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -91,7 +91,7 @@ public class SbPointIvtServiceImpl implements SbPointIvtService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setPoint_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setPoint_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/RawfoilworkorderServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/RawfoilworkorderServiceImpl.java index 668db5517..32c0d198b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/RawfoilworkorderServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/RawfoilworkorderServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.pdm.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -126,7 +126,7 @@ public class RawfoilworkorderServiceImpl implements RawfoilworkorderService { } - dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setWorkorder_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java index ded9e2fcb..c8bbff227 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.pdm.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -128,7 +128,7 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setWorkorder_id(IdUtil.getLongId()); dto.setUpdate_optid(currentUserId); dto.setUpdate_optname(nickName); dto.setUpdate_time(now); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java index e33475460..36eba6d6f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.sch.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -152,7 +152,7 @@ public class PointServiceImpl implements PointService { RegionDto regionDto = regionService.findById(dto.getRegion_id()); dto.setRegion_code(regionDto.getRegion_code()); dto.setRegion_name(regionDto.getRegion_name()); - dto.setPoint_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setPoint_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); @@ -352,7 +352,7 @@ public class PointServiceImpl implements PointService { for (int i = 0; i < arrStruct.size(); i++) { JSONObject json = arrStruct.getJSONObject(i); JSONObject structMap = new JSONObject(); - structMap.put("point_id", IdUtil.getSnowflake(1, 1).nextId()); + structMap.put("point_id", IdUtil.getLongId()); structMap.put("point_code", json.getString("struct_code")); structMap.put("point_name", json.getString("struct_name")); structMap.put("region_id", json.get("sect_id")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java index 5572770a0..f546ee514 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.sch.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -93,7 +93,7 @@ public class RegionServiceImpl implements RegionService { throw new BadRequestException("编码已存在"); } - dto.setRegion_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setRegion_id(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); 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 7a15ebd8a..881882fcc 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 @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -221,8 +221,8 @@ public class CallEmpReelTask extends AbstractAcsTask { if ("B1".equals(jsonTask.getString("product_area"))) { // 创建半条任务 JSONObject jo = new JSONObject(); - jo.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - jo.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + 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_code4); @@ -257,8 +257,8 @@ public class CallEmpReelTask extends AbstractAcsTask { cache_param.put("product_area", jsonIvt.getString("product_area")); // 创建半条任务 JSONObject jo = new JSONObject(); - jo.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - jo.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + 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_code4); @@ -380,7 +380,7 @@ public class CallEmpReelTask extends AbstractAcsTask { } JSONObject jsonRegion = new JSONObject(); - jsonRegion.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonRegion.put("iostorinv_id", IdUtil.getLongId()); jsonRegion.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); jsonRegion.put("io_type", "0"); jsonRegion.put("material_id", jsonMater.getString("material_id")); @@ -447,8 +447,8 @@ public class CallEmpReelTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("material_code", form.getString("material_code")); json.put("point_code1", form.getString("point_code1")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java index d89e078cc..817d41287 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -491,8 +491,8 @@ public class CoolCutTask extends AbstractAcsTask { throw new BadRequestException("点位:" + point_code4 + "存在未完成的任务:" + task4.getString("task_code")); } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", point_code1); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java index 61c6fe211..552d91678 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -410,8 +410,8 @@ public class CutConveyorTask extends AbstractAcsTask { } //查询该载具号是否存在未完成的任务 JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", point_code1); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java index 2cbbf4c3f..4fa37e648 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -369,8 +369,8 @@ public class CutTrussTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("vehicle_code2", form.getString("vehicle_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/EmptyVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/EmptyVehicleTask.java index b91bc38ea..d1b2d45b5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/EmptyVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/EmptyVehicleTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -178,8 +178,8 @@ public class EmptyVehicleTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java index 9ad251720..46085dff1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -202,8 +202,8 @@ public class InCoolIvtTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", "010204"); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", point_code1); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java index bdfc1db63..94b2ca616 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -276,8 +276,8 @@ public class InHotTask extends AbstractAcsTask { throw new BadRequestException("点位:" + point_code3 + "存在未完成的任务!"); } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", "010201"); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", form.getString("point_code1")); @@ -328,8 +328,8 @@ public class InHotTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", "010203"); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", form.getString("point_code1")); @@ -366,8 +366,8 @@ public class InHotTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", "010204"); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", form.getString("point_code1")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java index c2da49502..5b906598f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -216,8 +216,8 @@ public class InTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java index 6aafb9ffa..499192e1d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -258,8 +258,8 @@ public class OutHotTask extends AbstractAcsTask { } } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); String task_type = form.getString("task_type"); if (StrUtil.isNotEmpty(task_type)) { json.put("task_type", task_type); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java index 0227e8260..940e97c5a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -150,8 +150,8 @@ public class OutTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTrussTask.java index 4b999d47b..d8aaceeb1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTrussTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -227,8 +227,8 @@ public class PaperTrussTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); json.put("material_code", form.getString("material_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTubeTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTubeTask.java index 2f71b56d6..66575c984 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTubeTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTubeTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -216,8 +216,8 @@ public class PaperTubeTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); String task_status = form.getString("task_status"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SendOutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SendOutTask.java index 447ec8b9c..72dc28e63 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SendOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SendOutTask.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -157,8 +157,8 @@ public class SendOutTask extends AbstractAcsTask { } JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); json.put("point_code1", form.getString("point_code1")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java index 2bc574b26..d7bf0454d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.wms.st.inbill.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -113,7 +113,7 @@ public class InbillServiceImpl { sub_jo.put("bill_type", mst_jo.getString("bill_type")); sub_jo.put("io_type", "0"); sub_jo.put("insert_time", DateUtil.now()); - sub_jo.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + sub_jo.put("record_id", IdUtil.getLongId()); sub_record.insert(sub_jo); //回写明细表实际数量 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InchargeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InchargeServiceImpl.java index ff07bb6f2..73b614076 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InchargeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InchargeServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.st.inbill.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -129,7 +129,7 @@ public class InchargeServiceImpl implements InchargeService { dto.setEnd_region_id(end_region_id); } - dto.setRecord_uuid(IdUtil.getSnowflake(1, 1).nextId()); + dto.setRecord_uuid(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); @@ -222,7 +222,7 @@ public class InchargeServiceImpl implements InchargeService { JSONObject jsonInMst = mstTab.query("iostorinv_id = '" + iostorinv_id + "'").uniqueResult(0); JSONObject jsonOutMst = new JSONObject(); - jsonOutMst.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonOutMst.put("iostorinv_id", IdUtil.getLongId()); jsonOutMst.put("bill_code", CodeUtil.getNewCode("IO_CODE")); jsonOutMst.put("io_type", "1"); jsonOutMst.put("buss_type", "1009"); @@ -256,7 +256,7 @@ public class InchargeServiceImpl implements InchargeService { for (int i = 0; i < inDtlArr.size(); i++) { JSONObject json = inDtlArr.getJSONObject(i); JSONObject jsonOutDtl = new JSONObject(); - jsonOutDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonOutDtl.put("iostorinvdtl_id", IdUtil.getLongId()); jsonOutDtl.put("iostorinv_id", jsonOutMst.getLongValue("iostorinv_id")); jsonOutDtl.put("seq_no", json.getIntValue("seq_no")); jsonOutDtl.put("material_id", json.getLongValue("material_id")); @@ -279,7 +279,7 @@ public class InchargeServiceImpl implements InchargeService { for (int j = 0; j < inDisArr.size(); j++) { JSONObject json2 = inDisArr.getJSONObject(j); JSONObject jsonOutDis = new JSONObject(); - jsonOutDis.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonOutDis.put("iostorinvdis_id", IdUtil.getLongId()); jsonOutDis.put("iostorinv_id", jsonOutMst.getLongValue("iostorinv_id")); jsonOutDis.put("iostorinvdtl_id", jsonOutDtl.getLongValue("iostorinvdtl_id")); jsonOutDis.put("seq_no", json2.getIntValue("seq_no")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java index aa012886d..a2c41d654 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.st.inbill.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -132,7 +132,7 @@ public class OutChargeServiceImpl implements OutChargeService { JSONArray dis_rows = dis_wql.query("iostorinv_id = '" + whereJson.get("iostorinv_id") + "'").getResultJSONArray(0); //生成手工入库单 - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); whereJson.put("iostorinv_id", iostorinv_id); whereJson.put("bill_code", bill_code); @@ -165,7 +165,7 @@ public class OutChargeServiceImpl implements OutChargeService { ArrayList ivtList = new ArrayList<>(); // 存在库存的集合 for (int i = 0; i < dis_rows.size(); i++) { //插入明细表 - String iostorinvdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinvdtl_id = IdUtil.getLongId() + ""; JSONObject dis_row = dis_rows.getJSONObject(i); // 校验是否存在库存 @@ -193,7 +193,7 @@ public class OutChargeServiceImpl implements OutChargeService { //插入手工入库明细表 dtl_wql.insert(dis_row); - dis_row.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dis_row.put("iostorinvdis_id", IdUtil.getLongId()); dis_row.put("seq_no", 1); dis_row.put("sect_id", ""); dis_row.put("sect_code", ""); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java index 2a3f289ba..b0450a9cf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.st.inbill.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -224,7 +224,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String now = DateUtil.now(); double total_qty = 0; JSONObject io_mst = new JSONObject(); - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); io_mst.put("iostorinv_id", iostorinv_id); io_mst.put("bill_code", bill_code); @@ -256,7 +256,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { for (int i = 0; i < rows.size(); i++) { HashMap row = rows.get(i); - row.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + row.put("iostorinvdtl_id", IdUtil.getLongId() + ""); row.put("iostorinv_id", iostorinv_id); row.put("seq_no", (i + 1) + ""); JSONObject material = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + row.get("product_name") + "'").uniqueResult(0); @@ -291,7 +291,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(row); JSONObject dis = new JSONObject(); - dis.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + dis.put("iostorinvdis_id", IdUtil.getLongId() + ""); dis.put("iostorinv_id", iostorinv_id); dis.put("iostorinvdtl_id", row.get("iostorinvdtl_id")); dis.put("seq_no", 1); @@ -417,7 +417,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { ArrayList rows = (ArrayList) whereJson.get("tableData"); for (int i = 0; i < rows.size(); i++) { HashMap row = rows.get(i); - row.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + row.put("iostorinvdtl_id", IdUtil.getLongId() + ""); row.put("iostorinv_id", iostorinv_id); row.put("seq_no", (i + 1) + ""); JSONObject material = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + row.get("product_name") + "'").uniqueResult(0); @@ -439,7 +439,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(row); JSONObject dis = new JSONObject(); - dis.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + dis.put("iostorinvdis_id", IdUtil.getLongId() + ""); dis.put("iostorinv_id", iostorinv_id); dis.put("iostorinvdtl_id", row.get("iostorinvdtl_id")); dis.put("seq_no", 1); @@ -655,7 +655,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { boolean is_virtual = false; if ("09".equals(sect_jo.getString("sect_type_attr"))) { is_virtual = true; - String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String task_id = IdUtil.getLongId() + ""; dis_map.put("task_id", task_id); dis_map.put("work_status", "01"); } @@ -2764,7 +2764,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { JSONArray dtl_rows = dtl_wql.query("iostorinv_id = '" + whereJson.get("iostorinv_id") + "'").getResultJSONArray(0); //生成手工出库单 - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); whereJson.put("iostorinv_id", iostorinv_id); whereJson.put("bill_code", bill_code); @@ -2778,7 +2778,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { dtl_row.put("source_bill_type", mst_row.getString("bill_type")); dtl_row.put("source_bill_code", mst_row.getString("bill_code")); dtl_row.put("source_bill_table", "ST_IVT_IOStorInvDtl"); - dtl_row.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl_row.put("iostorinvdtl_id", IdUtil.getLongId()); dtl_row.put("iostorinv_id", iostorinv_id); dtl_row.put("bill_status", "10"); dtl_wql.insert(dtl_row); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/StorPublicServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/StorPublicServiceImpl.java index c5a43c9d9..8e9e175d1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/StorPublicServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/StorPublicServiceImpl.java @@ -1,7 +1,7 @@ package org.nl.wms.st.inbill.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -47,7 +47,7 @@ public class StorPublicServiceImpl implements StorPublicService { if (ObjectUtil.isEmpty(jo_WMSMaterial)) { throw new BadRequestException("物料不存在或者未启用:" + from.getString("material_id")); } - from.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + from.put("stockrecord_id", IdUtil.getLongId() + ""); from.put("struct_code", jo.getString("struct_code")); from.put("struct_name", jo.getString("struct_name")); from.put("stor_id", jo.getString("stor_id")); @@ -69,7 +69,7 @@ public class StorPublicServiceImpl implements StorPublicService { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); - from.put("change_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + from.put("change_id", IdUtil.getLongId() + ""); from.put("change_time", DateUtil.now()); from.put("change_person_id", currentUserId + ""); from.put("change_person_name", nickName); @@ -129,7 +129,7 @@ public class StorPublicServiceImpl implements StorPublicService { from.put("less_num", from.getDoubleValue("change_qty")); } - from.put("stordaily_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + from.put("stordaily_id", IdUtil.getLongId() + ""); wql_IOSectDaily.insert(from); } else {// 更新 HashMap map = new HashMap(); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ChangeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ChangeServiceImpl.java index 6382c97ce..d96cfe2fb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ChangeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ChangeServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.st.instor.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -115,7 +115,7 @@ public class ChangeServiceImpl implements ChangeService { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String changeinv_id = IdUtil.getLongId() + ""; JSONObject mst_jo = new JSONObject(); mst_jo.put("changeinv_id", changeinv_id); mst_jo.put("bill_code", CodeUtil.getNewCode("CHANGE_CODE")); @@ -183,7 +183,7 @@ public class ChangeServiceImpl implements ChangeService { for (int i = 0; i < container_rows.size(); i++) { JSONObject container_row = container_rows.getJSONObject(i); JSONObject change_jo = new JSONObject(); - change_jo.put("changeinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + change_jo.put("changeinvdtl_id", IdUtil.getLongId() + ""); change_jo.put("changeinv_id", jo_mst.getString("changeinv_id")); change_jo.put("seq_no", detail_count + 1); JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + container_row.getString("product_name") + "'").uniqueResult(0); @@ -227,7 +227,7 @@ public class ChangeServiceImpl implements ChangeService { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String moveinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String moveinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("MOVE_CODE"); json.put("moveinv_id", moveinv_id); json.put("bill_code", bill_code); @@ -297,7 +297,7 @@ public class ChangeServiceImpl implements ChangeService { double total_qty = 0; for (int i = 0; i < ja.size(); i++) { JSONObject jo = ja.getJSONObject(i); - String moveinvdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String moveinvdtl_id = IdUtil.getLongId() + ""; total_qty = total_qty + jo.getDoubleValue("qty"); jo.put("moveinvdtl_id", moveinvdtl_id); jo.put("moveinv_id", jo_mst.getString("moveinv_id")); @@ -323,8 +323,8 @@ public class ChangeServiceImpl implements ChangeService { jo.put("task_id", task.getString("task_id")); } else { task = new JSONObject(); - String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - String task_code = IdUtil.getSnowflake(1, 1).nextId() + ""; + String task_id = IdUtil.getLongId() + ""; + String task_code = IdUtil.getLongId() + ""; task.put("taskdtl_id", task_id); task.put("task_id", task_id); @@ -591,7 +591,7 @@ public class ChangeServiceImpl implements ChangeService { old_sub.put("create_id", currentUserId); old_sub.put("create_name", nickName); old_sub.put("change_time", DateUtil.now()); - old_sub.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + old_sub.put("workorder_id", IdUtil.getLongId() + ""); WQLObject.getWQLObject("PDM_BI_SubPackageRelationChangeFlow").insert(old_sub); if (StrUtil.isNotEmpty(UpdatedDateOfProduction)) { @@ -606,7 +606,7 @@ public class ChangeServiceImpl implements ChangeService { new_sub.put("create_id", currentUserId); new_sub.put("create_name", nickName); new_sub.put("change_time", DateUtil.now()); - new_sub.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + new_sub.put("workorder_id", IdUtil.getLongId() + ""); WQLObject.getWQLObject("PDM_BI_SubPackageRelationChangeFlow").insert(new_sub); } HashMap map_mst = new HashMap<>(); @@ -766,7 +766,7 @@ public class ChangeServiceImpl implements ChangeService { //更新桶记录表 wo_BucketRecord.update(bucket); //插入一条变动记录 - bucket.put("change_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + bucket.put("change_id", IdUtil.getLongId() + ""); bucket.put("bucket_code", bucketunique); bucket.put("change_type_scode", "01"); bucket.put("change_time", now); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java index eed993651..85fb761f3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.st.instor.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -181,7 +181,7 @@ public class CheckServiceImpl implements CheckService { // 插入主表 JSONObject jsonMst = new JSONObject(); - jsonMst.put("check_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonMst.put("check_id", IdUtil.getLongId()); jsonMst.put("check_code", CodeUtil.getNewCode("PD_CODE")); jsonMst.put("buss_type", jsonObject.getString("check_type")); jsonMst.put("check_type", jsonObject.getString("check_type")); @@ -203,7 +203,7 @@ public class CheckServiceImpl implements CheckService { for (int i = 0; i < dtlArr.size(); i++) { JSONObject json = dtlArr.getJSONObject(i); JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("checkdtl_id", IdUtil.getLongId()); jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); jsonDtl.put("check_code", jsonMst.getString("check_code")); jsonDtl.put("seq_no", i + 1); @@ -238,7 +238,7 @@ public class CheckServiceImpl implements CheckService { HashMap row = rows.get(i); set.add(row.get("struct_id")); - String checkdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String checkdtl_id = IdUtil.getLongId() + ""; row.put("checkdtl_id", checkdtl_id); row.put("check_code", jo_mst.getString("check_code")); row.put("check_id", jo_mst.getString("check_id")); @@ -318,7 +318,7 @@ public class CheckServiceImpl implements CheckService { for (int i = 0; i < dtlArr.size(); i++) { JSONObject json = dtlArr.getJSONObject(i); JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("checkdtl_id", IdUtil.getLongId()); jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); jsonDtl.put("check_code", jsonMst.getString("check_code")); jsonDtl.put("seq_no", i + 1); @@ -612,7 +612,7 @@ public class CheckServiceImpl implements CheckService { for (int i = 0; i < rows.size(); i++) { JSONObject jo = rows.getJSONObject(i); - String checkdtldis_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String checkdtldis_id = IdUtil.getLongId() + ""; jo.put("checkdtldis_id", checkdtldis_id); jo.put("check_id", jo_mst.getString("check_id")); jo.put("check_code", jo_mst.getString("check_code")); @@ -827,7 +827,7 @@ public class CheckServiceImpl implements CheckService { // 插入主表 JSONObject jsonMst = new JSONObject(); - jsonMst.put("check_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonMst.put("check_id", IdUtil.getLongId()); jsonMst.put("check_code", CodeUtil.getNewCode("PD_CODE")); jsonMst.put("buss_type", jsonObject.getString("check_type")); jsonMst.put("check_type", jsonObject.getString("check_type")); @@ -849,7 +849,7 @@ public class CheckServiceImpl implements CheckService { for (int i = 0; i < dtlArr.size(); i++) { JSONObject json = dtlArr.getJSONObject(i); JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("checkdtl_id", IdUtil.getLongId()); jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); jsonDtl.put("check_code", jsonMst.getString("check_code")); jsonDtl.put("seq_no", i + 1); @@ -902,7 +902,7 @@ public class CheckServiceImpl implements CheckService { // 新增明细 JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("checkdtl_id", IdUtil.getLongId()); jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); jsonDtl.put("check_code", jsonMst.getString("check_code")); jsonDtl.put("seq_no", jsonMst.getIntValue("dtl_num") + 1); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java index 1f8254250..c14b44290 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.st.instor.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -258,7 +258,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String moveinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String moveinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("MOVE_CODE"); String biz_date = (String) map.get("biz_date"); biz_date = biz_date.substring(0, 10); @@ -506,7 +506,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { double total_qty = 0; for (int i = 0; i < ja.size(); i++) { JSONObject jo = ja.getJSONObject(i); - String moveinvdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String moveinvdtl_id = IdUtil.getLongId() + ""; total_qty = total_qty + jo.getDoubleValue("qty"); jo.put("moveinvdtl_id", moveinvdtl_id); jo.put("moveinv_id", jo_mst.getString("moveinv_id")); @@ -532,8 +532,8 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { jo.put("task_id", task.getString("task_id")); } else { task = new JSONObject(); - String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - String task_code = IdUtil.getSnowflake(1, 1).nextId() + ""; + String task_id = IdUtil.getLongId() + ""; + String task_code = IdUtil.getLongId() + ""; task.put("taskdtl_id", task_id); task.put("task_id", task_id); @@ -606,7 +606,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String moveinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String moveinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("MOVE_CODE"); json.put("moveinv_id", moveinv_id); json.put("bill_code", bill_code); @@ -680,7 +680,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { double total_qty = 0; for (int i = 0; i < ja.size(); i++) { JSONObject jo = ja.getJSONObject(i); - String moveinvdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String moveinvdtl_id = IdUtil.getLongId() + ""; total_qty = total_qty + jo.getDoubleValue("qty"); jo.put("moveinvdtl_id", moveinvdtl_id); jo.put("moveinv_id", jo_mst.getString("moveinv_id")); @@ -710,8 +710,8 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { jo.put("task_id", task.getString("task_id")); } else { task = new JSONObject(); - String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - String task_code = IdUtil.getSnowflake(1, 1).nextId() + ""; + String task_id = IdUtil.getLongId() + ""; + String task_code = IdUtil.getLongId() + ""; task.put("task_id", task_id); task.put("task_code", task_code); @@ -1293,7 +1293,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { //更新桶记录表 wo_BucketRecord.update(bucket); //插入一条变动记录 - bucket.put("change_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + bucket.put("change_id", IdUtil.getLongId() + ""); bucket.put("bucket_code", bucketunique); bucket.put("change_type_scode", "01"); bucket.put("change_time", now); @@ -1677,7 +1677,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { JSONObject moveParam = new JSONObject(); moveParam.put("jsonAllBlockPoint", jsonLockArr); moveParam.put("is_move", "1"); - moveParam.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId()); + moveParam.put("task_group_id", IdUtil.getLongId()); bean.createMove(moveParam, null); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java index 861a1b956..076b8d4b0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.st.instor.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -101,7 +101,7 @@ public class ProductScrapServiceImpl implements ProductScrapService { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String changeinv_id = IdUtil.getLongId() + ""; JSONObject mst_jo = new JSONObject(); mst_jo.put("scrap_id", changeinv_id); mst_jo.put("scrap_code", CodeUtil.getNewCode("SCRAP_CODE")); @@ -138,7 +138,7 @@ public class ProductScrapServiceImpl implements ProductScrapService { JSONObject json = rows.getJSONObject(i); JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("scrapdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("scrapdtl_id", IdUtil.getLongId()); jsonDtl.put("scrap_id", jsonMst.getLongValue("scrap_id")); jsonDtl.put("seq_no", i); jsonDtl.put("material_id", json.getLongValue("material_id")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/RecutPlanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/RecutPlanServiceImpl.java index 58e9df640..08fc1c348 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/RecutPlanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/RecutPlanServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.st.instor.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -95,7 +95,7 @@ public class RecutPlanServiceImpl implements RecutPlanService { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String changeinv_id = IdUtil.getLongId() + ""; JSONObject mst_jo = new JSONObject(); mst_jo.put("plan_id", changeinv_id); mst_jo.put("plan_code", CodeUtil.getNewCode("PLAN_CODE")); @@ -132,7 +132,7 @@ public class RecutPlanServiceImpl implements RecutPlanService { JSONObject json = rows.getJSONObject(i); JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("plandtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("plandtl_id", IdUtil.getLongId()); jsonDtl.put("plan_id", jsonMst.getLongValue("plan_id")); jsonDtl.put("seq_no", i); jsonDtl.put("material_id", json.getLongValue("material_id")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/EmpMoveTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/EmpMoveTask.java index 92958aad5..3cbcfb95b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/EmpMoveTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/EmpMoveTask.java @@ -1,7 +1,7 @@ package org.nl.wms.st.instor.task; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -157,8 +157,8 @@ public class EmpMoveTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java index c552d0aa4..dcf9435c7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java @@ -1,7 +1,7 @@ package org.nl.wms.st.instor.task; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -139,8 +139,8 @@ public class HandMoveStorAcsTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_id", IdUtil.getLongId()); + json.put("task_code", IdUtil.getLongId()); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index bbb627306..b6f8d12e4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.st.outbill.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -370,7 +370,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); map.put("iostorinv_id", iostorinv_id); map.put("bill_code", bill_code); @@ -393,7 +393,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { for (int i = 0; i < rows.size(); i++) { JSONObject row = rows.getJSONObject(i); - row.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + row.put("iostorinvdtl_id", IdUtil.getLongId() + ""); row.put("iostorinv_id", iostorinv_id); row.put("seq_no", (i + 1) + ""); row.put("assign_qty", "0"); @@ -449,7 +449,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } } String now = DateUtil.now(); - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); JSONObject jsonStor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("stor_id ='" + MapUtil.getStr(map, "stor_id") + "'").uniqueResult(0); @@ -489,7 +489,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { throw new BadRequestException("数量不能为0"); } JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonDtl.put("iostorinvdtl_id", IdUtil.getLongId() + ""); jsonDtl.put("iostorinv_id", iostorinv_id); jsonDtl.put("seq_no", (i + 1) + ""); jsonDtl.put("material_id", row.getString("material_id")); @@ -533,7 +533,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { for (int j = 0; j < ivtArr.size(); j++) { JSONObject jsonIvt = ivtArr.getJSONObject(j); JSONObject jsonDtl2 = new JSONObject(); - jsonDtl2.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonDtl2.put("iostorinvdtl_id", IdUtil.getLongId() + ""); jsonDtl2.put("iostorinv_id", iostorinv_id); jsonDtl2.put("seq_no", i + 2 + j); jsonDtl2.put("material_id", jsonIvt.getString("material_id")); @@ -594,7 +594,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } } String now = DateUtil.now(); - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); JSONObject jsonStor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("stor_id ='" + MapUtil.getStr(map, "stor_id") + "'").uniqueResult(0); @@ -634,7 +634,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { throw new BadRequestException("数量不能为0"); } JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonDtl.put("iostorinvdtl_id", IdUtil.getLongId() + ""); jsonDtl.put("iostorinv_id", iostorinv_id); jsonDtl.put("seq_no", (i + 1) + ""); jsonDtl.put("material_id", row.getString("material_id")); @@ -700,7 +700,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } } String now = DateUtil.now(); - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); JSONObject jsonStor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("stor_id ='" + MapUtil.getStr(map, "stor_id") + "'").uniqueResult(0); @@ -740,7 +740,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonDtl.put("iostorinvdtl_id", IdUtil.getLongId() + ""); jsonDtl.put("iostorinv_id", iostorinv_id); jsonDtl.put("seq_no", (i + 1) + ""); jsonDtl.put("material_id", row.getString("material_id")); @@ -786,7 +786,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { JSONObject jsonIvt = ivtArr.getJSONObject(j); JSONObject jsonDtl2 = new JSONObject(); - jsonDtl2.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonDtl2.put("iostorinvdtl_id", IdUtil.getLongId() + ""); jsonDtl2.put("iostorinv_id", iostorinv_id); jsonDtl2.put("seq_no", i + 2 + j); jsonDtl2.put("material_id", jsonIvt.getString("material_id")); @@ -1372,7 +1372,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonDtl.put("iostorinvdtl_id", IdUtil.getLongId() + ""); jsonDtl.put("iostorinv_id", iostorinv_id); jsonDtl.put("seq_no", (i + 1) + ""); jsonDtl.put("material_id", row.getString("material_id")); @@ -1416,7 +1416,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { for (int j = 0; j < ivtArr.size(); j++) { JSONObject jsonIvt = ivtArr.getJSONObject(j); JSONObject jsonDtl2 = new JSONObject(); - jsonDtl2.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonDtl2.put("iostorinvdtl_id", IdUtil.getLongId() + ""); jsonDtl2.put("iostorinv_id", iostorinv_id); jsonDtl2.put("seq_no", i + 2 + j); jsonDtl2.put("material_id", jsonIvt.getString("material_id")); @@ -1483,7 +1483,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonDtl.put("iostorinvdtl_id", IdUtil.getLongId() + ""); jsonDtl.put("iostorinv_id", iostorinv_id); jsonDtl.put("seq_no", (i + 1) + ""); jsonDtl.put("material_id", row.getString("material_id")); @@ -1644,7 +1644,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { storPublicService.IOStor(ivt2, "11"); //生成分配明细 - dtl.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl.put("iostorinvdis_id", IdUtil.getLongId()); dtl.put("sect_id", ivt2.getString("sect_id")); dtl.put("sect_code", ivt2.getString("sect_code")); dtl.put("sect_name", ivt2.getString("sect_name")); @@ -1719,7 +1719,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { jsonIvt.put("bill_table", "ST_IVT_IOStorInv"); storPublicService.IOStor(jsonIvt, "11"); //生成分配明细 - dtl.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl.put("iostorinvdis_id", IdUtil.getLongId()); dtl.put("sect_id", jsonIvt.getString("sect_id")); dtl.put("sect_code", jsonIvt.getString("sect_code")); dtl.put("sect_name", jsonIvt.getString("sect_name")); @@ -1925,7 +1925,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { //生成分配明细 - dtl.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl.put("iostorinvdis_id", IdUtil.getLongId()); dtl.put("sect_id", ivt2.getString("sect_id")); dtl.put("sect_code", ivt2.getString("sect_code")); dtl.put("sect_name", ivt2.getString("sect_name")); @@ -1999,7 +1999,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { // storPublicService.IOStor(jsonIvt, "11"); //生成分配明细 - dtl.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl.put("iostorinvdis_id", IdUtil.getLongId()); dtl.put("sect_id", jsonIvt.getString("sect_id")); dtl.put("sect_code", jsonIvt.getString("sect_code")); dtl.put("sect_name", jsonIvt.getString("sect_name")); @@ -2200,7 +2200,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { storPublicService.IOStor(ivt2, "11"); //生成分配明细 - dtl.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl.put("iostorinvdis_id", IdUtil.getLongId()); dtl.put("sect_id", ivt2.getString("sect_id")); dtl.put("sect_code", ivt2.getString("sect_code")); dtl.put("sect_name", ivt2.getString("sect_name")); @@ -2269,7 +2269,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { jsonIvt.put("bill_table", "ST_IVT_IOStorInv"); storPublicService.IOStor(jsonIvt, "11"); //生成分配明细 - dtl.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl.put("iostorinvdis_id", IdUtil.getLongId()); dtl.put("sect_id", jsonIvt.getString("sect_id")); dtl.put("sect_code", jsonIvt.getString("sect_code")); dtl.put("sect_name", jsonIvt.getString("sect_name")); @@ -2342,7 +2342,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { ivt.put("bill_table", "ST_IVT_IOStorInv"); storPublicService.IOStor(ivt, "11"); //生成分配明细 - json.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("iostorinvdis_id", IdUtil.getLongId()); json.put("sect_id", ivt.getString("sect_id")); json.put("sect_code", ivt.getString("sect_code")); json.put("sect_name", ivt.getString("sect_name")); @@ -2838,7 +2838,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } // 更新第一个任务 任务组、任务顺序号 - jsonTask.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonTask.put("task_group_id", IdUtil.getLongId()); jsonTask.put("sort_seq", 1); wo_Task.update(jsonTask); @@ -2954,7 +2954,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { if (ObjectUtil.isNotEmpty(jsonIsBlockL)) { // 更新第一个任务 任务组、任务顺序号 - jsonTask.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonTask.put("task_group_id", IdUtil.getLongId()); jsonTask.put("sort_seq", 1); wo_Task.update(jsonTask); // 从左边生成移库单 @@ -2971,7 +2971,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { // 判断左边是否被挡住 if (ObjectUtil.isNotEmpty(jsonIsBlockR)) { // 更新第一个任务 任务组、任务顺序号 - jsonTask.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonTask.put("task_group_id", IdUtil.getLongId()); jsonTask.put("sort_seq", 1); wo_Task.update(jsonTask); // 从右边生成移库单 @@ -3163,7 +3163,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { if (ObjectUtil.isNotEmpty(paramMoveArr)) { JSONObject moveParam = new JSONObject(); moveParam.put("jsonAllBlockPoint", paramMoveArr); - moveParam.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId()); + moveParam.put("task_group_id", IdUtil.getLongId()); this.createMove(moveParam, allTransactionConsumer); new HandMoveStorAcsTask().immediateNotifyAcs(null); @@ -3467,7 +3467,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } // 创建任务组 - long task_group_id = IdUtil.getSnowflake(1, 1).nextId(); + long task_group_id = IdUtil.getLongId(); /*-----------------------update开始------------------------------*/ @@ -3568,7 +3568,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { outTask.immediateNotifyAcs(null); // 更新任务组 - task_group_id = IdUtil.getSnowflake(1, 1).nextId(); + task_group_id = IdUtil.getLongId(); canAdd = false; } else { @@ -3629,7 +3629,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { disRowArrNew.clear(); // 更新任务组 - task_group_id = IdUtil.getSnowflake(1, 1).nextId(); + task_group_id = IdUtil.getLongId(); } else { // 迭代调用自身 this.rowDispose(jsonRow, allTransactionConsumer); @@ -3909,7 +3909,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } // 创建任务组 - long task_group_id = IdUtil.getSnowflake(1, 1).nextId(); + long task_group_id = IdUtil.getLongId(); // 判断是否需要生成移库 if (ObjectUtil.isNotEmpty(moveArr)) { @@ -4007,7 +4007,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { outTask.immediateNotifyAcs(null); // 更新任务组 - task_group_id = IdUtil.getSnowflake(1, 1).nextId(); + task_group_id = IdUtil.getLongId(); canAdd = false; } else { @@ -4066,7 +4066,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { disRowArrNew.clear(); // 更新任务组 - task_group_id = IdUtil.getSnowflake(1, 1).nextId(); + task_group_id = IdUtil.getLongId(); } else { } return null; @@ -4481,7 +4481,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { ivt.put("bill_table", "ST_IVT_IOStorInv"); storPublicService.IOStor(ivt, "11"); //生成分配明细 - dtl.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl.put("iostorinvdis_id", IdUtil.getLongId()); dtl.put("sect_id", ivt.getString("sect_id")); dtl.put("sect_code", ivt.getString("sect_code")); dtl.put("sect_name", ivt.getString("sect_name")); @@ -4560,7 +4560,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { ivt.put("bill_table", "ST_IVT_IOStorInv"); storPublicService.IOStor(ivt, "11"); //生成分配明细 - json.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("iostorinvdis_id", IdUtil.getLongId()); json.put("sect_id", ivt.getString("sect_id")); json.put("sect_code", ivt.getString("sect_code")); json.put("sect_name", ivt.getString("sect_name")); @@ -4812,7 +4812,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { jsonSub.put("bill_type", jo_mst.getString("bill_type")); jsonSub.put("io_type", "1"); jsonSub.put("insert_time", DateUtil.now()); - jsonSub.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonSub.put("record_id", IdUtil.getLongId()); sub_record.insert(jsonSub); // 更新对应任务为完成 @@ -4847,7 +4847,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } //生成手工入库单 - String new_iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String new_iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); jo_mst.put("iostorinv_id", new_iostorinv_id); jo_mst.put("bill_code", bill_code); @@ -4874,7 +4874,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { double total_qty = 0.00; for (int i = 0; i < dis_rows.size(); i++) { //插入明细表 - String iostorinvdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinvdtl_id = IdUtil.getLongId() + ""; JSONObject dis_row = dis_rows.getJSONObject(i); //查询对应的出库单明细 JSONObject dtl_row = dtl_wql.query("iostorinvdtl_id = '" + dis_row.getString("iostorinvdtl_id") + "'").uniqueResult(0); @@ -4893,7 +4893,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { //插入调拨明细表 dtl_wql.insert(dis_row); - dis_row.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dis_row.put("iostorinvdis_id", IdUtil.getLongId()); dis_row.put("seq_no", 1); dis_row.put("sect_id", ""); dis_row.put("sect_code", ""); @@ -5442,7 +5442,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { jsonSub.put("bill_type", jo_mst.getString("bill_type")); jsonSub.put("io_type", "1"); jsonSub.put("insert_time", DateUtil.now()); - jsonSub.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonSub.put("record_id", IdUtil.getLongId()); sub_record.insert(jsonSub); // 更新对应任务为完成 @@ -5477,7 +5477,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } //生成手工入库单 - String new_iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String new_iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); jo_mst.put("iostorinv_id", new_iostorinv_id); jo_mst.put("bill_code", bill_code); @@ -5504,7 +5504,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { double total_qty = 0.00; for (int i = 0; i < dis_rows.size(); i++) { //插入明细表 - String iostorinvdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinvdtl_id = IdUtil.getLongId() + ""; JSONObject dis_row = dis_rows.getJSONObject(i); //查询对应的出库单明细 JSONObject dtl_row = dtl_wql.query("iostorinvdtl_id = '" + dis_row.getString("iostorinvdtl_id") + "'").uniqueResult(0); @@ -5523,7 +5523,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { //插入调拨明细表 dtl_wql.insert(dis_row); - dis_row.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dis_row.put("iostorinvdis_id", IdUtil.getLongId()); dis_row.put("seq_no", 1); dis_row.put("sect_id", ""); dis_row.put("sect_code", ""); @@ -5788,7 +5788,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { jsonSub.put("bill_type", jo_mst.getString("bill_type")); jsonSub.put("io_type", "1"); jsonSub.put("insert_time", DateUtil.now()); - jsonSub.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonSub.put("record_id", IdUtil.getLongId()); sub_record.insert(jsonSub); } @@ -5947,7 +5947,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { JSONArray dtl_rows = dtl_wql.query("iostorinv_id = '" + whereJson.get("iostorinv_id") + "'").getResultJSONArray(0); //生成手工入库库单 - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String iostorinv_id = IdUtil.getLongId() + ""; String bill_code = CodeUtil.getNewCode("IO_CODE"); for (int i = 0; i < dtl_rows.size(); i++) { @@ -5956,7 +5956,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { dtl_row.put("source_bill_type", mst_row.getString("bill_type")); dtl_row.put("source_bill_code", mst_row.getString("bill_code")); dtl_row.put("source_bill_table", "ST_IVT_IOStorInvDtl"); - dtl_row.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + dtl_row.put("iostorinvdtl_id", IdUtil.getLongId()); dtl_row.put("iostorinv_id", iostorinv_id); dtl_wql.insert(dtl_row); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/RegionioOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/RegionioOutServiceImpl.java index 102b07ac6..49ce1ff31 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/RegionioOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/RegionioOutServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.st.outbill.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -128,7 +128,7 @@ public class RegionioOutServiceImpl implements RegionioOutService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - dto.setIostorinv_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setIostorinv_id(IdUtil.getLongId()); dto.setBill_code(bill_code); dto.setIo_type("1"); dto.setBill_status("10"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/vehiclebill/service/impl/InEmptyvehiclerecordServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/vehiclebill/service/impl/InEmptyvehiclerecordServiceImpl.java index 60a7e6fc5..00031ece6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/vehiclebill/service/impl/InEmptyvehiclerecordServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/vehiclebill/service/impl/InEmptyvehiclerecordServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.st.vehiclebill.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -105,7 +105,7 @@ public class InEmptyvehiclerecordServiceImpl implements InEmptyvehiclerecordServ dto.setEnd_region_id(end_region_id); } - dto.setRecord_uuid(IdUtil.getSnowflake(1, 1).nextId()); + dto.setRecord_uuid(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/vehiclebill/service/impl/OutEmptyvehiclerecordServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/vehiclebill/service/impl/OutEmptyvehiclerecordServiceImpl.java index 6ef9c49ce..5795711b4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/vehiclebill/service/impl/OutEmptyvehiclerecordServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/vehiclebill/service/impl/OutEmptyvehiclerecordServiceImpl.java @@ -3,7 +3,7 @@ package org.nl.wms.st.vehiclebill.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; +import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -105,7 +105,7 @@ public class OutEmptyvehiclerecordServiceImpl implements OutEmptyvehiclerecordSe dto.setStart_region_id(start_region_id); } - dto.setRecord_uuid(IdUtil.getSnowflake(1, 1).nextId()); + dto.setRecord_uuid(IdUtil.getLongId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); dto.setUpdate_optid(currentUserId); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java index 7af5e9a06..da34cc346 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java @@ -2,7 +2,7 @@ package org.nl.wms.util; public class IdUtil { public static Long getLongId() { - return cn.hutool.core.util.IdUtil.getSnowflake(1, 1).nextId(); + return IdUtil.getLongId(); } public static String getStringId() { From 28e38e77d4b80a9bd06a394dcbe9c2f7481bfeab Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 13 Oct 2025 09:19:18 +0800 Subject: [PATCH 115/146] =?UTF-8?q?opt:=20=E5=B9=B6=E5=8F=91=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/controller/SlitterPdaController.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java index 3494b60da..877050710 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java @@ -4,12 +4,17 @@ import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; +import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.logging.annotation.Log; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.concurrent.TimeUnit; + /** * @Author: lyd * @Description: @@ -22,6 +27,8 @@ public class SlitterPdaController { @Autowired private SlitterService slitterService; + @Autowired + private RedissonClient redissonClient; @PostMapping("/slitterDevices") @Log("获取分切设备") @@ -41,7 +48,26 @@ public class SlitterPdaController { @Log("下卷2") @SaIgnore public ResponseEntity downRolls2(@RequestBody JSONObject param) { - return new ResponseEntity<>(slitterService.downRolls2(param), HttpStatus.OK); + RLock open = redissonClient.getLock("doDownRoll"); + JSONObject res; + boolean openLock; + try { + openLock = open.tryLock(0, TimeUnit.SECONDS); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + try { + if (openLock) { + res = slitterService.downRolls2(param); + } else { + throw new BadRequestException("请勿多次下卷!"); + } + } finally { + if (open.isLocked() && open.isHeldByCurrentThread()) { + open.unlock(); + } + } + return new ResponseEntity<>(res, HttpStatus.OK); } @PostMapping("/downRollsCheck") @Log("下卷2提示确认") From f1dddf7e850f9f91c7754b15b858f2ba6890fd48 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 13 Oct 2025 09:50:07 +0800 Subject: [PATCH 116/146] =?UTF-8?q?fix:=E4=BB=BB=E5=8A=A1=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E4=B8=8D=E5=8D=A1=E6=8E=A7=E6=89=A7=E8=A1=8C=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java | 3 --- .../nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java | 3 --- .../java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java | 3 --- .../nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java | 3 --- .../org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java | 3 --- .../nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java | 3 --- .../nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java | 3 --- .../org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java | 3 --- .../org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java | 3 --- .../org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java | 3 --- .../java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java | 3 --- 11 files changed, 33 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index fb02af359..0b5bdcc31 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -167,9 +167,6 @@ public class DjqTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); 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 5985f89fc..bcf3cf1b3 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 @@ -130,9 +130,6 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index 41a3e81e0..3d20d80e8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java @@ -115,9 +115,6 @@ public class GzqTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java index 160cfca9e..ce07874a1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java @@ -131,9 +131,6 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); 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 0cab4e148..9fc8e2c1e 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 @@ -168,9 +168,6 @@ public class MzhcwTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); 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 f53200c80..db3f9ab13 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 @@ -107,9 +107,6 @@ public class SendDjqKzjTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java index 7d1dc9601..74d70dc04 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java @@ -105,9 +105,6 @@ public class SendGzqKzjTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java index 7fbba725d..94287d084 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java @@ -104,9 +104,6 @@ public class ShiftingTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index 5eb163a79..debcbce77 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java @@ -133,9 +133,6 @@ public class SsxDjwTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index 3248d93a7..529e09628 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -155,9 +155,6 @@ public class ZxDjwTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 5681d5c4f..42d6b86c1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -145,9 +145,6 @@ public class ZxqTask extends AbstractAcsTask { } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } //任务被标记为取消 updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是")); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); From 35ed69f40a8ec3d690c7d2eccfb88d0029cd9896 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 13 Oct 2025 13:42:03 +0800 Subject: [PATCH 117/146] =?UTF-8?q?fix:=E5=87=BA=E7=83=98=E7=AE=B1?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=A1=A5=E5=85=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/wms/sch/tasks/CoolCutTask.java | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java index 817d41287..8903cb7c5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java @@ -310,7 +310,42 @@ public class CoolCutTask extends AbstractAcsTask { cut_jo.put("update_time", DateUtil.now()); WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo); } - + //判断是存在确定起点的该任务类型 + JSONArray issue_arr = taskTab.query("task_type = '010205' AND task_status = '02' AND is_delete= '0'").getResultJSONArray(0); + JSONObject map = new JSONObject(); + map.put("flag", "4"); + map.put("reging_id", RegionTypeEnum.B1_HKZC.getId()); + //只找入箱点位 + map.put("point_type", "5"); + JSONArray canuse_point = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().getResultJSONArray(0); + for (int i = 0; i < issue_arr.size(); i++) { + JSONObject issue_jo = issue_arr.getJSONObject(i); + JSONObject goal_point = WQLObject.getWQLObject("st_ivt_coolpointivt").query("point_code = '" + issue_jo.getString("point_code1") + "'").uniqueResult(0); + for (int j = 0; j < canuse_point.size(); j++) { + JSONObject canuse_point_jo = canuse_point.getJSONObject(j); + if (canuse_point_jo.getString("point_location").equals(goal_point.getString("point_location"))) { + issue_jo.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + issue_jo.put("point_code2", canuse_point_jo.getString("point_code")); + canuse_point.remove(canuse_point_jo); + taskTab.update(issue_jo); + break; + } + } + if (!issue_jo.getString("task_status").equals(TaskStatusEnum.START_AND_POINT.getCode())) { + for (int j = 0; j < canuse_point.size(); j++) { + JSONObject canuse_point_jo = canuse_point.getJSONObject(j); + if (!canuse_point_jo.getString("point_location").equals(goal_point.getString("point_location"))) { + issue_jo.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + issue_jo.put("point_code2", canuse_point_jo.getString("point_code")); + canuse_point.remove(canuse_point_jo); + taskTab.update(issue_jo); + break; + } + } + } + //下发任务 + SpringContextHolder.getBean(OutHotTask.class).immediateNotifyAcs(null); + } } else { // 更新主表状态 JSONObject coolMst = ivtTab.query("task_id = '" + task_id + "'").uniqueResult(0); From 7919e6790b7fb7918d09579969df551be1571e36 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 14 Oct 2025 10:22:16 +0800 Subject: [PATCH 118/146] =?UTF-8?q?fix:=E9=85=8D=E7=BD=AE=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/config/SnowflakeProperties.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/config/SnowflakeProperties.java diff --git a/lms/nladmin-system/src/main/java/org/nl/config/SnowflakeProperties.java b/lms/nladmin-system/src/main/java/org/nl/config/SnowflakeProperties.java new file mode 100644 index 000000000..7c1aab733 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/config/SnowflakeProperties.java @@ -0,0 +1,13 @@ +package org.nl.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "snowflake") +public class SnowflakeProperties { + private long workerId; // 对应 snowflake.worker-id + private long datacenterId; // 对应 snowflake.datacenter-id +} From 515a182f896cc4f6a80a1a50c8ced9bd7b41f451 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 14 Oct 2025 13:54:03 +0800 Subject: [PATCH 119/146] =?UTF-8?q?fix:ID=E5=88=9B=E5=BB=BA=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java index da34cc346..7af5e9a06 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/util/IdUtil.java @@ -2,7 +2,7 @@ package org.nl.wms.util; public class IdUtil { public static Long getLongId() { - return IdUtil.getLongId(); + return cn.hutool.core.util.IdUtil.getSnowflake(1, 1).nextId(); } public static String getStringId() { From 33f905dab172ad25413877524a9b6dfee32beab4 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 15 Oct 2025 09:36:58 +0800 Subject: [PATCH 120/146] =?UTF-8?q?fix:=E5=85=A5=E7=83=98=E7=AE=B1?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/pda/controller/VehicleTwoController.java | 7 +++++++ .../service/impl/BstIvtPackageinfoivtServiceImpl.java | 3 ++- .../org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java index 0e47b395a..8288017ce 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java @@ -81,6 +81,13 @@ public class VehicleTwoController { return new ResponseEntity<>(bstIvtPackageInfoIvtService.update(whereJson), HttpStatus.OK); } + @PostMapping("/getPointInfo") + @Log("获取装箱区点位子卷信息") + @SaIgnore + public ResponseEntity getPointInfo(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(bstIvtPackageInfoIvtService.getOne(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("point_code"))), HttpStatus.OK); + } + @PostMapping("/toEndSub") @Log("二期子卷包装解绑") @SaIgnore 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 bc879e3d5..4206d53eb 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 @@ -1053,7 +1053,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl 1) { result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value()); - result.put("message", "存在多个相同子卷号或点位信息有误,请核对是否存在!"); + String collect = dtoList.stream().map(a -> a.getPoint_code()).collect(Collectors.joining(",")); + result.put("message", "存在多个相同子卷号或点位信息有误,请核对是否存在!重复点位信息【"+collect+"】"); return result; } BstIvtPackageinfoivt packageinfoivt = dtoList.get(0); 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 30d9808cb..599493715 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 @@ -79,10 +79,10 @@ public class BakingServiceImpl implements BakingService { String temperature = whereJson.getString("temperature"); // 温度 String hours = whereJson.getString("hours"); // 时间 String point_code1 = whereJson.getString("point_code"); // 点位 - if (SlitterTaskUtil.isNumeric(hours)) { + if (!SlitterTaskUtil.isNumeric(hours)) { throw new BadRequestException("请输入合法的时间!"); } - if (SlitterTaskUtil.isNumeric(temperature)) { + if (!SlitterTaskUtil.isNumeric(temperature)) { throw new BadRequestException("请输入合法的温度!"); } //查询该点位是否存在未完成的任务 From c6788bd3a7c665bf316098e0f4c44935adf10ccf Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 16 Oct 2025 15:53:53 +0800 Subject: [PATCH 121/146] =?UTF-8?q?opt:=20=E5=A4=87=E8=B4=A7=E5=8C=BA?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E7=A9=BA=E4=BD=8D=E5=8F=AA=E5=81=9A=E6=8B=94?= =?UTF-8?q?=E8=BD=B4=EF=BC=8C=E6=9A=82=E5=AD=98=E5=8C=BA=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E7=A9=BA=E4=BD=8D=E4=B8=8D=E5=81=9A=E6=8B=94=E8=BD=B4=EF=BC=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=9F=A5=E7=9C=8B=E6=89=8B=E6=8C=81=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/controller/SlitterPdaController.java | 6 + .../slitter/auto/AutoCallAirShaftTask.java | 106 +++++++++++++++--- .../tasks/slitter/service/SlitterService.java | 3 + .../service/impl/SlitterServiceImpl.java | 13 +++ 4 files changed, 110 insertions(+), 18 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java index 877050710..69d9863c6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java @@ -323,5 +323,11 @@ public class SlitterPdaController { public ResponseEntity getTubeVehicleInfo(@RequestBody JSONObject param) { return new ResponseEntity<>(slitterService.getTubeVehicleInfo(param), HttpStatus.OK); } + @PostMapping("/seeTaskByPoint") + @Log("任务查看") + @SaIgnore + public ResponseEntity seeTaskByPoint(@RequestBody JSONObject param) { + return new ResponseEntity<>(slitterService.seeTaskByPoint(param), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index f31cae110..543d6c427 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -54,7 +54,6 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -62,6 +61,7 @@ import static org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil.doSavePaperInf /** * 定时器呼叫套轴任务 + * * @Author: lyd * @Date: 2024/2/1 * @Description: 自动任务 呼叫套轴 根据分切计划来呼叫套轴任务 桁架任务 @@ -107,6 +107,7 @@ public class AutoCallAirShaftTask extends Prun { public final static String IS_ONLY_PULLING = "IS_ONLY_PULLING"; public final static String TZ_DAY = "TZ_DAY"; public final static String USE_XN = "USE_XN"; + public final static String BZ_CHECK_EMPTY = "BZ_CHECK_EMPTY"; public List stepErrorInfo = new ArrayList<>(); @Autowired private RedissonClient redissonClient; @@ -154,6 +155,7 @@ public class AutoCallAirShaftTask extends Prun { } } } + @Transactional(rollbackFor = Exception.class) public void doCallShaft(BstIvtShafttubeivt empty, Param isOnlyPulling, Param tzDay, Param paramObj, Param useXn) { log.info(empty.getPoint_code() + "执行中..."); @@ -310,12 +312,13 @@ public class AutoCallAirShaftTask extends Prun { List qzzPoint = sortByPointEmpty(notTaskPoints); log.info("查找到满足到对应尺寸的点位-{}", qzzPoint); if (qzzPoint.size() == 0) { - stepErrorInfo.add("没有可拔轴的点位。"); + stepErrorInfo.add("没有套轴暂存位没有相同规格的气胀轴来拔轴,直接去气胀轴库获取。"); //若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可 // 调用ACS滚条气涨轴下来 - if (!toAcsOutShaft(needPlans, plans, qzzSize,location, empty)) { + if (!toAcsOutShaft(needPlans, plans, qzzSize, location, empty)) { log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); - stepErrorInfo.add("呼叫出轴失败-穿拔轴" + empty.getPoint_code() + "不进行套轴,跳过!"); + stepErrorInfo.add("呼叫出轴失败-穿拔轴" + empty.getPoint_code() + "不进行套轴,直接做拔轴!"); + makePullShaft(empty, specification); return; } // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 @@ -422,6 +425,7 @@ public class AutoCallAirShaftTask extends Prun { /** * 判断是不是有空位置 + * * @param planD * @return */ @@ -430,7 +434,7 @@ public class AutoCallAirShaftTask extends Prun { String qzzGeneration = planD.getQzz_generation(); String location = empty.getPoint_location(); // 需要区分上下 - List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize ,empty.getPoint_code(), location); + List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize, empty.getPoint_code(), location); if (shafttubeivts.size() == 0) { stepErrorInfo.add("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位,此次不为[" + planD.getResource_name() + "]套轴"); log.error("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); @@ -503,6 +507,7 @@ public class AutoCallAirShaftTask extends Prun { /** * 跳过跟当前套轴计划一样的管芯的分切计划 + * * @param needPlans 当前能套轴的计划 */ public void skipTheSameTubePlans(List needPlans) { @@ -540,10 +545,11 @@ public class AutoCallAirShaftTask extends Prun { /** *

呼叫AGV更换纸管

*

默认双管芯尺寸一致 + * * @param needPlans 所需要套轴的分切计划 * @param location 位置 - * @param empty 穿拔轴点位 - * @param plans 总计划 + * @param empty 穿拔轴点位 + * @param plans 总计划 * @return 0: false, 1: true, 2: 只作拔轴 */ public Integer toCallAgvMovePaperTube(List needPlans, String location, BstIvtShafttubeivt empty, List plans) { @@ -608,7 +614,7 @@ public class AutoCallAirShaftTask extends Prun { BigDecimal qty = sumByMaterialCode.get(tubes.get(0)); if (ObjectUtil.isNotEmpty(qty)) { int sumQty = qty.intValue(); - if (sumQty >= needQuantity ) { + if (sumQty >= needQuantity) { stepErrorInfo.add("AGV正在搬运管芯..."); log.info("AGV正在搬运管芯..."); return 1; @@ -774,8 +780,7 @@ public class AutoCallAirShaftTask extends Prun { List list = stockingivtService.getEmptyPointNotTask(location, "0"); if (list.size() == 0) { stepErrorInfo.add("备货区找不到空位置搬运, 请检查备货区点位情况!"); - redisUtils.set("ERROR" + empty.getPoint_code(), stepErrorInfo); - throw new RuntimeException("备货区找不到空位置搬运, 请检查备货区点位情况!"); + return 2; } BstIvtStockingivt endPoint = list.get(0); // 创建任务 -> HINT: 在此任务完成之后会调用搬回来的任务,因此任务中要记录需要搬运的点位放在任务请求参数中。 @@ -803,10 +808,11 @@ public class AutoCallAirShaftTask extends Prun { * @param location 位置:上半部分还是下半部分 * @param empty 套拔轴点位 */ - private Boolean toAcsOutShaft(List needPlans, List plans, String qzzSize, String location, BstIvtShafttubeivt empty) { + private Boolean toAcsOutShaft(List needPlans, List plans, String qzzSize, String location, BstIvtShafttubeivt empty) { Integer movePaperTube = toCallAgvMovePaperTube(needPlans, location, empty, plans); if (movePaperTube == 2) { log.info("跳过,无法更换托盘。"); + stepErrorInfo.add("呼叫AGV更换托盘失败,无法更换托盘。"); return false; } if (movePaperTube != 0) { @@ -814,7 +820,7 @@ public class AutoCallAirShaftTask extends Prun { return false; } // 需要区分上下 - List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize ,empty.getPoint_code(), location); + List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize, empty.getPoint_code(), location); if (shafttubeivts.size() == 0) { log.error("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); stepErrorInfo.add("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); @@ -851,7 +857,7 @@ public class AutoCallAirShaftTask extends Prun { } if (!judgment1 && !judgment2) { log.warn("没有气胀轴,不给ACS写出轴信息"); - stepErrorInfo.add("呼叫气胀轴失败,(密集库/暂存架)没有"+qzzSize+"寸的气胀轴,不给ACS写出轴信息。请人工补轴或将对应的分切计划点击入站完成"); + stepErrorInfo.add("呼叫气胀轴失败,(密集库/暂存架)没有" + qzzSize + "寸的气胀轴,不给ACS写出轴信息。请人工补轴或将对应的分切计划点击入站完成"); return false; } // 判断气胀轴密集库是否有数据 @@ -978,15 +984,18 @@ public class AutoCallAirShaftTask extends Prun { if (list.size() == 0) { log.warn("气涨轴[{}]对应的分切计划不存在!", qzzNo); bcutpointivtService.update(new UpdateWrapper() - .eq("ivt_id",cutpointivt.getIvt_id()) - .set("is_used","0") - .set("remark","气胀轴" + qzzNo + "的计划不存在,无效点位自动禁用") - .set("update_time",DateUtil.now())); + .eq("ivt_id", cutpointivt.getIvt_id()) + .set("is_used", "0") + .set("remark", "气胀轴" + qzzNo + "的计划不存在,无效点位自动禁用") + .set("update_time", DateUtil.now())); stepErrorInfo.add("气胀轴" + qzzNo + "的计划不存在,无效点位[" + cutpointivt.getPoint_code() + "]自动禁用。"); return; } PdmBiSlittingproductionplan plan = list.get(0); - // todo: 考虑是否有空位(如果气涨轴库和气胀轴暂存架都没有空位,则退出)【暂时不考虑】 + // hint: 考虑是否有空位(如果气涨轴库和气胀轴暂存架都没有空位,则退出) + if (doCheckHaveEmptyPoint(empty, specification, plan)) { + return; + } List collect = list.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList()); JSONObject param = new JSONObject(); param.put("point_code1", pointCode1); @@ -1010,8 +1019,69 @@ public class AutoCallAirShaftTask extends Prun { stepErrorInfo.add("只做拔轴,拔轴任务已经创建..."); } + /** + * 检测气胀轴密集库/气胀轴缓存库有没有空位 + * @param empty + * @param specification + * @param plan + * @return + */ + private boolean doCheckHaveEmptyPoint(BstIvtShafttubeivt empty, String specification, PdmBiSlittingproductionplan plan) { + Param bzCheckEmpty = paramService.findByCode(BZ_CHECK_EMPTY); + if (ObjectUtil.isEmpty(bzCheckEmpty)) { + stepErrorInfo.add("参数未配置【BZ_CHECK_EMPTY】,默认拔轴不检验空位!"); + return false; + } + if ("0".equals(bzCheckEmpty.getValue())) { + stepErrorInfo.add("参数配置【BZ_CHECK_EMPTY】拔轴不检验空位!"); + return false; + } + // 需要区分上下 - 气胀轴库(3寸能放7个,6寸能放6个) + List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(plan.getQzz_size(), empty.getPoint_code(), empty.getPoint_location()); + if (shafttubeivts.size() == 0) { + log.error("气胀轴库找不到[" + plan.getQzz_size() + "]规格的气涨轴位"); + stepErrorInfo.add("拔轴空位校验失败:气胀轴库找不到[" + plan.getQzz_size() + "]规格的气涨轴位"); + } else { + Integer qty = 7; + // 气涨轴库 + BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); + qty = "3".equals(shafttubeivt.getQzz_size()) ? 7 : 6; + JSONArray device_rows = new JSONArray(); + JSONObject device_obj = new JSONObject(); + device_rows.add(device_obj); + device_obj.put("device_code", shafttubeivt.getPoint_code()); + // todo: 暂时都是B1 + device_obj.put("product_area", "B1"); + JSONObject pointStatus = wmsToAcsService.getPointStatus(device_rows); + if (ObjectUtil.isEmpty(pointStatus)) { + log.error("获取气胀轴库信息失败"); + stepErrorInfo.add("拔轴空位校验失败:获取ACS气胀轴库信息失败..."); + } else { + boolean judgment1 = true; + boolean judgment2 = true; + // 获取气涨轴缓存没有任务的点位 + List qzzCache = bstIvtShafttubeivtService.getNotTaskShaftCacheEmpty(empty); + if (qzzCache.size() == 0) { + log.warn("未找到气胀轴密集库可以存放气涨轴规格「" + plan.getQzz_size() + "」的暂存位"); + judgment2 = false; + } + JSONObject data2 = pointStatus.getJSONArray("data").getJSONObject(0); + if (ObjectUtil.isNotEmpty(data2.get("qty")) && data2.getInteger("qty") > 0 && (qty - data2.getInteger("qty") <= 0)) { + log.warn("气胀轴库【" + shafttubeivt.getPoint_code() + "】没有空位。"); + judgment1 = false; + } + if (!judgment1 && !judgment2) { + stepErrorInfo.add("拔轴空位校验:密集库/缓存架没有可以存放气涨轴规格「" + plan.getQzz_size() + "-" + specification + "」的暂存位"); + return true; + } + } + } + return false; + } + /** * 排序 + * * @param notTaskPoints * @return */ diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index 2683eeef9..42992099f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -3,6 +3,7 @@ package org.nl.b_lms.sch.tasks.slitter.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; +import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.CallPlanViewVO; import org.springframework.http.ResponseEntity; @@ -408,4 +409,6 @@ public interface SlitterService { JSONObject taskTubeVehicle(JSONObject param); JSONObject getTubeVehicleInfo(JSONObject param); + + List seeTaskByPoint(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 593f6c000..6802b29f8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -67,6 +67,7 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -3275,6 +3276,18 @@ public class SlitterServiceImpl implements SlitterService { return res; } + @Override + public List seeTaskByPoint(JSONObject param) { + String data = param.getString("data"); + return taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getIs_delete, "0") + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .and(ObjectUtil.isNotEmpty(data), la2 -> la2.like(SchBaseTask::getPoint_code1, data).or() + .like(SchBaseTask::getPoint_code2, data).or() + .like(SchBaseTask::getPoint_code3, data).or() + .like(SchBaseTask::getPoint_code4, data))); + } + public List getRedisListValue(String key) { List stepTipLogs = (List) redisUtils.get(key); if (CollectionUtil.isEmpty(stepTipLogs)) { From 3fac325f47bf755bacb76be7d77a91fc5ac513ec Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 17 Oct 2025 14:04:18 +0800 Subject: [PATCH 122/146] =?UTF-8?q?fix:=E6=89=8B=E6=8C=81=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=A0=B9=E6=8D=AE=E7=82=B9=E4=BD=8D=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E7=AE=A1=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BstIvtPackageinfoivtServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 4206d53eb..873e7e95c 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 @@ -1035,8 +1035,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("point_code"))); + updateWrapper.set("ivt_status", whereJson.getString("ivt_status")); + } //子卷质检合格品和管制品 - if (StringUtils.isNotBlank(whereJson.getString("container_name")) && StringUtils.isBlank(whereJson.getString("pointCode"))) { + else if (StringUtils.isNotBlank(whereJson.getString("container_name")) && StringUtils.isBlank(whereJson.getString("pointCode"))) { if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("空")) || whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具")) || whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("有子卷"))) { throw new BadRequestException("质检结果只能为合格品或管制品"); } From 800321adbd52e52ebef2b1d9c3a9c844fcbe13d2 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 17 Oct 2025 16:40:00 +0800 Subject: [PATCH 123/146] =?UTF-8?q?opt:=20=E5=A4=87=E8=B4=A7=E5=8C=BA?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8F=A3=E7=BB=B4=E6=8A=A4=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java index 075cb233f..f6c259be2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/StockAreaInOutTask.java @@ -84,12 +84,10 @@ public class StockAreaInOutTask extends AbstractAcsTask { String endPoint = task.getPoint_code2(); BstIvtStockingivt startPointObj = stockingivtService.getPointByCode(startPoint, false); BstIvtStockingivt endPointObj = stockingivtService.getPointByCode(endPoint, false); - if (SlitterEnum.TASK_TYPE.code("备货区托盘入库").equals(task.getTask_type())) { - endPointObj.setIvt_status("1"); - endPointObj.setVehicle_code(task.getVehicle_code()); - endPointObj.setUpdate_time(DateUtil.now()); - stockingivtService.updateById(endPointObj); - } + endPointObj.setIvt_status("1"); + endPointObj.setVehicle_code(task.getVehicle_code()); + endPointObj.setUpdate_time(DateUtil.now()); + stockingivtService.updateById(endPointObj); startPointObj.setIvt_status("0"); startPointObj.setVehicle_code(""); startPointObj.setUpdate_time(DateUtil.now()); From fec55953f8b2e203ffb23a32e987684cd7e76b1e Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 17 Oct 2025 16:49:52 +0800 Subject: [PATCH 124/146] =?UTF-8?q?opt:=20=E5=A4=87=E8=B4=A7=E5=8C=BA?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E7=82=B9=E4=BD=8D=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/slitter/service/impl/SlitterServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 6802b29f8..478987e0a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -3164,6 +3164,9 @@ public class SlitterServiceImpl implements SlitterService { if (ObjectUtil.isEmpty(rkPoint)) { throw new BadRequestException("点位「" + pointCode + "」不存在!"); } + if (!"2".equals(rkPoint.getPoint_type())) { + throw new BadRequestException("点位「" + pointCode + "」不是入库点,请扫入库的备货点位!"); + } // 找一个没任务的空位 List list = stockingivtService.getEmptyPointNotTask(rkPoint.getPoint_location(), "0"); if (list.size() == 0) { From c5c3e50b607d85ac81165b56a20025ee71b00a71 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 21 Oct 2025 11:13:34 +0800 Subject: [PATCH 125/146] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=85=A5?= =?UTF-8?q?=E7=83=98=E7=AE=B1=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/iostorInv/util/impl/InBoxManageServiceImpl.java | 2 +- .../main/java/org/nl/wms/pda/mps/rest/BakingController.java | 3 ++- .../main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql | 5 ++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index b848cc138..63d983679 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -717,7 +717,7 @@ public class InBoxManageServiceImpl implements InBoxManageService { JSONObject jsonAttr = new JSONObject(); - RLock lock = redissonClient.getLock("getEmptyBox-----"+block_num); + RLock lock = redissonClient.getLock("getEmptyBox"); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java index 5309aa739..d308bb8e4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.mps.rest; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -25,7 +26,7 @@ public class BakingController { @PostMapping("/ovenInAndOut") @Log("烘箱出入") - +@SaIgnore public ResponseEntity queryRawFoil(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(bakingService.ovenInAndOut(whereJson), HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql index d54e16d12..a0c253c9c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql @@ -85,7 +85,7 @@ IFNULL(po.material_code,'') = '' ENDOPTION OPTION 输入.mater_flag = "1" - IFNULL(po.material_code,'') = '' + IFNULL(po.material_code,'') = '' ENDOPTION UNION SELECT @@ -308,6 +308,9 @@ ENDOPTION OPTION 输入.point_type <> "" p.point_type = 输入.point_type + ENDOPTION + OPTION 输入.cant_location <> "" + p.point_location not in 输入.cant_location ENDOPTION AND p.point_type = '4' AND p.point_status = '1' From a8726ede44e5a0296b7f31befcadb6a9e8550600 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 22 Oct 2025 15:17:36 +0800 Subject: [PATCH 126/146] =?UTF-8?q?fix:=E5=87=BA=E7=A9=BA=E6=9C=A8?= =?UTF-8?q?=E7=AE=B1=E6=94=B9=E4=B8=BA=E5=AE=9A=E6=97=B6=E5=99=A8=E4=B8=8B?= =?UTF-8?q?=E5=8F=91=EF=BC=9B=E6=96=B0=E5=A2=9E=E8=BD=BD=E5=85=B7=E8=A7=A3?= =?UTF-8?q?=E7=BB=91=E6=9C=A8=E7=AE=B1=E6=89=8B=E6=8C=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProductOutTwoController.java | 7 ++ .../pda/service/ProductOutTwoService.java | 2 + .../impl/ProductOutTwoServiceImpl.java | 72 +++++++++++++++++++ .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 5 -- 4 files changed, 81 insertions(+), 5 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/ProductOutTwoController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/ProductOutTwoController.java index fc1407bf0..e25d67879 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/ProductOutTwoController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/ProductOutTwoController.java @@ -97,5 +97,12 @@ public class ProductOutTwoController { return new ResponseEntity<>(productOutTwoService.outExcepionPointPass(whereJson), HttpStatus.OK); } + @PostMapping("/vehicleUnbind") + @Log("空托盘解绑") + @SaIgnore + public ResponseEntity vehicleUnbind(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(productOutTwoService.vehicleUnbind(whereJson), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/ProductOutTwoService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/ProductOutTwoService.java index 72e240aee..3963672d4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/ProductOutTwoService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/ProductOutTwoService.java @@ -92,4 +92,6 @@ public interface ProductOutTwoService { JSONObject boxOut(JSONObject whereJson); JSONObject outExcepionPointPass(JSONObject whereJson); + + JSONObject vehicleUnbind(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java index 18bf5bfad..f36c4e341 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java @@ -1,14 +1,20 @@ package org.nl.b_lms.pda.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.pda.service.ProductOutTwoService; import org.nl.b_lms.pdm.info.dao.PdmBiOrderbominfo; import org.nl.b_lms.pdm.info.service.IPdmBiOrderbominfoService; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxlashboundService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxlashbound; @@ -52,6 +58,12 @@ public class ProductOutTwoServiceImpl implements ProductOutTwoService { @Autowired private OutBoxManageService outBoxManageService; + @Autowired + private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService; + + @Autowired + private IschBaseTaskService ischBaseTaskService; + @Override public JSONObject ivtQuery(JSONObject whereJson) { @@ -238,4 +250,64 @@ public class ProductOutTwoServiceImpl implements ProductOutTwoService { result.put("message", "成功放行!"); return result; } + + @Override + public JSONObject vehicleUnbind(JSONObject whereJson) { + String vehicle_code = whereJson.getString("vehicle_code"); + + if (ObjectUtil.isEmpty(vehicle_code)) { + throw new BadRequestException("托盘号不能为空!"); + } + + WQLObject vehicle_ext = WQLObject.getWQLObject("md_pb_storagevehicleext"); + + JSONObject vehicle_info = vehicle_ext.query("storagevehicle_code = '" + vehicle_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(vehicle_info)) { + throw new BadRequestException("未查询到载具【" + vehicle_code + "】对应的绑定关系"); + } + + String box_no = vehicle_info.getString("pcsn"); + if (StringUtils.isEmpty(box_no)) { + throw new BadRequestException("载具【" + vehicle_code + "】上未绑定木箱!"); + } + + List list = ipdmBiSubpackagerelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, box_no)); + if (ObjectUtil.isNotEmpty(list)) { + boolean anyMatch = list.stream().anyMatch(sub -> sub.getStatus().equals("1") || sub.getStatus().equals("2")); + if (anyMatch) { + throw new BadRequestException("载具上木箱【" + box_no + "】的包装关系为包装或者入库状态!"); + } + } + + String collect = list.stream().map(sub -> sub.getContainer_name()).collect(Collectors.joining("','")); + + JSONArray ivt_arr = WQLObject.getWQLObject("st_ivt_structivt").query("pcsn IN ('" + collect + "')").getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(ivt_arr)) { + throw new BadRequestException("载具【" + vehicle_code + "】上绑定的木箱【" + box_no + "】存在库存,不能进行解绑!"); + } + + int hasTask = ischBaseTaskService.count(new QueryWrapper() + .eq("is_delete", "0") + .eq("vehicle_code2", vehicle_code) + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); + + if (hasTask > 0) { + throw new BadRequestException("该托盘【" + vehicle_code + "】存在正在执行中的任务,不能进行解绑!"); + } + + int hasTask2 = ischBaseTaskService.count(new QueryWrapper() + .eq("is_delete", "0") + .eq("vehicle_code", box_no) + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); + + if (hasTask2 > 0) { + throw new BadRequestException("该木箱【" + box_no + "】存在正在执行中的任务,不能进行解绑!"); + } + + vehicle_info.put("pcsn", ""); + vehicle_ext.update(vehicle_info); + JSONObject result = new JSONObject(); + result.put("message", "操作成功!"); + return result; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java index 47d6f8faa..3565f8bc1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java @@ -179,11 +179,6 @@ public class TwoOutBoxTask extends AbstractAcsTask { packageInfo.put("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")); packageInfo.put("container_name", jsonTask.getString("vehicle_code")); packageinfoivt.update(packageInfo); - RedissonUtils.lock(c -> { - if (status.equals(TaskStatusEnum.FINISHED.getCode())) { - immediateNotifyAcs(null); - } - }, "zjInBound", 20, this); } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { From 82444f02bfb1f2db1ff240c8bca8ca6f1ace64bb Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 22 Oct 2025 16:25:16 +0800 Subject: [PATCH 127/146] **Add AutoIssueOutEmptyTask for automated empty task handling in first floor area** --- .../auto/AutoIssueOutEmptyTask.java | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java new file mode 100644 index 000000000..89d910cb2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java @@ -0,0 +1,166 @@ +package org.nl.b_lms.sch.tasks.first_floor_area.auto; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.TwoOutBoxTask; +import org.nl.b_lms.sch.tasks.first_floor_area.ShiftingTask; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; +import org.nl.common.enums.PackageInfoIvtEnum; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.sch.AcsTaskDto; +import org.nl.wms.sch.AcsUtil; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import static org.nl.wms.util.TaskUtil.getRoutePlanCode; + + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoIssueOutEmptyTask { + + private final String TASK_CLASS = TwoOutBoxTask.class.getName(); + + @Autowired + private OutBoxManageService outBoxManageService; + + @Autowired + private IschBaseTaskService ischBaseTaskService; + + //自动执行等待的桁架任务 + public void run() { + try { + this.execute(); + } catch (Exception ex) { + log.error(ex.getMessage()); + } + } + + /** + * Executes a task that processes ACS (Automation Control System) tasks. + * + * This method checks the number of active tasks and ensures the limit is not exceeded. + * If tasks are eligible for further processing, it retrieves task data from the + * database, evaluates conditions based on their attributes, and issues new tasks + * to the ACS system. The method also handles specific locking and task dependency + * scenarios, ensuring that all conditions for task issuance are met. + * + * Key logic includes: + * - Querying database tables to fetch and analyze task details. + * - Ensuring task limits are respected to prevent excessive task submissions. + * - Checking and managing task statuses and related storage attributes, such as + * lock states and box specifications. + * - Notifying the ACS system with the correctly formatted task data. + * - Handling errors and updating task remarks in case of exceptions or conflicting conditions. + * + * This method operates with various modules such as task management, box handling services, + * and ACS system notification utilities. + */ + @SneakyThrows + public void execute() { + /* + * 下发给ACS时需要特殊处理 + */ + // 判断当前有多少个正在执行中的任务 + int num = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + TASK_CLASS + "' and task_status IN ('05','06') and is_delete ='0'") + .getResultJSONArray(0).size(); + // 如果缓存了4个箱子则不下发任务 + if (num >= 2) { + return; + } + + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + TASK_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' order by create_time").getResultJSONArray(0); + for (int i = 0; i < arr.size(); i++) { + if (num >= 2) { + break; + } + ArrayList resultList = new ArrayList<>(); + JSONObject json = arr.getJSONObject(i); + WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); + JSONObject attr = attrTab.query("struct_code = '" + json.getString("point_code1") + "'").uniqueResult(0); + + if (attr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { + JSONObject 浅Attr = attrTab + .query("zdepth = '1' and row_num = '" + attr.getString("row_num") + "' and col_num = '" + attr.getString("col_num") + "' and layer_num = '" + attr.getString("layer_num") + "'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(浅Attr.getString("storagevehicle_code"))) { + if (!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + json.put("remark", "当前仓位对应的浅货位【" + 浅Attr.getString("struct_code") + "被锁定无法下发任务!】"); + WQLObject.getWQLObject("SCH_BASE_Task").update(json); + continue; + } + } else { + try { + if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + // 判断浅货位木箱和深货位木箱是否相同规格 + outBoxManageService.createBoxMove(浅Attr); + } else if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("验箱出库锁"))) { + List list = ischBaseTaskService.list(new QueryWrapper() + .eq("is_delete", "0") + .eq("point_code1", 浅Attr.getString("struct_code")) + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); + if (!CollectionUtils.isEmpty(list)) { + json.put("remark", "当前仓位对应的浅货位【" + 浅Attr.getString("struct_code") + "有正在执行中的任务,任务完成后才能下发!】"); + WQLObject.getWQLObject("SCH_BASE_Task").update(json); + continue; + } else { + outBoxManageService.createBoxMove(浅Attr); + } + } else { + continue; + } + }catch (Exception e){ + json.put("remark", e.getMessage()); + WQLObject.getWQLObject("SCH_BASE_Task").update(json); + continue; + } + } + } + char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .route_plan_code(getRoutePlanCode(json.getString("point_code1"))) + .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_code2")) + .vehicle_code2(json.getString("vehicle_code")) + .interaction_json(json.getJSONObject("request_param")) + .priority(json.getString("priority")) + .class_type(json.getString("task_type")) + .dtl_type(String.valueOf(dtl_type)) + .product_area(IOSEnum.PRODUCT_AREA.code("BLK")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + JSONArray list = JSONArray.parseArray(JSON.toJSONString(resultList)); + AcsUtil.notifyAcs("api/wms/task", list); + num += 1; + } + + } +} From 118a5cecc5ae8ea0989c56fe7dd231fa35259b0a Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 27 Oct 2025 15:46:48 +0800 Subject: [PATCH 128/146] =?UTF-8?q?fix:=E5=87=BA=E7=A9=BA=E6=9C=A8?= =?UTF-8?q?=E7=AE=B1=E6=B5=85=E8=B4=A7=E4=BD=8D=E6=9C=89=E9=AA=8C=E7=AE=B1?= =?UTF-8?q?=E9=94=81=E4=B9=9F=E4=B8=8D=E8=BF=9B=E8=A1=8C=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 1 - .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 14 +----- .../auto/AutoIssueOutEmptyTask.java | 46 ++----------------- 3 files changed, 5 insertions(+), 56 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 76e4ce6fe..d533d4dd4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -491,7 +491,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl list = ischBaseTaskService.list(new QueryWrapper() - .eq("is_delete", "0") - .eq("point_code1", 浅Attr.getString("struct_code")) - .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (!CollectionUtils.isEmpty(list)) { - json.put("remark", "当前仓位对应的浅货位【" + 浅Attr.getString("struct_code") + "有正在执行中的任务,任务完成后才能下发!】"); - WQLObject.getWQLObject("SCH_BASE_Task").update(json); - continue; - } else { - outBoxManageService.createBoxMove(浅Attr); - } } else { + json.put("remark", "当前仓位对应的浅货位【" + 浅Attr.getString("struct_code") + "被锁定!】"); + WQLObject.getWQLObject("SCH_BASE_Task").update(json); continue; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java index 89d910cb2..085e02f4d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java @@ -4,35 +4,25 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; -import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.TwoOutBoxTask; -import org.nl.b_lms.sch.tasks.first_floor_area.ShiftingTask; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; -import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.AcsUtil; import org.nl.wms.sch.manage.TaskStatusEnum; -import org.redisson.api.RLock; -import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.TimeUnit; import static org.nl.wms.util.TaskUtil.getRoutePlanCode; @@ -59,26 +49,6 @@ public class AutoIssueOutEmptyTask { } } - /** - * Executes a task that processes ACS (Automation Control System) tasks. - * - * This method checks the number of active tasks and ensures the limit is not exceeded. - * If tasks are eligible for further processing, it retrieves task data from the - * database, evaluates conditions based on their attributes, and issues new tasks - * to the ACS system. The method also handles specific locking and task dependency - * scenarios, ensuring that all conditions for task issuance are met. - * - * Key logic includes: - * - Querying database tables to fetch and analyze task details. - * - Ensuring task limits are respected to prevent excessive task submissions. - * - Checking and managing task statuses and related storage attributes, such as - * lock states and box specifications. - * - Notifying the ACS system with the correctly formatted task data. - * - Handling errors and updating task remarks in case of exceptions or conflicting conditions. - * - * This method operates with various modules such as task management, box handling services, - * and ACS system notification utilities. - */ @SneakyThrows public void execute() { /* @@ -117,22 +87,12 @@ public class AutoIssueOutEmptyTask { if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { // 判断浅货位木箱和深货位木箱是否相同规格 outBoxManageService.createBoxMove(浅Attr); - } else if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("验箱出库锁"))) { - List list = ischBaseTaskService.list(new QueryWrapper() - .eq("is_delete", "0") - .eq("point_code1", 浅Attr.getString("struct_code")) - .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (!CollectionUtils.isEmpty(list)) { - json.put("remark", "当前仓位对应的浅货位【" + 浅Attr.getString("struct_code") + "有正在执行中的任务,任务完成后才能下发!】"); - WQLObject.getWQLObject("SCH_BASE_Task").update(json); - continue; - } else { - outBoxManageService.createBoxMove(浅Attr); - } } else { + json.put("remark", "当前仓位对应的浅货位【" + 浅Attr.getString("struct_code") + "有正在执行中的任务,任务完成后才能下发!】"); + WQLObject.getWQLObject("SCH_BASE_Task").update(json); continue; } - }catch (Exception e){ + } catch (Exception e) { json.put("remark", e.getMessage()); WQLObject.getWQLObject("SCH_BASE_Task").update(json); continue; From 252ffda13ab63f26667bfdf4c069be53870a047b Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 30 Oct 2025 10:47:02 +0800 Subject: [PATCH 129/146] =?UTF-8?q?fix:=E7=A9=BA=E6=8C=87=E9=92=88?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../database/controller/MdpbSameBoxController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbSameBoxController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbSameBoxController.java index be30e0a7e..c3928fccb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbSameBoxController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbSameBoxController.java @@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.database.controller; import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -10,6 +11,7 @@ import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService; import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox; +import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.logging.annotation.Log; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -46,6 +48,9 @@ public class MdpbSameBoxController { List list = mdpbSameBoxService.list(new LambdaQueryWrapper().eq(MdpbSameBox::getBox_code, whereJson.getString("box_code"))); MdpbSameBox mdpbSameBox = new MdpbSameBox(); MdpbBoxtype boxtype = mdpbBoxtypeService.getOne(new LambdaQueryWrapper().eq(MdpbBoxtype::getBox_type, whereJson.getString("box_code"))); + if (ObjectUtil.isEmpty(boxtype)) { + throw new BadRequestException("库内未查询到木箱编码为【"+whereJson.getString("box_code")+"】的信息!"); + } mdpbSameBox.setSame_box_code(boxtype.getBox_type()); mdpbSameBox.setSame_box_name(boxtype.getBox_name()); From b27f120a920b03741b8d89a2b5caf625ab982334 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 3 Nov 2025 11:02:25 +0800 Subject: [PATCH 130/146] =?UTF-8?q?fix:=E4=BB=BB=E5=8A=A1=E7=A9=BA?= =?UTF-8?q?=E6=8C=87=E9=92=88=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 cfd75bbe3..1d2285908 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 @@ -555,6 +555,10 @@ public class RawFoilServiceImpl implements RawFoilService { String container_name = jsonRaw.getString("container_name"); JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("material_code = '" + container_name + "' and task_status <> '07' AND is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(task_jo)) { + throw new BadRequestException("当前母卷AGV搬运任务不存在或已被强制完成!"); + } + // 查询生箔点位库存表 JSONObject jsonSb = stIvtSbpointivtService.query("ext_code = '" + jsonRaw.getString("resource_name") + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonSb)) { @@ -602,6 +606,10 @@ public class RawFoilServiceImpl implements RawFoilService { String container_name = jsonRaw.getString("container_name"); JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("material_code = '" + container_name + "' and task_status <> '07' AND is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(task_jo)) { + throw new BadRequestException("当前母卷AGV搬运任务不存在或已被强制完成!"); + } + // 查询生箔点位库存表 JSONObject jsonSb = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code = '" + jsonRaw.getString("resource_name") + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonSb)) { From 37b87529a738e900f2f2bd556268a0a54d882263 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 4 Nov 2025 10:25:10 +0800 Subject: [PATCH 131/146] =?UTF-8?q?fix:=E4=B8=8E=E4=B8=80=E6=9C=9F?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java index c8cccf4a3..9d987bca8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutExceptionalTask.java @@ -100,7 +100,7 @@ public class TwoOutExceptionalTask extends AbstractAcsTask { // 判断任务是否被标记 if (jsonTask.getString("is_auto_issue").equals(IOSEnum.IS_SEND.code("否"))) { // 创建出库任务 - JSONObject jsonDis = disTab.query("iostorinv_id = '" + jsonTask.getString("table_fk") + "' and struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); + JSONObject jsonDis = disTab.query("iostorinv_id = '" + jsonTask.getString("car_no") + "' and struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); JSONObject jsonPoint = pointTab.query("region_id = '" + RegionTypeEnum.TWO_OUT01.getId() + "' and is_delete = '0' and is_used = '1'").uniqueResult(0); From d8af9d1b65359de7f3b65a345702dd49dc9788ca Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 5 Nov 2025 11:03:46 +0800 Subject: [PATCH 132/146] =?UTF-8?q?fix:=E5=87=BA=E7=A9=BA=E6=9C=A8?= =?UTF-8?q?=E7=AE=B1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../first_floor_area/auto/AutoIssueOutEmptyTask.java | 8 -------- .../iostorInv/util/impl/OutBoxManageServiceImpl.java | 1 - .../src/main/java/org/nl/wms/sch/ComPareUtil.java | 9 +++++---- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java index 085e02f4d..95e394541 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoIssueOutEmptyTask.java @@ -4,13 +4,9 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.nl.b_lms.sch.task.dao.SchBaseTask; -import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.TwoOutBoxTask; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; @@ -22,7 +18,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; -import java.util.List; import static org.nl.wms.util.TaskUtil.getRoutePlanCode; @@ -37,9 +32,6 @@ public class AutoIssueOutEmptyTask { @Autowired private OutBoxManageService outBoxManageService; - @Autowired - private IschBaseTaskService ischBaseTaskService; - //自动执行等待的桁架任务 public void run() { try { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 3409bdf8d..712a50441 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -128,7 +128,6 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { request_param.put("containerType", jsonAttr.getString("storagevehicle_type")); jsonTaskParam.put("request_param", request_param.toString()); twoOutBoxTask.createTask(jsonTaskParam); - twoOutBoxTask.immediateNotifyAcs(null); // 锁定起点 jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("验箱出库锁")); attrTab.update(jsonAttr); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java index 0f5516224..ce6d283e5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/ComPareUtil.java @@ -61,15 +61,16 @@ public class ComPareUtil { } //查询子卷入库配置 IPdmBiContainerinboundService iPdmBiContainerinboundService = SpringContextHolder.getBean(IPdmBiContainerinboundService.class); - PdmBiContainerinbound pdmBiContainerinbound = iPdmBiContainerinboundService.getOne(new QueryWrapper() - .eq("box", sub.getPackage_box_sn())); + PdmBiContainerinbound pdmBiContainerinbound = iPdmBiContainerinboundService.list(new QueryWrapper() + .eq("box", sub.getPackage_box_sn()) + .orderByDesc("id")).get(0); JSONObject json = new JSONObject(); json.put("compaer_result", compaer_result); json.put("box_no", sub.getPackage_box_sn()); json.put("box_weight", sub.getBox_weight().intValue()); json.put("current_weight", new BigDecimal(current_weight).intValue()); - json.put("containers", list.stream().map(a->a.getContainer_name()).collect(Collectors.toList())); - json.put("inbound", (pdmBiContainerinbound != null ? pdmBiContainerinbound.getInbound():false)); + json.put("containers", list.stream().map(a -> a.getContainer_name()).collect(Collectors.toList())); + json.put("inbound", (pdmBiContainerinbound != null ? pdmBiContainerinbound.getInbound() : false)); return json; } } From 51f58c3bdf9ad55133e46054dff0d05236334297 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 6 Nov 2025 11:03:32 +0800 Subject: [PATCH 133/146] =?UTF-8?q?opt:=20=E7=9C=8B=E6=9D=BF=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E4=B8=8D=E5=9C=A8=E6=9F=A5=E8=AF=A2=E7=94=B5=E6=B0=94?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E4=BF=A1=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slitter/controller/SlitterController.java | 42 ++++++------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java index fcbbc034e..f0bf48db7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java @@ -4,7 +4,6 @@ import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; -import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.modules.common.utils.RedisUtils; @@ -43,61 +42,44 @@ public class SlitterController { @PostMapping("/calPaperNum") @Log("扣除纸管库存") @SaIgnore - public ResponseEntity calPaperNum(@RequestBody JSONObject entity){ + public ResponseEntity calPaperNum(@RequestBody JSONObject entity) { return new ResponseEntity<>(slitterService.acsToReduceTube(entity), HttpStatus.CREATED); } + @PostMapping("/tzInfo") @Log("套轴BCP透明链路") @SaIgnore - public ResponseEntity tzInfo(@RequestBody JSONObject entity){ + public ResponseEntity tzInfo(@RequestBody JSONObject entity) { return new ResponseEntity<>(redisUtils.get("INFO" + entity.getString("device_code")), HttpStatus.CREATED); } + @PostMapping("/v2/tzInfo") @Log("套轴BCP透明链路2") @SaIgnore - public ResponseEntity tzInfo2(@RequestBody JSONObject entity){ + public ResponseEntity tzInfo2(@RequestBody JSONObject entity) { List list = SlitterTaskUtil.objectToList(redisUtils.get("ERROR" + entity.getString("device_code"))); - try { - // 获取字典数据 - List bcbjError = dictService.getDictByName("CBJ_ERROR"); - // 判断气胀轴是否有轴 - JSONArray device_rows = new JSONArray(); - JSONObject device_obj = new JSONObject(); - device_rows.add(device_obj); - device_obj.put("device_code", entity.getString("device_code")); - // todo: 暂时都是B1 - device_obj.put("product_area", "B1"); - JSONObject pointStatus = wmsToAcsService.getPointStatus(device_rows); - JSONObject data = pointStatus.getJSONArray("data").getJSONObject(0); - Dict error = bcbjError.stream() - .filter(p -> p.getValue().equals(data.getString("error"))) - .findFirst() - .orElse(null); - list.add(">>>实时获取电气上报异常信息:" + (error != null - ? error.getLabel() - : (data.getString("error") + "对应异常信息未定义"))); - } catch (Exception e) { - list.add(">>>获取电气上报异常信息失败(此记录不影响流程)..."); - } return new ResponseEntity<>(list, HttpStatus.CREATED); } + @PostMapping("/v2/tzTaskINfo") @Log("套轴BCP透明链路2") @SaIgnore - public ResponseEntity tzTaskINfo(@RequestBody JSONObject entity){ + public ResponseEntity tzTaskINfo(@RequestBody JSONObject entity) { return new ResponseEntity<>(slitterService.tzTaskINfo(entity), HttpStatus.OK); } + @PostMapping("/recover") @Log("恢复计划") @SaIgnore - public ResponseEntity recover(@RequestBody JSONObject entity){ + public ResponseEntity recover(@RequestBody JSONObject entity) { slitterService.recover(entity); - return new ResponseEntity<>( HttpStatus.OK); + return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/callShaft") @Log("呼叫空轴") @SaIgnore - public ResponseEntity callShaft(@RequestBody JSONObject entity){ + public ResponseEntity callShaft(@RequestBody JSONObject entity) { return new ResponseEntity<>(slitterService.callShaft(entity), HttpStatus.OK); } } From 831f253412be79e8871bd5d93fe537dfaa9d685c Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 7 Nov 2025 09:48:40 +0800 Subject: [PATCH 134/146] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9ESSE=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E4=BB=BB=E5=8A=A1=EF=BC=8C=E5=8F=8AAOP=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/contorller/FaultController.java | 29 ++++++++ .../contorller/ScreenTaskController.java | 29 ++++++++ .../org/nl/b_lms/pdm/screen/model/Fault.java | 35 ++++++++++ .../nl/b_lms/pdm/screen/model/ScreenTask.java | 53 ++++++++++++++ .../b_lms/pdm/screen/see/SseBroadcaster.java | 69 +++++++++++++++++++ .../pdm/screen/see/aop/PushSseSnapshot.java | 22 ++++++ .../see/aop/TaskUpdateBroadcastAspect.java | 67 ++++++++++++++++++ .../screen/see/controller/SseController.java | 37 ++++++++++ .../b_lms/pdm/screen/store/InMemoryStore.java | 27 ++++++++ .../first_floor_area/DjqToKzjhcwTask.java | 2 + .../util/impl/OutBoxManageServiceImpl.java | 2 +- 11 files changed, 371 insertions(+), 1 deletion(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/ScreenTaskController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/PushSseSnapshot.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/controller/SseController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java new file mode 100644 index 000000000..ac7c42503 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java @@ -0,0 +1,29 @@ +package org.nl.b_lms.pdm.screen.contorller; + +import cn.dev33.satoken.annotation.SaIgnore; +import org.nl.b_lms.pdm.screen.store.InMemoryStore; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping(path = "/api/faults", produces = MediaType.APPLICATION_JSON_VALUE) +public class FaultController { + private final InMemoryStore store; + + public FaultController(InMemoryStore store) { + this.store = store; + } + + @GetMapping + @SaIgnore + public List getFaults(@RequestParam(required = false) Integer limit) { + return store.findFaults(); + } +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/ScreenTaskController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/ScreenTaskController.java new file mode 100644 index 000000000..42176c5e1 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/ScreenTaskController.java @@ -0,0 +1,29 @@ +package org.nl.b_lms.pdm.screen.contorller; + + +import cn.dev33.satoken.annotation.SaIgnore; +import org.nl.b_lms.pdm.screen.store.InMemoryStore; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping(path = "/api/tasks", produces = MediaType.APPLICATION_JSON_VALUE) +public class ScreenTaskController { + private final InMemoryStore store; + + public ScreenTaskController(InMemoryStore store) { this.store = store; } + + @GetMapping + @SaIgnore + public List getTasks() { + List tasks = store.findTasks(); + return tasks; + } + +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java new file mode 100644 index 000000000..ece8e37df --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java @@ -0,0 +1,35 @@ +package org.nl.b_lms.pdm.screen.model; + +public class Fault { + private Long id; + + private String deviceId; + + private String deviceType; + + private String faultContent; + + private Long occurTs; + private String severity; // info/warn/error + + public Fault() {} + + public Fault(Long id, String deviceId, String deviceType, String faultContent, Long occurTs, String severity) { + this.id = id; this.deviceId = deviceId; this.deviceType = deviceType; this.faultContent = faultContent; + this.occurTs = occurTs; this.severity = severity; + } + + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + public String getDeviceId() { return deviceId; } + public void setDeviceId(String deviceId) { this.deviceId = deviceId; } + public String getDeviceType() { return deviceType; } + public void setDeviceType(String deviceType) { this.deviceType = deviceType; } + public String getFaultContent() { return faultContent; } + public void setFaultContent(String faultContent) { this.faultContent = faultContent; } + public Long getOccurTs() { return occurTs; } + public void setOccurTs(Long occurTs) { this.occurTs = occurTs; } + public String getSeverity() { return severity; } + public void setSeverity(String severity) { this.severity = severity; } +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java new file mode 100644 index 000000000..25d587262 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java @@ -0,0 +1,53 @@ +package org.nl.b_lms.pdm.screen.model; + + +public class ScreenTask { + private Long id; + + private String name; + + private String type; // AGV搬运/堆垛机操作 + + private String status; // pending, running, completed, failed, paused + private String priority; // high/medium/low + private Integer progress; // 0-100 + private String startLocation; + private String endLocation; + private String creator; + + private Long createTs; // epoch millis + private String description; + + public ScreenTask() {} + + public ScreenTask(Long id, String name, String type, String status, String priority, Integer progress, + String startLocation, String endLocation, String creator, Long createTs, String description) { + this.id = id; this.name = name; this.type = type; this.status = status; this.priority = priority; + this.progress = progress; this.startLocation = startLocation; this.endLocation = endLocation; + this.creator = creator; this.createTs = createTs; this.description = description; + } + + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public String getType() { return type; } + public void setType(String type) { this.type = type; } + public String getStatus() { return status; } + public void setStatus(String status) { this.status = status; } + public String getPriority() { return priority; } + public void setPriority(String priority) { this.priority = priority; } + public Integer getProgress() { return progress; } + public void setProgress(Integer progress) { this.progress = progress; } + public String getStartLocation() { return startLocation; } + public void setStartLocation(String startLocation) { this.startLocation = startLocation; } + public String getEndLocation() { return endLocation; } + public void setEndLocation(String endLocation) { this.endLocation = endLocation; } + public String getCreator() { return creator; } + public void setCreator(String creator) { this.creator = creator; } + public Long getCreateTs() { return createTs; } + public void setCreateTs(Long createTs) { this.createTs = createTs; } + public String getDescription() { return description; } + public void setDescription(String description) { this.description = description; } +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java new file mode 100644 index 000000000..1bba82f96 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java @@ -0,0 +1,69 @@ +package org.nl.b_lms.pdm.screen.see; + +import org.nl.b_lms.pdm.screen.store.InMemoryStore; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import java.io.IOException; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +@Component +public class SseBroadcaster { + private final InMemoryStore store; + private final CopyOnWriteArrayList taskEmitters = new CopyOnWriteArrayList<>(); + private final CopyOnWriteArrayList faultEmitters = new CopyOnWriteArrayList<>(); + + public SseBroadcaster(InMemoryStore store) { + this.store = store; + } + + public SseEmitter registerTasksEmitter() { + SseEmitter emitter = new SseEmitter(Long.MAX_VALUE); + taskEmitters.add(emitter); + emitter.onCompletion(() -> taskEmitters.remove(emitter)); + emitter.onTimeout(() -> taskEmitters.remove(emitter)); + return emitter; + } + + public SseEmitter registerFaultsEmitter() { + SseEmitter emitter = new SseEmitter(Long.MAX_VALUE); + faultEmitters.add(emitter); + emitter.onCompletion(() -> faultEmitters.remove(emitter)); + emitter.onTimeout(() -> faultEmitters.remove(emitter)); + return emitter; + } + + public void pushTasksSnapshot() { + List snapshot = store.findTasks(); + pushTasks(snapshot); + } + + public void pushFaultsSnapshot() { + List snapshot = store.findFaults(); + pushFaults(snapshot); + } + + public void pushTasks(List tasks) { + if (taskEmitters.isEmpty()) return; + for (SseEmitter emitter : taskEmitters) { + try { + emitter.send(SseEmitter.event().name("tasks").data(tasks)); + } catch (IOException e) { + emitter.completeWithError(e); + } + } + } + + public void pushFaults(List faults) { + if (faultEmitters.isEmpty()) return; + for (SseEmitter emitter : faultEmitters) { + try { + emitter.send(SseEmitter.event().name("faults").data(faults)); + } catch (IOException e) { + emitter.completeWithError(e); + } + } + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/PushSseSnapshot.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/PushSseSnapshot.java new file mode 100644 index 000000000..f5718eb4e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/PushSseSnapshot.java @@ -0,0 +1,22 @@ +package org.nl.b_lms.pdm.screen.see.aop; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * 在方法或类上标注该注解,被执行后推送最新 SSE 快照。 + * 可通过参数控制推送的通道(任务/故障)。 + */ +@Target({TYPE, METHOD}) +@Retention(RUNTIME) +@Documented +public @interface PushSseSnapshot { + boolean tasks() default true; + boolean faults() default true; +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java new file mode 100644 index 000000000..4692a7fdc --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java @@ -0,0 +1,67 @@ +package org.nl.b_lms.pdm.screen.see.aop; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.nl.b_lms.pdm.screen.see.SseBroadcaster; +import org.springframework.stereotype.Component; +import org.springframework.transaction.support.TransactionSynchronization; +import org.springframework.transaction.support.TransactionSynchronizationManager; + +/** + * 注解驱动的 SSE 推送切面: + * - 方法或类标注 {@link PushSseSnapshot},在成功返回后推送最新快照; + * - 若处于事务中,则在事务提交后推送,确保前端拿到已提交的数据; + * - 否则立即推送。 + */ +@Aspect +@Component +public class TaskUpdateBroadcastAspect { + private final SseBroadcaster broadcaster; + + public TaskUpdateBroadcastAspect(SseBroadcaster broadcaster) { + this.broadcaster = broadcaster; + } + + // 方法级注解:执行成功后触发推送 + @AfterReturning(value = "@annotation(pushAnn)", argNames = "jp,pushAnn") + public void afterAnnotatedMethod(JoinPoint jp, PushSseSnapshot pushAnn) { + broadcastAfterCommitOrNow(pushAnn); + } + + // 类级注解:类中任意方法成功返回后触发推送 + @AfterReturning(value = "@within(org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot)") + public void afterAnnotatedClass(JoinPoint jp) { + // 若方法本身也标注了注解,则交由方法级 advice 处理,避免重复推送 + MethodSignature sig = (MethodSignature) jp.getSignature(); + if (sig.getMethod().isAnnotationPresent(PushSseSnapshot.class)) { + return; + } + PushSseSnapshot classAnn = jp.getTarget().getClass() + .getAnnotation(PushSseSnapshot.class); + if (classAnn != null) { + broadcastAfterCommitOrNow(classAnn); + } + } + + // 任一写操作成功后,推送最新快照(替代定时器) + private void broadcastAfterCommitOrNow(PushSseSnapshot ann) { + Runnable doPush = () -> { + if (ann.tasks()) { + broadcaster.pushTasksSnapshot(); + } + if (ann.faults()) { + try { broadcaster.pushFaultsSnapshot(); } catch (Throwable ignored) {} + } + }; + if (TransactionSynchronizationManager.isSynchronizationActive()) { + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { + @Override + public void afterCommit() { doPush.run(); } + }); + } else { + doPush.run(); + } + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/controller/SseController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/controller/SseController.java new file mode 100644 index 000000000..e0a01c766 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/controller/SseController.java @@ -0,0 +1,37 @@ +package org.nl.b_lms.pdm.screen.see.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import org.nl.b_lms.pdm.screen.see.SseBroadcaster; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +@RestController +@RequestMapping("/sse") +@CrossOrigin +public class SseController { + private final SseBroadcaster broadcaster; + + public SseController(SseBroadcaster broadcaster) { this.broadcaster = broadcaster; } + + @GetMapping(value = "/tasks", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + @SaIgnore + public SseEmitter streamTasks() { + SseEmitter emitter = broadcaster.registerTasksEmitter(); + // 首帧:推送最新快照 + broadcaster.pushTasksSnapshot(); + return emitter; + } + + @GetMapping(value = "/faults", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + @SaIgnore + public SseEmitter streamFaults() { + SseEmitter emitter = broadcaster.registerFaultsEmitter(); + // 首帧:推送最新快照 + broadcaster.pushFaultsSnapshot(); + return emitter; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java new file mode 100644 index 000000000..a09922224 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java @@ -0,0 +1,27 @@ +package org.nl.b_lms.pdm.screen.store; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class InMemoryStore { + + @Autowired + private IschBaseTaskService ischBaseTaskService; + public List findTasks() { + return ischBaseTaskService.list(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, "07")); + } + + + public List findFaults() { + return ischBaseTaskService.list(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, "07")); + } +} + 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 bcf3cf1b3..c9fac5241 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 @@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -105,6 +106,7 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) + @PushSseSnapshot(faults = false) 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); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 712a50441..369245f58 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -839,7 +839,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { .findFirst().orElse(null); if (ObjectUtil.isEmpty(jsonExtMove)) { - throw new BadRequestException("此移库木箱【"+jsonExtMove.getString("storagevehicle_code")+"】没有绑定托盘,请核查"); + throw new BadRequestException("此移库木箱【"+item.getString("storagevehicle_code")+"】没有绑定托盘,请核查"); } }); From 7c238dac1a6a5a94dfac93436dea80db94819936 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 10 Nov 2025 15:25:07 +0800 Subject: [PATCH 135/146] =?UTF-8?q?opt:=20=E7=A9=BA=E7=9B=98=E4=BC=98?= =?UTF-8?q?=E5=85=88=E5=88=B0=E5=85=A5=E5=BA=93=E7=82=B9=E3=80=81=E6=9C=80?= =?UTF-8?q?=E5=90=8E=E4=B8=80=E6=A0=B9=E8=BD=B4=E7=AB=9E=E4=BA=89=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IBstIvtStockingivtService.java | 7 ++ .../dao/mapper/BstIvtStockingivtMapper.java | 2 + .../dao/mapper/BstIvtStockingivtMapper.xml | 18 +++++ .../impl/BstIvtStockingivtServiceImpl.java | 5 ++ .../slitter/TrussCallShaftCacheTask.java | 1 + .../slitter/auto/AutoCallAirShaftTask.java | 81 ++++++++++++++++--- .../service/impl/SlitterServiceImpl.java | 45 ++++++++++- 7 files changed, 146 insertions(+), 13 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java index 343bb6042..932e44c02 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java @@ -75,6 +75,13 @@ public interface IBstIvtStockingivtService extends IService { * @return / */ List getEmptyPointNotTask(String location, String pointType); + /** + * 获取备货区空位,没有任务的位置 + * @param location 位置:0上区域,1下区域 + * @param pointType [] 类型:0暂存位置,1靠近分切机 + * @return / + */ + List getEmptyPointNotTask2(String location, List pointType); /** * 根据点位编码获取备货区点位 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java index eebb68b15..d434cbb0c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.java @@ -34,6 +34,8 @@ public interface BstIvtStockingivtMapper extends BaseMapper { */ List getEmptyPointNotTask(String location, String pointType); + List getEmptyPointNotTask2(String location, List pointTypes); + BstIvtStockingivt getCanMovePointOne(String location, String pointType); /** diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml index 7cd6d3991..7aaf74c7f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml @@ -160,4 +160,22 @@ GROUP BY bs.point_code; + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java index a28efc352..d19cbe8fa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java @@ -119,6 +119,11 @@ public class BstIvtStockingivtServiceImpl extends ServiceImpl getEmptyPointNotTask2(String location, List pointType) { + return bstIvtStockingivtMapper.getEmptyPointNotTask2(location, pointType); + } + @Override public BstIvtStockingivt getPointByCode(String pointCode, boolean flag) { LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftCacheTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftCacheTask.java index 5615d91ec..667e40480 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftCacheTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallShaftCacheTask.java @@ -94,6 +94,7 @@ public class TrussCallShaftCacheTask extends AbstractAcsTask { endPointObj.setHave_qzz("1"); + endPointObj.setPlan(""); TaskUtils.updateOptMessageByBShaftPoint(endPointObj); shafttubeivtService.updateById(endPointObj); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 543d6c427..fa29287b3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -34,6 +34,7 @@ import org.nl.b_lms.sch.tasks.slitter.mapper.dto.BhTubeMovePointDto; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.BhTubePointDto; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.NoticeTypeEnum; import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; @@ -315,14 +316,15 @@ public class AutoCallAirShaftTask extends Prun { stepErrorInfo.add("没有套轴暂存位没有相同规格的气胀轴来拔轴,直接去气胀轴库获取。"); //若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可 // 调用ACS滚条气涨轴下来 - if (!toAcsOutShaft(needPlans, plans, qzzSize, location, empty)) { + String callOutStatus = toAcsOutShaft(needPlans, plans, qzzSize, location, empty); + if ("0".equals(callOutStatus)) { log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); stepErrorInfo.add("呼叫出轴失败-穿拔轴" + empty.getPoint_code() + "不进行套轴,直接做拔轴!"); makePullShaft(empty, specification); return; } // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 - saveCutPlanMessage(empty, needPlans, qzzSize); + saveCutPlanMessage(empty, needPlans, qzzSize, callOutStatus); // toCallAgvMovePaperTube(needPlans, location, empty, plans); return; } @@ -371,7 +373,7 @@ public class AutoCallAirShaftTask extends Prun { return; } // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 - saveCutPlanMessage(empty, needPlans, qzzSize); + saveCutPlanMessage(empty, needPlans, qzzSize, "0"); SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans); // 套管数量 param.put("casingCount", needPlans.size()); @@ -807,24 +809,25 @@ public class AutoCallAirShaftTask extends Prun { * @param qzzSize 气涨轴尺寸 * @param location 位置:上半部分还是下半部分 * @param empty 套拔轴点位 + * @return 0: 呼叫失败,1:呼叫成功,2:该点位需要从密集库获取 */ - private Boolean toAcsOutShaft(List needPlans, List plans, String qzzSize, String location, BstIvtShafttubeivt empty) { + private String toAcsOutShaft(List needPlans, List plans, String qzzSize, String location, BstIvtShafttubeivt empty) { Integer movePaperTube = toCallAgvMovePaperTube(needPlans, location, empty, plans); if (movePaperTube == 2) { log.info("跳过,无法更换托盘。"); stepErrorInfo.add("呼叫AGV更换托盘失败,无法更换托盘。"); - return false; + return "0"; } if (movePaperTube != 0) { skipTheSameTubePlans(needPlans); - return false; + return "0"; } // 需要区分上下 List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize, empty.getPoint_code(), location); if (shafttubeivts.size() == 0) { log.error("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); stepErrorInfo.add("气胀轴库找不到[" + qzzSize + "]规格的气涨轴位"); - return false; + return "0"; } // 气涨轴库 BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); @@ -839,9 +842,9 @@ public class AutoCallAirShaftTask extends Prun { if (ObjectUtil.isEmpty(pointStatus) || ObjectUtil.isEmpty(pointStatus.getJSONArray("data"))) { log.error("获取气胀轴库信息失败"); stepErrorInfo.add("获取ACS气胀轴库信息失败..."); - return false; + return "0"; } - boolean judgment1 = true; + boolean judgment1 = false; boolean judgment2 = true; // 获取气涨轴缓存没有任务的点位 List qzzCache = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, @@ -849,6 +852,58 @@ public class AutoCallAirShaftTask extends Prun { if (qzzCache.size() == 0) { log.warn("未找到气胀轴密集库气涨轴规格「" + qzzSize + "」的暂存位"); judgment2 = false; + } else { + // 查找正在进行的取货点任务(未确定取货位) + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()); + queryWrapper.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")); + queryWrapper.in(SchBaseTask::getTask_type, + Arrays.asList(SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位"), + SlitterEnum.TASK_TYPE.code("人工叫空轴桁架任务"))); + queryWrapper.likeRight(SchBaseTask::getPoint_code1, "B_QHD"); + List baseTasks = taskService.list(queryWrapper); + if (baseTasks.size() > 0) { + // 过滤 + List collect = baseTasks.stream().filter(task -> { + if (ObjectUtil.isNotEmpty(task.getPoint_code3())) { + JSONObject object = JSONObject.parseObject(task.getRequest_param()); + if (ObjectUtil.isEmpty(object)) { + return false; + } + String size = object.getString("qzz_size"); + String generation = object.getString("qzz_generation"); + return "6".equals(qzzSize) + ? qzzSize.equals(size) + : qzzSize.equals(size) && empty.getQzz_generation().equals(generation); + } + BstIvtShafttubeivt cbzj = bstIvtShafttubeivtService.getByPointCode(task.getPoint_code2(), false); + if (ObjectUtil.isEmpty(cbzj)) { + return false; + } + return "6".equals(qzzSize) + ? qzzSize.equals(cbzj.getQzz_size()) + : qzzSize.equals(cbzj.getQzz_size()) && empty.getQzz_generation().equals(cbzj.getQzz_generation()); + }).collect(Collectors.toList()); + if (collect.size() > 0) { + if (qzzCache.size() - collect.size() <= 0) { + log.warn("未找到气胀轴密集库气涨轴规格「" + qzzSize + "」的暂存位"); + judgment2 = false; + } + } + } else { + // 查看另一台机构的尺寸是否一致,plan是否为2 + BstIvtShafttubeivt one = bstIvtShafttubeivtService.getOne(new LambdaQueryWrapper() + .ne(BstIvtShafttubeivt::getPoint_code, empty.getPoint_code()) + .eq(BstIvtShafttubeivt::getPoint_location, empty.getPoint_location()) + .eq(BstIvtShafttubeivt::getPoint_type, empty.getPoint_type()) + .eq(BstIvtShafttubeivt::getIs_used, "1")); + if (ObjectUtil.isNotEmpty(one.getPlan()) && "2".equals(one.getPlan())) { + if (qzzSize.equals(one.getQzz_size()) && "6".equals(qzzSize)) { + judgment2 = (qzzCache.size() - 1) > 0; + } + } + } + // todo: 检查正在进行的放货点任务(已经确定放货位)[先不要考虑] } JSONObject data2 = pointStatus.getJSONArray("data").getJSONObject(0); if (data2.getInteger("qty") == 0) { @@ -858,7 +913,7 @@ public class AutoCallAirShaftTask extends Prun { if (!judgment1 && !judgment2) { log.warn("没有气胀轴,不给ACS写出轴信息"); stepErrorInfo.add("呼叫气胀轴失败,(密集库/暂存架)没有" + qzzSize + "寸的气胀轴,不给ACS写出轴信息。请人工补轴或将对应的分切计划点击入站完成"); - return false; + return "0"; } // 判断气胀轴密集库是否有数据 JSONArray acsParam = new JSONArray(); @@ -872,7 +927,7 @@ public class AutoCallAirShaftTask extends Prun { log.info("开始给ACS写信号出气胀轴 - {}", acsQzz); JSONObject action = wmsToAcsService.action(acsParam); log.info("下发给ACS写信号出气涨轴返回参数:{}", action); - return true; + return judgment1 ? "1" : "2"; } /** @@ -906,7 +961,7 @@ public class AutoCallAirShaftTask extends Prun { * @param needPlans 需要的分切计划 * @param qzzSize 气涨轴尺寸 */ - private void saveCutPlanMessage(BstIvtShafttubeivt empty, List needPlans, String qzzSize) { + private void saveCutPlanMessage(BstIvtShafttubeivt empty, List needPlans, String qzzSize, String remark) { log.info("正在保存套轴信息 - {} , 尺寸 - {} 到点位 - {}", needPlans, qzzSize, empty); empty.setHave_qzz(SlitterConstant.SLITTER_YES); empty.setQzz_size(qzzSize); @@ -934,6 +989,7 @@ public class AutoCallAirShaftTask extends Prun { empty.setContainer_name2(plan.getContainer_name()); } } + empty.setPlan(remark); bstIvtShafttubeivtService.updateById(empty); // 分切计划 // 将分切计划is_paper_ok 1(准备好纸管) -> 2(套好气胀轴) @@ -1021,6 +1077,7 @@ public class AutoCallAirShaftTask extends Prun { /** * 检测气胀轴密集库/气胀轴缓存库有没有空位 + * * @param empty * @param specification * @param plan diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 478987e0a..a283d8154 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.b_lms.sch.tasks.slitter.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; @@ -1055,7 +1056,7 @@ public class SlitterServiceImpl implements SlitterService { List tasks = taskService.checkHaveTask(deviceCode); if (CollectionUtil.isEmpty(tasks)) { // 查找一个没有任务的空位 - List list = stockingivtService.getEmptyPointNotTask(device.getPoint_location(), "0"); + List list = stockingivtService.getEmptyPointNotTask2(device.getPoint_location(), Arrays.asList("0", "2")); if (list.size() == 0) { noticeService.createNotice("备货区找不到空位置搬运", "备货区" + deviceCode + "异常", @@ -1132,6 +1133,7 @@ public class SlitterServiceImpl implements SlitterService { shaftPoint.setContainer_name1(""); shaftPoint.setContainer_name2(""); shaftPoint.setQzz_size(""); + shaftPoint.setPlan(""); TaskUtils.updateOptMessageByBShaftPoint(shaftPoint); shafttubeivtService.update(shaftPoint); // 初始化 预分配点位 @@ -3048,6 +3050,7 @@ public class SlitterServiceImpl implements SlitterService { } @Override + @Transactional(rollbackFor = Exception.class) public JSONObject callShaft(JSONObject param) { // area、point_code、row(size,generation) log.info("呼叫空轴:{}", param); @@ -3104,6 +3107,46 @@ public class SlitterServiceImpl implements SlitterService { if (shafttubeivts.size() == 0) { throw new BadRequestException("没有气胀轴尺寸[" + rowJSONObject.getString("size") + "],代数[" + rowJSONObject.getString("generation") + "]的库存!"); + } else { + // 查找正在进行的取货点任务(未确定取货位) + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()); + queryWrapper.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")); + queryWrapper.in(SchBaseTask::getTask_type, + Arrays.asList(SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位"), + SlitterEnum.TASK_TYPE.code("人工叫空轴桁架任务"))); + queryWrapper.likeRight(SchBaseTask::getPoint_code1, "B_QHD"); + List baseTasks = taskService.list(queryWrapper); + if (baseTasks.size() > 0) { + // 过滤 + List collect = baseTasks.stream().filter(task -> { + if (ObjectUtil.isNotEmpty(task.getPoint_code3())) { + JSONObject object = JSONObject.parseObject(task.getRequest_param()); + if (ObjectUtil.isEmpty(object)) { + return false; + } + String size = object.getString("qzz_size"); + String generation = object.getString("qzz_generation"); + return "6".equals(rowJSONObject.getString("size")) + ? rowJSONObject.getString("size").equals(size) + : rowJSONObject.getString("size").equals(size) && rowJSONObject.getString("generation").equals(generation); + } + BstIvtShafttubeivt cbzj = shafttubeivtService.getByPointCode(task.getPoint_code2(), false); + if (ObjectUtil.isEmpty(cbzj)) { + return false; + } + return "6".equals(rowJSONObject.getString("size")) + ? rowJSONObject.getString("size").equals(cbzj.getQzz_size()) + : rowJSONObject.getString("size").equals(cbzj.getQzz_size()) && rowJSONObject.getString("generation").equals(cbzj.getQzz_generation()); + }).collect(Collectors.toList()); + if (collect.size() > 0) { + if (shafttubeivts.size() - collect.size() <= 0) { + throw new BadRequestException("气胀轴尺寸[" + rowJSONObject.getString("size") + "],代数[" + + rowJSONObject.getString("generation") + "]的库存不满足!"); + } + } + } + // todo: 检查正在进行的放货点任务(已经确定放货位)[先不要考虑] } // 创建桁架任务(二次分配) JSONObject taskParam = new JSONObject(); From 0f4ed2f174018abc53507319d553ae30d8d99f43 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 10 Nov 2025 15:25:24 +0800 Subject: [PATCH 136/146] =?UTF-8?q?fix:=E4=BB=BB=E5=8A=A1=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/contorller/FaultController.java | 3 +- .../b_lms/pdm/screen/see/SseBroadcaster.java | 5 +- .../see/aop/TaskUpdateBroadcastAspect.java | 27 +++++++--- .../b_lms/pdm/screen/store/InMemoryStore.java | 54 +++++++++++++++++-- .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 2 + .../sch/tasks/first_floor_area/DjqTask.java | 2 + .../first_floor_area/DjqToKzjhcwTask.java | 2 +- .../sch/tasks/first_floor_area/GzqTask.java | 3 ++ .../first_floor_area/GzqToKzjhcwTask.java | 2 + .../sch/tasks/first_floor_area/MzhcwTask.java | 2 + .../first_floor_area/SendDjqKzjTask.java | 2 + .../first_floor_area/SendGzqKzjTask.java | 2 + .../tasks/first_floor_area/ShiftingTask.java | 2 + .../tasks/first_floor_area/SsxDjwTask.java | 2 + .../sch/tasks/first_floor_area/ZxDjwTask.java | 2 + .../sch/tasks/first_floor_area/ZxqTask.java | 2 + 16 files changed, 99 insertions(+), 15 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java index ac7c42503..8b3f7c268 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java @@ -1,6 +1,7 @@ package org.nl.b_lms.pdm.screen.contorller; import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONArray; import org.nl.b_lms.pdm.screen.store.InMemoryStore; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.springframework.http.MediaType; @@ -22,7 +23,7 @@ public class FaultController { @GetMapping @SaIgnore - public List getFaults(@RequestParam(required = false) Integer limit) { + public JSONArray getFaults(@RequestParam(required = false) Integer limit) { return store.findFaults(); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java index 1bba82f96..801c47460 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java @@ -1,5 +1,6 @@ package org.nl.b_lms.pdm.screen.see; +import com.alibaba.fastjson.JSONArray; import org.nl.b_lms.pdm.screen.store.InMemoryStore; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.springframework.stereotype.Component; @@ -41,7 +42,7 @@ public class SseBroadcaster { } public void pushFaultsSnapshot() { - List snapshot = store.findFaults(); + JSONArray snapshot = store.findFaults(); pushFaults(snapshot); } @@ -56,7 +57,7 @@ public class SseBroadcaster { } } - public void pushFaults(List faults) { + public void pushFaults(JSONArray faults) { if (faultEmitters.isEmpty()) return; for (SseEmitter emitter : faultEmitters) { try { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java index 4692a7fdc..ccf95c83f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java @@ -9,6 +9,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronizationManager; +import java.util.concurrent.locks.ReentrantLock; + /** * 注解驱动的 SSE 推送切面: * - 方法或类标注 {@link PushSseSnapshot},在成功返回后推送最新快照; @@ -20,6 +22,9 @@ import org.springframework.transaction.support.TransactionSynchronizationManager public class TaskUpdateBroadcastAspect { private final SseBroadcaster broadcaster; + // 非阻塞并发保护:同一时刻仅允许一次推送执行,其他并发调用直接跳过 + private final ReentrantLock pushLock = new ReentrantLock(); + public TaskUpdateBroadcastAspect(SseBroadcaster broadcaster) { this.broadcaster = broadcaster; } @@ -47,21 +52,29 @@ public class TaskUpdateBroadcastAspect { // 任一写操作成功后,推送最新快照(替代定时器) private void broadcastAfterCommitOrNow(PushSseSnapshot ann) { - Runnable doPush = () -> { - if (ann.tasks()) { - broadcaster.pushTasksSnapshot(); + Runnable doPushGuarded = () -> { + // 非阻塞尝试获取锁:失败则直接跳过本次推送 + if (!pushLock.tryLock()) { + return; } - if (ann.faults()) { - try { broadcaster.pushFaultsSnapshot(); } catch (Throwable ignored) {} + try { + if (ann.tasks()) { + broadcaster.pushTasksSnapshot(); + } + if (ann.faults()) { + try { broadcaster.pushFaultsSnapshot(); } catch (Throwable ignored) {} + } + } finally { + pushLock.unlock(); } }; if (TransactionSynchronizationManager.isSynchronizationActive()) { TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { @Override - public void afterCommit() { doPush.run(); } + public void afterCommit() { doPushGuarded.run(); } }); } else { - doPush.run(); + doPushGuarded.run(); } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java index a09922224..bfdaaeda0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java @@ -1,27 +1,73 @@ package org.nl.b_lms.pdm.screen.store; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; @Component +@Slf4j public class InMemoryStore { @Autowired private IschBaseTaskService ischBaseTaskService; + public List findTasks() { + List targetType = Arrays.asList( + "010702", "010703", "010704", "010706", "010710", "010712", "010714", "010715", + "010901", "010902", "010903", "010904", "010905", "010906", "010907", "010908", + "010909", "010910", "010911", "010912", "010913", "010914", "010915" + ); return ischBaseTaskService.list(new LambdaQueryWrapper() - .lt(SchBaseTask::getTask_status, "07")); + .eq(SchBaseTask::getIs_delete, false) + .in(SchBaseTask::getTask_type, targetType) + .lt(SchBaseTask::getTask_status, "07") + .select(SchBaseTask::getTask_code, + SchBaseTask::getTask_type, + SchBaseTask::getCreate_name, + SchBaseTask::getPoint_code1, + SchBaseTask::getPoint_code2, + SchBaseTask::getPoint_code3, + SchBaseTask::getPoint_code4, + SchBaseTask::getVehicle_code, + SchBaseTask::getTask_status, + SchBaseTask::getCreate_time + )); } - public List findFaults() { - return ischBaseTaskService.list(new LambdaQueryWrapper() - .lt(SchBaseTask::getTask_status, "07")); + public JSONArray findFaults() { + JSONArray blk_rows = WQLObject.getWQLObject("em_bi_monitordevice").query("product_area = 'BLK' AND is_crux = '1' AND region_code IN ('RK','NBJ','DDJ')").getResultJSONArray(0); + List blkList = new ArrayList<>(); + for (int i = 0; i < blk_rows.size(); i++) { + JSONObject row = blk_rows.getJSONObject(i); + blkList.add(row.getString("device_code")); + } + + + WmsToAcsServiceImpl bean = SpringContextHolder.getBean(WmsToAcsServiceImpl.class); + JSONObject result2; + try { + result2 = bean.getDeviceErrorInfo(blkList, "BLK"); + } catch (Exception e) { + result2 = new JSONObject(); + log.info(e.getMessage()); + } + // 调用acs接口获取设备 + JSONArray blk_data = result2.getJSONArray("data"); + return ObjectUtil.isEmpty(blk_data) ? blk_data : new JSONArray(); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java index a8a6eeaab..44db2b6f5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java @@ -1,6 +1,7 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -47,6 +48,7 @@ import static org.nl.wms.util.TaskUtil.getRoutePlanCode; */ @Service @Slf4j +@PushSseSnapshot public class TwoOutBoxTask extends AbstractAcsTask { /** diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index 0b5bdcc31..c63989043 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -13,6 +13,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -46,6 +47,7 @@ import java.util.stream.Collectors; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class DjqTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; 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 c9fac5241..52150968a 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 @@ -45,6 +45,7 @@ import java.util.stream.Collectors; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class DjqToKzjhcwTask extends AbstractAcsTask { @@ -106,7 +107,6 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) - @PushSseSnapshot(faults = false) 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); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index 3d20d80e8..2ce71ab1d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -40,6 +41,8 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) + public class GzqTask extends AbstractAcsTask { private final String THIS_CLASS = GzqTask.class.getName(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java index ce07874a1..eef8170f6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -40,6 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class GzqToKzjhcwTask extends AbstractAcsTask { 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 9fc8e2c1e..ade0cd17d 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 @@ -14,6 +14,7 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -50,6 +51,7 @@ import java.util.stream.Stream; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class MzhcwTask extends AbstractAcsTask { private final String THIS_CLASS = MzhcwTask.class.getName(); 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 db3f9ab13..c6b2aea33 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 @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -40,6 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class SendDjqKzjTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java index 74d70dc04..3895f61fa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -39,6 +40,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class SendGzqKzjTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java index 94287d084..716df8208 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -39,6 +40,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class ShiftingTask extends AbstractAcsTask { private final String THIS_CLASS = ShiftingTask.class.getName(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index debcbce77..54fb00b8b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -40,6 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class SsxDjwTask extends AbstractAcsTask { private final String THIS_CLASS = SsxDjwTask.class.getName(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index 529e09628..7ff3f0b29 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; @@ -51,6 +52,7 @@ import java.util.concurrent.TimeUnit; */ @Service() @Slf4j +@PushSseSnapshot(faults = false) public class ZxDjwTask extends AbstractAcsTask { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 42d6b86c1..3a6f6ba79 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -13,6 +13,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; +import org.nl.b_lms.pdm.screen.see.aop.PushSseSnapshot; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; @@ -49,6 +50,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j +@PushSseSnapshot(faults = false) public class ZxqTask extends AbstractAcsTask { @Resource From afc9e14013b329e82bf6fe5a1d185b1548cd51c3 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 10 Nov 2025 15:27:17 +0800 Subject: [PATCH 137/146] =?UTF-8?q?opt:=20=E5=88=9D=E5=A7=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index fa29287b3..ccdb53d6b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -844,7 +844,7 @@ public class AutoCallAirShaftTask extends Prun { stepErrorInfo.add("获取ACS气胀轴库信息失败..."); return "0"; } - boolean judgment1 = false; + boolean judgment1 = true; boolean judgment2 = true; // 获取气涨轴缓存没有任务的点位 List qzzCache = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, From df75bf7e9341acda8910358727784736d1810f66 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 10 Nov 2025 16:06:33 +0800 Subject: [PATCH 138/146] =?UTF-8?q?fix:=E6=8D=A2=E6=A0=87=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E4=B8=8D=E5=9B=9E=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index bdae6de1c..6383b46bb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -2101,6 +2101,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl Date: Wed, 12 Nov 2025 19:31:22 +0800 Subject: [PATCH 139/146] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E4=B8=80?= =?UTF-8?q?=E6=A5=BC=E5=BE=85=E6=A3=80=E5=8C=BA=E7=9C=8B=E6=9D=BF=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E8=A3=85=E7=AE=B1=EF=BC=9B=E6=8F=90=E7=A4=BA=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/pdm/screen/store/InMemoryStore.java | 3 +-- .../service/impl/PdmBiSubpackagerelationServiceImpl.java | 7 +++---- .../nl/b_lms/sch/point/dto/BstIvtPackageinfoivtVO.java | 2 ++ .../service/impl/BstIvtPackageinfoivtServiceImpl.java | 9 +++++++++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java index bfdaaeda0..b0929c705 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java @@ -56,7 +56,6 @@ public class InMemoryStore { blkList.add(row.getString("device_code")); } - WmsToAcsServiceImpl bean = SpringContextHolder.getBean(WmsToAcsServiceImpl.class); JSONObject result2; try { @@ -67,7 +66,7 @@ public class InMemoryStore { } // 调用acs接口获取设备 JSONArray blk_data = result2.getJSONArray("data"); - return ObjectUtil.isEmpty(blk_data) ? blk_data : new JSONArray(); + return ObjectUtil.isNotEmpty(blk_data) ? blk_data : new JSONArray(); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index d533d4dd4..51252c02d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -454,16 +454,15 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl list = taskService.list(new QueryWrapper() .eq("is_delete", "0") .eq("point_code1", 浅Attr.getString("struct_code")) .lt("task_status", TaskStatusEnum.FINISHED.getCode())); if (!CollectionUtils.isEmpty(list)) { - throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位被【锁定】或【存在任务】" + 浅Attr.getString("task_code")); + throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位【存在任务】" + 浅Attr.getString("task_code")); } - } else { - throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位被【锁定】或【存在任务】" + 浅Attr.getString("task_code")); + throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位被【锁定】" + 浅Attr.getString("task_code")); } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dto/BstIvtPackageinfoivtVO.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dto/BstIvtPackageinfoivtVO.java index 2c81ebfba..4a580117d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dto/BstIvtPackageinfoivtVO.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dto/BstIvtPackageinfoivtVO.java @@ -31,4 +31,6 @@ public class BstIvtPackageinfoivtVO extends BstIvtPackageinfoivt { /** 子卷理论长度 */ private Integer split_height; + + private String box_no; } 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 873e7e95c..92d56d015 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 @@ -125,11 +125,16 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl records = selectPage.getRecords(); Set containers = records.stream().map(BstIvtPackageinfoivt::getContainer_name).filter(a -> StringUtils.isNotEmpty(a)).collect(Collectors.toSet()); Map listMap = new HashMap(); + Map subMap = new HashMap(); if (!CollectionUtils.isEmpty(containers)) { List containerInfo = iPdmBiSlittingproductionplanService.list(new QueryWrapper() .in("container_name", containers) .select("container_name", "weight", "paper_weight", "split_breadth", "split_height")); listMap = containerInfo.stream().collect(HashMap::new, (m, o) -> m.put(o.getContainer_name(), o), HashMap::putAll); + List subInfo = subpackagerelationService.list(new QueryWrapper() + .in("container_name", containers) + .select("container_name", "package_box_sn")); + subMap = subInfo.stream().collect(HashMap::new, (m, o) -> m.put(o.getContainer_name(), o), HashMap::putAll); } List voRecords = new ArrayList<>(); for (BstIvtPackageinfoivt record : records) { @@ -142,6 +147,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl Date: Thu, 13 Nov 2025 09:57:23 +0800 Subject: [PATCH 140/146] =?UTF-8?q?fix:=E5=AF=B9=E8=B1=A1=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java index b0929c705..90beea427 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java @@ -66,7 +66,7 @@ public class InMemoryStore { } // 调用acs接口获取设备 JSONArray blk_data = result2.getJSONArray("data"); - return ObjectUtil.isNotEmpty(blk_data) ? blk_data : new JSONArray(); + return ObjectUtil.isNotEmpty(blk_data) ? blk_data : new JSONArray(); } } From a186412eea01124ae64b952a4abf5ec292dfbe79 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 18 Nov 2025 10:17:13 +0800 Subject: [PATCH 141/146] =?UTF-8?q?opt:=20=E7=BA=B8=E7=AE=A1=E7=BB=91?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BstIvtStockingivtController.java | 14 +++++ .../service/IBstIvtStockingivtService.java | 4 ++ .../impl/BstIvtStockingivtServiceImpl.java | 56 ++++++++++++++++++- 3 files changed, 72 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java index 565b48fd7..3c33ac867 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java @@ -1,5 +1,6 @@ package org.nl.b_lms.bst.ivt.stockingivt.controller; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -75,6 +76,19 @@ public class BstIvtStockingivtController { public ResponseEntity operateIvt(@RequestBody JSONObject param) { return new ResponseEntity<>(bstIvtStockingivtService.operateIvt(param), HttpStatus.OK); } + @Log("操作管芯托盘库存") + //@SaCheckPermission("@el.check('bstIvtStockingivt:del')") + @PostMapping("/callCheckTube") + public ResponseEntity callCheckTube(@RequestBody JSONObject param) { + return new ResponseEntity<>(bstIvtStockingivtService.callCheckTube(param), HttpStatus.OK); + } + @Log("操作管芯托盘库存") + @SaIgnore + //@SaCheckPermission("@el.check('bstIvtStockingivt:del')") + @PostMapping("/seePalletTube") + public ResponseEntity seePalletTube(@RequestBody JSONObject param) { + return new ResponseEntity<>(bstIvtStockingivtService.seePalletTube(param), HttpStatus.OK); + } @Log("管芯托盘库存") //@SaCheckPermission("@el.check('bstIvtStockingivt:del')") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java index 932e44c02..07958e7da 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/IBstIvtStockingivtService.java @@ -144,4 +144,8 @@ public interface IBstIvtStockingivtService extends IService { List getMoveTaskPoints(); List getPointByVehicle(String vehicleCode, String pointCode); + + JSONObject callCheckTube(JSONObject param); + + JSONObject seePalletTube(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java index d19cbe8fa..c0323b306 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.b_lms.bst.ivt.stockingivt.service.impl; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; @@ -36,6 +37,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** * @author lyd @@ -300,9 +302,25 @@ public class BstIvtStockingivtServiceImpl extends ServiceImpl().eq(BstIvtStockingivt::getVehicle_code, vehicle_code)); - if (bstIvtStockingivt != null && bstIvtStockingivt.getPoint_type().equals("1")) { + if (ObjectUtil.isEmpty(bstIvtStockingivt)) { + throw new BadRequestException("托盘:" + vehicle_code + " 不在点位上,请先绑定!"); + } + if (!bstIvtStockingivt.getPoint_type().equals("1")) { + throw new BadRequestException("该站点" + bstIvtStockingivt.getPoint_code() + "不允许呼叫检测!"); + } + if (bstIvtStockingivt != null) { List list = papervehicleService.list(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, vehicle_code)); JSONObject jo = new JSONObject(); SlitterTaskUtil.doSavePaperInfos(list, jo); @@ -310,13 +328,47 @@ public class BstIvtStockingivtServiceImpl extends ServiceImpl list = papervehicleService.list(new LambdaQueryWrapper() + .eq(MdPbPapervehicle::getVehicle_code, vehicle_code) + .orderByAsc(MdPbPapervehicle::getRow_num)); + if (list.size() == 0) { + result.put("flag", "1"); + result.put("data", "LMS系统中该托盘没有管芯信息!"); + return result; + } + List bstIvtStockingivt = bstIvtStockingivtMapper.selectList(new LambdaQueryWrapper() + .eq(BstIvtStockingivt::getVehicle_code, vehicle_code)); + if (bstIvtStockingivt.size() != 1) { + result.put("flag", "1"); + result.put("data", bstIvtStockingivt.size() == 0 ? "LMS系统中该托盘没有绑定到点位上!" + : "该托盘绑定到多个位置:" + bstIvtStockingivt.stream().map(BstIvtStockingivt::getPoint_code).collect(Collectors.joining(",")) + " 请确认!"); + return result; + } + JSONArray arr = new JSONArray(); + list.stream().forEach(l -> { + JSONObject paper = new JSONObject(); + paper.put("row_num", l.getRow_num()); + paper.put("number", l.getQty()); + paper.put("tube", l.getMaterial_name()); + arr.add(paper); + }); + result.put("flag", "2"); + result.put("data", arr); + return result; + } + @Override public List getNeedPaperTubePoint(String pointType, String tube, String location) { return bstIvtStockingivtMapper.getNeedPaperTubePoint(pointType, tube, location); From 735fdba6e09b0373ec9e3845beea5006c0bf6978 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 21 Nov 2025 10:04:46 +0800 Subject: [PATCH 142/146] =?UTF-8?q?fix:=E5=AF=B9=E8=B1=A1=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/b_lms/pdm/error/model/DeviceFault.java | 35 ++++++ .../error/model/mapper/DeviceFaultMapper.java | 17 +++ .../error/model/mapper/DeviceFaultMapper.xml | 5 + .../pdm/error/service/DeviceFaultService.java | 9 ++ .../b_lms/pdm/error/service/FaultManager.java | 105 ++++++++++++++++++ .../service/impl/DeviceFaultServiceImpl.java | 11 ++ .../auto/AutoSynErrorDevice.java | 41 +++++++ 7 files changed, 223 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/DeviceFault.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/mapper/DeviceFaultMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/mapper/DeviceFaultMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/FaultManager.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSynErrorDevice.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/DeviceFault.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/DeviceFault.java new file mode 100644 index 000000000..4bebefc10 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/DeviceFault.java @@ -0,0 +1,35 @@ +package org.nl.b_lms.pdm.error.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.security.Timestamp; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("device_fault_info") +public class DeviceFault implements Serializable { + private static final long serialVersionUID = 1L; + + @TableField(value = "device_code") + private String deviceCode; + + @TableField(value = "device_name") + private String deviceName; + + @TableField(value = "error_code") + private String errorCode; + + @TableField(value = "error_message") + private String errorMessage; + + @TableField(value = "start_time") + private String startTime; + + private int duration; + + +} \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/mapper/DeviceFaultMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/mapper/DeviceFaultMapper.java new file mode 100644 index 000000000..821d4c100 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/mapper/DeviceFaultMapper.java @@ -0,0 +1,17 @@ +package org.nl.b_lms.pdm.error.model.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; +import org.nl.b_lms.bst.ivt.cutpointivt.service.dto.CutpointAirShhaftDto; +import org.nl.b_lms.pdm.error.model.DeviceFault; +import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; + +import java.util.List; + +/** + * @author lyd + * @date 2024-02-26 + **/ +public interface DeviceFaultMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/mapper/DeviceFaultMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/mapper/DeviceFaultMapper.xml new file mode 100644 index 000000000..de81e0284 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/model/mapper/DeviceFaultMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java new file mode 100644 index 000000000..222c2f17c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java @@ -0,0 +1,9 @@ +package org.nl.b_lms.pdm.error.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.b_lms.pdm.error.model.DeviceFault; +import org.springframework.stereotype.Service; + +@Service +public interface DeviceFaultService extends IService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/FaultManager.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/FaultManager.java new file mode 100644 index 000000000..acce8dd09 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/FaultManager.java @@ -0,0 +1,105 @@ +package org.nl.b_lms.pdm.error.service; + +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.error.model.DeviceFault; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.basedata.master.service.FaultDeviceService; +import org.springframework.stereotype.Component; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +@Slf4j +@Component +public class FaultManager { + public final ConcurrentHashMap memory = new ConcurrentHashMap<>(); + + public void add(DeviceFault f) { + memory.put(f.getDeviceCode(), f); + } + + public static class CompareResult { + public final List toInsert; + public final Set endedKeys; + + public CompareResult(List toInsert, Set endedKeys) { + this.toInsert = toInsert; + this.endedKeys = endedKeys; + } + } + + public CompareResult compareAndCollectToInsert(long nowMillis, List latest) { + Set apiKeys = new HashSet<>(); + for (DeviceFault f : latest) apiKeys.add(f.getDeviceCode()); + Set memKeys = new HashSet<>(memory.keySet()); + log.info("内存数据-------"+ memKeys); + List toInsert = new ArrayList<>(); + Set ended = new HashSet<>(); + for (String k : memKeys) + if (!apiKeys.contains(k)) { + DeviceFault m = memory.get(k); + if (m != null) { + long sm = parseMillis(m.getStartTime()); + int durationSec = (int) Math.max(0, (nowMillis - sm) / 1000); + m.setDuration(durationSec); + toInsert.add(m); + ended.add(k); + } + } + for (DeviceFault f : latest) + if (!memKeys.contains(f.getDeviceCode())) { + f.setStartTime(formatMillis(nowMillis)); + f.setDuration(0); + add(f); + } + return new CompareResult(toInsert, ended); + } + + public void removeAll(Set keys) { + if (keys == null || keys.isEmpty()) return; + for (String k : keys) memory.remove(k); + } + + public void tick() { + long s = System.nanoTime(); + try { + long now = System.currentTimeMillis(); + //todo 调用ACS获取 + FaultDeviceService bean = SpringContextHolder.getBean(FaultDeviceService.class); + List latest = bean.getErrorDeviceInfo(null); + log.info("获取数据-------"+latest.toString()); + CompareResult result = compareAndCollectToInsert(now, latest); + List toInsert = result.toInsert; + log.info("插入数据-------"+toInsert.toString()); + DeviceFaultService bean1 = SpringContextHolder.getBean(DeviceFaultService.class); + bean1.saveBatch(toInsert); + + //插入到数据库当中 + removeAll(result.endedKeys); + } finally { + long ms = (System.nanoTime() - s) / 1_000_000; + if (ms > 5000) log.warn("process time(ms)=" + ms); + } + } + + private static long parseMillis(String s) { + if (s == null || s.isEmpty() || "0".equals(s)) return 0L; + try { + LocalDateTime dt = LocalDateTime.parse(s, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + return dt.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + } catch (Exception e) { return 0L; } + } + + private static String formatMillis(long ms) { + LocalDateTime dt = Instant.ofEpochMilli(ms).atZone(ZoneId.systemDefault()).toLocalDateTime(); + return DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(dt); + } + +} \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java new file mode 100644 index 000000000..5e3aeb073 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java @@ -0,0 +1,11 @@ +package org.nl.b_lms.pdm.error.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.b_lms.pdm.error.model.DeviceFault; +import org.nl.b_lms.pdm.error.model.mapper.DeviceFaultMapper; +import org.nl.b_lms.pdm.error.service.DeviceFaultService; +import org.springframework.stereotype.Service; + +@Service +public class DeviceFaultServiceImpl extends ServiceImpl implements DeviceFaultService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSynErrorDevice.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSynErrorDevice.java new file mode 100644 index 000000000..926d52f59 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSynErrorDevice.java @@ -0,0 +1,41 @@ +package org.nl.b_lms.sch.tasks.first_floor_area.auto; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.error.service.FaultManager; +import org.nl.b_lms.sch.tasks.TwoOutBoxTask; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.sch.AcsTaskDto; +import org.nl.wms.sch.AcsUtil; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; + +import static org.nl.wms.util.TaskUtil.getRoutePlanCode; + + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoSynErrorDevice { + + //自动执行等待的桁架任务 + public void run() { + try { + FaultManager bean = SpringContextHolder.getBean(FaultManager.class); + bean.tick(); + } catch (Exception ex) { + log.error(ex.getMessage()); + } + } +} From 185cad8bf516ce2fc4e262116e64ca892a8e45dc Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 21 Nov 2025 15:12:53 +0800 Subject: [PATCH 143/146] =?UTF-8?q?fix:1=E3=80=81=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=95=85=E9=9A=9C=E8=AE=BE=E5=A4=87=E7=BB=9F=E8=AE=A1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=9B2=E3=80=81=E6=B5=85=E8=B4=A7=E4=BD=8D?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=B7=E4=BD=93=E4=BD=8D=E7=BD=AE=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=EF=BC=9B3=E3=80=81B1=E5=88=86=E9=85=8D=E5=86=B7?= =?UTF-8?q?=E5=8D=B4=E5=8C=BA=E7=82=B9=E4=BD=8D=E5=A2=9E=E5=8A=A0=E5=B9=B6?= =?UTF-8?q?=E5=8F=91=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pdm/error/service/DeviceFaultService.java | 16 +++ .../service/impl/DeviceFaultServiceImpl.java | 46 +++++++ .../screen/contorller/FaultController.java | 3 +- .../org/nl/b_lms/pdm/screen/model/Fault.java | 35 ----- .../nl/b_lms/pdm/screen/model/ScreenTask.java | 53 ------- .../b_lms/pdm/screen/see/SseBroadcaster.java | 5 +- .../see/aop/TaskUpdateBroadcastAspect.java | 12 +- .../b_lms/pdm/screen/store/InMemoryStore.java | 26 ++-- .../PdmBiSubpackagerelationServiceImpl.java | 4 +- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 16 +++ .../sch/tasks/first_floor_area/DjqTask.java | 2 +- .../first_floor_area/DjqToKzjhcwTask.java | 2 +- .../sch/tasks/first_floor_area/GzqTask.java | 2 +- .../first_floor_area/GzqToKzjhcwTask.java | 2 +- .../sch/tasks/first_floor_area/MzhcwTask.java | 2 +- .../first_floor_area/SendDjqKzjTask.java | 2 +- .../first_floor_area/SendGzqKzjTask.java | 2 +- .../tasks/first_floor_area/ShiftingTask.java | 2 +- .../tasks/first_floor_area/SsxDjwTask.java | 2 +- .../sch/tasks/first_floor_area/ZxDjwTask.java | 2 +- .../sch/tasks/first_floor_area/ZxqTask.java | 2 +- .../org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql | 32 +++++ .../util/impl/InBoxManageServiceImpl.java | 26 +++- .../config/thread/AsyncTaskExecutePool.java | 1 + .../master/rest/FaultDeviceController.java | 7 +- .../master/service/FaultDeviceService.java | 6 + .../service/impl/FaultDeviceServiceImpl.java | 80 ++++++++++- .../nl/wms/pda/mps/rest/BakingController.java | 4 +- .../nl/wms/pda/mps/service/BakingService.java | 2 +- .../mps/service/impl/BakingServiceImpl.java | 129 ++++++++++-------- .../wms/sch/manage/AutoIntoHotCacheTask.java | 2 +- .../wms/agvrush/error/bstIvtShafttubeivt.js | 35 +++++ .../src/views/wms/agvrush/error/index.vue | 125 +++++++++++++++++ 33 files changed, 497 insertions(+), 190 deletions(-) delete mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java delete mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java create mode 100644 lms/nladmin-ui/src/views/wms/agvrush/error/bstIvtShafttubeivt.js create mode 100644 lms/nladmin-ui/src/views/wms/agvrush/error/index.vue diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java index 222c2f17c..cc7fb3754 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java @@ -1,9 +1,25 @@ package org.nl.b_lms.pdm.error.service; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.nl.b_lms.pdm.error.model.DeviceFault; +import org.nl.common.domain.query.PageQuery; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + @Service public interface DeviceFaultService extends IService { + + IPage queryAll(Map whereJson, PageQuery pageable); + + void download(Map map, HttpServletResponse response) throws IOException; + + + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java index 5e3aeb073..040eaf5ba 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java @@ -1,11 +1,57 @@ package org.nl.b_lms.pdm.error.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.b_lms.pdm.error.model.mapper.DeviceFaultMapper; import org.nl.b_lms.pdm.error.service.DeviceFaultService; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.utils.FileUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + @Service public class DeviceFaultServiceImpl extends ServiceImpl implements DeviceFaultService { + + @Autowired + private DeviceFaultMapper deviceFaultMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(ObjectUtil.isNotEmpty(whereJson.get("device_code")), DeviceFault::getDeviceCode, whereJson.get("device_code")); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + deviceFaultMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void download(Map whereJson, HttpServletResponse response) throws IOException { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(ObjectUtil.isNotEmpty(whereJson.get("device_code")), DeviceFault::getDeviceCode, whereJson.get("device_code")); + List deviceFaults = deviceFaultMapper.selectList(lam); + List> list = new ArrayList<>(); + deviceFaults.forEach(deviceFault -> { + Map map = new LinkedHashMap<>(); + map.put("设备编码", deviceFault.getDeviceCode()); + map.put("设备名称", deviceFault.getDeviceName()); + map.put("故障编码", deviceFault.getErrorCode()); + map.put("故障描述", deviceFault.getErrorMessage()); + map.put("开始时间", deviceFault.getStartTime()); + map.put("持续时长(S)", deviceFault.getDuration()); + list.add(map); + }); + FileUtil.downloadExcel(list, response); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java index 8b3f7c268..9e89de386 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java @@ -2,6 +2,7 @@ package org.nl.b_lms.pdm.screen.contorller; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONArray; +import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.b_lms.pdm.screen.store.InMemoryStore; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.springframework.http.MediaType; @@ -23,7 +24,7 @@ public class FaultController { @GetMapping @SaIgnore - public JSONArray getFaults(@RequestParam(required = false) Integer limit) { + public List getFaults(@RequestParam(required = false) Integer limit) throws InterruptedException { return store.findFaults(); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java deleted file mode 100644 index ece8e37df..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.nl.b_lms.pdm.screen.model; - -public class Fault { - private Long id; - - private String deviceId; - - private String deviceType; - - private String faultContent; - - private Long occurTs; - private String severity; // info/warn/error - - public Fault() {} - - public Fault(Long id, String deviceId, String deviceType, String faultContent, Long occurTs, String severity) { - this.id = id; this.deviceId = deviceId; this.deviceType = deviceType; this.faultContent = faultContent; - this.occurTs = occurTs; this.severity = severity; - } - - public Long getId() { return id; } - public void setId(Long id) { this.id = id; } - public String getDeviceId() { return deviceId; } - public void setDeviceId(String deviceId) { this.deviceId = deviceId; } - public String getDeviceType() { return deviceType; } - public void setDeviceType(String deviceType) { this.deviceType = deviceType; } - public String getFaultContent() { return faultContent; } - public void setFaultContent(String faultContent) { this.faultContent = faultContent; } - public Long getOccurTs() { return occurTs; } - public void setOccurTs(Long occurTs) { this.occurTs = occurTs; } - public String getSeverity() { return severity; } - public void setSeverity(String severity) { this.severity = severity; } -} - diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java deleted file mode 100644 index 25d587262..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.nl.b_lms.pdm.screen.model; - - -public class ScreenTask { - private Long id; - - private String name; - - private String type; // AGV搬运/堆垛机操作 - - private String status; // pending, running, completed, failed, paused - private String priority; // high/medium/low - private Integer progress; // 0-100 - private String startLocation; - private String endLocation; - private String creator; - - private Long createTs; // epoch millis - private String description; - - public ScreenTask() {} - - public ScreenTask(Long id, String name, String type, String status, String priority, Integer progress, - String startLocation, String endLocation, String creator, Long createTs, String description) { - this.id = id; this.name = name; this.type = type; this.status = status; this.priority = priority; - this.progress = progress; this.startLocation = startLocation; this.endLocation = endLocation; - this.creator = creator; this.createTs = createTs; this.description = description; - } - - public Long getId() { return id; } - public void setId(Long id) { this.id = id; } - public String getName() { return name; } - public void setName(String name) { this.name = name; } - public String getType() { return type; } - public void setType(String type) { this.type = type; } - public String getStatus() { return status; } - public void setStatus(String status) { this.status = status; } - public String getPriority() { return priority; } - public void setPriority(String priority) { this.priority = priority; } - public Integer getProgress() { return progress; } - public void setProgress(Integer progress) { this.progress = progress; } - public String getStartLocation() { return startLocation; } - public void setStartLocation(String startLocation) { this.startLocation = startLocation; } - public String getEndLocation() { return endLocation; } - public void setEndLocation(String endLocation) { this.endLocation = endLocation; } - public String getCreator() { return creator; } - public void setCreator(String creator) { this.creator = creator; } - public Long getCreateTs() { return createTs; } - public void setCreateTs(Long createTs) { this.createTs = createTs; } - public String getDescription() { return description; } - public void setDescription(String description) { this.description = description; } -} - diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java index 801c47460..791805e73 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java @@ -1,6 +1,7 @@ package org.nl.b_lms.pdm.screen.see; import com.alibaba.fastjson.JSONArray; +import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.b_lms.pdm.screen.store.InMemoryStore; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.springframework.stereotype.Component; @@ -42,7 +43,7 @@ public class SseBroadcaster { } public void pushFaultsSnapshot() { - JSONArray snapshot = store.findFaults(); + List snapshot = store.findFaults(); pushFaults(snapshot); } @@ -57,7 +58,7 @@ public class SseBroadcaster { } } - public void pushFaults(JSONArray faults) { + public void pushFaults(List faults) { if (faultEmitters.isEmpty()) return; for (SseEmitter emitter : faultEmitters) { try { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java index ccf95c83f..6ac193868 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java @@ -5,10 +5,14 @@ import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.reflect.MethodSignature; import org.nl.b_lms.pdm.screen.see.SseBroadcaster; +import org.nl.config.thread.AsyncTaskExecutePool; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronizationManager; +import java.util.concurrent.Executor; import java.util.concurrent.locks.ReentrantLock; /** @@ -22,6 +26,10 @@ import java.util.concurrent.locks.ReentrantLock; public class TaskUpdateBroadcastAspect { private final SseBroadcaster broadcaster; + @Autowired + @Qualifier("pushExecutor") + private Executor pushExecutor; + // 非阻塞并发保护:同一时刻仅允许一次推送执行,其他并发调用直接跳过 private final ReentrantLock pushLock = new ReentrantLock(); @@ -71,10 +79,10 @@ public class TaskUpdateBroadcastAspect { if (TransactionSynchronizationManager.isSynchronizationActive()) { TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { @Override - public void afterCommit() { doPushGuarded.run(); } + public void afterCommit() { pushExecutor.execute(doPushGuarded); } }); } else { - doPushGuarded.run(); + pushExecutor.execute(doPushGuarded); } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java index 90beea427..9f757b4e0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java @@ -5,10 +5,12 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.basedata.master.service.FaultDeviceService; import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -24,6 +26,9 @@ public class InMemoryStore { @Autowired private IschBaseTaskService ischBaseTaskService; + @Autowired + private FaultDeviceService faultDeviceService; + public List findTasks() { List targetType = Arrays.asList( "010702", "010703", "010704", "010706", "010710", "010712", "010714", "010715", @@ -48,25 +53,10 @@ public class InMemoryStore { } - public JSONArray findFaults() { + public List findFaults() { JSONArray blk_rows = WQLObject.getWQLObject("em_bi_monitordevice").query("product_area = 'BLK' AND is_crux = '1' AND region_code IN ('RK','NBJ','DDJ')").getResultJSONArray(0); - List blkList = new ArrayList<>(); - for (int i = 0; i < blk_rows.size(); i++) { - JSONObject row = blk_rows.getJSONObject(i); - blkList.add(row.getString("device_code")); - } - - WmsToAcsServiceImpl bean = SpringContextHolder.getBean(WmsToAcsServiceImpl.class); - JSONObject result2; - try { - result2 = bean.getDeviceErrorInfo(blkList, "BLK"); - } catch (Exception e) { - result2 = new JSONObject(); - log.info(e.getMessage()); - } - // 调用acs接口获取设备 - JSONArray blk_data = result2.getJSONArray("data"); - return ObjectUtil.isNotEmpty(blk_data) ? blk_data : new JSONArray(); + List faults = faultDeviceService.filterErrorDevice(blk_rows); + return ObjectUtil.isNotEmpty(faults) ? faults : new ArrayList<>(); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 51252c02d..08dde1994 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -460,9 +460,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl addTask() { /* @@ -141,9 +147,19 @@ public class TwoOutTask extends AbstractAcsTask { JSONObject jsonObject = WQL.getWO("OUT_TASK01").addParamMap(json) .process().uniqueResult(0); + json.put("flag", "3"); + JSONObject strJson = WQL.getWO("OUT_TASK01").addParamMap(json) + .process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonObject)) { result.add(jsonObject); } else { + if (strJson.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库锁"))){ + JSONObject update_jo = new JSONObject(); + update_jo.put("remark","下发深货位任务时,浅货位存在出库锁却不存在任务,暂时不下发!"); + WQLObject.getWQLObject("SCH_BASE_Task").update(update_jo,"task_id = '" + json.getString("task_id") + "'"); + continue; + } json.put("zdepth",IOSEnum.IS_NOTANDYES.code("是")); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index c63989043..aa3376e7e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -47,7 +47,7 @@ import java.util.stream.Collectors; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class DjqTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; 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 52150968a..33d331f12 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 @@ -45,7 +45,7 @@ import java.util.stream.Collectors; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class DjqToKzjhcwTask extends AbstractAcsTask { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index 2ce71ab1d..c718742d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java @@ -41,7 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class GzqTask extends AbstractAcsTask { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java index eef8170f6..0bd4ab75c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java @@ -41,7 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class GzqToKzjhcwTask extends AbstractAcsTask { 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 ade0cd17d..ef6da0659 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 @@ -51,7 +51,7 @@ import java.util.stream.Stream; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class MzhcwTask extends AbstractAcsTask { private final String THIS_CLASS = MzhcwTask.class.getName(); 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 c6b2aea33..413847189 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 @@ -41,7 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class SendDjqKzjTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java index 3895f61fa..b7a674def 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java @@ -40,7 +40,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class SendGzqKzjTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java index 716df8208..d45bd8fe7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java @@ -40,7 +40,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class ShiftingTask extends AbstractAcsTask { private final String THIS_CLASS = ShiftingTask.class.getName(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index 54fb00b8b..48fe8d512 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java @@ -41,7 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class SsxDjwTask extends AbstractAcsTask { private final String THIS_CLASS = SsxDjwTask.class.getName(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index 7ff3f0b29..d92e00867 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -52,7 +52,7 @@ import java.util.concurrent.TimeUnit; */ @Service() @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class ZxDjwTask extends AbstractAcsTask { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 3a6f6ba79..65353147a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -50,7 +50,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class ZxqTask extends AbstractAcsTask { @Resource diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql index d54b7afe2..9a8063138 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql @@ -102,3 +102,35 @@ ENDSELECT ENDQUERY ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + attr.lock_type, + attr.struct_code + FROM + st_ivt_structattr + WHERE + + and attr.sect_code = 'BZC01' + and attr.zdepth = '1' + + OPTION 输入.row_num <> "" + attr.row_num = 输入.row_num + ENDOPTION + + OPTION 输入.col_num <> "" + attr.col_num = 输入.col_num + ENDOPTION + + OPTION 输入.layer_num <> "" + attr.layer_num = 输入.layer_num + ENDOPTION + + OPTION 输入.block_num <> "" + attr.block_num = 输入.block_num + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index 63d983679..f3d9ed127 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -18,6 +18,7 @@ import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.TwoExceptionInTask; import org.nl.b_lms.sch.tasks.TwoInBoxTask; import org.nl.b_lms.sch.tasks.TwoInBoxTrussTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; @@ -145,7 +146,30 @@ public class InBoxManageServiceImpl implements InBoxManageService { } String pcsn = vehicle_ext.getString("pcsn"); if (ObjectUtil.isNotEmpty(pcsn)){ - throw new BadRequestException("托盘【"+whereJson.getString("vehicle_code")+"】已经绑定了木箱【"+pcsn+"】,请进行核实!"); + //更新子卷入库备注信息 + JSONObject jsonTaskParam = new JSONObject(); + //创建异常任务去异常入库口 + //入库口 + jsonTaskParam.put("point_code1", whereJson.getString("device_code")); + //异常位 + jsonTaskParam.put("point_code2", "RK1003"); + jsonTaskParam.put("vehicle_code", boxNo); + jsonTaskParam.put("vehicle_code2", whereJson.getString("vehicle_code")); + JSONObject request_param = new JSONObject(); + if (whereJson.getString("vehicle_code").startsWith("A")) { + request_param.put("containerType", "2"); + } else if (whereJson.getString("vehicle_code").startsWith("B")) { + request_param.put("containerType", "1"); + } else { + throw new BadRequestException("托盘号有误,无法找到对应的托盘类型!"); + } + + jsonTaskParam.put("request_param", request_param); + TwoExceptionInTask bean = SpringContextHolder.getBean(TwoExceptionInTask.class); + bean.createTask(jsonTaskParam); + bean.immediateNotifyAcs(null); + return; + //throw new BadRequestException("托盘【"+whereJson.getString("vehicle_code")+"】已经绑定了木箱【"+pcsn+"】,请进行核实!"); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java b/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java index 9eb668558..287fdb41b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java +++ b/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java @@ -45,6 +45,7 @@ public class AsyncTaskExecutePool implements AsyncConfigurer { } @Override + @Bean("pushExecutor") public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //核心线程池大小 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/FaultDeviceController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/FaultDeviceController.java index 11344afe0..fc7ca41d2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/FaultDeviceController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/FaultDeviceController.java @@ -76,10 +76,15 @@ public class FaultDeviceController { @GetMapping("/getAllerrorDevice") @Log("查询所有设备故障") - public ResponseEntity getAllerrorDevice(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(faultDeviceService.getAllerrorDevice(whereJson, page), HttpStatus.OK); } + @GetMapping("/getErrorDeviceInfo") + @Log("查询所有设备故障") + public ResponseEntity getErrorDeviceInfo(@RequestBody JSONObject jsonObject) { + return new ResponseEntity<>(faultDeviceService.getErrorDeviceInfo(jsonObject), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/FaultDeviceService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/FaultDeviceService.java index 70ac7ff75..6ca83b162 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/FaultDeviceService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/FaultDeviceService.java @@ -1,6 +1,8 @@ package org.nl.wms.basedata.master.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.wms.basedata.master.service.dto.CustomerbaseDto; import org.springframework.data.domain.Pageable; @@ -91,4 +93,8 @@ public interface FaultDeviceService { * @return Map */ Map getAllerrorDevice(Map whereJson, Pageable page); + + List getErrorDeviceInfo(JSONObject whereJson); + + List filterErrorDevice(JSONArray rows); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java index b2e9b545e..0164aa894 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java @@ -3,6 +3,8 @@ package org.nl.wms.basedata.master.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; +import org.nl.b_lms.pdm.error.model.DeviceFault; +import org.nl.b_lms.pdm.error.service.FaultManager; import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -24,14 +26,14 @@ import org.nl.wms.basedata.master.service.FaultDeviceService; import org.nl.wms.basedata.master.service.dto.CustomerbaseDto; import org.nl.wms.basedata.st.service.UserDeviceService; import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.swing.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; /** * @author liuxy @@ -43,6 +45,9 @@ import java.util.Map; @Slf4j public class FaultDeviceServiceImpl implements FaultDeviceService { + @Autowired + private FaultManager faultManager; + @Override public Map queryAll(Map whereJson, Pageable page) { String fault_code = MapUtil.getStr(whereJson, "fault_code"); @@ -348,7 +353,7 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { b1List.add(row.getString("device_code")); } - JSONObject result = bean.getDeviceErrorInfo(b1List,"B1"); + JSONObject result = bean.getDeviceErrorInfo(b1List, "B1"); // 调用acs接口获取设备 JSONArray b1_data = result.getJSONArray("data"); @@ -359,7 +364,7 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { blkList.add(row.getString("device_code")); } - JSONObject result2 = bean.getDeviceErrorInfo(blkList,"BLK"); + JSONObject result2 = bean.getDeviceErrorInfo(blkList, "BLK"); // 调用acs接口获取设备 JSONArray blk_data = result2.getJSONArray("data"); @@ -389,7 +394,7 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { } } //查询内包间套轴对接位的异常 - if (inArea.contains("CBJ") && (StrUtil.isEmpty(region_code) || region_code.equals("CBJ")) ) { + if (inArea.contains("CBJ") && (StrUtil.isEmpty(region_code) || region_code.equals("CBJ"))) { IBstIvtCutpointivtService bean2 = SpringContextHolder.getBean(IBstIvtCutpointivtService.class); List list = bean2.list(new LambdaQueryWrapper() .eq(BstIvtCutpointivt::getPoint_type, "1") @@ -411,4 +416,67 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { json.put("content", data); return json; } + + @Override + public List getErrorDeviceInfo(JSONObject whereJson) { + WmsToAcsServiceImpl bean = SpringContextHolder.getBean(WmsToAcsServiceImpl.class); + //查询当前人员对应的设备是多少 + JSONArray b1_rows = WQLObject.getWQLObject("em_bi_monitordevice").query("product_area = 'B1' AND is_crux = '1'").getResultJSONArray(0); + List b1List = new ArrayList<>(); + for (int i = 0; i < b1_rows.size(); i++) { + JSONObject row = b1_rows.getJSONObject(i); + b1List.add(row.getString("device_code")); + } + + JSONObject result = bean.getDeviceErrorInfo(b1List, "B1"); + // 调用acs接口获取设备 + JSONArray b1_data = result.getJSONArray("data"); + + JSONArray blk_rows = WQLObject.getWQLObject("em_bi_monitordevice").query("product_area = 'BLK' AND is_crux = '1'").getResultJSONArray(0); + List blkList = new ArrayList<>(); + for (int i = 0; i < blk_rows.size(); i++) { + JSONObject row = blk_rows.getJSONObject(i); + blkList.add(row.getString("device_code")); + } + + JSONObject result2 = bean.getDeviceErrorInfo(blkList, "BLK"); + // 调用acs接口获取设备 + JSONArray blk_data = result2.getJSONArray("data"); + b1_data.addAll(blk_data); + + + List deviceFaultList = new ArrayList<>(); + for (int i = 0; i < b1_data.size(); i++) { + JSONObject row = b1_data.getJSONObject(i); + DeviceFault deviceFault = new DeviceFault(); + deviceFault.setDeviceCode(row.getString("device_code")); + deviceFault.setDeviceName(row.getString("device_name")); + deviceFault.setErrorCode(row.getString("error_code")); + deviceFault.setErrorMessage(row.getString("error_message")); + deviceFaultList.add(deviceFault); + } + for (int i = 0; i < blk_data.size(); i++) { + JSONObject row = blk_data.getJSONObject(i); + DeviceFault deviceFault = new DeviceFault(); + deviceFault.setDeviceCode(row.getString("device_code")); + deviceFault.setDeviceName(row.getString("device_name")); + deviceFault.setErrorCode(row.getString("error_code")); + deviceFault.setErrorMessage(row.getString("error_message")); + deviceFaultList.add(deviceFault); + } + return deviceFaultList; + } + + public List filterErrorDevice(JSONArray rows) { + ConcurrentHashMap memory = faultManager.memory; + List list = new ArrayList<>(); + Set memKeys = new HashSet<>(memory.keySet()); + for (int i = 0; i < rows.size(); i++) { + JSONObject jsonObject = rows.getJSONObject(i); + if (memKeys.contains(jsonObject.getString("device_code"))) { + list.add(memory.get(jsonObject.getString("device_code"))); + } + } + return list; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java index d308bb8e4..ae9f1b9ab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java @@ -3,6 +3,7 @@ package org.nl.wms.pda.mps.rest; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.modules.logging.annotation.Log; import org.nl.wms.pda.mps.service.BakingService; @@ -26,7 +27,8 @@ public class BakingController { @PostMapping("/ovenInAndOut") @Log("烘箱出入") -@SaIgnore + @SaIgnore + @SneakyThrows public ResponseEntity queryRawFoil(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(bakingService.ovenInAndOut(whereJson), HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/BakingService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/BakingService.java index 178c71d3e..dbe8bf161 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/BakingService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/BakingService.java @@ -10,7 +10,7 @@ public interface BakingService { * @param whereJson / * @return JSONObject */ - JSONObject ovenInAndOut(JSONObject whereJson); + JSONObject ovenInAndOut(JSONObject whereJson) throws InterruptedException; /** * 入冷却 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 599493715..fe7e39ccf 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 @@ -27,10 +27,14 @@ import org.nl.wms.sch.tasks.CutConveyorTask; import org.nl.wms.sch.tasks.InCoolIvtTask; import org.nl.wms.sch.tasks.InHotTask; import org.nl.wms.sch.tasks.OutHotTask; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.concurrent.TimeUnit; + @Service @RequiredArgsConstructor @Slf4j @@ -39,6 +43,9 @@ public class BakingServiceImpl implements BakingService { @Autowired private RedisUtils redisUtils; + @Autowired + private RedissonClient redissonClient; + /* * 业务流程: * 入烤箱: @@ -56,7 +63,7 @@ public class BakingServiceImpl implements BakingService { */ @Override @Transactional(rollbackFor = Exception.class) - public JSONObject ovenInAndOut(JSONObject whereJson) { + public JSONObject ovenInAndOut(JSONObject whereJson) throws InterruptedException { String option = whereJson.getString("option"); // 1-入箱 2-出箱 @@ -413,62 +420,74 @@ public class BakingServiceImpl implements BakingService { //判断区域是否属于B1,B1的出烘箱流程出到对应的半成品区 if ("B1".equals(product_area)) { - JSONObject jsonRaw = rawTab.query("container_name = '" + jsonHotIvt.getString("container_name") + "' and is_delete = '0'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonRaw)) { - throw new BadRequestException("未查询到母卷号:" + jsonHotIvt.getString("container_name") + "对应的生箔工单!"); - } - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonMater)) { - throw new BadRequestException("物料基础信息中无此物料!"); - } + RLock lock = redissonClient.getLock("AutoIntoHotCacheTask"); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + JSONObject jsonRaw = rawTab.query("container_name = '" + jsonHotIvt.getString("container_name") + "' and is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonRaw)) { + throw new BadRequestException("未查询到母卷号:" + jsonHotIvt.getString("container_name") + "对应的生箔工单!"); + } + JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonMater)) { + throw new BadRequestException("物料基础信息中无此物料!"); + } - //查询当前点位为空且没有任务的桁架内缓存点 - JSONObject cache_param = new JSONObject(); - cache_param.put("flag", "4"); - cache_param.put("point_location", jsonHotIvt.getString("point_location")); - cache_param.put("product_area", jsonHotIvt.getString("product_area")); - JSONObject cache_jo = WQL.getWO("PDA_COOLIN").addParamMap(cache_param).process().uniqueResult(0); - if (ObjectUtil.isEmpty(cache_jo)) { - throw new BadRequestException("桁架范围内没有可用的空点位,请检查库存!"); + //查询当前点位为空且没有任务的桁架内缓存点 + JSONObject cache_param = new JSONObject(); + cache_param.put("flag", "4"); + cache_param.put("point_location", jsonHotIvt.getString("point_location")); + cache_param.put("product_area", jsonHotIvt.getString("product_area")); + JSONObject cache_jo = WQL.getWO("PDA_COOLIN").addParamMap(cache_param).process().uniqueResult(0); + if (ObjectUtil.isEmpty(cache_jo)) { + throw new BadRequestException("桁架范围内没有可用的空点位,请检查库存!"); + } + + // 3.创建任务 + JSONObject param = new JSONObject(); + param.put("point_code1", point_code1); + param.put("point_code2", cache_jo.getString("point_code")); + param.put("material_code", jsonHotIvt.getString("container_name")); + param.put("product_area", jsonHotIvt.getString("product_area")); + OutHotTask outHotTask = new OutHotTask(); + String task_id = outHotTask.createTask(param); + + //查询该母卷对应最近的一条入烘箱记录 + 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(); + hotParam.put("container_name", jsonRaw.getString("container_name")); + hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); + hotParam.put("material_id", jsonMater.getString("material_id")); + hotParam.put("qty", jsonRaw.get("qty")); + hotParam.put("io_type", "1"); + hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); + hotParam.put("task_id", task_id); + hotParam.put("start_point_code", point_code1); + hotParam.put("end_point_code", cache_jo.getString("point_code")); + boolean exists = redisUtils.hHasKey(point_code1, "temperature"); + String point_temperature = ""; + if (exists) { + point_temperature = (String) redisUtils.hget(point_code1, "temperature"); + } else { + throw new BadRequestException("当前操作点位设备:" + point_code1 + ",无法获取温度,请稍后再试!"); + } + hotParam.put("temperature", point_temperature); + + if (ObjectUtil.isEmpty(last_hot_mst)) { + hotParam.put("oven_time", "480"); + } else { + hotParam.put("oven_time", last_hot_mst.getString("oven_time")); + } + this.createHotIoMst(hotParam); + } else { + throw new BadRequestException("当前其他任务正在分配冷却站点,为避免重复分配请稍后再试!"); + } + } finally { + if (lock.isLocked() && lock.isHeldByCurrentThread()) { + lock.unlock(); + } } - - // 3.创建任务 - JSONObject param = new JSONObject(); - param.put("point_code1", point_code1); - param.put("point_code2", cache_jo.getString("point_code")); - param.put("material_code", jsonHotIvt.getString("container_name")); - param.put("product_area", jsonHotIvt.getString("product_area")); - OutHotTask outHotTask = new OutHotTask(); - String task_id = outHotTask.createTask(param); - - //查询该母卷对应最近的一条入烘箱记录 - 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(); - hotParam.put("container_name", jsonRaw.getString("container_name")); - hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); - hotParam.put("material_id", jsonMater.getString("material_id")); - hotParam.put("qty", jsonRaw.get("qty")); - hotParam.put("io_type", "1"); - hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); - hotParam.put("task_id", task_id); - hotParam.put("start_point_code", point_code1); - hotParam.put("end_point_code", cache_jo.getString("point_code")); - boolean exists = redisUtils.hHasKey(point_code1, "temperature"); - String point_temperature = ""; - if (exists) { - point_temperature = (String) redisUtils.hget(point_code1, "temperature"); - } else { - throw new BadRequestException("当前操作点位设备:" + point_code1 + ",无法获取温度,请稍后再试!"); - } - hotParam.put("temperature", point_temperature); - - if (ObjectUtil.isEmpty(last_hot_mst)) { - hotParam.put("oven_time", "480"); - } else { - hotParam.put("oven_time", last_hot_mst.getString("oven_time")); - } - this.createHotIoMst(hotParam); } else { // 出烘箱,创建桁架任务到对接位 if (!in_area_id.contains(product_area)) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java index d41b80875..145c7344a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java @@ -39,7 +39,7 @@ public class AutoIntoHotCacheTask { @SneakyThrows public void run() { log.info("定时对B1入暂存...."); - RLock lock = redissonClient.getLock(THIS_CLASS); + RLock lock = redissonClient.getLock("AutoIntoHotCacheTask"); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { diff --git a/lms/nladmin-ui/src/views/wms/agvrush/error/bstIvtShafttubeivt.js b/lms/nladmin-ui/src/views/wms/agvrush/error/bstIvtShafttubeivt.js new file mode 100644 index 000000000..eddb9d529 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/agvrush/error/bstIvtShafttubeivt.js @@ -0,0 +1,35 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/bstIvtShafttubeivt', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/bstIvtShafttubeivt/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/bstIvtShafttubeivt', + method: 'put', + data + }) +} + +export function setHaveShaft(data) { + return request({ + url: 'api/bstIvtShafttubeivt/setHaveShaft', + method: 'post', + data + }) +} + +export default { add, edit, del, setHaveShaft } diff --git a/lms/nladmin-ui/src/views/wms/agvrush/error/index.vue b/lms/nladmin-ui/src/views/wms/agvrush/error/index.vue new file mode 100644 index 000000000..d50d21d0a --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/agvrush/error/index.vue @@ -0,0 +1,125 @@ + + + + + From acbafd8f09cdc2a872e5a1ae658ce9f05467602b Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 24 Nov 2025 09:00:08 +0800 Subject: [PATCH 144/146] =?UTF-8?q?add:=E6=96=B0=E5=A2=9E=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceFalutController.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/controller/DeviceFalutController.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/controller/DeviceFalutController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/controller/DeviceFalutController.java new file mode 100644 index 000000000..abf3082f0 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/controller/DeviceFalutController.java @@ -0,0 +1,42 @@ +package org.nl.b_lms.pdm.error.controller; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.error.service.DeviceFaultService; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + +/** + * @author lyd + * @date 2024-02-26 + **/ +@Slf4j +@RestController +@RequestMapping("/api/deviceFault") +public class DeviceFalutController { + + @Autowired + private DeviceFaultService deviceFaultService; + + @GetMapping + @Log("查询故障设备时长记录") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(deviceFaultService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @Log("导出数据") + @GetMapping(value = "/download") + public void download(@RequestParam Map map, HttpServletResponse response) throws IOException { + deviceFaultService.download(map, response); + } + +} From e8cf1d2c7238d4f5fd9298dbf98bc00b107bf100 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 25 Nov 2025 15:28:38 +0800 Subject: [PATCH 145/146] =?UTF-8?q?fix:=E7=A9=BA=E5=87=BA=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql index 9a8063138..9ed67e271 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql @@ -111,8 +111,7 @@ FROM st_ivt_structattr WHERE - - and attr.sect_code = 'BZC01' + attr.sect_code = 'BZC01' and attr.zdepth = '1' OPTION 输入.row_num <> "" From 522faa86f36d2c57cac16b43466d5a32497f4a6c Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 27 Nov 2025 10:39:52 +0800 Subject: [PATCH 146/146] =?UTF-8?q?fix:=E7=A9=BA=E5=87=BA=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql index 9ed67e271..1735309a9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql @@ -109,7 +109,7 @@ attr.lock_type, attr.struct_code FROM - st_ivt_structattr + st_ivt_structattr attr WHERE attr.sect_code = 'BZC01' and attr.zdepth = '1'