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 | 31 +++++++++++++++---------------- 1 files changed, 15 insertions(+), 16 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 28d54c7..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 @@ -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