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 |  131 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 113 insertions(+), 18 deletions(-)

diff --git a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
index f4fb205..ec00fa0 100644
--- a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
+++ b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
@@ -3,34 +3,129 @@
 <mapper namespace="com.ruoyi.quality.mapper.QualityUnqualifiedMapper">
     <select id="qualityUnqualifiedListPage" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
         SELECT
-        *
-        FROM quality_unqualified
+        qu.id,
+        qu.inspect_type,
+        qu.inspect_state,
+        qu.check_time,
+        qu.check_name,
+        qu.product_id,
+        qu.product_name,
+        qu.unit,
+        qu.quantity,
+        qu.defective_phenomena,
+        qu.deal_result,
+        qu.deal_name,
+        qu.deal_time,
+        qu.quarantine_lifted,
+        qu.model,
+        pm.material_code as materialCode,
+        CASE
+        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.model and qu.product_id = pm.product_id
         where
         1=1
-        <if test="qualityUnqualified.inspectType != null and qualityTestStandard.inspectType != '' ">
+        <if test="qualityUnqualified.inspectType != null ">
             AND inspect_type = #{qualityUnqualified.inspectType}
         </if>
-        <if test="qualityUnqualified.inspectState != null and qualityTestStandard.inspectState != '' ">
+        <if test="qualityUnqualified.inspectState != null ">
             AND inspect_state = #{qualityUnqualified.inspectState}
         </if>
-        <if test="qualityUnqualified.productName != null and qualityTestStandard.productName != '' ">
+        <if test="qualityUnqualified.productName != null and qualityUnqualified.productName != '' ">
+            AND product_name = #{qualityUnqualified.productName}
+        </if>
+        <if test="qualityUnqualified.entryDateStart != null and qualityUnqualified.entryDateStart != '' ">
+            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')
+        </if>
+    </select>
+
+    <select id="qualityUnqualifiedExport" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
+        SELECT
+        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">
+            AND inspect_type = #{qualityUnqualified.inspectType}
+        </if>
+        <if test="qualityUnqualified.inspectState != null">
+            AND inspect_state = #{qualityUnqualified.inspectState}
+        </if>
+        <if test="qualityUnqualified.productName != null and qualityUnqualified.productName != '' ">
             AND product_name = #{qualityUnqualified.productName}
         </if>
     </select>
-    <select id="qualityUnqualifiedExport" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
+
+    <select id="getUnqualified" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
         SELECT
-        *
-        FROM quality_unqualified
+            qu.id,
+            qu.inspect_type,
+            qu.inspect_state,
+            qu.check_time,
+            qu.check_name,
+            qu.product_id,
+            qu.product_name,
+            qu.unit,
+            qu.quantity,
+            qu.defective_phenomena,
+            qu.deal_result,
+            qu.deal_name,
+            qu.deal_time,
+            qi.process,
+            qu.model,
+            pm.material_code as materialCode,
+            CASE
+                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.model AND pm.product_id = qu.product_id
+        LEFT JOIN quality_inspect qi ON qu.inspect_id = qi.id
         where
-        1=1
-        <if test="qualityUnqualified.inspectType != null and qualityTestStandard.inspectType != '' ">
-            AND inspect_type = #{qualityUnqualified.inspectType}
-        </if>
-        <if test="qualityUnqualified.inspectState != null and qualityTestStandard.inspectState != '' ">
-            AND inspect_state = #{qualityUnqualified.inspectState}
-        </if>
-        <if test="qualityUnqualified.productName != null and qualityTestStandard.productName != '' ">
-            AND product_name = #{qualityUnqualified.productName}
-        </if>
+            1=1
+            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}
+    </select>
+
+    <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>
+
+    <select id="selectUnqualifiedWithProductionOrder" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
+        SELECT
+        po.id as productOrderId,
+        po.nps_no as productOrderNpsNo
+        FROM quality_unqualified qu
+        LEFT JOIN quality_inspect qi ON qu.inspect_id = qi.id
+        LEFT JOIN production_product_main ppm ON qi.product_main_id = ppm.id
+        LEFT JOIN product_work_order pwo ON ppm.work_order_id = pwo.id
+        LEFT JOIN product_order po ON pwo.product_order_id = po.id
+        WHERE po.id IS NOT NULL
+        GROUP BY po.id
     </select>
 </mapper>

--
Gitblit v1.9.3