From 0989ec1e6b465141f99ed67e40fa2a0b928dce94 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 29 四月 2026 16:54:51 +0800
Subject: [PATCH] feat(production): 新增生产核算和生产工单功能模块 - 添加生产核算控制器、服务接口及实现类 - 实现生产核算分页查询和工人生产工资信息查询功能 - 添加生产工单控制器、服务接口及实现类 - 实现生产工单的增删改查和状态统计功能 - 集成工单流转卡下载和二维码生成功能 - 添加工单相关的数据传输对象和值对象 - 实现工单与用户关联的分配功能 - 完善工单附件图片处理和展示功能

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

diff --git a/src/main/resources/mapper/stock/StockUninventoryMapper.xml b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
index 39b16b3..582542c 100644
--- a/src/main/resources/mapper/stock/StockUninventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -25,13 +25,24 @@
             </if>
             update_time = now()
         </set>
-        where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
+        where
+        product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
+        <if test="ew.batchNo == null">
+            and batch_no is null
+        </if>
+        <if test="ew.batchNo != null">
+            and batch_no = #{ew.batchNo}
+        </if>
+
     </update>
     <update id="updateAddStockUnInventory">
         update stock_uninventory
         <set>
             <if test="ew.qualitity != null">
                 qualitity = qualitity + #{ew.qualitity},
+            </if>
+            <if test="ew.lockedQuantity != null">
+                locked_quantity = locked_quantity + #{ew.lockedQuantity},
             </if>
             <if test="ew.version != null">
                 version = version + 1,
@@ -42,21 +53,35 @@
             update_time = now()
         </set>
         where product_model_id = #{ew.productModelId}
+        <if test="ew.batchNo == null">
+            and batch_no is null
+        </if>
+        <if test="ew.batchNo != null">
+            and batch_no = #{ew.batchNo}
+        </if>
     </update>
     <select id="pageStockUninventory" resultType="com.ruoyi.stock.dto.StockUninventoryDto">
-        select su.*,
-               pm.model,
-               pm.unit,
-               p.product_name
+        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 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>
     </select>
-    <select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockInventoryExportData">
+    <select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockUnInventoryExportData">
         select su.*,
         pm.model,
         pm.unit,
@@ -70,4 +95,13 @@
         </if>
     </select>
 
+    <select id="selectPendingOutQuantity" resultType="java.math.BigDecimal">
+        SELECT IFNULL(SUM(sor.stock_out_num), 0)
+        FROM stock_out_record sor
+        WHERE sor.product_model_id = #{productModelId}
+          AND (sor.batch_no = #{batchNo} OR (#{batchNo} IS NULL AND sor.batch_no IS NULL))
+          AND sor.type = #{type}
+          AND sor.approval_status = 0
+    </select>
+
 </mapper>

--
Gitblit v1.9.3