From 4d99e718536ac77dff26dde8da7a59cdc9b52de8 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 20 五月 2026 10:13:57 +0800
Subject: [PATCH] fix:1.生产报工优化

---
 src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml |   49 +++++++++++++++++++++++++++----------------------
 1 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
index 7b48b5f..ec00fa0 100644
--- a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
+++ b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
@@ -17,16 +17,14 @@
         qu.deal_name,
         qu.deal_time,
         qu.quarantine_lifted,
+        qu.model,
+        pm.material_code as materialCode,
         CASE
-        WHEN qu.model = pm.id THEN pm.model
-        ELSE qu.model
-        END AS model,
-        CASE
-        WHEN qu.model = pm.id THEN true
+        WHEN qu.inspect_id is null THEN true
         ELSE false
         END AS method
         FROM quality_unqualified qu
-        LEFT JOIN product_model pm ON qu.model = pm.id
+        LEFT JOIN product_model pm ON qu.model = pm.model and qu.product_id = pm.product_id
         where
         1=1
         <if test="qualityUnqualified.inspectType != null ">
@@ -42,13 +40,16 @@
             AND check_time &gt;= DATE_FORMAT(#{qualityUnqualified.entryDateStart},'%Y-%m-%d')
         </if>
         <if test="qualityUnqualified.entryDateEnd != null and qualityUnqualified.entryDateEnd != '' ">
-            AND  check_time &lt;= DATE_FORMAT(#{qualityUnqualified.entryDateEnd},'%Y-%m-%d')
+            AND check_time &lt;= DATE_FORMAT(#{qualityUnqualified.entryDateEnd},'%Y-%m-%d')
         </if>
     </select>
+
     <select id="qualityUnqualifiedExport" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
         SELECT
-        *
-        FROM quality_unqualified
+        qu.*,
+        pm.material_code as materialCode
+        FROM quality_unqualified qu
+        LEFT JOIN product_model pm ON qu.model = pm.model
         where
         1=1
         <if test="qualityUnqualified.inspectType != null">
@@ -61,6 +62,7 @@
             AND product_name = #{qualityUnqualified.productName}
         </if>
     </select>
+
     <select id="getUnqualified" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
         SELECT
             qu.id,
@@ -77,36 +79,39 @@
             qu.deal_name,
             qu.deal_time,
             qi.process,
+            qu.model,
+            pm.material_code as materialCode,
             CASE
-                WHEN qu.model = pm.id THEN pm.model
-                ELSE qu.model
-                END AS model,
-            CASE
-                WHEN qu.model = pm.id THEN true
+                WHEN qu.inspect_id is null THEN true
                 ELSE false
                 END AS method
         FROM quality_unqualified qu
-                 LEFT JOIN product_model pm ON qu.model = pm.id
-                 LEFT JOIN quality_inspect qi ON qu.inspect_id = qi.id
+        LEFT JOIN product_model pm ON qu.model = pm.model AND pm.product_id = qu.product_id
+        LEFT JOIN quality_inspect qi ON qu.inspect_id = qi.id
         where
             1=1
-        and qu.id = #{id}
+            and qu.id = #{id}
     </select>
+
     <select id="getModelId" resultType="java.lang.Long">
         select pm.id
         from product_model pm
-        left join product p on pm.product_id=p.id
-        where pm.model=#{model}
-          and  p.product_name=#{productName}
+        left join product p on pm.product_id = p.id
+        where pm.model = #{model}
+          and p.product_name = #{productName}
     </select>
-    <select id="selectUnqualifiedByProcessNames" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
+
+    <select id="selectUnqualifiedByProductOrderAndProcessNames" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
         SELECT DISTINCT qu.*
         FROM quality_unqualified qu
         JOIN quality_inspect qi ON qu.inspect_id = qi.id
+        JOIN production_product_main ppm ON qi.product_main_id = ppm.id
+        JOIN product_work_order pwo ON ppm.work_order_id = pwo.id
         WHERE qi.process IN
         <foreach collection="processNames" item="processName" open="(" separator="," close=")">
             #{processName}
         </foreach>
+        AND pwo.product_order_id = #{productOrderId}
         AND qu.deal_result = '闅旂'
         AND qu.quarantine_lifted = false
     </select>
@@ -123,4 +128,4 @@
         WHERE po.id IS NOT NULL
         GROUP BY po.id
     </select>
-</mapper>
\ No newline at end of file
+</mapper>

--
Gitblit v1.9.3