From a1543bccf6b616d2db9d44b762826d58887172a6 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期二, 10 六月 2025 18:57:57 +0800
Subject: [PATCH] refactor(zhitan-system):优化获取节点ID列表的逻辑- 移除了过滤条件中的 parentNode 节点 ID 比较逻辑 - 现在只根据父节点 ID 是否非空来筛选 modelNodeList

---
 zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java |   33 ++++++++++++++++-----------------
 1 files changed, 16 insertions(+), 17 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 872c618..8c72234 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
@@ -37,7 +37,7 @@
 /**
  * description todu
  *
- * @author ZhiTan
+ * @author hmj
  * @date 2024-10-31 18:07
  */
 @Service
@@ -76,7 +76,7 @@
             final Double tongbiCount = tongbiMap.get(energyNo).stream().map(HomeEnergyStatisticsVO::getCount).mapToDouble(Double::doubleValue).sum();
             final Double huanbiCount = huanbiMap.get(energyNo).stream().map(HomeEnergyStatisticsVO::getCount).mapToDouble(Double::doubleValue).sum();
 
-            vo.setTonCount(format2Double(count));
+            vo.setTonCount(format2Double(vo.getCount() * Double.valueOf(vo.getCoefficient())));
             if (tongbiCount != 0) {
                 vo.setTongbi(format2Double((count - tongbiCount) / tongbiCount * 100));
             } else {
@@ -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);
@@ -378,7 +377,7 @@
         if (ObjectUtils.isEmpty(parentNode)) {
             return energyDataList;
         }
-        List<String> nodeIds = modelNodeList.stream().filter(x -> ObjectUtils.isNotEmpty(x.getParentId()) && parentNode.getNodeId().equals(x.getParentId()))
+        List<String> nodeIds = modelNodeList.stream().filter(x -> ObjectUtils.isNotEmpty(x.getParentId()) )
                 .map(ModelNode::getNodeId).collect(Collectors.toList());
         if (ObjectUtils.isEmpty(nodeIds)) {
             return energyDataList;

--
Gitblit v1.9.3