whyclxw
2025-05-28 e16302f9d475c7cc4dd18c5abf1a23cb5502e362
src/main/java/com/whyc/webSocket/RealTimeWebsocket.java
@@ -6,6 +6,8 @@
import com.whyc.dto.paramter.RealTimePar;
import com.whyc.pojo.Battinf;
import com.whyc.pojo.PeakStatistics;
import com.whyc.pojo.PowerInf;
import com.whyc.pojo.StationInf;
import com.whyc.service.*;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -79,9 +81,39 @@
    private static Fbs9100SetParamTempService fbs9100SetParamTempService;
    private static CheckDialogService checkDialogService;
    private static Fbs9100sStemnodeStateService  fbs9100sStemnodeStateService;
    private static Dev6159PowerYxService dev6159PowerYxService;
    private static Dev6159PowerYcService  dev6159PowerYcService;
    private static AcdcSecuityService acdcSecuityService;
    private static PowerInfService pinfService;
    private static Qgn618NbstateService qgnService;
    private Session session;
    private HttpSession httpSession;
    @Autowired
    public void setService(PowerInfService pinfService) {
        RealTimeWebsocket.pinfService = pinfService;
    }
    @Autowired
    public void setService(AcdcSecuityService acdcSecuityService) {
        RealTimeWebsocket.acdcSecuityService = acdcSecuityService;
    }
    @Autowired
    public void setQgn618NbstateService(Qgn618NbstateService qgnService) {
        RealTimeWebsocket.qgnService = qgnService;
    }
    @Autowired
    public void setService(BattRtstateService rtstateservice) {
@@ -126,10 +158,6 @@
    @Autowired
    public void setService(Fbs9100SetparamService f9100setservice) {
        RealTimeWebsocket.f9100setservice = f9100setservice;
    }
    @Autowired
    public void setService(Ess3100SysstateService ess3100Sysservice) {
        RealTimeWebsocket.ess3100Sysservice = ess3100Sysservice;
    }
    @Autowired
    public void setService(Ess3100PcsStateService ess3100Pcsservice) {
@@ -196,6 +224,24 @@
        RealTimeWebsocket.fbs9100SetParamTempService = fbs9100SetParamTempService;
    }
    @Autowired
    public void setCheckDialogService(CheckDialogService checkDialogService) {
        RealTimeWebsocket.checkDialogService = checkDialogService;
    }
    @Autowired
    public void setFbs9100sStemnodeStateService(Fbs9100sStemnodeStateService fbs9100sStemnodeStateService) {
        RealTimeWebsocket.fbs9100sStemnodeStateService = fbs9100sStemnodeStateService;
    }
    @Autowired
    public void setService(Dev6159PowerYxService dev6159PowerYxService) {
        RealTimeWebsocket.dev6159PowerYxService = dev6159PowerYxService;
    }
    @Autowired
    public void setService(Dev6159PowerYcService dev6159PowerYcService) {
        RealTimeWebsocket.dev6159PowerYcService = dev6159PowerYcService;
    }
    @OnOpen
    public void onOpen(Session session, EndpointConfig config) {
        this.session = session;
@@ -207,6 +253,7 @@
        RealTimePar realTimePar = ActionUtil.getGson().fromJson(message, RealTimePar.class);
        realTimePar.setDevType(realTimePar.getDevId() / 100000);
        String lang = (String) this.httpSession.getAttribute("lang");
        //String lang ="zh_cn";
        thread = new Thread("Thread_RealTime") {
            @Override
            public void run() {
@@ -216,8 +263,11 @@
                    try {
                        Response res = new Response();
                        switch (realTimePar.getPageType()) {
                            case "standard":
                            case "standard"://61850,61852
                                res = getStandard(realTimePar, lang);
                                break;
                            case "dbs":
                                res = getDbs(realTimePar, lang);
                                break;
                            case "a059":
                                res = getA059(realTimePar);
@@ -264,6 +314,18 @@
                            case "inverter5100":
                                res = getInverter5100(realTimePar);
                                break;
                            case "powerHr6159":
                                res = getPowerHr6159(realTimePar);
                                break;
                            case "intellect61853":
                                res = getIntellect61853(realTimePar);
                                break;
                            case "nibian6184":
                                res = getNibian6184(realTimePar,lang);
                                break;
                            case "nibian6186":
                                res = getNibian6186(realTimePar,lang);
                                break;
                        }
                        //实时显示调整,增加电池数量,标称单体电压,铅酸还是锂电,放置于返回结果的data2
                        Battinf battinf = battInfService.getBattGroupInfoByBattGroupId(realTimePar.getBattGroupId());
@@ -277,24 +339,7 @@
                            }
                            threadFlagMap.put(thread.getId(), false);
                        }
                        //if (session.isOpen()) {
                        //    Response res=new Response();
                        //    switch (realTimePar.getPageType()){
                        //        case "standard": res=getStandard(realTimePar);break;
                        //        case "a059": res=getA059(realTimePar);break;
                        //        case "enestorage": res=getEnestorage(realTimePar);break;
                        //        case "btssreen": res=getBtssreen(realTimePar);break;
                        //        case "power": res=getPower(realTimePar);break;
                        //        case "isolating": res=getIsolating(realTimePar);break;
                        //        case "charger": res=getCharger(realTimePar);break;
                        //        case "power1": res=getPower1(realTimePar);break;
                        //        case "totalInfo": res=getTotalInfo(realTimePar);break;
                        //    }
                        //    //推送信息
                        //    session.getBasicRemote().sendObject(res);
                        //}
                        sleep(executeTime);
                        //} catch (IOException | InterruptedException | EncodeException e) {
                    } catch (Exception e) {
                        interrupt();
                    }
@@ -331,6 +376,26 @@
            thread.interrupt();
        }
        threadMap.remove(session.getId());
    }
    //只能61853的实时页面信息
    public Response getIntellect61853(RealTimePar realTimePar) {
        Map<String, Object> res = new HashMap<>();
        //查询fbs9100信息
        Response f9100stateRes = f9100service.serchContactorState(realTimePar.getDevId());
        res.put("f9100state", f9100stateRes);
        //查询电池组端信息2组数据同时获取分开放
        List<Battinf> binfList=battInfService.getBattGroupInfoByFBSDeviceId(realTimePar.getDevId());
        if(binfList!=null){
            for (Battinf binf:binfList) {
                Response rtstateRes = rtstateservice.serchByCondition(binf.getBattGroupId());
                res.put("rtstate"+binf.getGroupIndexInFBSDevice(), rtstateRes);
                //查询电池组单体信息
                Response rtdataRes = rtdataservice.serchByCondition(binf.getBattGroupId());
                res.put("rtdata"+binf.getGroupIndexInFBSDevice(), rtdataRes);
                res.put("binf"+binf.getGroupIndexInFBSDevice(), binf);
            }
        }
        return new Response().set(1, res);
    }
    //kgdy的实时页面信息
