From f41571698d76b73ad56ab62b83db021870c00d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=97=AD=E6=98=8E=5C73939?= <739390650@QQ.COM> Date: Fri, 7 Aug 2026 17:28:21 +0700 Subject: [PATCH] =?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 --- .../service/impl/VehicleTwoServiceImpl.java | 2 +- .../point/dao/mapper/SchBasePointMapper.java | 2 +- .../org/nl/b_lms/sch/tasks/TwoLashTask.java | 10 ++ .../nl/b_lms/sch/tasks/TwoOutHeapTask.java | 149 +++++++++--------- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 23 ++- .../storage_manage/ios/enums/IOSEnum.java | 3 + .../impl/StIvtIostorinvOutServiceImpl.java | 59 ++++--- .../util/impl/InBoxManageServiceImpl.java | 8 +- .../util/impl/InVehicleManageServiceImpl.java | 11 +- .../util/impl/LashManageServiceImpl.java | 31 ++-- .../util/impl/OutBussManageServiceImpl.java | 2 +- .../impl/OutVehicleManageServiceImpl.java | 17 +- .../wms/ext/acs/rest/AcsToWmsController.java | 15 ++ .../acs/service/impl/AcsToWmsServiceImpl.java | 2 +- .../nl/wms/sch/manage/AbstractAcsTask.java | 4 +- .../src/views/wms/st/outbill/DivDialog.vue | 1 + .../src/views/wms/stat/inbillquery/index2.vue | 2 +- 17 files changed, 195 insertions(+), 146 deletions(-) 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 34966b7..9f9c2e0 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 @@ -552,7 +552,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { whereJson.put("box_no", whereJson.getString("box_no")); List sub_list = ipdmBiSubpackagerelationService.list(new LambdaQueryWrapper() .eq(PdmBiSubpackagerelation::getPackage_box_sn, whereJson.getString("material_barcode")) - .in(PdmBiSubpackagerelation::getStatus, Arrays.asList('0', '1'))); + .in(PdmBiSubpackagerelation::getStatus, Arrays.asList('0', '1','3'))); if (ObjectUtil.isEmpty(sub_list)) { throw new BadRequestException("未查询到子卷包装信息!"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java index 85b070a..2c43dea 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java @@ -57,6 +57,6 @@ public interface SchBasePointMapper extends BaseMapper { List selectDjwPoints( JSONObject map); - @Select("SELECT * FROM sch_base_point WHERE region_code = 'BLKCK' and is_used = '1'") + @Select("SELECT * FROM sch_base_point WHERE region_code = 'BLKCK' and is_used = '1' and product_area ='normal'") List selectByReginCode(); } 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 d500fc7..30cc5f2 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 @@ -198,6 +198,16 @@ public class TwoLashTask extends AbstractAcsTask { action_rows.add(action_jo); wmsToAcsService.action(action_rows); + JSONArray action_rows2 = new JSONArray(); + JSONObject action_jo2 = new JSONObject(); + action_jo2.put("device_code", "MXDDHJ"); + action_jo2.put("product_area", "BLK"); + action_jo2.put("code", "to_command"); + action_jo2.put("value", task_jo.getString("point_code2").replace("CK","")); + action_rows2.add(action_jo2); + wmsToAcsService.action(action_rows2); + + // 更新点位载具、数量 JSONObject pointDao = pointTab.query("point_code = '" + task_jo.getString("point_code2") + "'").uniqueResult(0); pointDao.put("vehicle_code", ""); 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 e3c33ce..3f435a7 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 @@ -73,91 +73,90 @@ public class TwoOutHeapTask extends AbstractAcsTask { List pointJson = wo_Task.query("handle_class = '" + THIS_CLASS + "' AND task_status IN ('05','06') AND is_delete = '0' ORDER BY point_code2") .getResultJSONArray(0).toJavaList(JSONObject.class); - // 统计行架1、行架2 当前负载数量 - long countHanger1 = pointJson.stream() - .filter(j -> IOSEnum.OUT_HANGER.code("行架位1").equals(j.getString("point_code2"))).count(); - long countHanger2 = pointJson.stream() - .filter(j -> IOSEnum.OUT_HANGER.code("行架位2").equals(j.getString("point_code2"))).count(); - - // ==========2. 预分组待下发任务,只遍历一次taskArrAll ========== - Map> taskGroupMap = taskArrAll.stream() - .collect(Collectors.groupingBy(item -> item.getString("point_code2"))); - List exceptTaskList = taskGroupMap.getOrDefault(IOSEnum.EXCEP_OUT.code("1"), Collections.emptyList()); - exceptTaskList.addAll(taskGroupMap.getOrDefault(IOSEnum.EXCEP_OUT.code("2"), Collections.emptyList())); - - List changeTaskList = taskGroupMap.getOrDefault(IOSEnum.CHANGE_OUT.code("换标出库口"), Collections.emptyList()); - List waitHanger1List = taskGroupMap.getOrDefault(IOSEnum.OUT_HANGER.code("行架位1"), Collections.emptyList()); - List waitHanger2List = taskGroupMap.getOrDefault(IOSEnum.OUT_HANGER.code("行架位2"), Collections.emptyList()); - - // ==========3. 优先下发异常出库任务(限制最多1条,点位独占) ========== - if (CollUtil.isNotEmpty(exceptTaskList)) { - // 只取第一条下发 - taskArr.add(exceptTaskList.get(0)); - } - if (CollUtil.isNotEmpty(changeTaskList)) { - // 只取第一条下发 - taskArr.add(changeTaskList.get(0)); + // 下发两个的任务 + List err_list = taskArrAll.stream() + .filter(row -> row.getString("point_code2").equals(IOSEnum.EXCEP_OUT.code("1")) + || row.getString("point_code2").equals(IOSEnum.EXCEP_OUT.code("2"))) + .collect(Collectors.toList()); + if (ObjectUtil.isNotEmpty(err_list)) { + taskArr.addAll(err_list); } - // ==========4. 行架负载均衡分配核心逻辑 ========== - // 判断哪边负载更小 - boolean hanger1Less = countHanger1 < countHanger2; - boolean hanger2Less = countHanger2 < countHanger1; - - JSONObject selectTask = null; - String targetPoint = null; - - if (hanger1Less) { - // 行架1负载低:优先原生行架1任务 - selectTask = waitHanger1List.stream().findFirst().orElse(null); - targetPoint = IOSEnum.OUT_HANGER.code("行架位1"); - // 若无原生任务,则把行架2任务 转移 → 行架1 - if (ObjectUtil.isNull(selectTask)) { - selectTask = waitHanger2List.stream().findFirst().orElse(null); - targetPoint = IOSEnum.OUT_HANGER.code("行架位1"); + if (ObjectUtil.isEmpty(pointJson)) { + // 下发两个的任务 + JSONObject oneJson = taskArrAll.stream() + .filter(row -> row.getString("point_code2").equals(IOSEnum.OUT_HANGER.code("行架位1"))) + .findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(oneJson)) { + taskArr.add(oneJson); } - } else if (hanger2Less) { - // 行架2负载低:优先原生行架2任务 - selectTask = waitHanger2List.stream().findFirst().orElse(null); - targetPoint = IOSEnum.OUT_HANGER.code("行架位2"); - // 若无原生任务,则把行架1任务 转移 → 行架2 - if (ObjectUtil.isNull(selectTask)) { - selectTask = waitHanger1List.stream().findFirst().orElse(null); - targetPoint = IOSEnum.OUT_HANGER.code("行架位2"); + + JSONObject twoJson = taskArrAll.stream() + .filter(row -> row.getString("point_code2").equals(IOSEnum.OUT_HANGER.code("行架位2"))) + .findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(twoJson)) { + taskArr.add(twoJson); } } else { - // count相等,默认优先行架1 - selectTask = waitHanger1List.stream().findFirst().orElse(null); - targetPoint = IOSEnum.OUT_HANGER.code("行架位1"); - if (ObjectUtil.isNull(selectTask)) { - selectTask = waitHanger2List.stream().findFirst().orElse(null); - targetPoint = IOSEnum.OUT_HANGER.code("行架位2"); - } - } + // 哪里空了就下发哪里的 + if (pointJson.size() == 1) { + JSONObject json = pointJson.get(0); + if (json.getString("point_code2").equals(IOSEnum.OUT_HANGER.code("行架位1"))) { + // 行架位1有任务则下发行架位2的任务 + JSONObject twoJson = taskArrAll.stream() + .filter(row -> row.getString("point_code2").equals(IOSEnum.OUT_HANGER.code("行架位2"))) + .findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(twoJson)) { + // 如果能找到去行架位2的任务则下发当前任务 + taskArr.add(twoJson); + } else { + // 如果不能找到去行架位2则找去行架位1的任务进行二次分配到行架位2 + JSONObject twoJsonOne = taskArrAll.stream() + .filter(row -> row.getString("point_code2").equals(IOSEnum.OUT_HANGER.code("行架位1"))) + .findFirst().orElse(null); - // ==========5. 处理选中任务,区分是否需要变更点位 ========== - if (ObjectUtil.isNotEmpty(selectTask)) { - String originalPoint = selectTask.getString("point_code2"); - // 深拷贝!禁止操作原始taskArrAll对象 - JSONObject taskCopy = JSONObject.parseObject(selectTask.toJSONString()); + if (ObjectUtil.isNotEmpty(twoJsonOne)) { + // 进行二次分配 + // 判断点位是否启用 + JSONObject jsonOne = pointTab.query("point_code = '" + IOSEnum.OUT_HANGER.code("行架位2") + "'") + .uniqueResult(0); + if (jsonOne.getString("is_used").equals("1")) { + twoJsonOne.put("point_code2", IOSEnum.OUT_HANGER.code("行架位2")); + wo_Task.update(twoJsonOne); + taskArr.add(twoJsonOne); + } + } - if (!originalPoint.equals(targetPoint)) { - // 需要二次分配、变更点位 - // 校验目标点位是否启用 - JSONObject pointInfo = pointTab.query("point_code = '" + targetPoint + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(pointInfo) && "1".equals(pointInfo.getString("is_used"))) { - // 修改副本点位 - taskCopy.put("point_code2", targetPoint); - // 更新数据库 - wo_Task.update(taskCopy); - taskArr.add(taskCopy); + } + } else { + // 行架位2有任务则下发行架位1的任务 + JSONObject oneJson = taskArrAll.stream() + .filter(row -> row.getString("point_code2").equals(IOSEnum.OUT_HANGER.code("行架位1"))) + .findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(oneJson)) { + // 如果能找到去行架位1的任务则下发当前任务 + taskArr.add(oneJson); + } else { + // 如果不能找到去行架位1则找去行架位2的任务进行二次分配到行架位1 + JSONObject twoJsonTwo = taskArrAll.stream() + .filter(row -> row.getString("point_code2").equals(IOSEnum.OUT_HANGER.code("行架位2"))) + .findFirst().orElse(null); + + if (ObjectUtil.isNotEmpty(twoJsonTwo)) { + // 进行二次分配 + JSONObject jsonTwo = pointTab.query("point_code = '" + IOSEnum.OUT_HANGER.code("行架位1") + "'") + .uniqueResult(0); + if (jsonTwo.getString("is_used").equals("1")) { + twoJsonTwo.put("point_code2", IOSEnum.OUT_HANGER.code("行架位1")); + wo_Task.update(twoJsonTwo); + taskArr.add(twoJsonTwo); + } + } + } } - } else { - // 原生点位,无需修改,直接加入下发列表 - taskArr.add(taskCopy); + } } - return taskArr; } 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 aedbc07..dc203ad 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 @@ -103,10 +103,10 @@ public class TwoOutTask extends AbstractAcsTask { .collect(Collectors.groupingBy(row -> row.getString("task_group_id"))); // 判断长度 - if (likeArr.size() >= 3) { - log.warn("twoOutTasklikeArr>=3"); - return null; - } + if (likeArr.size() >= flag) { + log.warn("twoOutTasklikeArr>out_queue_num"); + return null; + } if (likeArr.size() == 1) { flag = 1; @@ -242,12 +242,6 @@ public class TwoOutTask extends AbstractAcsTask { stIvtStructattrMapper.updateById(stIvtStructattr); } - // 更新载具信息表 - MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper.selectOne(new LambdaQueryWrapper() - .eq(MdPdStoragevehicleext::getPcsn, jsonTask.getVehicle_code())); - mdPdStoragevehicleext.setPcsn(""); - mdPdStoragevehicleextMapper.updateById(mdPdStoragevehicleext); - JSONObject parse = (JSONObject) JSONObject.parse(jsonTask.getRequest_param()); JSONObject jsonParam = new JSONObject(); jsonParam.put("device_code",jsonTask.getPoint_code2()); @@ -285,9 +279,6 @@ public class TwoOutTask extends AbstractAcsTask { 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); - List schBaseTasks = schBaseTaskMapper.selectList(new QueryWrapper().eq("task_group_id", jsonTask.getTask_group_id()).ne("task_status", TaskStatusEnum.FINISHED.getCode()).eq("handle_class", THIS_CLASS)); @@ -301,6 +292,12 @@ public class TwoOutTask extends AbstractAcsTask { } } } + } else { + // 更新载具信息表 + MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper.selectOne(new LambdaQueryWrapper() + .eq(MdPdStoragevehicleext::getPcsn, jsonTask.getVehicle_code())); + mdPdStoragevehicleext.setPcsn(""); + mdPdStoragevehicleextMapper.updateById(mdPdStoragevehicleext); } }, "cratergv", 30, this); } 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 596aa72..b22a5e4 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 @@ -106,6 +106,9 @@ public enum IOSEnum { OUT_POINT2(MapOf.of("1","xxx", "2","xxx", "3","xxx", "4","xxx" ,"5","xxx", "6","xxx", "7","xxx", "8","xxx", "9","9", "10","10")), + INVENTORYCHECK_OUT_POINT(MapOf.of("1","RK1022", "2","RK1022", "3","RK1020", "4","RK1020" ,"5","RK1010", + "6","RK1010", "7","RK1003", "8","1018", "9","9", "10","10")), + // 载具类型对应1楼拆叠盘点位 VEHICLE_TYPE_POINT(MapOf.of("1","RK1006", "2","RK1013")), 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 cf1f803..aa94226 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 @@ -707,7 +707,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl outTaskMangeList : outTaskMangeMap.values()) { - createTask(outTaskMangeList, disTaskMangeList, whereJson.getString("point_code"),whereJson.getString("checked")); + createTask(outTaskMangeList, disTaskMangeList, whereJson.getString("point_code"),whereJson.getString("checked"),whereJson.getString("bill_type")); } } finally { // 下发出库任务:判断当前单据是否有正在执行的的任务 @@ -1261,35 +1261,43 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disDaoList = disLikeList.stream() .filter(row -> row.getString("struct_code").equals(json.getString("struct_code"))) @@ -1905,7 +1913,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl taskMangeList, List disLikeList, String point_code, String checked) { + private void createTask(List taskMangeList, List disLikeList, String point_code, String checked, String bill_type) { // 查询异常货位任务集合 @@ -1933,6 +1941,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl stIvtStructattrs = stIvtStructattrMapper.selectList(stIvtStructattrLambdaQueryWrapper); + if (CollUtil.isEmpty(stIvtStructattrs)) { + stIvtStructattrLambdaQueryWrapper = new LambdaQueryWrapper<>(); + stIvtStructattrLambdaQueryWrapper.eq(StIvtStructattr::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(StIvtStructattr::getIs_used, IOSEnum.IS_NOTANDYES.code("是")).eq(StIvtStructattr::getSect_id, jsonParam.getString("sect_id")) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")).eq(StIvtStructattr::getStor_id, jsonParam.getString("stor_id")) + .eq(StIvtStructattr::getStoragevehicle_type, jsonParam.getString("vehicle_type")) + .eq(StIvtStructattr::getHeight, "2"); + stIvtStructattrs = stIvtStructattrMapper.selectList(stIvtStructattrLambdaQueryWrapper); + } if (CollUtil.isEmpty(stIvtStructattrs)) { notInRowList.clear(); notInBlockList.clear(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java index 4c2312d..973e066 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java @@ -137,7 +137,7 @@ public class LashManageServiceImpl implements LashManageService { .query("package_box_sn = '" + boxDao.getBox_no() + "'") .uniqueResult(0); if (ObjectUtil.isEmpty(jsonSub)) { - throw new BadRequestException("子卷包装关系不存在:【"+boxDao.getBox_no()+"】"); + throw new BadRequestException("子卷包装关系不存在:【" + boxDao.getBox_no() + "】"); } //查询木箱对应的托盘绑定关系,并清除 @@ -165,7 +165,6 @@ public class LashManageServiceImpl implements LashManageService { // 桁架任务终点 String end_point; - // todo 检查一下这个堆叠的代码逻辑是否正常 // 判断是否有相同订单号、木箱规格的木箱 List likeBoxList = pointDaoList.stream() .filter(row -> ObjectUtil.isNotEmpty(row.getString("box_length")) && @@ -227,25 +226,6 @@ public class LashManageServiceImpl implements LashManageService { // 有空位 JSONObject jsonPoint = empPointList.get(0); - - // 判断这两个点位是否有任务:如果没有则下发任务 - WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task"); - List pointJson = wo_Task.query("task_type = '010707' AND task_status IN ('05','06') AND is_delete = '0' ORDER BY point_code2") - .getResultJSONArray(0).toJavaList(JSONObject.class); - - if (!CollectionUtils.isEmpty(pointJson) && empPointList.size() > 1) { - // 统计第一个点位的任务数量 - JSONObject finalJsonPoint = jsonPoint; - long countPoint1 = pointJson.stream() - .filter(j -> finalJsonPoint.getString("point_code").equals(j.getString("point_code2"))).count(); - //第一个点有任务 - if (countPoint1 > 0) { - jsonPoint = empPointList.get(1); - } - } - - - // 判断是否堆叠 String two_is_lash = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("two_is_lash").getValue(); if (two_is_lash.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -538,6 +518,15 @@ public class LashManageServiceImpl implements LashManageService { action_rows.add(action_jo); wmsToAcsService.action(action_rows); + JSONArray action_rows2 = new JSONArray(); + JSONObject action_jo2 = new JSONObject(); + action_jo2.put("device_code", "MXDDHJ"); + action_jo2.put("product_area", "BLK"); + action_jo2.put("code", "to_command"); + action_jo2.put("value", "1125"); + action_rows2.add(action_jo2); + wmsToAcsService.action(action_rows2); + // 更新点位数量 pointDao.setVehicle_qty(BigDecimal.valueOf(0)); pointDao.setVehicle_code(""); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java index d6fcfb2..64d24e3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java @@ -243,7 +243,7 @@ public class OutBussManageServiceImpl implements OutBussManageService { if (ObjectUtil.isEmpty(likePcsnBoxList)) { - throw new BadRequestException("库存不足!"); + throw new BadRequestException("库存不足!,也可能是库存已经被锁定"); } // 计算重量 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java index 060ac65..9332aee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java @@ -95,9 +95,9 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { //判断当前点位是否存在任务,如果存在则不生成任务 List taskList = schBaseTaskMapper.selectList(new QueryWrapper().lambda().eq(SchBaseTask::getPoint_code2, whereJson.getString("device_code")).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); - // if (ObjectUtil.isNotEmpty(taskList)) { - // throw new BadRequestException("点位【" + taskList.get(0).getPoint_code2() + "】正在出空托盘任务!"); - // } + if (ObjectUtil.isNotEmpty(taskList)) { + throw new BadRequestException("点位【" + taskList.get(0).getPoint_code2() + "】正在出空托盘任务!"); + } JSONObject jsonAttr = getStruct(whereJson); if (ObjectUtil.isEmpty(jsonAttr)) { @@ -260,7 +260,16 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { stIvtStructattrLambdaQueryWrapper.eq(StIvtStructattr::getBlock_num, block_num); } List stIvtStructattrs = stIvtStructattrMapper.selectList(stIvtStructattrLambdaQueryWrapper); - + if (CollUtil.isEmpty(stIvtStructattrs)) { + stIvtStructattrLambdaQueryWrapper = new LambdaQueryWrapper<>(); + stIvtStructattrLambdaQueryWrapper.apply("IFNULL(storagevehicle_code,'') != '' ") + .eq(StIvtStructattr::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(StIvtStructattr::getIs_used, IOSEnum.IS_NOTANDYES.code("是")).eq(StIvtStructattr::getSect_id, whereJson.getString("sect_id")) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")).eq(StIvtStructattr::getStor_id, whereJson.getString("stor_id")) + .eq(StIvtStructattr::getStoragevehicle_type, whereJson.getString("storagevehicle_type")) + .eq(StIvtStructattr::getIs_emptyvehicle, "1"); + stIvtStructattrs = stIvtStructattrMapper.selectList(stIvtStructattrLambdaQueryWrapper); + } if (CollUtil.isEmpty(stIvtStructattrs)) { notOutRowList.clear(); notOutBlockList.clear(); 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 bdc1722..b8efbe8 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 @@ -33,6 +33,11 @@ public class AcsToWmsController { @PostMapping("/status") @Log(value = "ACS给WMS反馈任务状态", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @SaIgnore + @ApiLog( + bizCode = "/api/wms/task/status", + bizDesc = "ACS给WMS反馈任务状态", + systemFlag = "acs" + ) public ResponseEntity receiveTaskStatusAcs(@RequestBody String string) { log.info("ACS给WMS反馈任务状态:{}", string); return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK); @@ -58,6 +63,11 @@ public class AcsToWmsController { @PostMapping("/deviceApply") @Log(value = "申请贴标、捆扎", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @SaIgnore + @ApiLog( + bizCode = "/api/wms/task/deviceApply", + bizDesc = "申请贴标、捆扎", + systemFlag = "acs" + ) public ResponseEntity deviceApply(@RequestBody JSONObject jo) { return new ResponseEntity<>(acsToWmsService.deviceApply(jo), HttpStatus.OK); } @@ -151,6 +161,11 @@ public class AcsToWmsController { @PostMapping("/deviceApplyExceptional") @Log(value = "二期任务异常反馈", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @SaIgnore + @ApiLog( + bizCode = "/api/wms/task/deviceApplyExceptional", + bizDesc = "二期任务异常反馈", + systemFlag = "acs" + ) public ResponseEntity deviceApplyExceptional(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(acsToWmsService.deviceApplyExceptional(whereJson), HttpStatus.OK); } 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 ad84dcd..2232081 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 @@ -1420,7 +1420,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { map.put("status", "0"); WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(map, "package_box_sn = '" + whereJson.getString("box_no") + "'"); } - resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("box_no") + "' AND status in ('0','1','99')").getResultJSONArray(0); + resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("box_no") + "' AND status in ('0','1','3','99')").getResultJSONArray(0); if (ObjectUtil.isEmpty(resultJSONArray)) { throw new BadRequestException("未查询到子卷包装信息!"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java index 0de94ff..254bc16 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java @@ -176,7 +176,9 @@ public abstract class AbstractAcsTask { List outSmallTaskList = workingTaskList.stream().filter(task->oneFloorReturnSmallVehicleOutTaskStartPoint.contains(task.getPoint_code2())).collect(Collectors.toList()); - + if(CollectionUtil.isEmpty(taskList)){ + return null; + } Iterator it = taskList.iterator(); while (it.hasNext()) { AcsTaskDto acsTaskDto = it.next(); diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue index e3b4d6d..68bb4b7 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -676,6 +676,7 @@ export default { this.currentRow.point_code = this.form2.point_code this.currentRow.checked = this.checked this.currentRow.stor_id = this.mstrow.stor_id + this.currentRow.bill_type = this.mstrow.bill_type checkoutbill.allSetPoint(this.currentRow).then(res => { this.queryTableDdis(this.currentRow.iostorinvdtl_id) this.crud.notify(this.$t('common.settingSuccessful'), CRUD.NOTIFICATION_TYPE.INFO) diff --git a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index2.vue b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index2.vue index ed9d686..a0b2306 100644 --- a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index2.vue +++ b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index2.vue @@ -91,7 +91,7 @@ @keyup.enter.native="crud.toQuery" /> - +