From b6300ba2ea6305808daff9b2429ef8a51d58ab13 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期三, 18 六月 2025 14:59:58 +0800
Subject: [PATCH] 实测需量、有功功率的二级界面也增加最大值(发生时间)、最小值(发生时间)、平均值。

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java |   39 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 38 insertions(+), 1 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 48e62cc..fa7443d 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
@@ -1600,6 +1600,7 @@
                     throw new IllegalArgumentException("不支持的queryType: " + queryType);
             }
 
+
             // 查询历史数据
             ApiPointValueQueryDTO query = new ApiPointValueQueryDTO();
             query.setPointNo(pointNo);
@@ -1614,10 +1615,13 @@
                     })
                     .collect(Collectors.toList());
 
+            List<Double> valueList = chartData.stream().map(pv -> {
+                return pv.getV();
+            }).collect(Collectors.toList());
             powerHistoryDTO.setDataList(dataList);
 
             //查询月最大最小值
-            ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO();
+            /*ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO();
             apiPointValueQueryDTO1.setStart(start1);
             apiPointValueQueryDTO1.setEnd(new Date());
             apiPointValueQueryDTO1.setPointNo(pointNo);
@@ -1628,8 +1632,41 @@
             }
             if (minV != null && minV.containsKey(pointNo)) {
                 powerHistoryDTO.setMin(new BigDecimal(minV.get(pointNo).toString()));
+            }*/
+
+
+            double max = 0;
+            double min = 0;
+            double avg = 0;
+            String maxTime = "";
+            String minTime = "";
+            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();
+                max = valueList.get(0).doubleValue();
+                min = valueList.get(0).doubleValue();
+                for (Object[] dataItem : dataList) {
+                    String time = (String) dataItem[0];
+                    double value = (double)dataItem[1];
+                    if (value > max) {
+                        max = value;
+                        maxTime = time;
+                    }
+                    if (value < min) {
+                        min = value;
+                        minTime = time;
+                    }
+                }
             }
 
+            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));
+            powerHistoryDTO.setMaxTime(maxTime);
+            powerHistoryDTO.setMinTime(minTime);
+            powerHistoryDTO.setDataList(dataList);
+
             result.put(code, powerHistoryDTO);
         }
 

--
Gitblit v1.9.3