From 75f043dfa6660716364e66ee0b3cf99f44255686 Mon Sep 17 00:00:00 2001 From: DYL0109 <dn18191638832@163.com> Date: 星期三, 16 四月 2025 19:20:36 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/develop1.0' into dyl_dev --- zhitan-system/src/main/java/com/zhitan/carbonemission/service/impl/CarbonEmissionServiceImpl.java | 66 +++++++++++++++++++++++---------- 1 files changed, 46 insertions(+), 20 deletions(-) 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)); -- Gitblit v1.9.3