lxw
2023-05-25 f3c27fb78447449a950ba73c5e72ceda64ad8a12
src/main/java/com/whyc/webSocket/RealTimeWebsocket.java
@@ -1,29 +1,35 @@
package com.whyc.webSocket;
import com.whyc.config.WebSocketConfig;
import com.whyc.dto.DeviceTypeDTO;
import com.whyc.dto.Response;
import com.whyc.dto.paramter.RealTimePar;
import com.whyc.pojo.Battinf;
import com.whyc.pojo.PeakStatistics;
import com.whyc.service.*;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpSession;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
@ServerEndpoint(value = "/RealTime",encoders = WebSocketEncoder.class)
@ServerEndpoint(value = "/RealTime", encoders = WebSocketEncoder.class, configurator = WebSocketConfig.class)
public class RealTimeWebsocket {
    private volatile Thread thread;
    private static final int executeTime = 5000;
    private static boolean exit=false;
    private volatile boolean runFlag=true;
    private static Map<String,Thread> threadMap = new HashMap<>();
    private volatile Map<String,Thread> threadMap = new HashMap<>();
    private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>();
    private static BattRtstateService rtstateservice;   //组端
@@ -39,10 +45,41 @@
    private static Ld9StateService ld9Service;  //ld9
    private static Li9130BmsStateService li9130Service;  //li9130
    private static Li9130BmsStateService li9130Service;  //li9130、
    private static Fbs9100SetparamService f9100setservice;//setparam
    private static Ess3100SysstateService ess3100Sysservice;//3100sys
    private static Ess3100PcsStateService ess3100Pcsservice;//3100pcs
    private static BattGtstateService gtsservice;//gts
    private static LithiumDataService lithiumservice;//Lithium
    private static PwrdevAcdcdataService pwrdevAcdcservice;//PwrdevAcdc
    private static Fbs9100InsulatstateService f9100Insulatstateservice;//Fbs9100Insulatstate
    private static Fbs9100ChargerstateService f9100Chargerstateservice;//Fbs9100Chargerstate
    private static Fbs9100sBuscoupleStateService fbs9100sBuscoupleStateService;
    private static BattInfService battInfService;
    private static BatttestdataInfService batttestDataInfService;
    private static PeakStatisticsService peakStatisticsService;
    private static KgdyStateService kgdyStateService;
    private static Fbs9140TopologyStateService fbs9140TopologyStateService;
    private static Fbs5100InverterInfoService fbs5100InverterInfoService;
    private Session session;
    private HttpSession httpSession;
    @Autowired
    public void setService(BattRtstateService rtstateservice) {
@@ -84,76 +121,201 @@
        RealTimeWebsocket.li9130Service = li9130Service;
    }
    @Autowired
    public void setService(Fbs9100SetparamService f9100setservice) {
        RealTimeWebsocket.f9100setservice = f9100setservice;
    }
    @Autowired
    public void setService(Ess3100SysstateService ess3100Sysservice) {
        RealTimeWebsocket.ess3100Sysservice = ess3100Sysservice;
    }
    @Autowired
    public void setService(Ess3100PcsStateService ess3100Pcsservice) {
        RealTimeWebsocket.ess3100Pcsservice = ess3100Pcsservice;
    }
    @Autowired
    public void setService(BattGtstateService gtsservice) {
        RealTimeWebsocket.gtsservice = gtsservice;
    }
    @Autowired
    public void setService(LithiumDataService lithiumservice) {
        RealTimeWebsocket.lithiumservice = lithiumservice;
    }
    @Autowired
    public void setService(PwrdevAcdcdataService pwrdevAcdcservice) {
        RealTimeWebsocket.pwrdevAcdcservice = pwrdevAcdcservice;
    }
    @Autowired
    public void setService(Fbs9100InsulatstateService f9100Insulatstateservice) {
        RealTimeWebsocket.f9100Insulatstateservice = f9100Insulatstateservice;
    }
    @Autowired
    public void setService(Fbs9100ChargerstateService f9100Chargerstateservice) {
        RealTimeWebsocket.f9100Chargerstateservice = f9100Chargerstateservice;
    }
    @Autowired
    public void setService(Fbs9100sBuscoupleStateService fbs9100sBuscoupleStateService) {
        RealTimeWebsocket.fbs9100sBuscoupleStateService = fbs9100sBuscoupleStateService;
    }
    @Autowired
    public void setService(BattInfService battInfService) {
        RealTimeWebsocket.battInfService = battInfService;
    }
    @Autowired
    public void setService(BatttestdataInfService batttestDataInfService) {
        RealTimeWebsocket.batttestDataInfService = batttestDataInfService;
    }
    @Autowired
    public void setPeakStatisticsService(PeakStatisticsService peakStatisticsService) {
        RealTimeWebsocket.peakStatisticsService = peakStatisticsService;
    }
    @Autowired
    public void setKgdyStateService(KgdyStateService kgdyStateService) {
        RealTimeWebsocket.kgdyStateService = kgdyStateService;
    }
    @Autowired
    public void setFbs9140TopologyStateService(Fbs9140TopologyStateService fbs9140TopologyStateService) {
        RealTimeWebsocket.fbs9140TopologyStateService = fbs9140TopologyStateService;
    }
    @Autowired
    public void setFbs5100InverterInfoService(Fbs5100InverterInfoService fbs5100InverterInfoService) {
        RealTimeWebsocket.fbs5100InverterInfoService = fbs5100InverterInfoService;
    }
    @OnOpen
    public void  onOpen(Session session){
        this.session=session;
    public void onOpen(Session session, EndpointConfig config) {
        this.session = session;
        this.httpSession = (HttpSession) config.getUserProperties().get("httpSession");
    }
    @OnMessage
    public void onMessage(Session session, String message){
        //停止当前socket的线程
        Thread threadBefore = threadMap.get(session.getId());
        if(threadBefore !=null && threadBefore.isAlive()){
            threadBefore.interrupt();
            exit=true;
        }
        RealTimePar realTimePar= ActionUtil.getGson().fromJson(message,RealTimePar.class);
        realTimePar.setDevType(realTimePar.getDevId()/100000);
    public void onMessage(Session session, String message) {
        RealTimePar realTimePar = ActionUtil.getGson().fromJson(message, RealTimePar.class);
        realTimePar.setDevType(realTimePar.getDevId() / 100000);
        String lang = (String) this.httpSession.getAttribute("lang");
        thread = new Thread("Thread_RealTime") {
            @Override
            public void run() {
                exit=false;
                while ( !thread.isInterrupted()&&!exit) {
                while (runFlag && !isInterrupted()) {
                    Thread thread = currentThread();
                    threadFlagMap.put(thread.getId(), true);
                    try {
                        if (session.isOpen()) {
                            Map<String,Response> 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);
                            //查询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()==4019){//ld-9
                                //ld-9数据
                                Response ld9Res=ld9Service.searchByDevId(realTimePar.getDevId());
                                res.put("ld9",ld9Res);
                            }
                            if(realTimePar.getDevType()==9130){//正常锂电池
                                //锂电池数据
                                Response li9130Res=li9130Service.searchParam(realTimePar.getDevId());
                                res.put("li9130",li9130Res);
                            }
                            //推送信息
                            session.getBasicRemote().sendObject(new Response().set(1,res));
                        Response res = new Response();
                        switch (realTimePar.getPageType()) {
                            case "standard":
                                res = getStandard(realTimePar, lang);
                                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;
                            case "fbo4830":
                                res = getFbo4830(realTimePar);
                                break;
                            case "fbo4831":
                                res = getFbo4831(realTimePar);
                                break;
                            case "fbo4815":
                                res = getFbo4815(realTimePar);
                                break;
                            case "kgdy":
                                res = getKgdy(realTimePar);
                                break;
                            case "paralle":
                                res = getParalle(realTimePar, lang);
                                break;
                            case "paralle9149":
                                res = getParalle9149(realTimePar, lang);
                                break;
                            case "inverter5100":
                                res = getInverter5100(realTimePar);
                                break;
                        }
                        //实时显示调整,增加电池数量,标称单体电压,铅酸还是锂电,放置于返回结果的data2
                        Battinf battinf = battInfService.getBattGroupInfoByBattGroupId(realTimePar.getBattGroupId());
                        Map<Integer, List<PeakStatistics>> statisticList = peakStatisticsService.getTodayMapByBattGroupId(realTimePar.getBattGroupId());
                        res.setData2(battinf);
                        res.setData3(statisticList);
                        if (session.isOpen()) {
                            //推送信息
                            synchronized (session) {
                                session.getBasicRemote().sendObject(new Response().set(1, res));
                            }
                            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 (IOException | InterruptedException | EncodeException e) {
                    } catch (Exception e) {
                        interrupt();
                    }
                }
            }
        };
        thread.start();
        threadFlagMap.put(thread.getId(),true);
        //停止老的socket线程
        Thread threadBefore = threadMap.get(session.getId());
        if(threadBefore !=null && threadBefore.isAlive()){
            while (threadFlagMap.get(threadBefore.getId())){
            }
            threadBefore.interrupt();
        }
        //将线程存储,便于调用定位
        threadMap.put(session.getId(), this.thread);
    }
    @OnClose
    public void onClose(){
    public void onClose(CloseReason closeReason){
        System.err.println("closeReason = " + closeReason);
        runFlag = false;
        if (thread != null && thread.isAlive()) {
            thread.interrupt();
        }
        threadMap.remove(session.getId());
    }
    @OnError
@@ -162,5 +324,300 @@
        if (thread != null && thread.isAlive()) {
            thread.interrupt();
        }
        threadMap.remove(session.getId());
    }
    //kgdy的实时页面信息
    public Response getKgdy(RealTimePar realTimePar) {
        Map<String, Response> 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);
        //kgdy状态数据
        Response kgdystateRes = kgdyStateService.serchByCondition(realTimePar.getDevId());
        res.put("kgdystate", kgdystateRes);
        return new Response().set(1, res);
    }
    //FBO4830的实时页面信息
    public Response getFbo4830(RealTimePar realTimePar) {
        Map<String, Response> 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 li9130StateRes = li9130Service.search4830State(realTimePar.getDevId());
        res.put("li9130State", li9130StateRes);
        //最后一次核容放电数据
        /*Response tinfRes = batttestDataInfService.searchBattLastHrDataById(realTimePar.getBattGroupId(), realTimePar.getDevId());
        res.put("tinfdata", tinfRes);*/
        return new Response().set(1, res);
    }
    //FBO4831的实时页面信息
    public Response getFbo4831(RealTimePar realTimePar) {
        Map<String, Response> 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 li9130StateRes = li9130Service.search4830State(realTimePar.getDevId());
        res.put("li9130State", li9130StateRes);*/
        //最后一次核容放电数据
        /*Response tinfRes = batttestDataInfService.searchBattLastHrDataById(realTimePar.getBattGroupId(), realTimePar.getDevId());
        res.put("tinfdata", tinfRes);*/
        return new Response().set(1, res);
    }
    //FBO4815的实时页面信息
    public Response getFbo4815(RealTimePar realTimePar) {
        Map<String, Response> 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);
        return new Response().set(1, res);
    }
    //并联电源的实时页面信息
    public Response getParalle(RealTimePar realTimePar, String lang) {
        Map<String, Response> 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);
        //查询9140/9141信息
        Response pologystateRes = fbs9140TopologyStateService.serchByCondition(realTimePar.getDevId());
        res.put("pologystateRes", pologystateRes);
        //电池告警
        Response rtalarmRes = rtalarmService.getInfo(realTimePar.getBattGroupId());
        res.put("rtalarm", rtalarmRes);
        //组端告警
        Response rsalarmRes = rsalarmService.getInfo(realTimePar.getBattGroupId());
        res.put("rsalarm", rsalarmRes);
        //最后一次核容放电数据
        Response tinfRes = batttestDataInfService.searchBattLastHrDataById(realTimePar.getBattGroupId(), realTimePar.getDevId(), lang);
        res.put("tinfdata", tinfRes);
        return new Response().set(1, res);
    }
    //并联电源的实时页面信息
    public Response getParalle9149(RealTimePar realTimePar, String lang) {
        Map<String, Response> 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);
        //查询9149信息
        Response pologystateRes = fbs9140TopologyStateService.serchByCondition(realTimePar.getDevId());
        res.put("pologystateRes", pologystateRes);
        //电池告警
        Response rtalarmRes = rtalarmService.getInfo(realTimePar.getBattGroupId());
        res.put("rtalarm", rtalarmRes);
        //组端告警
        Response rsalarmRes = rsalarmService.getInfo(realTimePar.getBattGroupId());
        res.put("rsalarm", rsalarmRes);
        //最后一次核容放电数据
        Response tinfRes = batttestDataInfService.searchBattLastHrDataById(realTimePar.getBattGroupId(), realTimePar.getDevId(), lang);
        res.put("tinfdata", tinfRes);
        return new Response().set(1, res);
    }
    //配网5100
    public Response getInverter5100(RealTimePar realTimePar) {
        Map<String, Response> res = new HashMap<>();
        //查询fbs9100信息
        Response f9100stateRes = f9100service.serchContactorState(realTimePar.getDevId());
        res.put("f9100state", f9100stateRes);
        //查询tb_fbs5100_inverter_info信息
        Response f5100stateRes = fbs5100InverterInfoService.serchByDevId(realTimePar.getDevId());
        res.put("f5100stateRes", f5100stateRes);
        return new Response().set(1, res);
    }
    //标准的实时页面信息
    public Response getStandard(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.searchBattLastHrDataById(realTimePar.getBattGroupId(), realTimePar.getDevId(), lang);
        res.put("tinfdata", tinfRes);
        return new Response().set(1, res);
    }
    //A059的实时页面信息
    public Response getA059(RealTimePar realTimePar){
        Map<String,Response> 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 setparamRes=f9100setservice.serchCharHighTmp(realTimePar.getDevId());
        res.put("setparam",setparamRes);
        return  new Response().set(1,res);
    }
    //储能的实时页面信息
    public Response getEnestorage(RealTimePar realTimePar){
        Map<String,Response> res=new HashMap<>();
        //查询所有的系统状态信息
        Response ess3100SysRes=ess3100Sysservice.searchAll();
        res.put("ess3100Sys",ess3100SysRes);
        //查询所有的pcs状态信息
        Response ess3100PcsRes=ess3100Pcsservice.searchAll();
        res.put("ess3100Pcs",ess3100PcsRes);
        //根据电池组id查询储能电池组信息
        Response gtsRes=gtsservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("gts",gtsRes);
        //查询电池组单体信息
        Response rtdataRes=rtdataservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtdata",rtdataRes);
        return  new Response().set(1,res);
    }
    //BTSSreen的实时页面信息
    public Response getBtssreen(RealTimePar realTimePar){
        Map<String,Response> res=new HashMap<>();
        //查询电池组单体信息
        Response rtdataRes=rtdataservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtdata",rtdataRes);
        //根据电池id查询锂电池信息
        Response lithiumRes=lithiumservice.getInfoByBattGroupId(realTimePar.getBattGroupId());
        res.put("lithium",lithiumRes);
        //查询电池组端信息
        Response rtstateRes=rtstateservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtstate",rtstateRes);
        return  new Response().set(1,res);
    }
    //电源信息的实时页面信息
    public Response getPower(RealTimePar realTimePar){
        Map<String,Response> res=new HashMap<>();
        //查询电源的ACDC信息
        Response pwrdevAcdcRes=pwrdevAcdcservice.getDataByDevId(realTimePar.getPowerDeviceId());
        res.put("pwrdevAcdc",pwrdevAcdcRes);
        return  new Response().set(1,res);
    }
    //获取绝缘装置的实时信息
    public Response getIsolating(RealTimePar realTimePar){
        Map<String,Response> res=new HashMap<>();
        //获取绝缘装置的实时信息
        Response f9100InsulatstateRes=f9100Insulatstateservice.getDataByDevId(realTimePar.getPowerDeviceId());
        res.put("f9100Insulatstate",f9100InsulatstateRes);
        return  new Response().set(1,res);
    }
    //获取充电机的实时信息
    public Response getCharger(RealTimePar realTimePar){
        Map<String,Response> res=new HashMap<>();
        //获取充电机的实时信息
        Response f9100ChargerstateRes=f9100Chargerstateservice.getDataByDevId(realTimePar.getPowerDeviceId());
        res.put("f9100Chargerstate",f9100ChargerstateRes);
        return  new Response().set(1,res);
    }
    //获取配电柜的实时数据
    public Response getPower1(RealTimePar realTimePar){
        Map<String,Response> res=new HashMap<>();
        //获取配电柜的实时数据
        Response pwrdevInfoRes=pwrdevAcdcservice.getPowerInfoById(realTimePar.getPowerDeviceId());
        res.put("pwrdevInfo",pwrdevInfoRes);
        return  new Response().set(1,res);
    }
    //TotalInfo 山西
    public Response getTotalInfo(RealTimePar realTimePar){
        Map<String,Response> res=new HashMap<>();
        //查询电池组单体信息
        Response rtdataRes=rtdataservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtdata",rtdataRes);
        //查询电池组端信息
        Response rtstateRes=rtstateservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("rtstate",rtstateRes);
        //查询fbs9100信息
        Response f9100stateRes=f9100service.serchContactorState(realTimePar.getDevId());
        res.put("f9100state",f9100stateRes);
        //查询fod信息
        Response fodRes=fodservice.serchByCondition(realTimePar.getBattGroupId());
        res.put("fod",fodRes);
        //查询电源的ACDC信息
        Response pwrdevAcdcRes=pwrdevAcdcservice.getDataByDevId(realTimePar.getPowerDeviceId());
        res.put("pwrdevAcdc",pwrdevAcdcRes);
        return  new Response().set(1,res);
    }
}