From 2f73c81aafe11adedf55e48c0097bc730e6ce660 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 6 Jan 2026 10:04:46 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix=EF=BC=9A=E5=AD=90=E5=8D=B7=E4=B8=8B?= =?UTF-8?q?=E7=BA=BF=E5=8A=A0=E4=B8=8A=E4=BA=8B=E5=8A=A1=EF=BC=9B=E4=B8=80?= =?UTF-8?q?=E9=94=AE=E8=AE=BE=E7=BD=AE=E5=8A=A0=E4=B8=8Adtl=5Fid=E7=AD=9B?= =?UTF-8?q?=E9=80=89=EF=BC=9B=E4=BB=BB=E5=8A=A1=E5=8F=96=E6=B6=88=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=8A=A0=E4=B8=8A=E6=9D=83=E9=99=90=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationController.java | 41 +++++++++++-------- .../IpdmBiSubpackagerelationService.java | 1 + .../PdmBiSubpackagerelationServiceImpl.java | 37 ++++++++++++++++- .../tasks/first_floor_area/SsxDjwTask.java | 1 + .../auto/AutoExecuteWaitTask.java | 13 ++++-- .../iostorInv/IStIvtIostorinvdisService.java | 2 +- .../dao/mapper/StIvtIostorinvdisMapper.java | 12 +++--- .../dao/mapper/StIvtIostorinvdisMapper.xml | 16 ++++++++ .../impl/StIvtIostorinvdisServiceImpl.java | 4 +- .../service/role/impl/SysRoleServiceImpl.java | 2 +- .../outbill/rest/CheckOutBillController.java | 13 +++--- .../service/impl/CheckOutBillServiceImpl.java | 3 +- .../service/impl/OutBillQueryServiceImpl.java | 2 +- .../src/views/wms/sch/task/index.vue | 12 +++++- .../src/views/wms/stat/outbillquery/index.vue | 4 +- 15 files changed, 120 insertions(+), 43 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 7b5b50b7a..fe3de3611 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 @@ -100,7 +100,7 @@ public class PdmBiSubpackagerelationController { * * @param whereJson 查询条件 */ - @PostMapping ("/queryContainerNameBySaleOrder") + @PostMapping("/queryContainerNameBySaleOrder") @SaIgnore @Log("根据订单号查询子卷信息") public ResponseEntity queryContainerNameBySaleOrder(@RequestBody Map whereJson) { @@ -159,13 +159,14 @@ public class PdmBiSubpackagerelationController { } return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/zjInBound") @SaIgnore @Log("子卷装箱查询") //@SaCheckPermission("@el.check(updateEntityList)") public ResponseEntity zjInBound(@RequestBody JSONObject whereJson) { List list = pdmBiSubpackagerelationService.zjInBound(whereJson); - return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); } @@ -174,10 +175,10 @@ public class PdmBiSubpackagerelationController { @Log("子卷装箱入库") //@SaCheckPermission("@el.check(updateEntityList)") public ResponseEntity zjInBoundConfirm(@RequestBody JSONObject whereJson) { - RedissonUtils.lock(c->{ + RedissonUtils.lock(c -> { pdmBiSubpackagerelationService.zjInBoundConfirm(whereJson); - },"zjInBound",0,this,"装箱入库在操作,稍后再试"); - return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + }, "zjInBound", 0, this, "装箱入库在操作,稍后再试"); + return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); } @PostMapping("/boxReturn") @@ -185,14 +186,13 @@ public class PdmBiSubpackagerelationController { @Log("装箱位木箱回库") //@SaCheckPermission("@el.check(updateEntityList)") public ResponseEntity boxReturn(@RequestBody JSONObject whereJson) { - RedissonUtils.lock(c->{ + RedissonUtils.lock(c -> { pdmBiSubpackagerelationService.boxReturn(whereJson); - },"zjInBound",0,this,"装箱送回在操作,稍后再试"); - return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + }, "zjInBound", 0, this, "装箱送回在操作,稍后再试"); + return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); } - @PostMapping("/transferBoxPackageToMes") @Log("传输子卷包装关系至LMS") //@SaCheckPermission("@el.check(updateEntityList)") @@ -225,7 +225,6 @@ public class PdmBiSubpackagerelationController { } - @PostMapping("/schdule") @Log("定时调度") @SaIgnore @@ -242,22 +241,30 @@ public class PdmBiSubpackagerelationController { @SaIgnore public ResponseEntity ycgzd(@RequestBody JSONObject param) { String pointCode = param.getString("point_code"); - if (StringUtils.isEmpty(pointCode)){ + if (StringUtils.isEmpty(pointCode)) { throw new BadRequestException("人工管制点不能为空"); } - // "ZXQ_135" : "ZXQ_136"; + // "ZXQ_135" : "ZXQ_136"; JSONObject task = new JSONObject(); task.put("point_code1", pointCode); - autoSendVehicleToDjq.getPointCode(task,PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); + autoSendVehicleToDjq.getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/downloadData") @SaIgnore - public void downloadData(Integer day, HttpServletResponse response) { - RedissonUtils.lock(a->{ - pdmBiSubpackagerelationService.downloadData(3,(HttpServletResponse)a); + public void downloadData(Integer day, HttpServletResponse response) { + RedissonUtils.lock(a -> { + pdmBiSubpackagerelationService.downloadData(3, (HttpServletResponse) a); return null; - },"下载任务时间",response); + }, "下载任务时间", response); + } + + @PostMapping("/checkCode") + @Log("三码合一校验") + @SaIgnore + public ResponseEntity checkCode(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdmBiSubpackagerelationService.checkCode(whereJson), HttpStatus.OK); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java index bbcab9764..328020cf5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java @@ -141,6 +141,7 @@ public interface IpdmBiSubpackagerelationService extends IService recordQuery(List pcsn) { - if (CollectionUtils.isEmpty(pcsn)){ + if (CollectionUtils.isEmpty(pcsn)) { return new ArrayList<>(); } return this.baseMapper.recordQuery(pcsn); } + + @Override + public JSONObject checkCode(JSONObject jo) { + //内标 + String nb_code = jo.getString("nb_code"); + //管标 + String gb_code = jo.getString("gb_code"); + //木箱码 + String box_code = jo.getString("box_code"); + //客户标签码 + String customer_code = jo.getString("customer_code"); + + if (!StrUtil.equals(nb_code, gb_code)) { + throw new BadRequestException("内标【" + nb_code + "】和管标【" + gb_code + "】子卷号不一致!"); + } + + if (!StrUtil.equals(box_code, customer_code)) { + throw new BadRequestException("木箱码【" + box_code + "】和客户标签码【" + customer_code + "】箱号不一致!"); + } + + PdmBiSubpackagerelation subDto = this.getOne(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getContainer_name, nb_code)); + if (ObjectUtil.isEmpty(subDto)) { + throw new BadRequestException("子卷号【" + nb_code + "】在LMS系统上为查询到包装关系!"); + } + if (StrUtil.isEmpty(subDto.getPackage_box_sn())) { + throw new BadRequestException("子卷号【" + nb_code + "】在LMS系统上包装关系的木箱号为空!"); + } + if (!StrUtil.equals(box_code, subDto.getPackage_box_sn())) { + throw new BadRequestException("子卷号绑定的木箱码【" + subDto.getPackage_box_sn() + "】和木箱码【" + box_code + "】箱号不一致!"); + } + JSONObject result = new JSONObject(); + result.put("message", "校验通过!"); + return result; + } } 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 48fe8d512..7a4207ca2 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 @@ -55,6 +55,7 @@ public class SsxDjwTask extends AbstractAcsTask { @Override + @Transactional(rollbackFor = Exception.class) public List addTask() { ArrayList resultList = new ArrayList<>(); List taskList = taskService.list(new LambdaUpdateWrapper().eq(SchBaseTask::getHandle_class, THIS_CLASS) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java index 074e2e338..5bb2f3779 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java @@ -16,11 +16,14 @@ import org.nl.b_lms.sch.tasks.first_floor_area.SsxDjwTask; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.util.SpringContextHolder; 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 org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; @@ -33,7 +36,6 @@ import java.util.stream.Collectors; @Slf4j @Component -@RequiredArgsConstructor public class AutoExecuteWaitTask extends Prun{ private final String THIS_CLASS = AutoExecuteWaitTask.class.getName(); @@ -50,10 +52,10 @@ public class AutoExecuteWaitTask extends Prun{ private IbstIvtPackageinfoivtService packageinfoivtService; //自动执行等待的桁架任务 - @Autowired public void run() { try { - this.executeWaitTask(); + AutoExecuteWaitTask bean = SpringContextHolder.getBean(AutoExecuteWaitTask.class); + bean.executeWaitTask(); }catch (Exception ex){ log.error(ex.getMessage()); } @@ -64,6 +66,7 @@ public class AutoExecuteWaitTask extends Prun{ * 放满与取空桁架任务 */ @SneakyThrows + @Transactional public void executeWaitTask() { log.info(THIS_CLASS+"-放满与取空桁架定时任务开始执行扫描。"); RLock lock = redissonClient.getLock(THIS_CLASS); @@ -130,6 +133,10 @@ public class AutoExecuteWaitTask extends Prun{ task.setPoint_code1(kzjPointList.get(0).getPoint_code()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); taskService.updateById(task); + List test = taskService.list(new LambdaUpdateWrapper().eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, 0) + ); ssxDjwTask.immediateNotifyAcs(null); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java index d3f9cc4e9..ecbcae62a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java @@ -44,6 +44,6 @@ public interface IStIvtIostorinvdisService extends IService { */ void confirmDisIn(String task_id); - List getDisStructSet(String iostorinvId); + List getDisStructSet(String iostorinvId, String iostorinvDtlId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java index ad34266df..56496ad7b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java @@ -20,13 +20,14 @@ public interface StIvtIostorinvdisMapper extends BaseMapper { /** * 获取全部已分配未下发的分配明细 + * * @param whereJson :{ * iostorinvdtl_id: 明细标识 (自动取消时传) * box_no: 箱号 (自动取消时传) * iostorinv_id: 单据标识 * bill_status: 明细状态 * is_issued: 是否已下发 - * } + * } * @return List 分配明细实体类集合 */ List getDivIosDisAll(JSONObject whereJson); @@ -40,18 +41,15 @@ public interface StIvtIostorinvdisMapper extends BaseMapper { /** * 获取此单据下/此明细下 所有未生成的分配明细 + * * @param whereJson :{ * iostorinvdtl_id: 明细标识 * iostorinv_id: 单据标识 - * } + * } * @return List 分配明细实体类集合 */ List getNotCreateDis(JSONObject whereJson); - @Select("select st_ivt_structattr.sect_id,st_ivt_structattr.block_num,st_ivt_structattr.row_num,st_ivt_structattr.out_order_seq,st_ivt_structattr.struct_code,st_ivt_structattr.placement_type \n" + - "from st_ivt_iostorinvdis \n" + - "left join st_ivt_structattr on st_ivt_iostorinvdis.struct_code = st_ivt_structattr.struct_code\n" + - "where st_ivt_iostorinvdis.work_status = '00' and st_ivt_iostorinvdis.iostorinv_id = #{iostorinvId}") - List getDisStructSet(String iostorinvId); + List getDisStructSet(String iostorinvId,String iostorinvDtlId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.xml index 472573f75..7e730c414 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.xml @@ -128,4 +128,20 @@ + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java index 7facde980..b41638a2a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java @@ -151,8 +151,8 @@ public class StIvtIostorinvdisServiceImpl extends ServiceImpl getDisStructSet(String iostorinvId) { - List structSet = this.baseMapper.getDisStructSet(iostorinvId); + public List getDisStructSet(String iostorinvId ,String iostorinvDtlId) { + List structSet = this.baseMapper.getDisStructSet(iostorinvId, iostorinvDtlId); return structSet; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java index afd2d522f..a9d28eab8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java @@ -142,7 +142,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl List permission = new LinkedList<>(); // 查看是否为管理员 permission.add("admin"); - permission.addAll(sysMenuMapper.getPermissionByUserId(userDto.getString("userId"))); + permission.addAll(sysMenuMapper.getPermissionByUserId(userDto.getString("user_id"))); return permission; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java index da73620fa..3e1550a48 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java @@ -280,11 +280,14 @@ public class CheckOutBillController { @Log("出库单强制确认") public ResponseEntity confirm(@RequestBody JSONObject whereJson) { - if (whereJson.getString("stor_id").equals(IOSEnum.STOR_ID.code("二期"))) { - iStIvtIostorinvOutService.confirm(whereJson); - } else { - checkOutBillService.confirmOrder(whereJson); - } + String iostorinv_id = whereJson.getString("iostorinv_id"); + RedissonUtils.lock(c -> { + if (whereJson.getString("stor_id").equals(IOSEnum.STOR_ID.code("二期"))) { + iStIvtIostorinvOutService.confirm(whereJson); + } else { + checkOutBillService.confirmOrder(whereJson); + } + }, iostorinv_id, 1, 120, null); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } 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 37d4d6ffe..7da50c08c 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 @@ -39,6 +39,7 @@ import org.nl.system.service.dept.dao.SysUserDept; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.pda.mps.eum.RegionTypeEnum; +import org.nl.wms.sch.AcsUtil; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.tasks.OutTask; import org.nl.wms.st.inbill.service.CheckOutBillService; @@ -3253,7 +3254,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } } // 1.判断此条分配明细的 ‘仓位’在此主表下的分配明细是否有相同的 ‘仓位’ - List structSet = iStIvtIostorinvdisService.getDisStructSet(whereJson.getString("iostorinv_id")); + List structSet = iStIvtIostorinvdisService.getDisStructSet(whereJson.getString("iostorinv_id"),whereJson.getString("iostorinvdtl_id")); //同区同排排序:10302-04-01 //口口回口回口口口1 //口口回回口口口口2 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..610490bcb 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 @@ -264,7 +264,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { mp.put("销售订单", json.getString("sale_order_name")); mp.put("行号", ""); } - mp.put("出库日期", json.getString("input_time")); + mp.put("出库日期", json.getString("confirm_time")); mp.put("产品规格", String.format("%.0f", json.getDoubleValue("width"))); mp.put("产品厚度", json.getString("thickness")); mp.put("单位面积", json.getString("mass_per_unit_area")); diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index c0b1acf3d..623261018 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -170,6 +170,7 @@ @click="doOperate(scope.row, 'a')" >完成 - - + + From 5450538be9ec2996029752bc47de9476a33210d9 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Tue, 6 Jan 2026 20:25:44 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix=EF=BC=9A=E5=8E=BB=E9=99=A4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java index 5bb2f3779..8612a50e2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java @@ -133,10 +133,6 @@ public class AutoExecuteWaitTask extends Prun{ task.setPoint_code1(kzjPointList.get(0).getPoint_code()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); taskService.updateById(task); - List test = taskService.list(new LambdaUpdateWrapper().eq(SchBaseTask::getHandle_class, THIS_CLASS) - .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) - .eq(SchBaseTask::getIs_delete, 0) - ); ssxDjwTask.immediateNotifyAcs(null); } } From d260cdbf730f31149a8e65dac368fc95463cbb87 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 7 Jan 2026 19:39:46 +0800 Subject: [PATCH 3/6] =?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 | 10 ++++++++++ .../IpdmBiSubpackagerelationService.java | 2 ++ .../PdmBiSubpackagerelationServiceImpl.java | 18 ++++++++++-------- 3 files changed, 22 insertions(+), 8 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 fe3de3611..e71b73fa1 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 @@ -202,6 +202,16 @@ public class PdmBiSubpackagerelationController { } + @PostMapping("/getPointCode") + @Log("传输子卷包装关系至LMS") + @SaIgnore + //@SaCheckPermission("@el.check(updateEntityList)") + public ResponseEntity getPointCode(@RequestBody JSONObject whereJson) { + Integer num = whereJson.getInteger("num"); + pdmBiSubpackagerelationService.getPointCode(num); + return new ResponseEntity<>(HttpStatus.OK); + } + /** * 删除数据 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java index 328020cf5..a90ea93d1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java @@ -118,6 +118,8 @@ public interface IpdmBiSubpackagerelationService extends IService ids); + String getPointCode(Integer whereJson); + void createSubTest(JSONObject jo); 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 7634979a8..3fdfc5d43 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,13 +216,15 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")))) { // throw new BadRequestException("该子卷不在待检区,请检查!"); // } @@ -628,7 +630,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper() .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱位")) From b43002396b6c72d004ecf9fb65ff085d5f40d0d9 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 12 Jan 2026 19:26:26 +0800 Subject: [PATCH 4/6] =?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 --- .../first_floor_area/auto/AutobindZxqBox.java | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutobindZxqBox.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutobindZxqBox.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutobindZxqBox.java new file mode 100644 index 000000000..33c214000 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutobindZxqBox.java @@ -0,0 +1,97 @@ +package org.nl.b_lms.sch.tasks.first_floor_area.auto; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.common.enums.PackageInfoIvtEnum; +import org.nl.modules.common.utils.RedisUtils; +import org.redisson.api.RList; +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.List; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutobindZxqBox extends Prun { + + private final String THIS_CLASS = AutobindZxqBox.class.getName(); + @Resource + private RedissonClient redissonClient; + + @Autowired + private RedisUtils redisUtils; + + @Resource + private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper; + + //待检区->装箱区agv自动搬运任务 + @Autowired + public void run() { + try { + this.bindZxqBox(); + } catch (Exception ex) { + log.error(ex.getMessage()); + } + + } + + + /** + * 二次分配任务 + */ + @SneakyThrows + public void bindZxqBox() { + log.info(THIS_CLASS + "-装箱对接位绑定木箱开始扫描。"); + RLock lock = redissonClient.getLock(THIS_CLASS); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + //获取当前启用的装箱对接位 + //装箱区对接位 + List bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱位")) + .eq(BstIvtPackageinfoivt::getIs_used, IOSEnum.IS_NOTANDYES.code("是")) + .eq(BstIvtPackageinfoivt::getPlan, IOSEnum.IS_NOTANDYES.code("是")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")) + .orderByAsc(BstIvtPackageinfoivt::getPoint_code)); + bstIvtPackageinfoivtList.forEach(bstIvtPackage -> { + //判断当前装箱对接位的木箱队列是否有值,有值则取第一个进行赋值 + Object o = redisUtils.lGetIndex(bstIvtPackage.getPoint_code(), 0); + if (ObjectUtil.isNotEmpty(o)) { + String firstElement = o.toString(); + bstIvtPackage.setIvt_status(PackageInfoIvtEnum.IVT_STATUS.code("空载具")); + bstIvtPackage.setContainer_name(firstElement); + bstIvtPackage.setUpdate_time(DateUtil.now()); + bstIvtPackageinfoivtMapper.updateById(bstIvtPackage); + log.info(bstIvtPackage.getPoint_code() + "绑定了木箱" + firstElement); + redisUtils.lRemove(bstIvtPackage.getPoint_code(), 1, firstElement); + } else { + log.info("列表为空,无木箱可绑定。"); + } + + }); + } else { + log.info("满轴->待检区agv自动搬运任务正在创建被锁住。"); + } + } finally { + if (lock.isLocked() && lock.isHeldByCurrentThread()) { + lock.unlock(); + } + } + } + +} From 30130025b024b728a9e1e3a9de35db88e018ceec Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 12 Jan 2026 19:26:40 +0800 Subject: [PATCH 5/6] =?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 @@