From c0a9f70dc2192da1f5e7c9d5a4d02c258ef9b003 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 08 四月 2026 17:18:20 +0800
Subject: [PATCH] feat(product-structure): 新增按父节点筛选的产品结构查询接口

---
 src/main/resources/mapper/production/ProductionProductMainMapper.xml |   31 ++++++++++++++++++++++++++++---
 1 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index 1cfc0d8..13be81d 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -18,6 +18,7 @@
         pwo.status as workOrderStatus,
         u.nick_name as nickName,
         p.product_name as productName,
+        pp.name as process,
         pm.model as productModelName,
         ppo.quantity,
         ppo.scrap_qty,
@@ -26,6 +27,8 @@
         from
         production_product_main ppm
         left join product_work_order pwo on pwo.id = ppm.work_order_id
+        left join product_process_route_item ppri on ppri.id = pwo.product_process_route_item_id
+        left join product_process pp on pp.id = ppri.process_id
         left join product_order po on po.id = pwo.product_order_id
         left join production_product_output ppo on ppm.id = ppo.product_main_id
         left join product_model pm on pm.id = ppo.product_model_id
@@ -44,6 +47,9 @@
             </if>
             <if test="c.status != null and c.status != ''">
                 and ppm.status = #{c.status}
+            </if>
+            <if test="c.auditStatus != null">
+                and ppm.audit_status = #{c.auditStatus}
             </if>
         </where>
         order by ppm.id
@@ -68,10 +74,16 @@
         slpa.process,
         ppo.quantity,
         slpa.work_hours,
-        slpa.work_hours * slpa.finished_num AS wages
+        slpa.work_hours * slpa.finished_num AS wages,
+        ppm.device_name,
+        ppm.device_id,
+        IFNULL(
+        TIMESTAMPDIFF(MINUTE, ppm.start_time, ppm.end_time),
+        0
+        ) AS work_minutes
         FROM
         production_product_main ppm
-        LEFT JOIN sales_ledger_production_accounting slpa ON slpa.sales_ledger_work_id = ppm.id
+        LEFT JOIN sales_ledger_production_accounting slpa ON slpa.product_main_id = ppm.id
         LEFT JOIN production_product_output ppo ON ppm.id = ppo.product_main_id
         LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id
         LEFT JOIN product_order po ON po.id = pwo.product_order_id
@@ -79,7 +91,7 @@
         LEFT JOIN product_model pm ON po.product_model_id = pm.id
         LEFT JOIN product p ON p.id = pm.product_id
         LEFT JOIN sales_ledger sl ON po.sales_ledger_id = sl.id
-        <where>
+        where ppm.audit_status = 1
             <if test="ew.schedulingUserName != null and ew.schedulingUserName !=''">
                 and slpa.scheduling_user_name = #{ew.schedulingUserName}
             </if>
@@ -91,6 +103,19 @@
                 and slpa.scheduling_date >= #{ew.entryDateStart}
                 and slpa.scheduling_date &lt; date_add(#{ew.entryDateEnd}, INTERVAL 1 DAY)
             </if>
+    </select>
+    <select id="listMain" resultType="java.lang.Long">
+        SELECT ppm.id FROM production_product_main ppm
+            left join product_work_order pwo on pwo.id = ppm.work_order_id
+                  left join product_order po on po.id = pwo.product_order_id
+                  left join sales_ledger sl on sl.id = po.sales_ledger_id
+        <where>
+            <if test="idList != null and idList.size() > 0">
+                and sl.id in
+                <foreach item="id" collection="idList" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
         </where>
     </select>
 

--
Gitblit v1.9.3