From cf9a598bc0dc3692bf579c1042e5ef89c321acd1 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 21 一月 2026 15:41:41 +0800
Subject: [PATCH] fix: 检测项目分类更改为统计各类型完成数量而不是检测使用数量

---
 src/main/resources/mapper/quality/QualityInspectMapper.xml |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index ba7e8b8..8058455 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -312,29 +312,35 @@
     </select>
 
     <select id="getTopParameters" resultType="com.ruoyi.quality.dto.QualityParameterStatDto">
-        WITH 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
+        WITH parameter_counts AS (SELECT qip.parameter_item            AS name,
+                                         SUM(COALESCE(qi.quantity, 0)) AS count
+                                  FROM quality_inspect qi
+                                           JOIN quality_inspect_param qip ON qip.inspect_id = qi.id
                                   WHERE qi.inspect_type = #{inspectType}
                                   GROUP BY qip.parameter_item),
-             total AS (SELECT SUM(count) as total_count
-                       FROM parameter_counts),
-             ranked AS (SELECT name, count, ROW_NUMBER() OVER (ORDER BY count DESC) as rn
-                        FROM parameter_counts)
+             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
+                       FROM parameter_counts)
         SELECT name,
                count,
                CASE
                    WHEN (SELECT total_count FROM total) = 0 THEN 0
                    ELSE ROUND(count / (SELECT total_count FROM total) * 100, 2)
-                   END as percentage
+                   END AS percentage
         FROM (SELECT name, count, rn
               FROM ranked
               WHERE rn &lt;= 4
               UNION ALL
-              SELECT '鍏朵粬' as name, SUM(count) as count, 5 as rn
+              SELECT '鍏朵粬妫�娴�' AS name,
+                     SUM(count) AS count,
+                     5          AS rn
               FROM ranked
               WHERE rn &gt; 4
-              HAVING count &gt; 0) sub
+              HAVING SUM(count) &gt; 0) t
         ORDER BY rn
     </select>
+
 </mapper>

--
Gitblit v1.9.3