From 0ae2d7e2cd0e0c3edde430c5cba8441a437e2d84 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 01 四月 2026 15:06:30 +0800
Subject: [PATCH] feat(production): 添加bomName字段及相关mapper映射

---
 src/main/resources/mapper/stock/StockUninventoryMapper.xml |   66 +++++++++++++++++++++++++++++----
 1 files changed, 58 insertions(+), 8 deletions(-)

diff --git a/src/main/resources/mapper/stock/StockUninventoryMapper.xml b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
index c76ff2d..851b83f 100644
--- a/src/main/resources/mapper/stock/StockUninventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -12,7 +12,7 @@
         <result column="version" property="version" />
     </resultMap>
     <update id="updateSubtractStockUnInventory">
-        update stock_inventory
+        update stock_uninventory
         <set>
             <if test="ew.qualitity != null">
                 qualitity = qualitity - #{ew.qualitity},
@@ -20,12 +20,15 @@
             <if test="ew.version != null">
                 version = version + 1,
             </if>
+            <if test="ew.remark != null and ew.remark !=''">
+                remark = #{ew.remark},
+            </if>
             update_time = now()
         </set>
         where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
     </update>
     <update id="updateAddStockUnInventory">
-        update stock_inventory
+        update stock_uninventory
         <set>
             <if test="ew.qualitity != null">
                 qualitity = qualitity + #{ew.qualitity},
@@ -33,18 +36,65 @@
             <if test="ew.version != null">
                 version = version + 1,
             </if>
+            <if test="ew.remark != null and ew.remark !=''">
+                remark = #{ew.remark},
+            </if>
             update_time = now()
         </set>
         where product_model_id = #{ew.productModelId}
     </update>
     <select id="pageStockUninventory" resultType="com.ruoyi.stock.dto.StockUninventoryDto">
-        select su.*,
-               pm.model,
-               pm.unit,
-               p.product_name
+        WITH RECURSIVE cte AS (
+        SELECT id, product_name, parent_id, id AS current_id
+        FROM product
+
+        UNION ALL
+
+        SELECT c.id, c.product_name, p.parent_id, p.id
+        FROM cte c
+        JOIN product p ON c.parent_id = p.id
+        ),
+        root_map AS (
+        SELECT
+        c.id,
+        p.id AS root_id,
+        p.product_name AS root_name
+        FROM cte c
+        JOIN product p ON c.current_id = p.id
+        WHERE p.parent_id IS NULL
+        )
+        select su.id,
+        su.qualitity,
+        COALESCE(su.locked_quantity, 0) as locked_quantity,
+        su.product_model_id,
+        su.create_time,
+        su.update_time,
+        su.version,
+        su.update_time,
+        (su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity,
+        pm.model,
+        pm.unit,
+        p.product_name
         from stock_uninventory su
-                 left join product_model pm on su.product_model_id = pm.id
-                 left join product p on pm.product_id = p.id
+        left join product_model pm on su.product_model_id = pm.id
+        LEFT JOIN root_map rm ON pm.product_id = rm.id
+        left join product p on pm.product_id = p.id
+        where 1 = 1
+        <if test="ew.productName != null and ew.productName !=''">
+            and p.product_name like concat('%',#{ew.productName},'%')
+        </if>
+        <if test="ew.rootName != null and ew.rootName != ''">
+            and rm.root_name = #{ew.rootName}
+        </if>
+    </select>
+    <select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockUnInventoryExportData">
+        select su.*,
+        pm.model,
+        pm.unit,
+        p.product_name
+        from stock_uninventory su
+        left join product_model pm on su.product_model_id = pm.id
+        left join product p on pm.product_id = p.id
         where 1 = 1
         <if test="ew.productName != null and ew.productName !=''">
             and p.product_name like concat('%',#{ew.productName},'%')

--
Gitblit v1.9.3