diff --git a/mh-admin/src/main/java/com/mh/web/controller/energy/SysEnergyConsumptionController.java b/mh-admin/src/main/java/com/mh/web/controller/energy/SysEnergyConsumptionController.java
index 463ed63..02e6a95 100644
--- a/mh-admin/src/main/java/com/mh/web/controller/energy/SysEnergyConsumptionController.java
+++ b/mh-admin/src/main/java/com/mh/web/controller/energy/SysEnergyConsumptionController.java
@@ -26,7 +26,7 @@ public class SysEnergyConsumptionController extends BaseController {
private IEnergyService energyService;
/**
- * 获取系统能耗分析
+ * 获取系统瞬时能耗分析
* @param vo
* @return
*/
diff --git a/mh-system/src/main/java/com/mh/system/mapper/energy/EnergyMapper.java b/mh-system/src/main/java/com/mh/system/mapper/energy/EnergyMapper.java
index d81e49b..1dd0320 100644
--- a/mh-system/src/main/java/com/mh/system/mapper/energy/EnergyMapper.java
+++ b/mh-system/src/main/java/com/mh/system/mapper/energy/EnergyMapper.java
@@ -26,35 +26,95 @@ public interface EnergyMapper {
* @return
*/
@Select("")
List queryManyTable(@Param("startTime") String startTime,
@Param("endTime") String endTime,
@@ -72,20 +132,52 @@ public interface EnergyMapper {
* @return
*/
@Select("")
List queryOneTable(@Param("startTime") String startTime,
@Param("endTime") String endTime,
diff --git a/mh-system/src/main/java/com/mh/system/service/energy/impl/EnergyServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/energy/impl/EnergyServiceImpl.java
index 1545e4d..8c8ad14 100644
--- a/mh-system/src/main/java/com/mh/system/service/energy/impl/EnergyServiceImpl.java
+++ b/mh-system/src/main/java/com/mh/system/service/energy/impl/EnergyServiceImpl.java
@@ -13,6 +13,8 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
@@ -157,7 +159,7 @@ public class EnergyServiceImpl implements IEnergyService {
consumptionAnalyzeEntities = energyMapper.queryManyTable(vo.getStartTime(), vo.getEndTime(), lastTableName.get(), curTableName.get(), getTimeLen(vo.getTimeType()), null);
}
}
- if (null == consumptionAnalyzeEntities || consumptionAnalyzeEntities.size() == 0) {
+ if (null == consumptionAnalyzeEntities || consumptionAnalyzeEntities.isEmpty()) {
latch.countDown();
return null;
}
@@ -232,24 +234,9 @@ public class EnergyServiceImpl implements IEnergyService {
.collect(Collectors.groupingBy(ConsumptionAnalyze::getDeviceType, HashMap::new, Collectors
.collectingAndThen(Collectors.toList(),
list -> list.stream().sorted(Comparator.comparing(ConsumptionAnalyze::getTimeStr)).collect(Collectors.toList()))));
-// List meterLineData = new ArrayList<>();
-// List coldLineData = new ArrayList<>();
-// List copLineData = new ArrayList<>();
List efrColdLineData = new ArrayList<>();
List efrMeterLineData = new ArrayList<>();
for (Map.Entry> nmap : collectLine.entrySet()) {
-// // 获取电表的值
-// if (nmap.getKey().equalsIgnoreCase("meter")) {
-// meterLineData = nmap.getValue();
-// }
-// // 获取冷量计的值
-// if (nmap.getKey().equalsIgnoreCase("cloud")) {
-// coldLineData = nmap.getValue();
-// }
-// // 获取cop的值
-// if (nmap.getKey().equalsIgnoreCase("cop")) {
-// copLineData = nmap.getValue();
-// }
// 获取瞬时冷量计的值
if (nmap.getKey().equalsIgnoreCase("efrCloud")) {
efrColdLineData = nmap.getValue();
@@ -262,12 +249,7 @@ public class EnergyServiceImpl implements IEnergyService {
String[] lineTimeStrArr = efrMeterLineData.stream()
.map(ConsumptionAnalyze::getTimeStr)
.toArray(String[]::new);
-// String[] lineMeterArr = meterLineData.stream()
-// .map(ConsumptionAnalyzeEntity::getCurValue)
-// .toArray(String[]::new);
String[] lineInstantaneousMeterArr = getArr(efrMeterLineData, lineTimeStrArr);
-// String[] lineColdArr = getArr(coldLineData, lineTimeStrArr);
-// String[] lineCopArr = getArr(copLineData, lineTimeStrArr);
String[] lineEfrColdArr = getArr(efrColdLineData, lineTimeStrArr);
String[] lineCopArr = new String[efrMeterLineData.size()];
// 计算瞬时COP=制冷量/耗电量
@@ -285,8 +267,6 @@ public class EnergyServiceImpl implements IEnergyService {
// 折现图数据
Map map = new HashMap<>();
map.put("lineTimeStrArr", lineTimeStrArr);
-// map.put("lineMeterArr", lineMeterArr);
-// map.put("lineColdArr", lineColdArr);
map.put("lineCopArr", lineCopArr);
map.put("lineInstantaneousColdArr", lineEfrColdArr);
map.put("lineInstantaneousMeterArr", lineInstantaneousMeterArr);
@@ -370,9 +350,10 @@ public class EnergyServiceImpl implements IEnergyService {
String endTime = vo.getEndTime();
String deviceType = vo.getParamType();
if ("cop".equalsIgnoreCase(vo.getParamType())) {
- lastTableName = "data_min_cop";
- curTableName = "data_min_cop";
- deviceType = "system";
+ return calcCopYoyData(vo);
+// lastTableName = "data_min_cop";
+// curTableName = "data_min_cop";
+// deviceType = "system";
} else {
lastTableName = lastTableName+startTime.substring(0,4);
curTableName = curTableName+endTime.substring(0,4);
@@ -408,6 +389,146 @@ public class EnergyServiceImpl implements IEnergyService {
return getConsumptionDTOHttpResult(consumptionAnalyzeEntities, "yoy");
}
+ private AjaxResult calcCopYoyData(EnergyConsumptionVO vo) {
+ // 获取冷量读数
+ vo.setParamType("cloud");
+ AjaxResult cloudData = yoy(vo);
+ EnergyConsumptionDTO cloudEnergyData = (EnergyConsumptionDTO) cloudData.get("data");
+ if (cloudEnergyData == null) {
+ return AjaxResult.error();
+ }
+ // 获取电量读数
+ vo.setParamType("meter");
+ AjaxResult meterData = yoy(vo);
+ EnergyConsumptionDTO meterEnergyData = (EnergyConsumptionDTO) meterData.get("data");;
+ if (meterEnergyData == null) {
+ return AjaxResult.error();
+ }
+ // 计算COP值
+ return getEnergyConsumptionDTOHttpResult(meterEnergyData, cloudEnergyData);
+ }
+
+ private static AjaxResult getEnergyConsumptionDTOHttpResult(EnergyConsumptionDTO meterEnergyData, EnergyConsumptionDTO cloudEnergyData) {
+ // 计算COP值
+ EnergyConsumptionDTO energyConsumptionDTO = new EnergyConsumptionDTO();
+ //
+ // 获取冷量数据
+ List