From 724f8ec3bbcf9da50f304f57d8bc9a60ad75ad0a Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期三, 27 八月 2025 18:29:32 +0800
Subject: [PATCH] 修改计算百分比位置

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml |   75 ++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 46 deletions(-)

diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
index b32141a..b407bb0 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -78,51 +78,34 @@
         ${ew.customSqlSegment}
     </select>
     <select id="echartsList" resultType="org.jeecg.modules.eam.dto.EchartsDto">
-        SELECT COUNT
-               ( t.technology_status ) AS "value",
-               item.item_text AS "name",
-               item.item_value AS "code",
-               ( SELECT COUNT ( a.id ) FROM eam_equipment_extend a WHERE a.technology_status IS NOT NULL
-                                                <if test="ids != null and ids != ''">
-                                                    AND a.id IN
-                                                    <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
-                                                        #{id}
-                                                    </foreach>
-                                                </if>
-                                                                   ) AS "total",
-               concat (
-                       round(
-                               ISNULL (
-                                       COUNT ( t.id ) / ( SELECT COUNT ( a.id ) FROM eam_equipment_extend a WHERE a.technology_status IS NOT NULL
-                                                    <if test="ids != null and ids != ''">
-                                                        AND a.id IN
-                                                        <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
-                                                            #{id}
-                                                        </foreach>
-                                                    </if>),
-                                       0
-                               ) * 100,
-                               2
-                       ),
-                       '%'
-               ) AS "percentage"
-        FROM
-            sys_dict c
-                LEFT JOIN sys_dict_item item ON c.id = item.dict_id
-                LEFT JOIN eam_equipment_extend t ON t.technology_status = item.item_value
-                <if test="ids != null and ids != ''">
-                    AND t.id IN
-                    <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
-                        #{id}
-                    </foreach>
-                </if>
-        WHERE
-            c.dict_code = 'equipment_technology_status'
-        GROUP BY
-            item.item_text,
-            t.technology_status,
-            item.item_value
-        ORDER BY
-            item.item_value
+        WITH TotalCount AS (
+        SELECT COUNT(a.id) AS total_count
+        FROM eam_equipment_extend a
+        WHERE a.technology_status IS NOT NULL
+        <if test="ids != null and ids != ''">
+            AND a.id IN
+            <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        )
+        SELECT
+        COUNT(t.technology_status) AS "value",
+        item.item_text AS "name",
+        item.item_value AS "code",
+        tc.total_count AS "total"
+        FROM sys_dict c
+        LEFT JOIN sys_dict_item item ON c.id = item.dict_id
+        LEFT JOIN eam_equipment_extend t ON t.technology_status = item.item_value
+        <if test="ids != null and ids != ''">
+            AND t.id IN
+            <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        CROSS JOIN TotalCount tc
+        WHERE c.dict_code = 'equipment_technology_status'
+        GROUP BY item.item_text, item.item_value, tc.total_count
+        ORDER BY item.item_value
     </select>
 </mapper>

--
Gitblit v1.9.3