From 875adbd59a28453cdf443c3244e2691ad1dd02ac Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 17 九月 2026 00:13:08 +0800
Subject: [PATCH] fix: 产品父类名称适配
---
src/main/resources/mapper/stock/StockInventoryMapper.xml | 26 ++++++++++++++++++++------
1 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 517a17d..21e70c7 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -264,27 +264,41 @@
AND create_time <= #{endDate}) AS combined_counts
</select>
+ <!-- 浜у搧搴撴牴鑺傜偣鍒嗙被锛�0-鍘熸潗鏂� 1-鍗婃垚鍝� 2-鎴愬搧锛堝厛鍖归厤鍗婃垚鍝侊紝閬垮厤琚垚鍝佸寘鍚級 -->
+ <sql id="productTypeTree">
+ WITH RECURSIVE product_tree AS (SELECT id
+ FROM product
+ WHERE parent_id IS NULL
+ AND ((#{modelType} = 0 AND product_name LIKE '%鍘熸潗鏂�%')
+ OR (#{modelType} = 1 AND product_name LIKE '%鍗婃垚鍝�%')
+ OR (#{modelType} = 2 AND product_name LIKE '%鎴愬搧%' AND product_name NOT LIKE '%鍗婃垚鍝�%'))
+ UNION ALL
+ SELECT p.id
+ FROM product p
+ INNER JOIN product_tree pt ON p.parent_id = pt.id)
+ </sql>
+
<select id="selectDailyStockInCounts" resultType="java.util.Map">
+ <include refid="productTypeTree"/>
SELECT DATE(sir.create_time) AS date,
SUM(sir.stock_in_num) AS count
FROM stock_in_record sir
JOIN product_model pm ON sir.product_model_id = pm.id
- JOIN product p ON pm.product_id = p.id
- WHERE (p.parent_id = #{rootCategoryId} OR p.id = #{rootCategoryId})
- AND sir.create_time >= #{startDate}
+ JOIN product_tree pt ON pt.id = pm.product_id
+ WHERE sir.create_time >= #{startDate}
AND sir.create_time <= #{endDate}
GROUP BY DATE(sir.create_time)
ORDER BY DATE(sir.create_time) ASC
</select>
<select id="selectDailyStockOutCounts" resultType="java.util.Map">
+ <include refid="productTypeTree"/>
SELECT DATE(sor.create_time) AS date,
SUM(sor.stock_out_num) AS count
FROM stock_out_record sor
JOIN product_model pm ON sor.product_model_id = pm.id
- JOIN product p ON pm.product_id = p.id
- WHERE (p.parent_id = #{rootCategoryId} OR p.id = #{rootCategoryId})
- AND sor.create_time >= #{startDate}
+ JOIN product_tree pt ON pt.id = pm.product_id
+ WHERE sor.create_time >= #{startDate}
AND sor.create_time <= #{endDate}
GROUP BY DATE(sor.create_time)
ORDER BY DATE(sor.create_time) ASC
--
Gitblit v1.9.3