From 43525a12afaf7368decbed730f0240a6709d8355 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期三, 24 十二月 2025 12:05:58 +0800
Subject: [PATCH] 月结

---
 src/main/resources/mapper/MonthlySettleMapper.xml |   85 ++++++++++++++++++++----------------------
 1 files changed, 41 insertions(+), 44 deletions(-)

diff --git a/src/main/resources/mapper/MonthlySettleMapper.xml b/src/main/resources/mapper/MonthlySettleMapper.xml
index 78cc204..318d66e 100644
--- a/src/main/resources/mapper/MonthlySettleMapper.xml
+++ b/src/main/resources/mapper/MonthlySettleMapper.xml
@@ -58,60 +58,57 @@
         ) t
     </select>
 
-    <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙鍚堝苟鍏ュ簱鍑哄簱锛� -->
-    <select id="statisticsMaterialInOut" resultType="com.zy.asrs.entity.result.MaterialInOutStatDTO">
+    <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙浠庡叆搴撹〃鏌ヨ锛� -->
+    <select id="statisticsMaterialInOutFromPakin" resultType="com.zy.asrs.entity.result.MaterialInOutRawDTO">
         SELECT 
-            matnr,
-            MAX(maktx) as maktx,
-            batch,
-            brand,
-            SUM(in_qty) as inQty,
-            SUM(out_qty) as outQty
-        FROM (
-            SELECT 
-                od.matnr,
-                MAX(od.maktx) as maktx,
-                ISNULL(od.batch, '') as batch,
-                ISNULL(od.brand, '') as brand,
-                SUM(od.qty) as in_qty,
-                0 as out_qty
-            FROM man_order_log_pakin o
-            INNER JOIN man_order_detl_log_pakin od ON o.id = od.order_id
-            WHERE o.status = 1
-            AND CONVERT(date, o.order_time) >= #{startDate}
-            AND o.order_time &lt;= #{endDate}
-            AND o.move_status = 2
-            AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
-            GROUP BY od.matnr, od.batch, od.brand
-            UNION ALL
-            SELECT 
-                od.matnr,
-                MAX(od.maktx) as maktx,
-                ISNULL(od.batch, '') as batch,
-                ISNULL(od.brand, '') as brand,
-                0 as in_qty,
-                SUM(od.qty) as out_qty
-            FROM man_order_log_pakout o
-            INNER JOIN man_order_detl_log_pakout od ON o.id = od.order_id
-            WHERE o.status = 1
-            AND CONVERT(date, o.order_time) >= #{startDate}
-            AND o.order_time &lt;= #{endDate}
-            AND o.move_status = 2
-            AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
-            GROUP BY od.matnr, od.batch, od.brand
-        ) t
-        GROUP BY matnr, batch, brand
+            od.matnr,
+            od.maktx,
+            od.batch,
+            od.brand,
+            SUM(od.qty) as qty,
+            COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) as pakinPakoutStatus
+        FROM man_order_log_pakin o
+        INNER JOIN man_order_detl_log_pakin od ON o.id = od.order_id
+        WHERE o.status = 1
+        AND CONVERT(date, o.order_time) >= #{startDate}
+        AND o.order_time &lt;= #{endDate}
+        AND o.move_status = 2
+        AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
+        AND COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) IN (1, 2)
+        GROUP BY od.matnr, od.maktx, od.batch, od.brand, COALESCE(od.pakin_pakout_status, o.pakin_pakout_status)
+    </select>
+
+    <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙浠庡嚭搴撹〃鏌ヨ锛� -->
+    <select id="statisticsMaterialInOutFromPakout" resultType="com.zy.asrs.entity.result.MaterialInOutRawDTO">
+        SELECT 
+            od.matnr,
+            od.maktx,
+            od.batch,
+            od.brand,
+            SUM(od.qty) as qty,
+            COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) as pakinPakoutStatus
+        FROM man_order_log_pakout o
+        INNER JOIN man_order_detl_log_pakout od ON o.id = od.order_id
+        WHERE o.status = 1
+        AND CONVERT(date, o.order_time) >= #{startDate}
+        AND o.order_time &lt;= #{endDate}
+        AND o.move_status = 2
+        AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
+        AND COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) IN (1, 2)
+        GROUP BY od.matnr, od.maktx, od.batch, od.brand, COALESCE(od.pakin_pakout_status, o.pakin_pakout_status)
     </select>
 
     <!-- 鑾峰彇涓婁竴涓湀缁撶殑鐗╂枡鏈熸湯搴撳瓨 -->
     <select id="getPreviousSettleEndingQty" resultType="com.zy.asrs.entity.result.PreviousSettleEndingQtyDTO">
         SELECT 
             matnr,
-            batch,
-            brand,
+            ISNULL(batch, '') as batch,
+            ISNULL(brand, '') as brand,
+            ISNULL(maktx, '') as maktx,
             ending_qty as endingQty
         FROM man_monthly_settle_detail
         WHERE settle_id = #{previousSettleId}
+        AND is_deleted = 0
     </select>
 
     <!-- 鏇存柊鍏ュ簱璁㈠崟鐨勬湀缁撲俊鎭� -->

--
Gitblit v1.9.1