From a1d2d4dbf00ffc778003abefac9e643c6bb82059 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期二, 10 六月 2025 14:01:18 +0800
Subject: [PATCH] 系统概述推送添加蓄电池组单体信息统计

---
 src/main/java/com/whyc/webSocket/RealTimeSocket.java |   91 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 89 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
index a4194ed..9e46536 100644
--- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java
+++ b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
@@ -2,6 +2,7 @@
 
 import com.whyc.config.WebSocketConfig;
 import com.whyc.constant.DevStateEnum;
+import com.whyc.dto.Real.SticRealRtdataDto;
 import com.whyc.dto.Real.TopDto;
 import com.whyc.dto.RealTimeDto;
 import com.whyc.dto.Response;
@@ -25,6 +26,7 @@
 import javax.servlet.http.HttpSession;
 import javax.websocket.*;
 import javax.websocket.server.ServerEndpoint;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -238,7 +240,7 @@
                     topDto.setRestCap(restCap);
                     //瀹炴椂缁勭鐢垫祦锛屽墿浣欏閲忥紝鏍囩О瀹归噺
                     if(battRtstate!=null){
-                        Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), restCap, binf.getMoncapstd());
+                        Float restTime= BattCapFactory.getTheoryTime(battRtstate.getLoadCurr(), restCap, binf.getMoncapstd());
                         topDto.setRestTime(restTime);
                     }
                 }
@@ -462,13 +464,98 @@
             //鐢垫簮瀵硅薄(鏁存祦鍣ㄤ娇鐢ㄦ儏鍐�)
             PowerInf powerInf = powerInfService.getPowerInfById(realDto.getPowerId());
             map.put("powerInf",powerInf!=null?powerInf:"");
+            //鑾峰彇鐢垫睜缁勭殑钃勭數姹犱俊鎭�
+            List<BattRtdata> battRtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId());
+            SticRealRtdataDto dto=setMaxMinData(battRtdataList);
+            map.put("sticRtdata",dto);
             return new Response().setII(1,true,map,"绯荤粺姒傝堪鎺ㄩ��");
         }catch (Exception e) {
             e.printStackTrace();
         }
         return new Response().set(1,false,"绯荤粺姒傝堪鎺ㄩ��");
     }
-
+    //璁$畻闆嗗悎涓崟浣撶數鍘嬶紝鍐呴樆锛屾俯搴︼紝瀹归噺鐨勬渶澶ф渶灏忓��
+    public SticRealRtdataDto setMaxMinData(List<BattRtdata> battRtdataList){
+        SticRealRtdataDto dto=new SticRealRtdataDto();
+        Float maxCap = 0.0f;
+        Float minCap = 0.0f;
+        Float maxVol = 0.0f;
+        Float minVol = 0.0f;
+        Float maxTmp = 0.0f;
+        Float minTmp = 0.0f;
+        Float maxRes = 0.0f;
+        Float minRes = 0.0f;
+        List<Integer> maxCapNumList = new ArrayList<>();
+        List<Integer> minCapNumList = new ArrayList<>();
+        List<Integer> maxVolNumList = new ArrayList<>();
+        List<Integer> minVolNumList = new ArrayList<>();
+        List<Integer> maxTmpNumList = new ArrayList<>();
+        List<Integer> minTmpNumList = new ArrayList<>();
+        List<Integer> maxResNumList = new ArrayList<>();
+        List<Integer> minResNumList = new ArrayList<>();
+          //璁$畻闆嗗悎涓崟浣撶數鍘嬶紝鍐呴樆锛屾俯搴︼紝瀹归噺鐨勬渶澶ф渶灏忓��
+        for (BattRtdata rtdata:battRtdataList) {
+            if(rtdata.getMonVol()>=maxVol){
+                maxVol = rtdata.getMonVol();
+            }
+            if(rtdata.getMonVol()<=minVol){
+                minVol = rtdata.getMonVol();
+            }
+            if(rtdata.getMonTmp()>=maxTmp){
+                maxTmp = rtdata.getMonTmp();
+            }
+            if(rtdata.getMonTmp()<=minTmp){
+                minTmp = rtdata.getMonTmp();
+            }
+            if(rtdata.getMonRes()>=maxRes){
+                maxRes = rtdata.getMonRes();
+            }
+            if(rtdata.getMonRes()<=minRes){
+                minRes = rtdata.getMonRes();
+            }
+            if(rtdata.getMonCap()>=maxCap){
+                maxCap = rtdata.getMonCap();
+            }
+            if(rtdata.getMonCap()<=minCap){
+                minCap = rtdata.getMonCap();
+            }
+        }
+        dto.setMaxCap(maxCap);
+        dto.setMinCap(minCap);
+        dto.setMaxVol(maxVol);
+        dto.setMinVol(minVol);
+        dto.setMaxTmp(maxTmp);
+        dto.setMinTmp(minTmp);
+        dto.setMaxRes(maxRes);
+        dto.setMinRes(minRes);
+        for (BattRtdata rtdata:battRtdataList) {
+            if(rtdata.getMonVol()==maxVol){
+                maxVolNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonVol()==minVol){
+                minVolNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonTmp()==maxTmp){
+                maxTmpNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonTmp()==minTmp){
+                minTmpNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonRes()==maxRes){
+                maxResNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonRes()==minRes){
+                minResNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonCap()==maxCap){
+                maxCapNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonCap()==minCap){
+                minCapNumList.add(rtdata.getMonNum());
+            }
+        }
+        return dto;
+    }
     @OnClose
     public void onClose(CloseReason closeReason){
         System.err.println("closeReason = " + closeReason);

--
Gitblit v1.9.1