From e03206c08c9604decc4723c36fc25573681f2fee Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 18 六月 2026 15:02:00 +0800
Subject: [PATCH] refactor(database): 优化库存管理相关数据库查询和业务逻辑

---
 src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml |   33 +++++++++++++++++++++------------
 1 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml b/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml
index e29cc8d..a01a9bf 100644
--- a/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml
@@ -3,24 +3,33 @@
 <mapper namespace="com.ruoyi.procurementrecord.mapper.CustomStorageMapper">
 
     <select id="listPageCopyByCustom" resultType="com.ruoyi.procurementrecord.pojo.CustomStorage">
-        select *,
-               sum(inbound_num) as inboundNum,
-               sum(inbound_num) as inboundNum0,
-               sum(tax_inclusive_total_price) as taxInclusiveTotalPrice
-               from custom_storage
+        select t1.*,
+               sum(t1.inbound_num) as inboundNum,
+               sum(t1.inbound_num) as inboundNum0,
+               sum(t1.tax_inclusive_total_price) as taxInclusiveTotalPrice,
+               COALESCE(out_sum.total_out_num, 0) as totalInboundNum,
+               sum(t1.inbound_num) - COALESCE(out_sum.total_out_num, 0) AS inboundNum0,
+               sum(t1.inbound_num) - COALESCE(out_sum.total_out_num, 0) AS availableStock
+               from custom_storage t1
+               left join (
+                   select t2.procurement_record_storage_id, sum(t2.inbound_num) as total_out_num
+                   from procurement_record_out t2
+                   where t2.type = 3
+                   group by t2.procurement_record_storage_id
+               ) out_sum on out_sum.procurement_record_storage_id = t1.id
         <where>
             <if test="req.productCategory != null and req.productCategory != ''">
-                and product_category like  concat('%',#{req.productCategory},'%')
+                and t1.product_category like  concat('%',#{req.productCategory},'%')
             </if>
             <if test="req.supplierName !=null and req.supplierName != ''">
-                and supplier_name like concat('%',#{req.supplierName},'%')
+                and t1.supplier_name like concat('%',#{req.supplierName},'%')
             </if>
-            <if test="req.inboundDate !=null">
-                and inbound_date like concat('%',#{req.inboundDate},'%')
+            <if test="req.timeStr != null and req.timeStr != ''">
+                and t1.inbound_date like concat('%',#{req.timeStr},'%')
             </if>
-
         </where>
-        group by product_category, specification_model, tax_inclusive_unit_price
-        order by inbound_date desc
+        group by t1.product_category, t1.specification_model, t1.tax_inclusive_unit_price
+        HAVING availableStock > 0
+        order by t1.inbound_date desc
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3