From 47cbc59169b787e8a5f9c6969e2a0259c06249ca Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 24 四月 2026 13:31:48 +0800
Subject: [PATCH] feat:库存管理成品/半成品/原材料
---
src/main/resources/mapper/stock/StockInventoryMapper.xml | 42 +++++++++++++++++++++++++++++++++++-------
1 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index d592b11..517a17d 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -52,6 +52,21 @@
where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
</update>
<select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
+ WITH RECURSIVE get_root AS (
+ SELECT
+ id,
+ parent_id,
+ id AS root_id
+ FROM product
+ WHERE parent_id IS NULL -- 鏍硅妭鐐�
+ UNION ALL
+ SELECT
+ p.id,
+ p.parent_id,
+ gr.root_id
+ FROM product p
+ INNER JOIN get_root gr ON p.parent_id = gr.id
+ )
SELECT
si.id,
si.qualitity,
@@ -68,12 +83,15 @@
pm.uid_no AS uidNo,
p.product_name,
si.batch_no,
- si.customer
+ si.customer,
+ rp.product_type AS productScope,
+ si.production_date
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
- LEFT JOIN product p1 ON p.parent_id = p1.id
+ LEFT JOIN get_root gr ON gr.id = p.id
+ LEFT JOIN product rp ON rp.id = gr.root_id
<where>
<if test="ew.productName != null and ew.productName != ''">
AND p.product_name LIKE CONCAT('%', #{ew.productName}, '%')
@@ -90,11 +108,15 @@
<if test="ew.productScope != null and ew.productScope != ''">
<choose>
<when test="ew.productScope == '鎴愬搧'">
- AND p1.product_name = #{ew.productScope}
+ AND rp.product_type = '鎴愬搧'
</when>
- <otherwise>
- AND p1.product_name != '鎴愬搧'
- </otherwise>
+ <when test="ew.productScope == '鍗婃垚鍝�'">
+ AND rp.product_type = '鍗婃垚鍝�'
+ </when>
+ <when test="ew.productScope == '鍘熸潗鏂�'">
+ AND (rp.product_type IS NULL
+ OR (rp.product_type != '鎴愬搧' AND rp.product_type != '鍗婃垚鍝�'))
+ </when>
</choose>
</if>
</where>
@@ -103,6 +125,10 @@
select si.qualitity,
pm.model,
pm.unit,
+ si.batchNo,
+ pm.uid_no,
+ si.production_date,
+ si.customer,
p.product_name,
coalesce(si.warn_num, 0) as warn_num,
coalesce(si.locked_quantity, 0) as locked_quantity,
@@ -337,7 +363,9 @@
p.parent_id AS parent_id,
p1.product_name AS parentName,
si.batch_no,
- si.customer
+ si.customer,
+ si.production_date,
+ pm.validity_period
FROM
stock_inventory si
LEFT JOIN product_model pm ON si.product_model_id = pm.id
--
Gitblit v1.9.3