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