From ab328dcee3499bdc622e4eae787abd76c8c845c0 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 15 五月 2026 09:39:03 +0800
Subject: [PATCH] feat(stock): 添加批号字段并优化出入库记录导出功能

---
 src/main/resources/mapper/stock/StockInventoryMapper.xml |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index d1eecb5..4e7adf6 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -226,6 +226,7 @@
             model,
             unit,
             product_name,
+            batch_no,
             MAX(warn_num) as warn_num,
             MAX(remark) as remark,
             MAX(update_time) as update_time
@@ -238,6 +239,7 @@
             si.product_model_id,
             si.create_time,
             si.update_time,
+            si.batch_no,
             COALESCE(si.warn_num, 0) as warn_num,
             si.remark,
             pm.model,
@@ -259,6 +261,7 @@
             su.create_time,
             su.update_time,
             0 as warn_num,
+            su.batch_no,
             su.remark,
             pm.model,
             pm.unit,
@@ -281,7 +284,7 @@
                 and combined.product_id in (select id from product_tree)
             </if>
         </where>
-        group by product_model_id, model, unit, product_name
+        group by product_model_id, model, unit, product_name,batch_no
     </select>
     <select id="stockInventoryPage" resultType="com.ruoyi.stock.dto.StockInRecordDto">
         select sir.*,si.qualitity as current_stock,
@@ -436,7 +439,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">
@@ -452,5 +455,25 @@
           and (si.qualitity - ifnull(si.locked_quantity, 0)) > 0
         order by si.product_model_id, si.batch_no
     </select>
+    <select id="getByModelId" resultType="com.ruoyi.stock.pojo.StockInventory">
+        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>
 
 </mapper>

--
Gitblit v1.9.3