From 8a03cb579ada9d598188816d4741efbd2b73f16b Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 12 五月 2026 09:18:16 +0800
Subject: [PATCH] feat(stock): 添加盘点入库类型枚举并修复库存检查出库记录类型

---
 src/main/resources/mapper/stock/StockInventoryMapper.xml |   32 ++++++++++++++++++++++----------
 1 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 65c1c41..bbb9463 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -66,12 +66,12 @@
     <update id="updateLocked">
         update stock_inventory
         set locked = #{locked}
-        where product_model_id = #{ew.productModelId}
+        where product_model_id = #{productModelId}
         <if test="batchNo == null">
             and batch_no is null
         </if>
             <if test="batchNo != null">
-                and batch_no = #{ew.batchNo}
+                and batch_no = #{batchNo}
             </if>
     </update>
     <select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
@@ -447,7 +447,7 @@
         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
+          AND sor.approval_status IN (0, 3)
     </select>
 
     <select id="listSelectableBatchNoByProductModelIds" resultType="com.ruoyi.stock.pojo.StockInventory">
@@ -464,12 +464,24 @@
         order by si.product_model_id, si.batch_no
     </select>
     <select id="getByModelId" resultType="com.ruoyi.stock.pojo.StockInventory">
-        select spd.id, spd.batch_no, spd.locked_quantity, (spd.qualitity - IFNULL(sd.qualitity, 0)) as qualitity
-        from stock_inventory spd
-                 left join (select stock_inventory_id, sum(quantity) as qualitity
-                            from shipping_product_detail
-                            group by stock_inventory_id) as sd on sd.stock_inventory_id = spd.id
-        where product_model_id = #{productModelId}
+        select si.id, si.batch_no, si.locked_quantity, (si.qualitity - IFNULL(sd.qualitity, 0)) as qualitity
+        from stock_inventory si
+                 left join (
+                    select spd.stock_inventory_id, sum(spd.quantity) as qualitity
+                    from shipping_product_detail spd
+                    where exists (
+                        select 1
+                        from stock_out_record sor
+                        where sor.record_id = spd.shipping_info_id
+                          and sor.record_type = '13'
+                          and sor.type = '0'
+                          and sor.approval_status in (0, 3)
+                          and sor.product_model_id = spd.product_model_id
+                          and (sor.batch_no = spd.batch_no or (sor.batch_no is null and spd.batch_no is null))
+                    )
+                    group by spd.stock_inventory_id
+                 ) as sd on sd.stock_inventory_id = si.id
+        where si.product_model_id = #{productModelId}
     </select>
     <select id="selectStockInvenrory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
         select spd.id, spd.batch_no,pm.model,pm.unit,p.product_name, spd.qualitity,spd.product_model_id
@@ -487,7 +499,7 @@
         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
-        where 1 = 1
+        where 1 = 1 and si.locked = 0
         <if test="ew.productName != null and ew.productName !=''">
             and p.product_name like concat('%',#{ew.productName},'%')
         </if>

--
Gitblit v1.9.3