From 46f8920cdcbff803b8b51a927ad40f33ce060b32 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 22 四月 2026 20:43:49 +0800
Subject: [PATCH] 出库下发流程按照进仓编号的前后顺序下发;配置一个出库进仓编号出库数量阀值; 当运行中的进仓编号任务WrkSts=25、14、15并且小于该阀值时下发下一个进仓编号的出库任务

---
 src/main/java/com/zy/asrs/controller/OutController.java |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index c6c4bd3..7fb77b9 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -169,6 +169,52 @@
                     locDtos.add(locDto);
                 }
             }
+        }else if(orderPakOut.getDocType() == 7){
+            for (OrderDetlPakout orderDetl : orderDetlPakouts) {
+                double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
+                if (issued <= 0.0D) {
+                    continue;
+                }
+                List<LocDetl> locDetls = null;
+                locDetls = locDetlService.queryStockAll123(null, exist,orderDetl.getMatnr(), orderDetl.getBoxType3());
+
+                for (LocDetl locDetl : locDetls) {
+                    if (issued > 0) {
+                        LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
+                                issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+                        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                        locDto.setFrozen(locDetl.getFrozen());
+                        locDto.setFrozenLoc(locMast.getFrozen());
+                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+                        locDto.setStaNos(staNos);
+                        locDto.setBrand(orderDetl.getBrand());
+                        locDto.setStandby1(orderDetl.getStandby1());
+                        locDto.setStandby2(orderDetl.getStandby2());
+                        locDto.setStandby3(orderDetl.getStandby3());
+                        locDto.setBoxType1(orderDetl.getBoxType1());
+                        locDto.setBoxType2(orderDetl.getBoxType2());
+                        locDto.setBoxType3(orderDetl.getBoxType3());
+                        locDtos.add(locDto);
+                        exist.add(locDetl.getLocNo());
+                        // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+                        issued = issued - locDetl.getAnfme();
+                    } else {
+                        break;
+                    }
+                }
+                if (issued > 0) {
+                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                    locDto.setBrand(orderDetl.getBrand());
+                    locDto.setStandby1(orderDetl.getStandby1());
+                    locDto.setStandby2(orderDetl.getStandby2());
+                    locDto.setStandby3(orderDetl.getStandby3());
+                    locDto.setBoxType1(orderDetl.getBoxType1());
+                    locDto.setBoxType2(orderDetl.getBoxType2());
+                    locDto.setBoxType3(orderDetl.getBoxType3());
+                    locDto.setLack(Boolean.TRUE);
+                    locDtos.add(locDto);
+                }
+            }
         }else {
             for (OrderDetlPakout orderDetl : orderDetlPakouts) {
                 double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);

--
Gitblit v1.9.1