From e1f8c6f83b703fa26ac2d9b61096ae97612da3ca Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 12 五月 2026 13:41:27 +0800
Subject: [PATCH] refactor(storage): 移除 StorageBlobVO 中的冗余字段

---
 src/main/resources/mapper/stock/StockInventoryMapper.xml |   62 ++++++++++++++++++++++++++++--
 1 files changed, 57 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 60fc90e..bbb9463 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -63,6 +63,17 @@
                 and batch_no = #{ew.batchNo}
             </if>
     </update>
+    <update id="updateLocked">
+        update stock_inventory
+        set locked = #{locked}
+        where product_model_id = #{productModelId}
+        <if test="batchNo == null">
+            and batch_no is null
+        </if>
+            <if test="batchNo != null">
+                and batch_no = #{batchNo}
+            </if>
+    </update>
     <select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
         select si.id,
         si.qualitity,
@@ -436,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">
@@ -453,12 +464,53 @@
         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
+        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
         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
+            left join product_model pm on pm.id = spd.product_model_id
+        left join product p on p.id = pm.product_id
         where product_model_id = #{productModelId}
     </select>
+    <select id="pagestockInventoryNoQua" resultType="com.ruoyi.stock.dto.StockInventoryDto">
+        select
+        si.product_model_id,
+        pm.model ,
+        pm.unit,
+        p.product_name
+        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 and si.locked = 0
+        <if test="ew.productName != null and ew.productName !=''">
+            and p.product_name like concat('%',#{ew.productName},'%')
+        </if>
+        <if test="ew.model != null and ew.model !=''">
+            and pm.model like concat('%',#{ew.model},'%')
+        </if>
+        group by si.product_model_id,
+        pm.model,
+        pm.unit,
+        p.product_name
+    </select>
+
 
 </mapper>

--
Gitblit v1.9.3