whycxzp
2025-06-11 02ccfc21d5d4f767bbd92ecda89cdfcc3283728c
src/main/java/com/whyc/webSocket/RealTimeSocket.java
@@ -1,7 +1,9 @@
package com.whyc.webSocket;
import com.whyc.config.WebSocketConfig;
import com.whyc.constant.BattStateEnum;
import com.whyc.constant.DevStateEnum;
import com.whyc.constant.FailReasonEnum;
import com.whyc.constant.StopReasonEnum;
import com.whyc.dto.Real.SticRealRtdataDto;
import com.whyc.dto.Real.TopDto;
@@ -203,6 +205,7 @@
            BattRtstate battRtstate = battRtstateService.getBattRealInfo(realDto.getBattgroupId());
            if (battRtstate != null) {
                topDto.setBattState(battRtstate.getBattState());
                topDto.setBattStateName(BattStateEnum.getValue(battRtstate.getBattState()));
                topDto.setVbusVol(battRtstate.getVbusVol());
                topDto.setOnlineVol(battRtstate.getOnlineVol());
                topDto.setRecordtime(ThreadLocalUtil.format(battRtstate.getRecDatetime(),1));
@@ -231,6 +234,7 @@
            DeviceState deviceState = deviceStateService.getDevRealInfo(realDto.getDevId());
            if (deviceState != null) {
                topDto.setDevState(deviceState.getDevWorkstate());
                topDto.setDevStateName(DevStateEnum.getValue(deviceState.getDevWorkstate()));
                if (deviceState.getDevWorkstate() == DevStateEnum.DEVSTATE_2.getStateId()) {//核容放电
                    topDto.setCaptestGroupvol(deviceState.getDevCaptestGroupvol());
                    topDto.setCaptestCurr(deviceState.getDevCaptestCurr());
@@ -259,10 +263,12 @@
                //实时获取电源信息(是否存在电源告警信息)
                //PwrdevAcdcdata pwrdevAcdcdata = pwrdevAcdcdataService.getPwrRealInfo(realDto.getPowerId());
                topDto.setPwrState((pwrALmNum > 0 ? 1 : 0));
                topDto.setPwrStateName((pwrALmNum > 0 ? "电源异常" : "电源正常"));
                Integer allALmNum = battALmNum + devALmNum + pwrALmNum;
                topDto.setAllALmNum(allALmNum);
                topDto.setSystemState((allALmNum > 0 ? 1 : 0));
                topDto.setSystemStateName((allALmNum > 0 ? "系统异常" : "系统正常"));
            }
            return new Response().setII(1, true, topDto, "实时页面头部数据推送");
        } catch (Exception e) {
@@ -454,6 +460,7 @@
            BattRtstate battRtstate = battRtstateService.getBattRealInfo(realDto.getBattgroupId());
            if(battRtstate!=null){
                battRtstate.setLastCaptestStopTypeReason(StopReasonEnum.getValue(battRtstate.getLastCaptestStopType()));
                battRtstate.setControlFailTypeReason(FailReasonEnum.getValue(battRtstate.getControlFailType()));
            }
            map.put("battRtstate",battRtstate!=null?battRtstate:"");
            //实时获取设备信息
@@ -498,7 +505,19 @@
        List<Integer> maxResNumList = new ArrayList<>();
        List<Integer> minResNumList = new ArrayList<>();
          //计算集合中单体电压,内阻,温度,容量的最大最小值
        for (BattRtdata rtdata:battRtdataList) {
        for (int i=0;i<battRtdataList.size();i++) {
            BattRtdata rtdata=battRtdataList.get(i);
            if(i==0){
                //赋值初始值
                maxVol = rtdata.getMonVol();
                minVol = rtdata.getMonVol();
                maxTmp = rtdata.getMonTmp();
                minTmp = rtdata.getMonTmp();
                maxRes = rtdata.getMonRes();
                minRes = rtdata.getMonRes();
                maxCap = rtdata.getMonCap();
                minCap = rtdata.getMonCap();
            }
            if(rtdata.getMonVol()>=maxVol){
                maxVol = rtdata.getMonVol();
            }
@@ -558,6 +577,14 @@
                minCapNumList.add(rtdata.getMonNum());
            }
        }
        dto.setMaxCapNumList(maxCapNumList);
        dto.setMinCapNumList(minCapNumList);
        dto.setMaxVolNumList(maxVolNumList);
        dto.setMinVolNumList(minVolNumList);
        dto.setMaxTmpNumList(maxTmpNumList);
        dto.setMinTmpNumList(minTmpNumList);
        dto.setMaxResNumList(maxResNumList);
        dto.setMinResNumList(minResNumList);
        return dto;
    }
    @OnClose