From 4ba399c0159d7dceff8f95beb05fb1a92dbda049 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 11 十月 2026 22:41:45 +0800
Subject: [PATCH] 天津-奇缘恒艺 录数据需求修改

---
 src/main/resources/mapper/quality/QualityInspectMapper.xml |  101 +++++++++++---------------------------------------
 1 files changed, 23 insertions(+), 78 deletions(-)

diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index ed01cad..3089c6e 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -95,11 +95,8 @@
     </delete>
 
     <select id="getInspectStatistics" resultType="com.ruoyi.quality.dto.QualityInspectStatDto">
-        SELECT CASE pp.product_name
-                   WHEN '鍘熸潗鏂�' THEN 0
-                   WHEN '鍗婃垚鍝�' THEN 1
-                   WHEN '鎴愬搧' THEN 2
-                   END                     AS modelType,
+        <!-- 妫�楠岀被鍨嬩笌浜у搧澶х被涓�涓�瀵瑰簲锛�0-鍘熸潗鏂� 1-鍗婃垚鍝� 2-鎴愬搧锛岀洿鎺ュ彇 quality_inspect.inspect_type 鍒嗘《 -->
+        SELECT t.modelType,
 
                IFNULL(SUM(qi.quantity), 0) AS totalCount,
 
@@ -108,17 +105,16 @@
                               ELSE 0
                    END), 0)                AS completedCount
 
-        FROM product p
-                 INNER JOIN product pp
-                            ON p.parent_id = pp.id
-                 LEFT JOIN product_model pm
-                           ON pm.product_id = p.id
+        FROM (SELECT 0 AS modelType
+              UNION ALL
+              SELECT 1
+              UNION ALL
+              SELECT 2) t
                  LEFT JOIN quality_inspect qi
-                           ON qi.product_model_id = pm.id
+                           ON qi.inspect_type = t.modelType
 
-        WHERE pp.product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
-
-        GROUP BY pp.product_name
+        GROUP BY t.modelType
+        ORDER BY t.modelType
 
     </select>
 
@@ -191,19 +187,8 @@
               SELECT 1
               UNION ALL
               SELECT 2) t
-                 LEFT JOIN product p
-                           ON 1 = 1
-                 LEFT JOIN product pp
-                           ON p.parent_id = pp.id
-                 LEFT JOIN product_model pm
-                           ON pm.product_id = p.id
                  LEFT JOIN quality_inspect qi
-                           ON qi.product_model_id = pm.id
-                               AND (
-                                  (pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0) OR
-                                  (pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1) OR
-                                  (pp.product_name = '鎴愬搧' AND t.modelType = 2)
-                                  )
+                           ON qi.inspect_type = t.modelType
 
         GROUP BY t.modelType
         ORDER BY t.modelType;
@@ -298,18 +283,10 @@
                )                             AS passRate
 
         FROM base b
-                 LEFT JOIN product p ON 1 = 1
-                 LEFT JOIN product pp ON p.parent_id = pp.id
-                 LEFT JOIN product_model pm ON pm.product_id = p.id
                  LEFT JOIN quality_inspect qi
-                           ON qi.product_model_id = pm.id
+                           ON qi.inspect_type = b.modelType
                                AND YEAR(qi.check_time) = #{year}
                                AND MONTH(qi.check_time) = b.month_num
-                               AND (
-                                  (pp.product_name = '鍘熸潗鏂�' AND b.modelType = 0)
-                                      OR (pp.product_name = '鍗婃垚鍝�' AND b.modelType = 1)
-                                      OR (pp.product_name = '鎴愬搧' AND b.modelType = 2)
-                                  )
 
         GROUP BY b.month_num, b.modelType
         ORDER BY b.month_num, b.modelType;
@@ -318,40 +295,16 @@
 
     <select id="getYearlyPassRateStatistics" resultType="com.ruoyi.quality.dto.QualityPassRateDto">
         SELECT t.modelType,
