From ddda6f7453ed84fbef6aef3283d3711b83641ba9 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期三, 28 五月 2025 10:57:00 +0800
Subject: [PATCH] 电容器投退状态 接口修改

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java |   44 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
index 5d92ee2..ad83a95 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -487,6 +487,8 @@
                 onCount ++;
             }
             dto.setOnCount(onCount);
+            String remark = String.format("共%d台,在投%d台", DecimalUtil.toBigDecimal(entity.getMainCount()).intValue(), onCount);
+            dto.setRemark(remark);
             result.add(dto);
         }
         return success(result);
@@ -644,7 +646,7 @@
             }
 
             if (!StringUtils.isEmpty(entity.getMaxDemand())) {
-                ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO();
+                /*ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO();
                 apiPointValueQueryDTO.setStart(start);
                 apiPointValueQueryDTO.setEnd(end);
                 apiPointValueQueryDTO.setPointNo(entity.getMaxDemand());
@@ -652,6 +654,11 @@
                 if (maxValue != null) {
                     demandDTO.setMaxDemand(new BigDecimal(maxValue.get(VALUE).toString()));
                     demandDTO.setOccurTime(DateUtils.parse( maxValue.get(TIME).toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
+                }*/
+                PowerMaxdemandMainEntity maxdemandMainEntity = powerMaxDemandMainService.getMonthMax(entity.getCode(), start);
+                if (maxdemandMainEntity != null) {
+                    demandDTO.setMaxDemand(maxdemandMainEntity.getMaxDemand());
+                    demandDTO.setOccurTime(maxdemandMainEntity.getOccurTime());
                 }
             }
             result.add(demandDTO);
@@ -892,16 +899,10 @@
         calendar0.set(Calendar.MILLISECOND, 0);
         calendar0.set(Calendar.SECOND, 0);
         Date end0 = dto.getEndTime() == null ? calendar0.getTime() : dto.getEndTime();
-        calendar0.add(Calendar.MINUTE, -1440);
+        calendar0.set(Calendar.MINUTE, 0);
+        calendar0.set(Calendar.HOUR_OF_DAY, 0);
         Date start0 = dto.getStartTime() == null ? calendar0.getTime() : dto.getStartTime();
 
-        Calendar calendar1 = Calendar.getInstance();
-        calendar1.set(Calendar.DAY_OF_MONTH, 1);
-        calendar1.set(Calendar.HOUR_OF_DAY, 0);
-        calendar1.set(Calendar.MINUTE, 0);
-        calendar1.set(Calendar.SECOND, 0);
-        calendar1.set(Calendar.MILLISECOND, 0);
-        Date start1 = calendar1.getTime();
 
         List<String> categories = DateUtils.getTimeScale(start0, end0, 60);
         for (String nodeCode : nodeCodeList) {
@@ -942,16 +943,18 @@
             apiPointValueQueryDTO.setStart(start0);
             List<ApiPointValueDTO> chartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO);
             List<Object[]> dataList = new ArrayList<>();
+            List<Double> valueList = new ArrayList<>();
             for (ApiPointValueDTO pv : chartData) {
                 Object[] data = new Object[2];
                 data[0] = DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
                 data[1] = pv.getV();
                 dataList.add(data);
+                valueList.add(pv.getV());
             }
             powerHistoryDTO.setDataList(dataList);
 
             //查询月最大最小值
-            ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO();
+            /*ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO();
             apiPointValueQueryDTO1.setStart(start1);
             apiPointValueQueryDTO1.setEnd(new Date());
             apiPointValueQueryDTO1.setPointNo(pointNo);
@@ -962,7 +965,28 @@
             }
             if (minV != null && minV.containsKey(pointNo)) {
                 powerHistoryDTO.setMin(new BigDecimal(minV.get(pointNo).toString()));
+            }*/
+
+            double fsl = 0;
+            double max = 0;
+            double min = 0;
+            double avg = 0;
+            if (!CollectionUtils.isEmpty(valueList)) {
+                max = valueList.stream().mapToDouble(Double::doubleValue).max().getAsDouble();
+                min = valueList.stream().mapToDouble(Double::doubleValue).min().getAsDouble();
+                avg = valueList.stream().mapToDouble(Double::doubleValue).average().getAsDouble();
+
+                for (Double val : valueList) {
+                    if (val < 0) {
+                        fsl += val;
+                    }
+                }
             }
+            powerHistoryDTO.setFsl(new BigDecimal(fsl).setScale(2, BigDecimal.ROUND_HALF_UP));
+            powerHistoryDTO.setMax(new BigDecimal(max).setScale(2, BigDecimal.ROUND_HALF_UP));
+            powerHistoryDTO.setMin(new BigDecimal(min).setScale(2, BigDecimal.ROUND_HALF_UP));
+            powerHistoryDTO.setAvg(new BigDecimal(avg).setScale(2, BigDecimal.ROUND_HALF_UP));
+
             result.put(nodeCode, powerHistoryDTO);
         }
         return success(result);

--
Gitblit v1.9.3