From 9b6cf1583cb7fe2c263fcee488958fa1a1e8569a Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期二, 22 四月 2025 13:54:45 +0800
Subject: [PATCH] 功率因数 最大最小值

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java |   63 +++++++++++--------------------
 1 files changed, 22 insertions(+), 41 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 46d43ad..15e77c9 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
@@ -27,6 +27,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
@@ -364,20 +365,22 @@
 
     @PostMapping("/net-factor/history")
     @Operation(summary = "功率因数-根据nodeName获取最近1440min历史数据,月最大,最小值")
-    public CommonResult<PowerHistoryDTO> getPowerHistoryData(@RequestBody Map<String, Object> params) {
-        String nodeName = (String) params.get("nodeName");
+    public CommonResult<PowerHistoryDTO> getPowerHistoryData(@RequestBody PowerNetFactorHisReqDTO dto) {
+        String nodeName = dto.getNodeName();
         if (StringUtils.isBlank(nodeName)) {
             return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST);
         }
-        String queryType = (String) params.get("queryType");
+        String queryType = dto.getQueryType();
         if (StringUtils.isBlank(queryType)) {
             return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST);
         }
         PowerNetFactorEntity powerNetFactor = powerNetFactorService.getByNodeName(nodeName);
         PowerHistoryDTO result = new PowerHistoryDTO();
         if (powerNetFactor == null) {
+            log.info("powerNetFactor is null");
             return success(result);
         }
+        log.info("开始查询,");
 
         ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO();
         String pointNo = "";
@@ -395,41 +398,21 @@
                 break;
         }
         //查询图表
-        String startTimeStr =(String) params.get("startTime");
-        String endTimeStr =(String) params.get("endTime");
         apiPointValueQueryDTO.setPointNo(pointNo);
         Calendar calendar0 = Calendar.getInstance();
         calendar0.set(Calendar.MILLISECOND, 0);
         calendar0.set(Calendar.SECOND, 0);
-        Date end = calendar0.getTime();
+        Date end = dto.getEndTime() == null ? calendar0.getTime() : dto.getEndTime();
         calendar0.add(Calendar.MINUTE, -1440);
-        Date start = calendar0.getTime();
-
-        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        if (StringUtils.isNotBlank(startTimeStr)) {
-            try {
-                start = ft.parse(params.get("startTime").toString());
-            } catch (ParseException e) {
-                throw new RuntimeException(e);
-            }
-        }
-        apiPointValueQueryDTO.setStart(start);
-        if (StringUtils.isNotBlank(endTimeStr)) {
-            try {
-                end = ft.parse(params.get("endTime").toString());
-            } catch (ParseException e) {
-                throw new RuntimeException(e);
-            }
-        }
+        Date start = dto.getStartTime() == null ?  calendar0.getTime() : dto.getStartTime();
         apiPointValueQueryDTO.setEnd(end);
+        apiPointValueQueryDTO.setStart(start);
         List<ApiPointValueDTO> chartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO);
-        List<List<Object>> dataList = new ArrayList<>();
-        for (ApiPointValueDTO dto : chartData) {
-            List<Object> data = new ArrayList<>();
-            String time = ft.format(dto.getT());
-            double value = dto.getV();
-            data.add(time);
-            data.add(value);
+        List<Object[]> dataList = 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);
         }
         List<String> categories = DateUtils.getTimeScale(start, end, 60);
@@ -447,17 +430,15 @@
         apiPointValueQueryDTO.setStart(start);
         apiPointValueQueryDTO.setEnd(new Date());
         List<ApiPointValueDTO> monthChartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO);
-        List<List<Object>> monthDataList = new ArrayList<>();
-        for (ApiPointValueDTO dto : monthChartData) {
-            List<Object> data = new ArrayList<>();
-            String time = ft.format(dto.getT());
-            double value = dto.getV();
-            data.add(time);
-            data.add(value);
-            monthDataList.add(data);
+        List<Double> monthValues = new ArrayList<>();
+        if (CollectionUtils.isEmpty(monthChartData)) {
+            monthValues =  monthChartData.stream().map(item -> {
+                return item.getV();
+            }).collect(Collectors.toList());
+
+            result.setMax(monthValues.stream().max(Double::compareTo).get());
+            result.setMin(monthValues.stream().min(Double::compareTo).get());
         }
-        result.setMax(getMax(monthDataList));
-        result.setMin(getMin(monthDataList));
         return success(result);
     }
 

--
Gitblit v1.9.3