From 30130025b024b728a9e1e3a9de35db88e018ceec Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 12 Jan 2026 19:26:40 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=96=B0=E5=A2=9E=E8=A3=85?= =?UTF-8?q?=E7=AE=B1=E6=A1=81=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationController.java | 3 +- .../PdmBiSubpackagerelationServiceImpl.java | 120 +++++++++++++----- .../mapper/BstIvtPackageinfoivtMapper.java | 2 +- .../dao/mapper/BstIvtPackageinfoivtMapper.xml | 32 ++--- .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 14 +- .../auto/AutoSendZxToDjw.java | 1 + .../acs/service/impl/AcsToWmsServiceImpl.java | 21 +++ .../src/views/wms/st/outbill/DivDialog.vue | 4 +- 8 files changed, 139 insertions(+), 58 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java index e71b73fa1..9e1c3cfae 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java @@ -208,8 +208,7 @@ public class PdmBiSubpackagerelationController { //@SaCheckPermission("@el.check(updateEntityList)") public ResponseEntity getPointCode(@RequestBody JSONObject whereJson) { Integer num = whereJson.getInteger("num"); - pdmBiSubpackagerelationService.getPointCode(num); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(pdmBiSubpackagerelationService.getPointCode(num),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 3fdfc5d43..e7c9494ea 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 @@ -216,15 +216,13 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")))) { // throw new BadRequestException("该子卷不在待检区,请检查!"); // } @@ -364,7 +362,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl() - .eq("task_type", "010908") - .eq("is_delete", "0") - .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - int count2 = packageinfoivtService.count(new QueryWrapper() - .eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) - .eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); - if (count + count2 > 8) { - throw new BadRequestException("当前装箱区木箱任务已满,稍后再试"); - } - String[] split = containerName.split(","); + + String deviceCode = this.getPointCode(split.length); + //理论毛重 List subList = this.list(new QueryWrapper() .eq("status", "0") @@ -448,23 +437,23 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl list = taskService.list(new QueryWrapper() + .eq("is_delete", "0") + .and(wq -> wq.eq("point_code1", 浅Attr.getString("struct_code")).or().eq("point_code2", 浅Attr.getString("struct_code"))) + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); if (ObjectUtil.isEmpty(浅Attr.getString("storagevehicle_code"))) { - if (!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { - throw new BadRequestException("木箱货位" + boxAttr.getString("struct_code") + "的浅货位存在正在执行的任务"); + if (!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定")) && ObjectUtil.isNotEmpty(list)) { + throw new BadRequestException("木箱货位" + boxAttr.getString("struct_code") + "的浅货位存在正在执行的任务" + list.get(0).getTask_code()); } } else { if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { // 判断浅货位木箱和深货位木箱是否相同规格 task_group_id = outBoxManageService.createBoxMove(浅Attr); } else { - List 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("struct_code") + "存在任务" + 浅Attr.getString("task_code")); + throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位" + 浅Attr.getString("struct_code") + "存在任务" + list.get(0).getTask_code()); } - throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位" + 浅Attr.getString("struct_code") + "被锁定" + 浅Attr.getString("task_code")); + throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位" + 浅Attr.getString("struct_code") + "被锁定" + 浅Attr.getString("storagevehicle_code")); } } } @@ -639,10 +628,77 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl { + int count = taskService.count(new QueryWrapper() + .eq("task_type", "010908") + .eq("is_delete", "0") + .eq("vehicle_code2", r.getBlock()) + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); + int count2 = packageinfoivtService.count(new QueryWrapper() + .eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) + .eq("block", r.getBlock()) + .eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); + if (count + count2 + entitySize > 8) { + bstIvtPackageinfoivtList.remove(r); + } + }); + + if (ObjectUtils.isEmpty(bstIvtPackageinfoivtList)) { + throw new BadRequestException("当前装箱区木箱任务已满,稍后再试"); + } + + String pointCode = ""; + //装箱区任务数 + List> zxTaskCount = bstIvtPackageinfoivtMapper.getZxqTaskCount(); + if (ObjectUtils.isNotEmpty(zxTaskCount)) { + Set packageCodeSet = bstIvtPackageinfoivtList.stream() + .map(BstIvtPackageinfoivt::getPoint_code) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + +// 从zxTaskCount中过滤出bstIvtPackageinfoivtList不包含的point_code,并按count和point_code2排序 + List> filteredZxTaskCount = zxTaskCount.stream() + .filter(map -> { + Object pointCodeObj = map.get("point_code"); + String code = pointCodeObj != null ? pointCodeObj.toString() : null; + // 过滤掉包含在packageCodeSet中的,只保留包含的 + return code != null && packageCodeSet.contains(code); + }) + .collect(Collectors.toList()); + return filteredZxTaskCount.get(0).get("point_code").toString(); + } else { + pointCode = bstIvtPackageinfoivtList.get(0).getPoint_code(); + } + + return pointCode; + } + + public String getPointCode2(Integer entitySize) { + //装箱区对接位 + List bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱位")) + .eq(BstIvtPackageinfoivt::getIs_used, IOSEnum.IS_NOTANDYES.code("是")) + .orderByAsc(BstIvtPackageinfoivt::getPoint_code)); + if (ObjectUtils.isEmpty(bstIvtPackageinfoivtList)) { + throw new BadRequestException("没有可用的装箱区对接位"); + } + + String deviceCode = "ZXQ_1_1"; + int count = taskService.count(new QueryWrapper() + .eq("task_type", "010908") + .eq("is_delete", "0") + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); + int count2 = packageinfoivtService.count(new QueryWrapper() + .eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) + .eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); + if (count + count2 > 8) { + throw new BadRequestException("当前装箱区木箱任务已满,稍后再试"); + } Map resultMap = new LinkedHashMap<>(); Set zxIvtSet = bstIvtPackageinfoivtList.stream().map(BstIvtPackageinfoivt::getBlock).collect(Collectors.toSet()); //装箱区任务数 - List> zxTaskCount = bstIvtPackageinfoivtMapper.getZxqTaskCount(zxIvtSet); + List> zxTaskCount = bstIvtPackageinfoivtMapper.getZxqTaskCount(); if (ObjectUtils.isNotEmpty(zxTaskCount)) { for (Map map : zxTaskCount) { String pointCode = map.get("point_code2").toString(); @@ -673,7 +729,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl { Map.Entry entry = map.entrySet().iterator().next(); - return entry.getValue() + entitySize > 10; + return entry.getValue() + entitySize > 8; }); //获取数量最少的点位 Optional minPointCode = result.stream() 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 a11405429..7ac7a1b18 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 @@ -27,7 +27,7 @@ public interface BstIvtPackageinfoivtMapper extends BaseMapper> getZxqTaskCount(Set groupIds); + List> getZxqTaskCount(); /** 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 d684b52d2..44783c0d3 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 @@ -12,26 +12,22 @@