From f4c288c55d08c04cd026508b358beebfcdce5fc2 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 22 五月 2026 09:29:09 +0800
Subject: [PATCH] feat(product): 添加产品型号向下复制功能并优化生产报工重量计算 - 在ProductController中新增downCopy接口实现产品型号批量复制功能 - 将ProductionProductMainDto中的bomInputQty字段重命名为inputWeight - 在ProductionProductMainServiceImpl中添加JSON解析逻辑支持从otherData中提取投入重量 - 新增resolveInputWeight、findParameterValue、findFieldValue等工具方法处理复杂参数解析 - 为ProductModelDto添加targetProductId字段用于指定复制目标 - 修复销售台账按调度员ID和姓名分组的SQL查询问题 - 优化库存服务中剩余数量计算的空值处理逻辑 - 完善生产投料数量为空时的默认值处理机制

---
 src/main/resources/mapper/lavorissue/LavorIssueMapper.xml |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 53 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml b/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml
index 88cf9aa..5d447e1 100644
--- a/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml
+++ b/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml
@@ -7,13 +7,33 @@
         t1.*,
                t2.staff_name as staffName,
                t2.staff_no as staffNo,
-               t3.dict_label as dictName
+               t3.dict_label as dictName,
+               t4.dict_label as dictTypeName
         from labor_issue t1
-        left join staff_join_leave_record t2 on t1.staff_id = t2.id
+        left join staff_on_job t2 on t1.staff_id = t2.id
         left join sys_dict_data t3 on t1.dict_id = t3.dict_value
+        left join sys_dict_data t4 on t1.dict_type = t4.dict_value
         <where>
+            <if test="req.season != null and req.season != ''">
+                and (t1.issue_date &gt;= #{req.startDate} and t1.issue_date &lt;= #{req.endDate})
+            </if>
+            <if test="req.issueDate != null">
+                and (t1.issue_date &gt;= #{req.startDate} and t1.issue_date &lt;= #{req.endDate})
+            </if>
             <if test="req.staffName != null and req.staffName != ''">
-                and t2.staff_name like ('%',#{req.staffName},'%')
+                and t2.staff_name like concat('%',#{req.staffName},'%')
+            </if>
+            <if test="req.status != null and req.status == 1">
+                and t1.adopted_date is not null
+            </if>
+            <if test="req.status != null and req.status == 2">
+                and t1.adopted_date is null
+            </if>
+            <if test="req.status != null and req.status == 3">
+                and t1.adopted_date is not null and t1.issue_date &lt; t1.adopted_date
+            </if>
+            <if test="req.status != null and req.status == 4">
+                and t1.adopted_date is null and t1.issue_date &lt; current_date()
             </if>
         </where>
     </select>
@@ -22,9 +42,37 @@
             t1.*,
             t2.staff_name as staffName,
             t2.staff_no as staffNo,
-            t3.dict_label as dictName
+            t3.dict_label as dictName,
+            t4.dict_label as dictTypeName
         from labor_issue t1
-                 left join staff_join_leave_record t2 on t1.staff_id = t2.id
+                 left join staff_on_job t2 on t1.staff_id = t2.id
                  left join sys_dict_data t3 on t1.dict_id = t3.dict_value
+                 left join sys_dict_data t4 on t1.dict_type = t4.dict_value
+        <where>
+            <if test="req.adoptedDate != null">
+                and t1.adopted_date is null
+            </if>
+            <if test="req.issueDate != null">
+                and (t1.issue_date &gt;= #{req.startDate} and t1.issue_date &lt;= #{req.endDate})
+            </if>
+            <if test="req.staffId != null">
+                and t1.staff_id = #{req.staffId}
+            </if>
+            <if test="req.season != null and req.season != ''">
+                and (t1.issue_date &gt;= #{req.startDate} and t1.issue_date &lt;= #{req.endDate})
+            </if>
+            <if test="req.status != null and req.status == 1">
+                and t1.adopted_date is not null
+            </if>
+            <if test="req.status != null and req.status == 2">
+                and t1.adopted_date is null
+            </if>
+            <if test="req.status != null and req.status == 3">
+                and t1.adopted_date is not null and t1.issue_date &lt; t1.adopted_date
+            </if>
+            <if test="req.status != null and req.status == 4">
+                and t1.adopted_date is null and t1.issue_date &lt; current_date()
+            </if>
+        </where>
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3