From 64cac20b59a9cab64c472ac1749be4712395dd22 Mon Sep 17 00:00:00 2001
From: VVT789 <sdxt_0802@163.com>
Date: 星期二, 08 四月 2025 11:18:59 +0800
Subject: [PATCH] Update HomePageServiceImpl.java

---
 zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java |   27 +++++++++++++--------------
 1 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java
index d6079dc..86ce5c5 100644
--- a/zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java
@@ -247,12 +247,8 @@
         List<String> xdataList = new ArrayList<>();
         // 鏌ヨ鎵�鏈夎兘婧愮被鍨�
         List<SysEnergy> sysEnergies = sysEnergyMapper.selectSysEnergyList(new SysEnergy());
-        final Map<String, Object> energyCollectMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno, SysEnergy::getCoefficient));
-        final Map<String, String> energyNameMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno, SysEnergy::getEnername));
-
 
         Date queryTime = new Date();
-//        Date queryTime = DateUtil.parseDateTime("2023-03-28 00:00:00");
         Date beginTime;
         Date endTime;
         String shixuTimeType;
@@ -294,22 +290,30 @@
                 .filter(l -> StringUtils.isNotEmpty(l.getEnergyId())).collect(Collectors.groupingBy(
                         EnergyIndex::getEnergyId, Collectors.mapping(EnergyIndex::getIndexId, Collectors.toList())
                 ));
+
+        List<String> lengList = new ArrayList<>();
+
         while (!beginTime.after(endTime)) {
             final String currentTime = DateUtil.format(beginTime, timeFormat);
             xdataList.add(currentTime);
             final List<DataItem> dataItems = dataItemMap.get(currentTime);
             List<Double> energyCount = new ArrayList<>();
-            energyTypeMap.forEach((energyType, IndexIdList) -> {
+
+            sysEnergies.forEach(x -> {
+                if(!lengList.contains(x.getEnername())){
+                    lengList.add(x.getEnername());
+                }
+                List<String> indexIdList = energyTypeMap.get(x.getEnersno());
                 double sum;
-                if (null == dataItems) {
+                if (null == dataItems || CollectionUtils.isEmpty(indexIdList)) {
                     sum = 0;
                 } else {
-                    sum = dataItems.stream().filter(li -> IndexIdList.contains(li.getIndexId())).mapToDouble(DataItem::getValue).sum();
+                    sum = dataItems.stream().filter(li -> indexIdList.contains(li.getIndexId())).mapToDouble(DataItem::getValue).sum();
                 }
-                final BigDecimal coefficient = (BigDecimal) energyCollectMap.get(energyType);
-                energyCount.add(sum * coefficient.doubleValue());
+                energyCount.add(sum * x.getCoefficient().doubleValue());
             });
             ydataList.add(energyCount);
+
             switch (TimeType.valueOf(timeType)) {
                 case DAY:
                     beginTime = DateUtil.offsetHour(beginTime, 1);
@@ -324,11 +328,6 @@
         }
         vo.setXdata(xdataList.toArray(new String[0]));
         Double[][] array = new Double[sysEnergies.size()][xdataList.size()];
-        List<String> lengList = new ArrayList<>();
-        energyCollectMap.keySet().forEach(key -> {
-            final String name = energyNameMap.get(key);
-            lengList.add(name);
-        });
 
         for (int i = 0; i < ydataList.size(); i++) {
             final List<Double> doubleList = ydataList.get(i);

--
Gitblit v1.9.3