From d2878f23683c22c39ac7ec3e0807ebc22e662240 Mon Sep 17 00:00:00 2001
From: VVT789 <67089238+VVT789@users.noreply.github.com>
Date: 星期三, 26 三月 2025 23:50:44 +0800
Subject: [PATCH] Merge pull request #37 from Andy-Yin/zhangjw
---
zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java | 2
zhitan-system/src/main/java/com/zhitan/carbonemission/service/impl/CarbonEmissionServiceImpl.java | 66 +++++++++++++++++++++++----------
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java | 2
3 files changed, 48 insertions(+), 22 deletions(-)
diff --git a/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java
index 6b8fb0d..edc291a 100644
--- a/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java
@@ -49,7 +49,7 @@
String timeType = dto.getTimeType();
String dataTime = dto.getDataTime();
- Date beginTime = DateTimeUtil.getTypeTime(timeType, dataTime);
+ Date beginTime = DateTimeUtil.getTime(timeType, dataTime);
DateTime endTime = null;
// 鑾峰彇鑺傜偣淇℃伅
diff --git a/zhitan-system/src/main/java/com/zhitan/carbonemission/service/impl/CarbonEmissionServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/carbonemission/service/impl/CarbonEmissionServiceImpl.java
index c9bb77d..8cd2c33 100644
--- a/zhitan-system/src/main/java/com/zhitan/carbonemission/service/impl/CarbonEmissionServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/carbonemission/service/impl/CarbonEmissionServiceImpl.java
@@ -88,8 +88,8 @@
// 璁$畻姣忕鑳芥簮鐨勫綋鍓嶅�煎拰鍘诲勾鐨勫��
for (String s : energyType) {
- final double value = getValues(energyMap, upCarbonEmission,energyType);
- final double lastYearValueNum = getValues(energyMap, upLastCarbonEmission,energyType);
+ final double value = getValues(energyMap, upCarbonEmission, s);
+ final double lastYearValueNum = getValues(energyMap, upLastCarbonEmission, s);
allValue += value;
allLastValue += lastYearValueNum;
final CarbonEmissionRankVO carbonEmissionRankVO = new CarbonEmissionRankVO();
@@ -105,7 +105,7 @@
upData.add(carbonEmissionRankVOAll);
// 璁$畻涓嬫柟鐨勭⒊鎺掓斁骞舵帓搴�
- List<CarbonEmissionRankVO> carbonEmissionRankVOS = calculateDownCarbonEmission(beginTime, endTime, carbonEmissionDTO, energyMap,sysEnergies);
+ List<CarbonEmissionRankVO> carbonEmissionRankVOS = calculateDownCarbonEmission(beginTime, endTime, carbonEmissionDTO, energyMap, sysEnergies);
carbonEmissionRankVOS.sort(Comparator.comparing(CarbonEmissionRankVO::getAllValue).reversed());
stringObjectMap.put("down", carbonEmissionRankVOS);
stringObjectMap.put("upData", upData);
@@ -115,7 +115,7 @@
// 璁$畻鍚屾瘮澧為暱鐜�
private double calculateYOY(double current, double last) {
- if(last !=0.0) {
+ if (last != 0.0) {
return (current - last) / last * 100;
}
return 0;
@@ -123,7 +123,7 @@
}
// 璁$畻涓嬫柟鐨勭⒊鎺掓斁
- private List<CarbonEmissionRankVO> calculateDownCarbonEmission(Date beginTime, Date endTime, CarbonEmissionDTO carbonEmissionDTO, Map<String, SysEnergy> energyMap,List<SysEnergy> sysEnergies) {
+ private List<CarbonEmissionRankVO> calculateDownCarbonEmission(Date beginTime, Date endTime, CarbonEmissionDTO carbonEmissionDTO, Map<String, SysEnergy> energyMap, List<SysEnergy> sysEnergies) {
List<CarbonEmission> downCarbonEmission = dataItemMapper.getDownCarbonEmission(beginTime, endTime, carbonEmissionDTO.getTimeType(), carbonEmissionDTO.getNodeId());
List<CarbonEmissionRankVO> carbonEmissionRankVOS = new ArrayList<>();
@@ -144,8 +144,8 @@
throw new RuntimeException("鑾峰彇纰虫帓鏀捐浆鎹㈢巼鏃跺嚭閿�: 绯荤粺鑳芥簮鏁版嵁涓笉瀛樺湪" + s + "鑳芥簮绫诲瀷");
}
double value = v.stream().filter(ec -> ec.getEnergyId().equals(s))
- .mapToDouble(CarbonEmission::getValue)
- .sum();
+ .mapToDouble(CarbonEmission::getValue)
+ .sum();
double calculatedValue = Double.parseDouble(df.format(sysEnergy.getCoefficient().doubleValue() * value));
switch (s) {
@@ -225,12 +225,12 @@
// 涓婁竴鏃堕棿娈电殑纰虫帓鏀炬暟鎹�
final List<CarbonEmission> lastCarbonEmissions = lastCollect.get(XAxis[i]);
// 鎬诲��
- double totalValue = getValues(energyMap, carbonEmissions,energyType);
+ double totalValue = getValues(energyMap, carbonEmissions, energyType);
// 涓婁竴鏃堕棿娈电殑鎬诲��
- double totalLastValue = getValues(energyMap, lastCarbonEmissions,energyType);
+ double totalLastValue = getValues(energyMap, lastCarbonEmissions, energyType);
// 鍓嶄竴娆$殑鎬诲��
- double totalFrontValue = (i == 0) ? 0.0 : getValues(energyMap, collect.get(XAxis[i - 1]),energyType);
- final carbonEmissionYQVO carbonEmissionYQVO = new carbonEmissionYQVO(XAxis[i] , String.format("%.2f", totalValue) ,String.format("%.2f", calculateYOY(totalValue, totalLastValue)) , String.format("%.2f", calculateYOY(totalValue, totalFrontValue)));
+ double totalFrontValue = (i == 0) ? 0.0 : getValues(energyMap, collect.get(XAxis[i - 1]), energyType);
+ final carbonEmissionYQVO carbonEmissionYQVO = new carbonEmissionYQVO(XAxis[i], String.format("%.2f", totalValue), String.format("%.2f", calculateYOY(totalValue, totalLastValue)), String.format("%.2f", calculateYOY(totalValue, totalFrontValue)));
carbonEmissionYQVOS.add(carbonEmissionYQVO);
}
return carbonEmissionYQVOS;
@@ -253,35 +253,61 @@
}
- public static double getValues(Map<String, SysEnergy> energyMap, List<CarbonEmission> carbonEmissions,List<String> energyType) {
+ public static double getValues(Map<String, SysEnergy> energyMap, List<CarbonEmission> carbonEmissions, List<String> energyTypeList) {
if (CollectionUtils.isEmpty(carbonEmissions)) {
return 0.0;
}
-
// 鍒濆鍖栨�诲��
double allValue = 0.0;
-
// 鎸夎兘婧怚D鍒嗙粍
final Map<String, List<CarbonEmission>> energyValueMap = carbonEmissions.stream()
.collect(Collectors.groupingBy(CarbonEmission::getEnergyId));
-// final List<String> energyType = sysEnergies.stream().map(SysEnergy::getEnersno).collect(Collectors.toList());
-// 璁$畻姣忕鑳芥簮鐨勫綋鍓嶅��
- for (String s : energyType) {
- SysEnergy sysEnergy = energyMap.get(s);
+
+ for (String energyType : energyTypeList) {
+ // 璁$畻姣忕鑳芥簮鐨勫綋鍓嶅��
+ SysEnergy sysEnergy = energyMap.get(energyType);
// 纭繚鑳芥簮瀛樺湪涓旂郴鏁颁笉涓虹┖
if (sysEnergy == null || sysEnergy.getCoefficient() == null) {
- throw new RuntimeException("鑾峰彇纰虫帓鏀捐浆鎹㈢巼鏃跺嚭閿�: 绯荤粺鑳芥簮鏁版嵁涓笉瀛樺湪鎴栫郴鏁颁负绌�" + s + "鑳芥簮绫诲瀷");
+ throw new RuntimeException("鑾峰彇纰虫帓鏀捐浆鎹㈢巼鏃跺嚭閿�: 绯荤粺鑳芥簮鏁版嵁涓笉瀛樺湪鎴栫郴鏁颁负绌�" + energyType + "鑳芥簮绫诲瀷");
}
// 鑾峰彇瀵瑰簲鑳芥簮鐨勫��
- double value = energyValueMap.getOrDefault(s, Collections.emptyList()).stream()
+ double value = energyValueMap.getOrDefault(energyType, Collections.emptyList()).stream()
.mapToDouble(CarbonEmission::getValue)
.sum();
// 鐩存帴璁$畻鎬诲�硷紝閬垮厤鍐椾綑鐨勮浆鎹�
allValue += sysEnergy.getCoefficient().doubleValue() * value;
}
+ // 鏍煎紡鍖栨渶缁堢粨鏋�
+ return Double.parseDouble(new DecimalFormat("#.00").format(allValue));
+ }
+
+ public static double getValues(Map<String, SysEnergy> energyMap, List<CarbonEmission> carbonEmissions, String energyType) {
+ if (CollectionUtils.isEmpty(carbonEmissions)) {
+ return 0.0;
+ }
+ // 鍒濆鍖栨�诲��
+ double allValue = 0.0;
+ // 鎸夎兘婧怚D鍒嗙粍
+ final Map<String, List<CarbonEmission>> energyValueMap = carbonEmissions.stream()
+ .collect(Collectors.groupingBy(CarbonEmission::getEnergyId));
+ // 璁$畻姣忕鑳芥簮鐨勫綋鍓嶅��
+ SysEnergy sysEnergy = energyMap.get(energyType);
+
+ // 纭繚鑳芥簮瀛樺湪涓旂郴鏁颁笉涓虹┖
+ if (sysEnergy == null || sysEnergy.getCoefficient() == null) {
+ throw new RuntimeException("鑾峰彇纰虫帓鏀捐浆鎹㈢巼鏃跺嚭閿�: 绯荤粺鑳芥簮鏁版嵁涓笉瀛樺湪鎴栫郴鏁颁负绌�" + energyType + "鑳芥簮绫诲瀷");
+ }
+
+ // 鑾峰彇瀵瑰簲鑳芥簮鐨勫��
+ double value = energyValueMap.getOrDefault(energyType, Collections.emptyList()).stream()
+ .mapToDouble(CarbonEmission::getValue)
+ .sum();
+
+ // 鐩存帴璁$畻鎬诲�硷紝閬垮厤鍐椾綑鐨勮浆鎹�
+ allValue += sysEnergy.getCoefficient().doubleValue() * value;
// 鏍煎紡鍖栨渶缁堢粨鏋�
return Double.parseDouble(new DecimalFormat("#.00").format(allValue));
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 a785a08..d6079dc 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
@@ -378,7 +378,7 @@
if (ObjectUtils.isEmpty(parentNode)) {
return energyDataList;
}
- List<String> nodeIds = modelNodeList.stream().filter(x -> ObjectUtils.isNotEmpty(x.getParentId()))
+ List<String> nodeIds = modelNodeList.stream().filter(x -> ObjectUtils.isNotEmpty(x.getParentId()) && parentNode.getNodeId().equals(x.getParentId()))
.map(ModelNode::getNodeId).collect(Collectors.toList());
if (ObjectUtils.isEmpty(nodeIds)) {
return energyDataList;
--
Gitblit v1.9.3