From ade9a56c088aa210fcaa3ebf213fdf908a8c1ca4 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 22 六月 2026 18:58:38 +0800
Subject: [PATCH] fix: 移除订单状态

---
 src/main/resources/mapper/quality/QualityInspectMapper.xml |   82 ++++++++++++++++++++++++++---------------
 1 files changed, 52 insertions(+), 30 deletions(-)

diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index 9260448..15a6f46 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -15,6 +15,9 @@
         qi.model,
         ifnull(pm.unit, qi.unit) as unit,
         qi.quantity,
+        qi.qualified_quantity,
+        qi.unqualified_quantity,
+        qi.pass_rate,
         qi.check_company,
         qi.check_result,
         qi.create_time,
@@ -83,7 +86,7 @@
         <if test="qualityInspect.approveUserIds != null and qualityInspect.approveUserIds != '' ">
             AND qi.approve_user_ids like concat('%',#{qualityInspect.approveUserIds},'%')
         </if>
-        ORDER BY qi.id DESC
+        ORDER BY qi.check_time DESC
     </select>
 
     <select id="qualityInspectExport" resultType="com.ruoyi.quality.pojo.QualityInspect">
@@ -127,7 +130,7 @@
                                                id           AS root_id,
                                                product_name AS root_name
                                         FROM product
-                                        WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+                                        WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
                                         UNION ALL
                                         SELECT p.id,
                                                p.parent_id,
@@ -137,7 +140,7 @@
                                         FROM product p
                                                  INNER JOIN product_tree pt ON p.parent_id = pt.id)
         SELECT CASE pt.root_name
-                   WHEN '鍘熸枡' THEN 0
+                   WHEN '鍘熸潗鏂�' THEN 0
                    WHEN '鍗婃垚鍝�' THEN 1
                    WHEN '鎴愬搧' THEN 2
                    END                     AS modelType,
@@ -159,12 +162,12 @@
         WITH RECURSIVE product_tree AS (SELECT id,
                                                product_name,
                                                CASE product_name
-                                                   WHEN '鍘熸枡' THEN 0
+                                                   WHEN '鍘熸潗鏂�' THEN 0
                                                    WHEN '鍗婃垚鍝�' THEN 1
                                                    WHEN '鎴愬搧' THEN 2
                                                    END AS modelType
                                         FROM product
-                                        WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+                                        WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
 
                                         UNION ALL
 
@@ -177,10 +180,14 @@
         SELECT base.modelType,
                COALESCE(SUM(qi.quantity), 0)                                                AS totalCount,
                COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END), 0) AS completedCount,
-               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END),
-                        0)                                                                  AS qualifiedCount,
-               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '涓嶅悎鏍�' THEN qi.quantity ELSE 0 END),
-                        0)                                                                  AS unqualifiedCount,
+               COALESCE(SUM(CASE
+                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
+                                                                          CASE WHEN qi.check_result = '鍚堟牸' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
+                                  ELSE 0 END), 0)                                  AS qualifiedCount,
+               COALESCE(SUM(CASE
+                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.unqualified_quantity,
+                                                                        CASE WHEN qi.check_result IN ('涓嶅悎鏍�', '閮ㄥ垎鍚堟牸') THEN IFNULL(qi.quantity, 0) ELSE 0 END)
+                                  ELSE 0 END), 0)                                  AS unqualifiedCount,
 
                IF(COALESCE(SUM(qi.quantity), 0) = 0, 0,
                   ROUND(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END)
@@ -188,7 +195,10 @@
                    )                                                                        AS completionRate,
 
                IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0,
-                  ROUND(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END)
+                  ROUND(SUM(CASE
+                                WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
+                                                                        CASE WHEN qi.check_result = '鍚堟牸' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
+                                ELSE 0 END)
                             / SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) * 100, 2)
                    )                                                                        AS passRate
 
@@ -215,12 +225,12 @@
             product_tree AS (SELECT id,
                                     product_name,
                                     CASE product_name
-                                        WHEN '鍘熸枡' THEN 0
+                                        WHEN '鍘熸潗鏂�' THEN 0
                                         WHEN '鍗婃垚鍝�' THEN 1
                                         WHEN '鎴愬搧' THEN 2
                                         END AS modelType
                              FROM product
-                             WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+                             WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
 
                              UNION ALL
 
@@ -249,10 +259,14 @@
 
                COALESCE(SUM(qi.quantity), 0)                                                AS totalCount,
                COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END), 0) AS completedCount,