@@ -405,6 +470,30 @@
        //查询电池组单体信息
        Response rtdataRes = rtdataservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtdata", rtdataRes);
        return new Response().set(1, res);
    }
    //电源与蓄电池核容一体机6159
    public Response getPowerHr6159(RealTimePar realTimePar) {
        Map<String, Response> res = new HashMap<>();
        //查询fbs9100信息
        Response f9100stateRes = f9100service.serchContactorState(realTimePar.getDevId());
        res.put("f9100state", f9100stateRes);
        //查询电池组端信息
        Response rtstateRes = rtstateservice.serchPowerHr6159(realTimePar.getDevId());
        res.put("rtstate", rtstateRes);
        //查询电池组单体信息
        Response rtdataRes = rtdataservice.serchPowerHr6159(realTimePar.getDevId());
        res.put("rtdata", rtdataRes);
        //通信电源核容一体机遥测实时状态
        Response ycRes = dev6159PowerYcService.serchByCondition(realTimePar.getDevId());
        res.put("ycdata", ycRes);
        //通信电源核容一体机遥信实时状态
        Response yxRes = dev6159PowerYxService.serchByCondition(realTimePar.getDevId());
        res.put("yxdata", yxRes);
        //取第一组电池信息
        Response infRes = battInfService.getPowerHr6159(realTimePar.getDevId());
        res.put("binf", infRes);
        return new Response().set(1, res);
    }
