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..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 @@ -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)") @@ -202,6 +202,15 @@ public class PdmBiSubpackagerelationController { } + @PostMapping("/getPointCode") + @Log("传输子卷包装关系至LMS") + @SaIgnore + //@SaCheckPermission("@el.check(updateEntityList)") + public ResponseEntity getPointCode(@RequestBody JSONObject whereJson) { + Integer num = whereJson.getInteger("num"); + return new ResponseEntity<>(pdmBiSubpackagerelationService.getPointCode(num),HttpStatus.OK); + } + /** * 删除数据 * @@ -225,7 +234,6 @@ public class PdmBiSubpackagerelationController { } - @PostMapping("/schdule") @Log("定时调度") @SaIgnore @@ -242,22 +250,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..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); @@ -141,6 +143,7 @@ public interface IpdmBiSubpackagerelationService extends IService() - .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") @@ -446,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")); } } } @@ -628,7 +619,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper() .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱位")) @@ -637,10 +628,79 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl iterator = bstIvtPackageinfoivtList.iterator(); + while (iterator.hasNext()) { + BstIvtPackageinfoivt r = iterator.next(); + 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 > 10) { + iterator.remove(); + } + } + + 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(); @@ -671,7 +731,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() @@ -942,12 +1002,47 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl 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/point/controller/BstIvtPackageinfoivtController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/controller/BstIvtPackageinfoivtController.java index 8bf5e2c13..d678c2ba7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/controller/BstIvtPackageinfoivtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/controller/BstIvtPackageinfoivtController.java @@ -10,14 +10,15 @@ import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.logging.annotation.Log; -import org.nl.wms.pdm.ivt.service.dto.DeliveryPointIvtDto; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; import java.util.Map; import java.util.Set; @@ -38,6 +39,9 @@ public class BstIvtPackageinfoivtController { @Resource private IbstIvtPackageinfoivtService bstIvtPackageinfoivtService; + @Resource + private RedisUtils redisUtils; + /** * 分页查询 @@ -72,7 +76,6 @@ public class BstIvtPackageinfoivtController { } - /** * 新增数据 * @@ -89,6 +92,7 @@ public class BstIvtPackageinfoivtController { /** * 修改数据 + * * @param params 实体对象 * @return 修改结果 */ @@ -101,7 +105,6 @@ public class BstIvtPackageinfoivtController { } - /** * 删除数据 * @@ -114,6 +117,15 @@ public class BstIvtPackageinfoivtController { return new ResponseEntity<>(HttpStatus.OK); } + @GetMapping("/redisQueue") + @SaIgnore + public List getRedisQueue(@RequestParam("key") String key) { + if (!"ZXQ_1_1".equals(key) && !"ZXQ_2_1".equals(key)) { + throw new IllegalArgumentException("非法队列 key"); + } + return redisUtils.lGet(key, 0, -1); + } + } 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 @@ + + 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/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 f3d9ed127..4eeb4e43a 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 @@ -154,6 +154,7 @@ public class InBoxManageServiceImpl implements InBoxManageService { //异常位 jsonTaskParam.put("point_code2", "RK1003"); jsonTaskParam.put("vehicle_code", boxNo); + jsonTaskParam.put("remark", "当前托盘【"+whereJson.getString("vehicle_code")+"】已经绑定木箱【"+pcsn+"】,无法重复绑定!"); jsonTaskParam.put("vehicle_code2", whereJson.getString("vehicle_code")); JSONObject request_param = new JSONObject(); if (whereJson.getString("vehicle_code").startsWith("A")) { 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/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 8b1bc0dc2..648e0b99a 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 @@ -2,6 +2,7 @@ package org.nl.wms.ext.acs.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; import org.nl.common.utils.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; @@ -178,6 +179,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Resource private SsxDjwTask ssxDjwTask; + @Resource + private IbstIvtPackageinfoivtService ibstIvtPackageinfoivtService; + @Autowired private ISysParamService iSysParamService; @@ -3041,6 +3045,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { public JSONObject getIsUncap(JSONObject param) { String material_barcode = param.getString("material_barcode"); String vehicle_code = param.getString("vehicle_code"); + String task_code = param.getString("task"); //干燥剂模板 String desiccantTemplate = "6"; //是否开盖 @@ -3098,6 +3103,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { jsonObject.put("isUncap", isUncap); jsonObject.put("heightLevel", height); jsonObject.put("status", HttpStatus.OK.value()); + + //判断该任务是否属于空木箱出库任务 + SchBaseTask one = taskService.getOne(new LambdaQueryWrapper().eq(SchBaseTask::getTask_code, task_code)); + if (one.getHandle_class().equals("org.nl.b_lms.sch.tasks.TwoOutBoxTask")){ + + BstIvtPackageinfoivt packageinfoivt = ibstIvtPackageinfoivtService.getOne(new LambdaQueryWrapper() + .eq(BstIvtPackageinfoivt::getPoint_code, one.getPoint_code2())); + if (packageinfoivt.getPlan().equals("1")){ + //往redis里面添加空木箱队列 + if (redisUtils.lGetListSize(one.getPoint_code2()) == 0 || !redisUtils.lGetIndex(one.getPoint_code2(), -1).equals(material_barcode)){ + redisUtils.lSet(one.getPoint_code2(),material_barcode); + }else { + log.info("reids队列中的最后一个木箱与当前木箱一致"); + } + } + } return jsonObject; } 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')" >完成 设置站点 --> - 设置站点 - + --> - - + +