From 35030ce30b625cec394adee29b89d0b07352763a Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期六, 21 六月 2025 15:30:26 +0800 Subject: [PATCH] 实时界面电源状态修改 --- src/main/java/com/whyc/webSocket/RealTimeSocket.java | 290 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 257 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java index b899802..8c883ef 100644 --- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java +++ b/src/main/java/com/whyc/webSocket/RealTimeSocket.java @@ -1,10 +1,16 @@ 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; import com.whyc.dto.RealTimeDto; import com.whyc.dto.Response; import com.whyc.factory.BattCapFactory; +import com.whyc.pojo.db_batt_testdata.BattresdataInf; import com.whyc.pojo.db_batt_testdata.BatttestdataInf; import com.whyc.pojo.db_ram_db.BattRtdata; import com.whyc.pojo.db_ram_db.BattRtstate; @@ -23,6 +29,7 @@ import javax.servlet.http.HttpSession; import javax.websocket.*; import javax.websocket.server.ServerEndpoint; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -61,6 +68,9 @@ //鍗曚綋淇℃伅 private static BattRtdataService rtdataService; + + //鍐呴樆娴嬭瘯淇℃伅 + private static BattresdataInfService battresdataInfService; private volatile boolean runFlag = true; @@ -124,6 +134,11 @@ @Autowired public void setBattRtdataService(BattRtdataService rtdataService) { RealTimeSocket.rtdataService = rtdataService; + } + + @Autowired + public void setBattresdataInfService(BattresdataInfService battresdataInfService) { + RealTimeSocket.battresdataInfService = battresdataInfService; } @@ -190,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)); @@ -218,7 +234,8 @@ DeviceState deviceState = deviceStateService.getDevRealInfo(realDto.getDevId()); if (deviceState != null) { topDto.setDevState(deviceState.getDevWorkstate()); - if (deviceState.getDevWorkstate() == 1) {//鏍稿鏀剧數 + topDto.setDevStateName(DevStateEnum.getValue(deviceState.getDevWorkstate())); + if (deviceState.getDevWorkstate() == DevStateEnum.DEVSTATE_2.getStateId()) {//鏍稿鏀剧數 topDto.setCaptestGroupvol(deviceState.getDevCaptestGroupvol()); topDto.setCaptestCurr(deviceState.getDevCaptestCurr()); topDto.setCaptestTimelong(deviceState.getDevCaptestTimelong()); @@ -228,7 +245,7 @@ topDto.setRestCap(restCap); //瀹炴椂缁勭鐢垫祦锛屽墿浣欏閲忥紝鏍囩О瀹归噺 if(battRtstate!=null){ - Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), restCap, binf.getMoncapstd()); + Float restTime= BattCapFactory.getTheoryTime(battRtstate.getLoadCurr(), restCap, binf.getMoncapstd()); topDto.setRestTime(restTime); } } @@ -244,12 +261,19 @@ topDto.setPwrALmNum(pwrALmNum); //瀹炴椂鑾峰彇鐢垫簮淇℃伅(鏄惁瀛樺湪鐢垫簮鍛婅淇℃伅) - //PwrdevAcdcdata pwrdevAcdcdata = pwrdevAcdcdataService.getPwrRealInfo(realDto.getPowerId()); - topDto.setPwrState((pwrALmNum > 0 ? 1 : 0)); - + PwrdevAcdcdata pwrdevAcdcdata = pwrdevAcdcdataService.getPwrRealInfo(realDto.getPowerId()); + topDto.setPwrState(pwrdevAcdcdata.getIsJunCharge()); + //鏌ョ湅褰撳墠鏄惁瀛樺湪浜ゆ祦鍋滅數鍛婅锛坕s_jun_charge 鐢垫簮鏄惁鍧囧厖[1-鍧囧厖 0-娴厖],鑻ュ綋鍓嶇數婧愬瓨鍦ㄤ氦娴佸仠鐢靛憡璀﹀垯鏄剧ず鍋滅數鍏朵粬鎸夌収鐘舵�佸睍绀恒�傦級 + int stopFalg=pwrdevAlarmService.judge3100014(realDto.getPowerId()); + if(stopFalg==1){ + topDto.setPwrStateName("鍋滅數"); + }else{ + topDto.setPwrStateName((pwrdevAcdcdata.getIsJunCharge()==1 ? "鍧囧厖" : "娴厖")); + } Integer allALmNum = battALmNum + devALmNum + pwrALmNum; topDto.setAllALmNum(allALmNum); topDto.setSystemState((allALmNum > 0 ? 1 : 0)); + topDto.setSystemStateName((allALmNum > 0 ? "绯荤粺寮傚父" : "绯荤粺姝e父")); } return new Response().setII(1, true, topDto, "瀹炴椂椤甸潰澶撮儴鏁版嵁鎺ㄩ��"); } catch (Exception e) { @@ -276,61 +300,144 @@ } //鑾峰彇绠$悊鐣岄潰淇℃伅 private Response getManagePage(RealTimeDto realDto) { - return new Response().set(1); + Map<String, Object> map=new HashMap<>(); + try { + StationInf sinf=stationInfService.getStationInfById(realDto.getStationId()); + map.put("sinf",sinf); + PowerInf pinf=powerInfService.getPowerInfById(realDto.getPowerId()); + map.put("pinf",pinf); + BattInf binf=battInfService.getBinfByBattgroupId(realDto.getBattgroupId()); + map.put("binf",binf); + map.put("pageType",realDto.getPageType()); + return new Response().setII(1,true,map,"绠$悊鐣岄潰淇℃伅鎺ㄩ��"); + }catch (Exception e){ + return new Response().set(1,false,"绠$悊鐣岄潰淇℃伅鎺ㄩ��"); + } } //鑾峰彇鑷剤鑳藉姏鐣岄潰淇℃伅 private Response getSelfPage(RealTimeDto realDto) { - return new Response().set(1); + Map<String, Object> map=new HashMap<>(); + map.put("pageType",realDto.getPageType()); + return new Response().setII(1,true,map,"鑷剤鑳藉姏鐣岄潰淇℃伅鎺ㄩ��"); } //鑾峰彇3D鐣岄潰淇℃伅 private Response get3DPage(RealTimeDto realDto) { - return new Response().set(1); + Map<String, Object> map=new HashMap<>(); + map.put("pageType",realDto.getPageType()); + return new Response().setII(1,true,map,"3D鐣岄潰淇℃伅淇℃伅鎺ㄩ��"); } //鑾峰彇鍥剧墖鐣岄潰淇℃伅 private Response getImgPage(RealTimeDto realDto) { - return new Response().set(1); + Map<String, Object> map=new HashMap<>(); + map.put("pageType",realDto.getPageType()); + return new Response().setII(1,true,map,"鍥剧墖鐣岄潰淇℃伅淇℃伅鎺ㄩ��"); } //鑾峰彇娓╁害鐣岄潰淇℃伅 private Response getTmpPage(RealTimeDto realDto) { - return new Response().set(1); + Map<String, Object> map=new HashMap<>(); + Float maxData=0f; + Float minData=0f; + Float avgData=0f; + try { + //瀹炴椂鑾峰彇鍗曚綋淇℃伅 + List<BattRtdata> rtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId()); + if(rtdataList!=null&&rtdataList.size()>0){ + for(int i=0;i<rtdataList.size();i++) { + BattRtdata battRtdata=rtdataList.get(i); + if(i==0){ + maxData=battRtdata.getMonTmp(); + minData=battRtdata.getMonTmp(); + } + if (battRtdata.getMonTmp() >= maxData) { + maxData = battRtdata.getMonTmp(); + } + if (battRtdata.getMonTmp() <= minData) { + minData = battRtdata.getMonTmp(); + } + avgData += battRtdata.getMonTmp(); + } + avgData=avgData/rtdataList.size(); + } + map.put("rtdataList",rtdataList!=null?rtdataList:""); + map.put("maxData",maxData); + map.put("minData",minData); + map.put("avgData",avgData); + map.put("pageType",realDto.getPageType()); + return new Response().setII(1,true,map,"娓╁害鐣岄潰淇℃伅鎺ㄩ��"); + }catch (Exception e){ + return new Response().set(1,false,"娓╁害鐣岄潰淇℃伅鎺ㄩ��"); + } } //鑾峰彇鍐呴樆鐣岄潰淇℃伅 private Response getResPage(RealTimeDto realDto) { Map<String, Object> map=new HashMap<>(); + Float maxData=0f; + Float minData=0f; + Float avgData=0f; try { //瀹炴椂鑾峰彇鍗曚綋淇℃伅 List<BattRtdata> rtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId()); - map.put("rtdataList",rtdataList); - return new Response().setII(1,true,map,"鐢靛帇鐣岄潰淇℃伅鎺ㄩ��"); + if(rtdataList!=null&&rtdataList.size()>0){ + for(int i=0;i<rtdataList.size();i++) { + BattRtdata battRtdata=rtdataList.get(i); + if(i==0){ + maxData=battRtdata.getMonRes(); + minData=battRtdata.getMonRes(); + } + if (battRtdata.getMonRes() >= maxData) { + maxData = battRtdata.getMonRes(); + } + if (battRtdata.getMonRes() <= minData) { + minData = battRtdata.getMonRes(); + } + avgData += battRtdata.getMonRes(); + } + avgData=avgData/rtdataList.size(); + } + map.put("rtdataList",rtdataList!=null?rtdataList:""); + map.put("maxData",maxData); + map.put("minData",minData); + map.put("avgData",avgData); + //涓婁竴娆″唴闃绘祴璇曟暟鎹� + BattresdataInf rinfData= battresdataInfService.getLastTestData(realDto.getBattgroupId()); + map.put("rinfData",rinfData!=null?rinfData:""); + map.put("pageType",realDto.getPageType()); + return new Response().setII(1,true,map,"鍐呴樆鐣岄潰淇℃伅鎺ㄩ��"); }catch (Exception e){ - return new Response().set(1,false,"鐢靛帇鐣岄潰淇℃伅鎺ㄩ��"); + return new Response().set(1,false,"鍐呴樆鐣岄潰淇℃伅鎺ㄩ��"); } } //鑾峰彇鐢靛帇鐣岄潰淇℃伅 private Response getVolPage(RealTimeDto realDto) { Map<String, Object> map=new HashMap<>(); - Float maxVol=0f; - Float minVol=0f; - Float avgVol=0f; + Float maxData=0f; + Float minData=0f; + Float avgData=0f; try { //瀹炴椂鑾峰彇鍗曚綋淇℃伅 List<BattRtdata> rtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId()); if(rtdataList!=null&&rtdataList.size()>0){ - for(BattRtdata battRtdata:rtdataList) { - if (battRtdata.getMonVol() > maxVol) { - maxVol = battRtdata.getMonVol(); + for(int i=0;i<rtdataList.size();i++) { + BattRtdata battRtdata=rtdataList.get(i); + if(i==0){ + maxData=battRtdata.getMonVol(); + minData=battRtdata.getMonVol(); } - if (battRtdata.getMonVol() < minVol) { - minVol = battRtdata.getMonVol(); + if (battRtdata.getMonVol() >= maxData) { + maxData = battRtdata.getMonVol(); } - avgVol += battRtdata.getMonVol(); + if (battRtdata.getMonVol() <= minData) { + minData = battRtdata.getMonVol(); + } + avgData += battRtdata.getMonVol(); } - avgVol=avgVol/rtdataList.size(); + avgData=avgData/rtdataList.size(); } - map.put("rtdataList",rtdataList); - map.put("maxVol",maxVol); - map.put("minVol",minVol); - map.put("avgVol",avgVol); + map.put("rtdataList",rtdataList!=null?rtdataList:""); + map.put("maxData",maxData); + map.put("minData",minData); + map.put("avgData",avgData); + map.put("pageType",realDto.getPageType()); return new Response().setII(1,true,map,"鐢靛帇鐣岄潰淇℃伅鎺ㄩ��"); }catch (Exception e){ return new Response().set(1,false,"鐢靛帇鐣岄潰淇℃伅鎺ㄩ��"); @@ -342,7 +449,11 @@ try { //瀹炴椂鑾峰彇鐢垫簮淇℃伅 PwrdevAcdcdata pwrdevAcdcdata = pwrdevAcdcdataService.getPwrRealInfo(realDto.getPowerId()); - map.put("pwrdevAcdcdata",pwrdevAcdcdata); + map.put("pwrdevAcdcdata",pwrdevAcdcdata!=null?pwrdevAcdcdata:""); + //鐢垫簮瀵硅薄(鏁存祦鍣ㄤ娇鐢ㄦ儏鍐�) + PowerInf powerInf = powerInfService.getPowerInfById(realDto.getPowerId()); + map.put("powerInf",powerInf!=null?powerInf:""); + map.put("pageType",realDto.getPageType()); return new Response().setII(1,true,map,"鐢垫簮鐣岄潰淇℃伅鎺ㄩ��"); }catch (Exception e){ return new Response().set(1,false,"鐢垫簮鐣岄潰淇℃伅鎺ㄩ��"); @@ -351,26 +462,139 @@ //鑾峰彇绯荤粺姒傝堪鐣岄潰淇℃伅 private Response getSystemPage(RealTimeDto realDto) { Map<String, Object> map=new HashMap<>(); + map.put("pageType",realDto.getPageType()); try { //瀹炴椂鑾峰彇鐢垫睜缁勪俊鎭� BattRtstate battRtstate = battRtstateService.getBattRealInfo(realDto.getBattgroupId()); - map.put("battRtstate",battRtstate); + if(battRtstate!=null){ + battRtstate.setLastCaptestStopTypeReason(StopReasonEnum.getValue(battRtstate.getLastCaptestStopType())); + battRtstate.setControlFailTypeReason(FailReasonEnum.getValue(battRtstate.getControlFailType())); + } + map.put("battRtstate",battRtstate!=null?battRtstate:""); //瀹炴椂鑾峰彇璁惧淇℃伅 DeviceState deviceState = deviceStateService.getDevRealInfo(realDto.getDevId()); - map.put("deviceState",deviceState); + map.put("deviceState",deviceState!=null?deviceState:""); //鑾峰彇涓婁竴娆℃爣鍑嗘牳瀹逛俊鎭� BatttestdataInf tinfData= batttestdataInfService.getLastStandardTestData(realDto.getBattgroupId()); - map.put("tinfData",tinfData); + map.put("tinfData",tinfData!=null?tinfData:""); //鑾峰彇杩戝崐灏忔椂鐢垫簮鏁版嵁锛屾暣娴佸櫒鏁版嵁锛屾牳瀹硅澶囨暟鎹紙鎺ㄩ�佸疄鏃讹紝鎺ュ彛鏌ヨ鏈�杩戝崐灏忔椂鏁版嵁锛� PwrdevAcdcdata pwrdevAcdcdata = pwrdevAcdcdataService.getPwrRealInfo(realDto.getPowerId()); - map.put("pwrdevAcdcdata",pwrdevAcdcdata); + map.put("pwrdevAcdcdata",pwrdevAcdcdata!=null?pwrdevAcdcdata:""); + //鐢垫簮瀵硅薄(鏁存祦鍣ㄤ娇鐢ㄦ儏鍐�) + PowerInf powerInf = powerInfService.getPowerInfById(realDto.getPowerId()); + map.put("powerInf",powerInf!=null?powerInf:""); + //鑾峰彇鐢垫睜缁勭殑钃勭數姹犱俊鎭� + List<BattRtdata> battRtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId()); + SticRealRtdataDto dto=setMaxMinData(battRtdataList); + map.put("sticRtdata",dto); return new Response().setII(1,true,map,"绯荤粺姒傝堪鎺ㄩ��"); }catch (Exception e) { e.printStackTrace(); } return new Response().set(1,false,"绯荤粺姒傝堪鎺ㄩ��"); } - + //璁$畻闆嗗悎涓崟浣撶數鍘嬶紝鍐呴樆锛屾俯搴︼紝瀹归噺鐨勬渶澶ф渶灏忓�� + public SticRealRtdataDto setMaxMinData(List<BattRtdata> battRtdataList){ + SticRealRtdataDto dto=new SticRealRtdataDto(); + Float maxCap = 0.0f; + Float minCap = 0.0f; + Float maxVol = 0.0f; + Float minVol = 0.0f; + Float maxTmp = 0.0f; + Float minTmp = 0.0f; + Float maxRes = 0.0f; + Float minRes = 0.0f; + List<Integer> maxCapNumList = new ArrayList<>(); + List<Integer> minCapNumList = new ArrayList<>(); + List<Integer> maxVolNumList = new ArrayList<>(); + List<Integer> minVolNumList = new ArrayList<>(); + List<Integer> maxTmpNumList = new ArrayList<>(); + List<Integer> minTmpNumList = new ArrayList<>(); + List<Integer> maxResNumList = new ArrayList<>(); + List<Integer> minResNumList = new ArrayList<>(); + //璁$畻闆嗗悎涓崟浣撶數鍘嬶紝鍐呴樆锛屾俯搴︼紝瀹归噺鐨勬渶澶ф渶灏忓�� + 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(); + } + if(rtdata.getMonVol()<=minVol){ + minVol = rtdata.getMonVol(); + } + if(rtdata.getMonTmp()>=maxTmp){ + maxTmp = rtdata.getMonTmp(); + } + if(rtdata.getMonTmp()<=minTmp){ + minTmp = rtdata.getMonTmp(); + } + if(rtdata.getMonRes()>=maxRes){ + maxRes = rtdata.getMonRes(); + } + if(rtdata.getMonRes()<=minRes){ + minRes = rtdata.getMonRes(); + } + if(rtdata.getMonCap()>=maxCap){ + maxCap = rtdata.getMonCap(); + } + if(rtdata.getMonCap()<=minCap){ + minCap = rtdata.getMonCap(); + } + } + dto.setMaxCap(maxCap); + dto.setMinCap(minCap); + dto.setMaxVol(maxVol); + dto.setMinVol(minVol); + dto.setMaxTmp(maxTmp); + dto.setMinTmp(minTmp); + dto.setMaxRes(maxRes); + dto.setMinRes(minRes); + for (BattRtdata rtdata:battRtdataList) { + if(rtdata.getMonVol()==maxVol){ + maxVolNumList.add(rtdata.getMonNum()); + } + if(rtdata.getMonVol()==minVol){ + minVolNumList.add(rtdata.getMonNum()); + } + if(rtdata.getMonTmp()==maxTmp){ + maxTmpNumList.add(rtdata.getMonNum()); + } + if(rtdata.getMonTmp()==minTmp){ + minTmpNumList.add(rtdata.getMonNum()); + } + if(rtdata.getMonRes()==maxRes){ + maxResNumList.add(rtdata.getMonNum()); + } + if(rtdata.getMonRes()==minRes){ + minResNumList.add(rtdata.getMonNum()); + } + if(rtdata.getMonCap()==maxCap){ + maxCapNumList.add(rtdata.getMonNum()); + } + if(rtdata.getMonCap()==minCap){ + 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 public void onClose(CloseReason closeReason){ System.err.println("closeReason = " + closeReason); -- Gitblit v1.9.1