From bf4f7bae745b8c6e9c468e243961c9edea6dfed4 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 24 四月 2026 09:13:09 +0800
Subject: [PATCH] fix: 进销存数据分析产品数去重

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

diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 3931022..d898c2c 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -49,7 +49,8 @@
             </if>
             update_time = now()
         </set>
-        where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
+        where product_model_id = #{ew.productModelId}
+        and (qualitity - COALESCE(locked_quantity, 0)) >= #{ew.qualitity}
     </update>
 
     <select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
@@ -65,6 +66,7 @@
         pm.model,
         si.remark,
         pm.unit,
+        pm.thickness,
         p.product_name
         from stock_inventory si
         left join product_model pm on si.product_model_id = pm.id
@@ -99,6 +101,7 @@
         select sir.*,si.qualitity as current_stock,
         pm.model,
         pm.unit,
+        pm.thickness,
         p.product_name,
         su.nick_name as create_by
         from
@@ -125,6 +128,7 @@
         SELECT
         pm.model,
         pm.unit,
+        pm.thickness,
         p.product_name,
         MAX(current_inventory) as current_stock,
         SUM(CASE WHEN record_type = 'in' THEN amount ELSE 0 END) as total_stock_in,
@@ -204,16 +208,16 @@
     </select>
 
     <select id="selectStorageProductCountByDate" resultType="int">
-        SELECT SUM(total_count)
-        FROM (SELECT COUNT(*) as total_count
+        SELECT COUNT(DISTINCT product_model_id)
+        FROM (SELECT product_model_id
               FROM stock_inventory
               WHERE create_time &gt;= #{startDate}
                 AND create_time &lt;= #{endDate}
               UNION ALL
-              SELECT COUNT(*) as total_count
+              SELECT product_model_id
               FROM stock_uninventory
               WHERE create_time &gt;= #{startDate}
-                AND create_time &lt;= #{endDate}) AS combined_counts
+                AND create_time &lt;= #{endDate}) AS combined_models
     </select>
 
     <select id="selectDailyStockInCounts" resultType="java.util.Map">

--
Gitblit v1.9.3