From 4c42defa0b73cfba53f15e2cb3a09ecf3a231c3a Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 20 八月 2026 12:02:38 +0800
Subject: [PATCH] 加盟商看板电站收入占比接口增加 name+value 组合标签字段

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 8c81b73..18b830f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -309,13 +309,25 @@
             BigDecimal amountB = b == null || b.getPaymentAmount() == null ? BigDecimal.ZERO : b.getPaymentAmount();
             return amountB.compareTo(amountA);
         });
+        // 总额用于计算各站点占比,name+value 为服务端拼好的饼图标签文本(站点名 xx.x%)
+        BigDecimal total = BigDecimal.ZERO;
+        for (SixCircleDto dto : circleDtos) {
+            if (dto != null && dto.getPaymentAmount() != null) {
+                total = total.add(dto.getPaymentAmount());
+            }
+        }
         for (SixCircleDto dto : circleDtos) {
             if (dto == null || dto.getSiteId() == null || dto.getPaymentAmount() == null) {
                 continue;
             }
             Map<String, Object> item = new LinkedHashMap<>();
-            item.put("name", siteNameMap.getOrDefault(dto.getSiteId(), "电站" + dto.getSiteId()));
+            String name = siteNameMap.getOrDefault(dto.getSiteId(), "电站" + dto.getSiteId());
+            item.put("name", name);
             item.put("value", dto.getPaymentAmount());
+            String percent = total.compareTo(BigDecimal.ZERO) > 0
+                    ? dto.getPaymentAmount().multiply(BigDecimal.valueOf(100)).divide(total, 1, RoundingMode.HALF_UP).toPlainString()
+                    : "0.0";
+            item.put("name+value", name + " " + percent + "%");
             incomePie.add(item);
         }
         return incomePie;

--
Gitblit v1.7.1