gongchunyi
7 天以前 cf9a598bc0dc3692bf579c1042e5ef89c321acd1
fix: 检测项目分类更改为统计各类型完成数量而不是检测使用数量
已修改1个文件
22 ■■■■■ 文件已修改
src/main/resources/mapper/quality/QualityInspectMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
             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
             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>