-               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END),
-                        0)                                                                  AS qualifiedCount,
-               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '涓嶅悎鏍�' THEN qi.quantity ELSE 0 END),
-                        0)                                                                  AS unqualifiedCount,
+               COALESCE(SUM(CASE
+                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
+                                                                          CASE WHEN qi.check_result = '鍚堟牸' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
+                                  ELSE 0 END), 0)                                  AS qualifiedCount,
+               COALESCE(SUM(CASE
+                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.unqualified_quantity,
+                                                                        CASE WHEN qi.check_result IN ('涓嶅悎鏍�', '閮ㄥ垎鍚堟牸') THEN IFNULL(qi.quantity, 0) ELSE 0 END)
+                                  ELSE 0 END), 0)                                  AS unqualifiedCount,
 
             /* 瀹屾垚鐜� */
                IF(COALESCE(SUM(qi.quantity), 0) = 0, 0,
@@ -261,7 +275,10 @@
 
             /* 鍚堟牸鐜� */
                IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0,
-                  ROUND(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END)
+                  ROUND(SUM(CASE
+                                WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
+                                                                        CASE WHEN qi.check_result = '鍚堟牸' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
+                                ELSE 0 END)
                             / SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) * 100, 2)
                    )                                                                        AS passRate
 
@@ -283,12 +300,12 @@
             product_tree AS (SELECT id,
                                     product_name,
                                     CASE product_name
-                                        WHEN '鍘熸枡' THEN 0
+                                        WHEN '鍘熸潗鏂�' THEN 0
                                         WHEN '鍗婃垚鍝�' THEN 1
                                         WHEN '鎴愬搧' THEN 2
                                         END AS modelType
                              FROM product
-                             WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+                             WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
 
                              UNION ALL
 
@@ -306,11 +323,16 @@
 
                COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END), 0) AS completedCount,
 
-               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END),
-                        0)                                                                  AS qualifiedCount,
+               COALESCE(SUM(CASE
+                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
+                                                                          CASE WHEN qi.check_result = '鍚堟牸' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
+                                  ELSE 0 END), 0)                                  AS qualifiedCount,
 
                IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0,
-                  ROUND(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END)
+                  ROUND(SUM(CASE
+                                WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
+                                                                        CASE WHEN qi.check_result = '鍚堟牸' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
+                                ELSE 0 END)
                             / SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) * 100, 2)
                    )                                                                        AS passRate
 
@@ -333,7 +355,7 @@
                        WHERE month_num &lt; 12),
             product_tree AS (SELECT id, product_name AS root_name
                              FROM product
-                             WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+                             WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
 
                              UNION ALL
 
@@ -355,7 +377,7 @@
                    WHEN 12 THEN '鍗佷簩鏈�'
                    END                                                                      AS month,
 
-               COALESCE(SUM(CASE WHEN pt.root_name = '鍘熸枡' THEN qi.quantity ELSE 0 END), 0)  AS rawMaterialCount,
+               COALESCE(SUM(CASE WHEN pt.root_name = '鍘熸潗鏂�' THEN qi.quantity ELSE 0 END), 0)  AS rawMaterialCount,
 
                COALESCE(SUM(CASE WHEN pt.root_name = '鍗婃垚鍝�' THEN qi.quantity ELSE 0 END), 0) AS processCount,
 
@@ -380,7 +402,7 @@
             root_node AS (SELECT id, product_name
                           FROM product
                           WHERE (
-                                        (#{modelType} = 1 AND product_name = '鍘熸枡')
+                                    (#{modelType} = 1 AND product_name = '鍘熸潗鏂�')
                                         OR (#{modelType} = 2 AND product_name = '鍗婃垚鍝�')
                                         OR (#{modelType} = 3 AND product_name = '鎴愬搧')
                                     )),
@@ -392,11 +414,11 @@
                                     INNER JOIN target_ids ti ON p.parent_id = ti.id),
             parameter_counts AS (SELECT qip.parameter_item AS name,
                                         COUNT(*)           AS count
-                                 FROM quality_inspect_param qip
-                                          JOIN quality_inspect qi ON qip.inspect_id = qi.id
-                                 WHERE qi.inspect_state = 1
-                                   AND qi.product_id IN (SELECT id FROM target_ids)
-                                 GROUP BY qip.parameter_item),
+                                  FROM quality_inspect_param qip
+                                           JOIN quality_inspect qi ON qip.inspect_id = qi.id
+                                  WHERE qi.inspect_state = 1
+                                    AND qi.product_id IN (SELECT id FROM target_ids)
+                                  GROUP BY qip.parameter_item),
             ranked AS (SELECT name, count, ROW_NUMBER() OVER (ORDER BY count DESC) AS rn
                        FROM parameter_counts),
             total AS (SELECT SUM(count) AS total_count

--
Gitblit v1.9.3