From a2df4b74a01e54b396dc696791f2377219915209 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期一, 26 五月 2025 16:15:43 +0800
Subject: [PATCH] 实时页面推送头部top

---
 src/main/java/com/whyc/webSocket/RealTimeSocket.java |  112 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 105 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
index 9aaa829..35d0898 100644
--- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java
+++ b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
@@ -1,9 +1,15 @@
 package com.whyc.webSocket;
 
 import com.whyc.config.WebSocketConfig;
+import com.whyc.dto.Real.TopDto;
 import com.whyc.dto.RealTimeDto;
 import com.whyc.dto.Response;
+import com.whyc.factory.BattCapFactory;
+import com.whyc.pojo.db_ram_db.BattRtstate;
+import com.whyc.pojo.db_ram_db.DeviceState;
+import com.whyc.pojo.db_ram_db.PwrdevAcdcdata;
 import com.whyc.pojo.db_user.User;
+import com.whyc.service.*;
 import com.whyc.util.ActionUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -20,8 +26,23 @@
     private Session session;
 
     private Thread thread;
+    //瀹炴椂鏁版嵁
+    private static BattRtstateService battRtstateService;
 
-    //private static LockAlarmService almService;
+    private static DeviceStateService  deviceStateService;
+
+    private static PwrdevAcdcdataService  pwrdevAcdcdataService;
+
+    //瀹炴椂鍛婅
+    private static BattalarmDataService  battalarmDataService;
+
+    private static DevalarmDataService devalarmDataService;
+
+    private static PwrdevAlarmService  pwrdevAlarmService;
+
+    //鏀剧數璁板綍
+    private static BatttestdataInfService batttestdataInfService;
+
 
 
     private volatile boolean runFlag = true;
@@ -32,10 +53,41 @@
 
     private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>();
 
-    /*@Autowired
-    public void setLockAlarmService(LockAlarmService almService) {
-        LockAlmRtSocket.almService = almService;
-    }*/
+    @Autowired
+    public void setBattRtstateService(BattRtstateService battRtstateService) {
+        RealTimeSocket.battRtstateService = battRtstateService;
+    }
+
+    @Autowired
+    public void setDeviceStateService(DeviceStateService deviceStateService) {
+        RealTimeSocket.deviceStateService = deviceStateService;
+    }
+
+    @Autowired
+    public void setPwrdevAcdcdataService(PwrdevAcdcdataService pwrdevAcdcdataService) {
+        RealTimeSocket.pwrdevAcdcdataService = pwrdevAcdcdataService;
+    }
+
+    @Autowired
+    public void setBattalarmDataService(BattalarmDataService battalarmDataService) {
+        RealTimeSocket.battalarmDataService = battalarmDataService;
+    }
+
+    @Autowired
+    public void setDevalarmDataService(DevalarmDataService devalarmDataService) {
+        RealTimeSocket.devalarmDataService = devalarmDataService;
+    }
+
+    @Autowired
+    public void setPwrdevAlarmService(PwrdevAlarmService pwrdevAlarmService) {
+        RealTimeSocket.pwrdevAlarmService = pwrdevAlarmService;
+    }
+
+    @Autowired
+    public void setBatttestdataInfService(BatttestdataInfService batttestdataInfService) {
+        RealTimeSocket.batttestdataInfService = batttestdataInfService;
+    }
+
 
 
     @OnOpen
@@ -69,7 +121,7 @@
                         if (session.isOpen()) {
                             //鎺ㄩ�佷俊鎭�
                             synchronized (session) {
-                                session.getBasicRemote().sendObject(new Response<>().set(1,map));
+                                session.getBasicRemote().sendObject(new Response<>().setII(1,true,map,"瀹炴椂椤甸潰鏁版嵁鎺ㄩ��"));
                             }
                             threadFlagMap.put(thread.getId(), false);
                         }
@@ -94,7 +146,53 @@
     }
     //鑾峰彇澶撮儴淇℃伅
     private Response getTop(RealTimeDto realDto) {
-        return new Response().set(1);
+        TopDto topDto = new TopDto();
+        try {
+            //瀹炴椂鑾峰彇鐢垫睜缁勪俊鎭�
+            BattRtstate battRtstate = battRtstateService.getBattRealInfo(realDto.getBattgroupId());
+            if (battRtstate != null) {
+                topDto.setBattState(battRtstate.getBattState());
+                topDto.setVbusVol(battRtstate.getVbusVol());
+                topDto.setOnlineVol(battRtstate.getOnlineVol());
+            }
+            //瀹炴椂鑾峰彇璁惧淇℃伅
+            DeviceState deviceState = deviceStateService.getDevRealInfo(realDto.getDevId());
+            if (deviceState != null) {
+                topDto.setDevState(deviceState.getDevWorkstate());
+                if (deviceState.getDevWorkstate() == 1) {//鏍稿鏀剧數
+                    topDto.setCaptestGroupvol(deviceState.getDevCaptestGroupvol());
+                    topDto.setCaptestCurr(deviceState.getDevCaptestCurr());
+                    topDto.setCaptestTimelong(deviceState.getDevCaptestTimelong());
+                    topDto.setCaptestCap(deviceState.getDevCaptestCap());
+                    //鍓╀綑瀹归噺鍜屽墿浣欐椂闂磋绠�
+                    Float restCap = batttestdataInfService.getLastTestDataRestCap(realDto.getBattgroupId());
+                    topDto.setRestCap(restCap);
+                    /*Integer restTime= BattCapFactory.getTheoryTime(deviceState.getDevCaptestCurr(), battRtstate.getBattGroupCap(), battRtstate.getBattGroupCapStd());
+                    topDto.setRestTime(restTime);*/
+                }
+                //瀹炴椂鑾峰彇鐢垫簮淇℃伅
+                PwrdevAcdcdata pwrdevAcdcdata = pwrdevAcdcdataService.getPwrRealInfo(realDto.getPowerId());
+                if (pwrdevAcdcdata != null) {
+                    //topDto.setPwrState(pwrdevAcdcdata.getPwrState());
+                }
+                //鑾峰彇涓�绾ф湭澶勭悊瀹炴椂鍛婅鏁�
+                Integer battALmNum = battalarmDataService.getBattAlmNum(realDto.getBattgroupId());
+                topDto.setBattALmNum(battALmNum);
+
+                Integer devALmNum = devalarmDataService.getDevAlmNum(realDto.getDevId());
+                topDto.setDevALmNum(devALmNum);
+
+                Integer pwrALmNum = pwrdevAlarmService.getPwrAlmNum(realDto.getPowerId());
+                topDto.setPwrALmNum(pwrALmNum);
+
+                Integer allALmNum = battALmNum + devALmNum + pwrALmNum;
+                topDto.setAllALmNum(allALmNum);
+                topDto.setSystemState((allALmNum > 0 ? 1 : 0));
+            }
+            return new Response().setII(1, true, topDto, "瀹炴椂椤甸潰澶撮儴鏁版嵁鎺ㄩ��");
+        } catch (Exception e) {
+            return new Response().set(1, false, "瀹炴椂椤甸潰澶撮儴鏁版嵁鎺ㄩ��");
+        }
     }
 
     //鏍规嵁pageType鑾峰彇杩斿洖鐣岄潰

--
Gitblit v1.9.1