-               COALESCE(SUM(
-                                CASE
-                                    WHEN pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0 THEN qi.quantity
-                                    WHEN pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1 THEN qi.quantity
-                                    WHEN pp.product_name = '鎴愬搧' AND t.modelType = 2 THEN qi.quantity
-                                    ELSE 0
-                                    END
-                        ), 0) AS totalCount,
-               COALESCE(SUM(
-                                CASE
-                                    WHEN pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0 THEN qi.qualified_quantity
-                                    WHEN pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1 THEN qi.qualified_quantity
-                                    WHEN pp.product_name = '鎴愬搧' AND t.modelType = 2 THEN qi.qualified_quantity
-                                    ELSE 0
-                                    END
-                        ), 0) AS qualifiedCount,
-               COALESCE(SUM(
-                                CASE
-                                    WHEN pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0 THEN qi.unqualified_quantity
-                                    WHEN pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1 THEN qi.unqualified_quantity
-                                    WHEN pp.product_name = '鎴愬搧' AND t.modelType = 2 THEN qi.unqualified_quantity
-                                    ELSE 0
-                                    END
-                        ), 0) AS unqualifiedCount
+               COALESCE(SUM(qi.quantity), 0)             AS totalCount,
+               COALESCE(SUM(qi.qualified_quantity), 0)   AS qualifiedCount,
+               COALESCE(SUM(qi.unqualified_quantity), 0) AS unqualifiedCount
         FROM (SELECT 0 AS modelType
               UNION ALL
               SELECT 1
               UNION ALL
               SELECT 2) t
-                 LEFT JOIN product p ON 1 = 1
-                 LEFT JOIN product pp ON p.parent_id = pp.id
-                 LEFT JOIN product_model pm ON pm.product_id = p.id
                  LEFT JOIN quality_inspect qi
-                           ON qi.product_model_id = pm.id
+                           ON qi.inspect_type = t.modelType
                                AND YEAR(qi.check_time) = #{year}
                                AND qi.inspect_state = 1
         GROUP BY t.modelType
@@ -384,7 +337,7 @@
             /* 鍘熸潗鏂� */
                COALESCE(SUM(
                                 CASE
-                                    WHEN pp.product_name = '鍘熸潗鏂�'
+                                    WHEN qi.inspect_type = 0
                                         THEN qi.quantity
                                     ELSE 0
                                     END
@@ -393,7 +346,7 @@
             /* 鍗婃垚鍝� */
                COALESCE(SUM(
                                 CASE
-                                    WHEN pp.product_name = '鍗婃垚鍝�'
+                                    WHEN qi.inspect_type = 1
                                         THEN qi.quantity
                                     ELSE 0
                                     END
@@ -402,19 +355,15 @@
             /* 鎴愬搧 */
                COALESCE(SUM(
                                 CASE
-                                    WHEN pp.product_name = '鎴愬搧'
+                                    WHEN qi.inspect_type = 2
                                         THEN qi.quantity
                                     ELSE 0
                                     END
                         ), 0) AS outgoingCount
 
         FROM months m
-                 LEFT JOIN product p ON 1 = 1
-                 LEFT JOIN product pp ON p.parent_id = pp.id
-                 LEFT JOIN product_model pm ON pm.product_id = p.id
                  LEFT JOIN quality_inspect qi
-                           ON qi.product_model_id = pm.id
-                               AND qi.inspect_state = 1
+                           ON qi.inspect_state = 1
                                AND YEAR(qi.check_time) = #{year}
                                AND MONTH(qi.check_time) = m.month_num
 
@@ -429,15 +378,11 @@
                                   FROM quality_inspect_param qip
                                            JOIN quality_inspect qi
                                                 ON qip.inspect_id = qi.id
-                                           JOIN product p
-                                                ON qi.product_id = p.id
-                                           JOIN product pp
-                                                ON p.parent_id = pp.id
                                   WHERE qi.inspect_state = 1
                                     AND (
-                                      (#{modelType} = 1 AND pp.product_name = '鍘熸潗鏂�')
-                                          OR (#{modelType} = 2 AND pp.product_name = '鍗婃垚鍝�')
-                                          OR (#{modelType} = 3 AND pp.product_name = '鎴愬搧')
+                                      (#{modelType} = 1 AND qi.inspect_type = 0)
+                                          OR (#{modelType} = 2 AND qi.inspect_type = 1)
+                                          OR (#{modelType} = 3 AND qi.inspect_type = 2)
                                       )
                                   GROUP BY qip.parameter_item),
              ranked AS (SELECT name,

--
Gitblit v1.9.3