From 79447543a3c6363fe60e12e16fc6b83b437fca83 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期二, 13 八月 2024 14:32:52 +0800
Subject: [PATCH] 出库逻辑调整

---
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java            |    2 +-
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    2 ++
 src/main/resources/mapper/LocDetlMapper.xml                    |   10 ++++++++--
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    6 ++++++
 src/main/java/com/zy/asrs/controller/OutController.java        |   13 ++++++++++---
 5 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 4a08e72..ebb4acf 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -83,10 +83,17 @@
 
         for (OrderDetl orderDetl : orderDetls) {
             double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
-            if (issued <= 0.0D) { continue; }
-            List<LocDetl> locDetls = locDetlService.queryStock(orderDetls.get(0).getSPgNO());
+            if (issued <= 0.0D) {
+                continue;
+            }
+            List<LocDetl> locDetls;
+            if (Cools.isEmpty(orderDetls.get(0).getSPgNO())) {
+                locDetls = locDetlService.queryStockByModel(orderDetls.get(0).getModel());
+            } else {
+                locDetls = locDetlService.queryStock(orderDetls.get(0).getSPgNO());
+            }
             for (LocDetl locDetl : locDetls) {
-                if (locDetl.getMatnr().equals(orderDetl.getMatnr())){
+                if (locDetl.getMatnr().equals(orderDetl.getMatnr())) {
                     if (issued > 0) {
                         LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
                                 issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 91f71db..30da07a 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -57,7 +57,7 @@
 
     // -------------------------------------------------
 
-    List<LocDetl> queryStock(@Param("sPgNO")String sPgNO, @Param("matnr")String matnr, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos);
+    List<LocDetl> queryStock(@Param("sPgNO")String sPgNO, @Param("model")String model, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos);
 
     Double queryStockAnfme(String matnr, String batch);
 
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 8bb36d3..3b298e3 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -56,6 +56,8 @@
 
     List<LocDetl> queryStock(String sPgNO);
 
+    List<LocDetl> queryStockByModel(String model);
+
     Double queryStockAnfme(String matnr, String batch);
 
     List<StockVo> queryStockTotal();
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index ff7f8a8..db27d05 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -95,6 +95,12 @@
     }
 
     @Override
+    public List<LocDetl> queryStockByModel(String model) {
+        return this.baseMapper.queryStock(null, model, null, null, null);
+    }
+
+
+    @Override
     public Double queryStockAnfme(String matnr, String batch) {
         return this.baseMapper.queryStockAnfme(matnr, batch);
     }
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 5eae566..3648cdc 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -244,12 +244,18 @@
 <!--                and (a.batch IS NULL OR a.batch = '')-->
 <!--            </otherwise>-->
 <!--        </choose>-->
+
+        <if test="sPgNO != null and sPgNO != ''">
             and a.pg_no = #{sPgNO}
+        </if>
         <if test="batch != null and batch != ''">
             and a.batch = #{batch}
         </if>
-        <if test="orderNo != null and orderNo != ''">
-            and a.order_no = #{orderNo}
+<!--        <if test="orderNo != null and orderNo != ''">-->
+<!--            and a.order_no = #{orderNo}-->
+<!--        </if>-->
+        <if test="model != null and model != ''">
+            and a.model = #{model}
         </if>
 
         <if test="locNos != null and locNos.size > 0">

--
Gitblit v1.9.1