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 5e3ceaf66..f4e371344 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1135,6 +1135,20 @@ public class IoCodeTempController extends BaseController { } if (exitLocalEntity == null) { 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(),null); + addCodeResult.setQueueCode(queueCode); + } + }else { + queueCode = addOrderRequest.getWorkPlaceQueueCode(); + } + IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); codeEnttity.setCode(code); codeEnttity.setOrderId(orderId); @@ -1158,6 +1172,7 @@ public class IoCodeTempController extends BaseController { codeEnttity.setFifoSplit(addOrderRequest.getFifoSplit()); codeEnttity.setCount(1); codeEnttity.setPrice(udiRelevanceResponse1.getPrice()); + codeEnttity.setQueueCode(queueCode); String unitFk = null; if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { unitFk = addOrderRequest.getFromCorp(); @@ -1243,6 +1258,7 @@ public class IoCodeTempController extends BaseController { orderEntity.setProductType(1); orderEntity.setFifoSplit(addOrderRequest.getFifoSplit()); orderEntity.setSplitBusType(addOrderRequest.getSplitBusType()); + orderEntity.setWorkPlaceQueueCode(queueCode); orderService.insertOrder(orderEntity); } diff --git a/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java b/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java index c3f5a01b3..6a4f09cd7 100644 --- a/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java @@ -63,4 +63,6 @@ public class AddOrderRequest { */ private String workPlaceQueueCode; + + } diff --git a/src/main/java/com/glxp/api/res/inout/AddCodeResult.java b/src/main/java/com/glxp/api/res/inout/AddCodeResult.java index 69fd32ef6..7cf7c819a 100644 --- a/src/main/java/com/glxp/api/res/inout/AddCodeResult.java +++ b/src/main/java/com/glxp/api/res/inout/AddCodeResult.java @@ -9,4 +9,5 @@ public class AddCodeResult { private String orderId; private String errMsg; List vailCodeResultResponses; + private String queueCode; } diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java index c62d91930..dc537e1d2 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -344,6 +344,7 @@ public class IoCodeTempService { ); } + // public IoCodeTempResponse convertToIoCodeTempResponse(IoCodeResponse response) { // IoCodeTempResponse tempResponse = new IoCodeTempResponse(); // BeanUtils.copyProperties(response,tempResponse); diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderService.java b/src/main/java/com/glxp/api/service/inout/IoOrderService.java index feefd5406..d7fc7f205 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -164,4 +164,5 @@ public interface IoOrderService { IoOrderResponse findByWorkPlaceCode(String workPlaceCode,String getWorkPlaceQueueCode,Long UserId); String selectAliYljgSearchbillByAliBillNo(String key); + } 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 dc4c8a4c8..4483400c9 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java @@ -136,7 +136,11 @@ public class IoSplitFifoInvService extends ServiceImpl filteredQueues = queues.stream() -// .filter(queue -> { -// IoSplitFifoInv one = getOne( -// new LambdaQueryWrapper() -// .eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode()) -// ); -// return one == null; // 只保留那些没有匹配的槽位 -// }) -// .sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode())) -// .collect(Collectors.toList()); + // 使用流来过滤掉匹配的元素 + List filteredQueues = queues.stream() + .filter(queue -> { + IoSplitFifoInv one = getOne( + new LambdaQueryWrapper() + .eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode()) + ); + return one == null; // 只保留那些没有匹配的槽位 + }) + .sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode())) + .collect(Collectors.toList()); + if (filteredQueues.size() > 0) { + //还有剩余的槽位 可分配 + SysWorkplaceQueue sysWorkplaceQueue = filteredQueues.get(0); + return sysWorkplaceQueue.getCode(); + } else { //增加一个槽位 SysWorkplaceLayer layer = sysWorkplaceLayerService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceLayer::getCode, workplaceQueue.getLayerCode())); SysWorkplaceLayerRequest sysWorkplaceLayerRequest = new SysWorkplaceLayerRequest(); @@ -195,11 +203,15 @@ public class IoSplitFifoInvService extends ServiceImpl