From 92900c13901a0097149ae37aa72fcfba11b5e3e4 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Thu, 27 Feb 2025 17:42:48 +0800 Subject: [PATCH] =?UTF-8?q?2/27=20=E5=99=A8=E6=A2=B0=20=E8=8D=AF=E5=93=81?= =?UTF-8?q?=20=E8=99=9A=E6=8B=9F=E6=A7=BD=E4=BD=8D=20=E4=B8=8A=E8=B4=A7-?= =?UTF-8?q?=E5=89=94=E9=99=A4=20bug=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 36 +++++++++++++------ .../service/inout/IoSplitFifoInvService.java | 16 ++++++--- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index f4e371344..33c7ca75c 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -612,7 +612,7 @@ public class IoCodeTempController extends BaseController { } } } else { - baseResponse = addMaterOrder(addOrderRequest, udiEntity, code); + baseResponse = addMaterOrder(addOrderRequest, udiEntity, code,groupNumber); } if (baseResponse.getCode() == 20000) { @@ -695,11 +695,11 @@ public class IoCodeTempController extends BaseController { if (StrUtil.equals("return", addOrderRequest.getSplitType())) { //ioSplitFifoInvService.getOne(new LambdaQueryWrapper().eq(IoSplitFifoInv::getInvCode,"").last("limit 1")); } + Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1; if (IntUtil.value(udiEntity.getProductType()) == 2) { - Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1; return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber); } else { - return addMaterOrder(addOrderRequest, udiEntity, code); + return addMaterOrder(addOrderRequest, udiEntity, code,groupNumber); } } @@ -711,7 +711,7 @@ public class IoCodeTempController extends BaseController { private IoOrderDetailCodeDao orderDetailCodeDao; @Transactional(rollbackFor = Exception.class) - public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) { + public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code,Integer groupNumber) { AddCodeResult addCodeResult = new AddCodeResult(); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); @@ -1142,7 +1142,8 @@ public class IoCodeTempController extends BaseController { if (byBillNo != null && !StrUtil.isBlank(byBillNo.getWorkPlaceQueueCode())){ queueCode = byBillNo.getWorkPlaceQueueCode(); } else { - queueCode = ioSplitFifoInvService.setQueueCode(addOrderRequest.getWorkPlaceCode(),null); + // userId 没有什么用 设置为1 问题不大 避免空指针 + queueCode = ioSplitFifoInvService.setQueueCode(addOrderRequest.getWorkPlaceCode(),1+"",udiRelevanceResponse1.getRelId()); addCodeResult.setQueueCode(queueCode); } }else { @@ -1173,6 +1174,7 @@ public class IoCodeTempController extends BaseController { codeEnttity.setCount(1); codeEnttity.setPrice(udiRelevanceResponse1.getPrice()); codeEnttity.setQueueCode(queueCode); + codeEnttity.setGroupNumber(groupNumber); String unitFk = null; if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { unitFk = addOrderRequest.getFromCorp(); @@ -1648,6 +1650,20 @@ public class IoCodeTempController extends BaseController { if (codeTempService.ieExitRel(code, orderId)) { return ResultVOUtils.error(500, "当前追溯码已上传关联关系,请勿重复扫码!"); } + UdiRelevanceResponse udiRelevanceResponse1 = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); + // 只要是一单的话就用同一个 虚拟槽位 加载orderQueueCode !!!! + IoOrderEntity byBillNo = orderService.findByBillNo(orderId); + String queueCode; + if (StrUtil.isBlank(addOrderRequest.getWorkPlaceQueueCode())){ + if (byBillNo != null && !StrUtil.isBlank(byBillNo.getWorkPlaceQueueCode())){ + queueCode = byBillNo.getWorkPlaceQueueCode(); + } else { + queueCode = ioSplitFifoInvService.setQueueCode(addOrderRequest.getWorkPlaceCode(),1 + "",udiRelevanceResponse1.getRelId()); + addCodeResult.setQueueCode(queueCode); + } + } else { + queueCode = addOrderRequest.getWorkPlaceQueueCode(); + } IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); codeEnttity.setCode(code); codeEnttity.setOrderId(orderId); @@ -1672,7 +1688,7 @@ public class IoCodeTempController extends BaseController { codeEnttity.setProductType(2); codeEnttity.setCount(1); codeEnttity.setGroupNumber(groupNumber); - codeEnttity.setQueueCode(addOrderRequest.getWorkPlaceQueueCode()); + codeEnttity.setQueueCode(queueCode); //如果是阿里拉的单据会有批次号 @@ -1785,7 +1801,7 @@ public class IoCodeTempController extends BaseController { orderEntity.setSplitBusType(addOrderRequest.getSplitBusType()); orderEntity.setFifoSplit(addOrderRequest.getFifoSplit()); orderEntity.setSplitBusType(addOrderRequest.getSplitBusType()); - orderEntity.setWorkPlaceQueueCode(addOrderRequest.getWorkPlaceQueueCode()); + orderEntity.setWorkPlaceQueueCode(queueCode); orderEntity.setProductType(2); orderService.insertOrder(orderEntity); } @@ -1802,8 +1818,8 @@ public class IoCodeTempController extends BaseController { if (StrUtil.isNotBlank(workplaceQueue.getRelId())) { if (!udiRelevanceResponse.getId().equals(Long.parseLong(workplaceQueue.getRelId()))) { // orderService.deleteByBillNo(orderId); - UdiRelevanceResponse udiRelevanceResponse1 = udiRelevanceService.selectByRelId(workplaceQueue.getRelId()); - return ResultVOUtils.error(507, "上货产品不符!" + "当前取货槽已被" + udiRelevanceResponse1.getCpmctymc() + "使用"); + UdiRelevanceResponse udiRelevanceResponse2 = udiRelevanceService.selectByRelId(workplaceQueue.getRelId()); + return ResultVOUtils.error(507, "上货产品不符!" + "当前取货槽已被" + udiRelevanceResponse2.getCpmctymc() + "使用"); } } else { //判断产品是否已经绑定其他槽位 @@ -3063,7 +3079,7 @@ public class IoCodeTempController extends BaseController { } } else { - baseResponse = addMaterOrder(addOrderRequest, udiEntity, code); + baseResponse = addMaterOrder(addOrderRequest, udiEntity, code,groupNumber); } if (baseResponse.getCode() == 20000) { diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java index 4483400c9..9498e8eff 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java @@ -139,7 +139,7 @@ public class IoSplitFifoInvService extends ServiceImpl queues = sysWorkplaceQueueService.list(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getWorkPlaceIdFk, workPlaceCode)); if (queues.size() == 0) { throw new JsonException(500, "请增加取货槽"); } + + //需要先判断 该产品是否已经有库存了 不然 工位有库存 在设置新的虚拟槽位 会显示同样产品 的多条数据但是 下面码明细一样 + List ioSplitFifoInvs = list(new LambdaQueryWrapper().eq(IoSplitFifoInv::getRelId, relId)); + if (ioSplitFifoInvs != null && ioSplitFifoInvs.size() > 0){ + return ioSplitFifoInvs.get(0).getWorkPlaceQueueCode(); + } SysWorkplaceQueue workplaceQueue = queues.get(0); // 使用流来过滤掉匹配的元素 List filteredQueues = queues.stream() .filter(queue -> { - IoSplitFifoInv one = getOne( + List list = list( new LambdaQueryWrapper() .eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode()) ); - return one == null; // 只保留那些没有匹配的槽位 + return list == null || list.isEmpty(); }) .sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode())) .collect(Collectors.toList()); @@ -208,7 +214,7 @@ public class IoSplitFifoInvService extends ServiceImpl