@@ -532,8 +621,134 @@
            //该设备放电申请
            Response Fbs9100SetParamTemp = fbs9100SetParamTempService.searchTemp(realTimePar.getBattGroupId());
            res.put("Fbs9100SetParamTemp", Fbs9100SetParamTemp);
            //交直流屏信息
            Response acdcSecuity = acdcSecuityService.searchAcdcSecuity(realTimePar.getDevId());
            res.put("acdcSecuity", acdcSecuity);
        }
        if (realTimePar.getDevType() == DeviceTypeDTO.DEVICE9150 ) {
            //9150山东定制BTS设备获取干接点信息
            Response fbs9150Res = fbs9100sStemnodeStateService.serch9150BtsInfo(realTimePar.getDevId());
            res.put("fbs9150Res", fbs9150Res);
        }
        if(realTimePar.getStationId()!=null){
            //根据机房id获取机房下电源信息
            PowerInf pinf=pinfService.getPwrDevIdByStationId(realTimePar.getStationId());
            if(pinf!=null){
                //查询电源的ACDC信息(重庆bts4810(61850)需要用tb_pwrdev_acdcdata的实时负载电流和三相交流电压)
                Response pwrdevAcdcRes=pwrdevAcdcservice.getDataByDevId(pinf.getPowerDeviceId());
                res.put("pwrdevAcdc",pwrdevAcdcRes);
            }
        }
        return new Response().set(1, res);
    }
    //6184
    public Response getNibian6184(RealTimePar realTimePar, String lang) {
        Map<String, Object> res = new HashMap<>();
        //获取逆变的其他信息
        Response fbs9100sBuscoupleState = fbs9100sBuscoupleStateService.serchByDevId(realTimePar.getDevId());
        res.put("fbs9100sBuscoupleState", fbs9100sBuscoupleState);
        //查询fbs9100信息
        Response f9100stateRes = f9100service.serchContactorState(realTimePar.getDevId());
        res.put("f9100state", f9100stateRes);
       //查询电池组端信息2组数据同时获取分开放
        List<Battinf> binfList=battInfService.getBattGroupInfoByFBSDeviceId(realTimePar.getDevId());
        if(binfList!=null){
            for (Battinf binf:binfList) {
                Response rtstateRes = rtstateservice.serchByCondition(binf.getBattGroupId());
                res.put("rtstate"+binf.getGroupIndexInFBSDevice(), rtstateRes);
                //查询电池组单体信息
                Response rtdataRes = rtdataservice.serchByCondition(binf.getBattGroupId());
                res.put("rtdata"+binf.getGroupIndexInFBSDevice(), rtdataRes);
                res.put("binf"+binf.getGroupIndexInFBSDevice(), binf);
            }
        }
        //获取615全功能逆变假负载开关以及逆变模块实时
        Response  qgnRes= qgnService.serchByDevId(realTimePar.getDevId());
        res.put("qgnRes", qgnRes);
        return new Response().set(1, res);
    }
    //6186
    public Response getNibian6186(RealTimePar realTimePar, String lang) {
        Map<String, Object> res = new HashMap<>();
        //查询fbs9100信息
        Response f9100stateRes = f9100service.serchContactorState(realTimePar.getDevId());
        res.put("f9100state", f9100stateRes);
        Response rtstateRes = rtstateservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtstate", rtstateRes);
        //查询电池组单体信息
        Response rtdataRes = rtdataservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtdata", rtdataRes);
        //最后一次核容放电数据
        Response tinfRes = batttestDataInfService.searchBattLastHrDataByIdDbs(realTimePar.getBattGroupId(), realTimePar.getDevId(), lang);
        res.put("tinfdata", tinfRes);
        return new Response().set(1, res);
    }
    //多宝山(dbs)页面信息
    public Response getDbs(RealTimePar realTimePar, String lang) {
        Map<String, Response> res = new HashMap<>();
        if (realTimePar.getDevType() == DeviceTypeDTO.DEVICELD94019) {//ld-9
            //ld-9数据
            Response ld9Res = ld9Service.searchByDevId(realTimePar.getDevId());
            res.put("ld9", ld9Res);
        } else if (realTimePar.getDevType() == DeviceTypeDTO.DEVICEBTS9120 || realTimePar.getDevType() == DeviceTypeDTO.DEVICEBTS9110) {
            //获取逆变的其他信息
            Response fbs9100sBuscoupleState = fbs9100sBuscoupleStateService.serchByDevId(realTimePar.getDevId());
            res.put("fbs9100sBuscoupleState", fbs9100sBuscoupleState);
            //查询fbs9100信息
            Response f9100stateRes = f9100service.serchContactorState(realTimePar.getDevId());
            res.put("f9100state", f9100stateRes);
        } else {
            //查询fbs9100信息
            Response f9100stateRes = f9100service.serchContactorState(realTimePar.getDevId());
            res.put("f9100state", f9100stateRes);
        }
        //查询电池组端信息
        Response rtstateRes = rtstateservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtstate", rtstateRes);
        if (realTimePar.getDevType() == DeviceTypeDTO.DEVICE9140 || realTimePar.getDevType() == DeviceTypeDTO.DEVICE9141) {
            //9140设备要将2组电池的组端信息都给他
            Response rtstate9140Res = rtstateservice.serch9140Info(realTimePar.getDevId());
            res.put("rtstate9140Res", rtstate9140Res);
        }
        //查询电池组单体信息
        Response rtdataRes = rtdataservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtdata", rtdataRes);
        //查询fod信息
        Response fodRes = fodservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("fod", fodRes);
        //电池告警
        Response rtalarmRes = rtalarmService.getInfo(realTimePar.getBattGroupId());
        res.put("rtalarm", rtalarmRes);
        //组端告警
        Response rsalarmRes = rsalarmService.getInfo(realTimePar.getBattGroupId());
        res.put("rsalarm", rsalarmRes);
        if (realTimePar.getDevType() == DeviceTypeDTO.DEVICE9130 || realTimePar.getDevType() == DeviceTypeDTO.DEVICE9131) {//正常锂电池
            //锂电池数据
            Response li9130Res = li9130Service.searchParam(realTimePar.getDevId(), realTimePar.getGroupNum());
            res.put("li9130", li9130Res);
        }
        //最后一次核容放电数据
        Response tinfRes = batttestDataInfService.searchBattLastHrDataByIdDbs(realTimePar.getBattGroupId(), realTimePar.getDevId(), lang);
        res.put("tinfdata", tinfRes);
        if (realTimePar.getDevType() == DeviceTypeDTO.DEVICE6185) {//61850二次放电处理
            //本年度上一次正常核容的放电记录编号
            Response testNumber = batttestDataInfService.searchHrYear(realTimePar.getBattGroupId());
            res.put("testNumber", testNumber);
            //该设备放电申请
            Response Fbs9100SetParamTemp = fbs9100SetParamTempService.searchTemp(realTimePar.getBattGroupId());
            res.put("Fbs9100SetParamTemp", Fbs9100SetParamTemp);
        }
        return new Response().set(1, res);
    }
    //A059的实时页面信息
@@ -551,6 +766,9 @@
        //查询放电参数
        Response setparamRes=f9100setservice.serchCharHighTmp(realTimePar.getDevId());
        res.put("setparam",setparamRes);
        //根据设备id查询检测信息
        Response dialogRes = checkDialogService.searchDialog(realTimePar.getDevId());
        res.put("dialog", dialogRes);
        return  new Response().set(1,res);
    }
    //储能的实时页面信息