From 7b7a2cc050d55af2eed2cccb3761a91314c9b9f6 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 30 四月 2026 15:07:32 +0800
Subject: [PATCH] feat:1.产品维护,增加产品编号字段 2.入库批号添加 3.是否质检仅添加入库记录(待审核) 4.是否生产报工更改 5.入库做审核

---
 src/main/resources/mapper/stock/StockInventoryMapper.xml |   51 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 47 insertions(+), 4 deletions(-)

diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index a7dab00..d1eecb5 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -106,8 +106,10 @@
             SUM(unQualifiedQuantity) as unQualifiedQuantity,
             SUM(qualifiedLockedQuantity) as qualifiedLockedQuantity,
             SUM(unQualifiedLockedQuantity) as unQualifiedLockedQuantity,
-            SUM(qualifiedQuantity - qualifiedLockedQuantity) as qualifiedUnLockedQuantity,
-            SUM(unQualifiedQuantity - unQualifiedLockedQuantity) as unQualifiedUnLockedQuantity,
+            SUM(qualifiedQuantity - qualifiedLockedQuantity - IFNULL(qualifiedPendingOut, 0)) as qualifiedUnLockedQuantity,
+            SUM(unQualifiedQuantity - unQualifiedLockedQuantity - IFNULL(unQualifiedPendingOut, 0)) as unQualifiedUnLockedQuantity,
+            SUM(IFNULL(qualifiedPendingOut, 0)) as qualifiedPendingOutQuantity,
+            SUM(IFNULL(unQualifiedPendingOut, 0)) as unQualifiedPendingOutQuantity,
             product_model_id,
             MAX(create_time) as create_time,
             MAX(update_time) as update_time,
@@ -139,7 +141,16 @@
             si.remark,
             pm.unit,
             p.product_name,
-            p.id as product_id
+            p.id as product_id,
+            (
+                select IFNULL(SUM(sor.stock_out_num), 0)
+                from stock_out_record sor
+                where sor.product_model_id = si.product_model_id
+                  and (si.batch_no is null and sor.batch_no is null or si.batch_no = sor.batch_no)
+                  and sor.type = '0'
+                  and sor.approval_status = 0
+            ) as qualifiedPendingOut,
+            0 as unqualifiedPendingOut
             from stock_inventory si
             left join product_model pm on si.product_model_id = pm.id
             left join product p on pm.product_id = p.id
@@ -165,7 +176,16 @@
             su.remark,
             pm.unit,
             p.product_name,
-            p.id as product_id
+            p.id as product_id,
+            0 as qualifiedPendingOut,
+            (
+                select IFNULL(SUM(sor.stock_out_num), 0)
+                from stock_out_record sor
+                where sor.product_model_id = su.product_model_id
+                  and (su.batch_no is null and sor.batch_no is null or su.batch_no = sor.batch_no)
+                  and sor.type = '1'
+                  and sor.approval_status = 0
+            ) as unqualifiedPendingOut
             from stock_uninventory su
             left join product_model pm on su.product_model_id = pm.id
             left join product p on pm.product_id = p.id
@@ -410,4 +430,27 @@
         ORDER BY DATE(sor.create_time) ASC
     </select>
 
+    <select id="selectPendingOutQuantity" resultType="java.math.BigDecimal">
+        SELECT IFNULL(SUM(sor.stock_out_num), 0)
+        FROM stock_out_record sor
+        WHERE sor.product_model_id = #{productModelId}
+          AND (sor.batch_no = #{batchNo} OR (#{batchNo} IS NULL AND sor.batch_no IS NULL))
+          AND sor.type = #{type}
+          AND sor.approval_status = 0
+    </select>
+
+    <select id="listSelectableBatchNoByProductModelIds" resultType="com.ruoyi.stock.pojo.StockInventory">
+        select distinct si.product_model_id,
+                        si.batch_no
+        from stock_inventory si
+        where si.product_model_id in
+        <foreach collection="productModelIds" item="productModelId" open="(" separator="," close=")">
+            #{productModelId}
+        </foreach>
+          and si.batch_no is not null
+          and si.batch_no != ''
+          and (si.qualitity - ifnull(si.locked_quantity, 0)) > 0
+        order by si.product_model_id, si.batch_no
+    </select>
+
 </mapper>

--
Gitblit v1.9.3