From a1d2d4dbf00ffc778003abefac9e643c6bb82059 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期二, 10 六月 2025 14:01:18 +0800 Subject: [PATCH] 系统概述推送添加蓄电池组单体信息统计 --- src/main/java/com/whyc/dto/Statistic/DisChargeStic.java | 2 src/main/java/com/whyc/dto/Statistic/SticDischarge6Res.java | 22 +++++ src/main/java/com/whyc/service/BattInfService.java | 4 + src/main/java/com/whyc/service/BatttestdataInfService.java | 30 ++----- src/main/java/com/whyc/webSocket/RealTimeSocket.java | 91 ++++++++++++++++++++++ src/main/java/com/whyc/dto/Real/SticRealRtdataDto.java | 45 +++++++++++ src/main/java/com/whyc/mapper/BattInfMapper.java | 2 src/main/resources/mapper/DeviceSetparamMapper.xml | 2 src/main/resources/mapper/BattInfMapper.xml | 29 +++++++ src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java | 3 10 files changed, 204 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/whyc/dto/Real/SticRealRtdataDto.java b/src/main/java/com/whyc/dto/Real/SticRealRtdataDto.java new file mode 100644 index 0000000..352bbca --- /dev/null +++ b/src/main/java/com/whyc/dto/Real/SticRealRtdataDto.java @@ -0,0 +1,45 @@ +package com.whyc.dto.Real; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class SticRealRtdataDto { + private Float maxCap; + private Float minCap; + private List<Integer> maxCapNumList; + private List<Integer> minCapNumList; + private Float maxVol; + private Float minVol; + private List<Integer> maxVolNumList; + private List<Integer> minVolNumList; + private Float maxTmp; + private Float minTmp; + private List<Integer> maxTmpNumList; + private List<Integer> minTmpNumList; + private Float maxRes; + private Float minRes; + private List<Integer> maxResNumList; + private List<Integer> minResNumList; + + public SticRealRtdataDto() { + maxCap = 0.0f; + minCap = 0.0f; + maxVol = 0.0f; + minVol = 0.0f; + maxTmp = 0.0f; + minTmp = 0.0f; + maxRes = 0.0f; + minRes = 0.0f; + maxCapNumList = new ArrayList<>(); + minCapNumList = new ArrayList<>(); + maxVolNumList = new ArrayList<>(); + minVolNumList = new ArrayList<>(); + maxTmpNumList = new ArrayList<>(); + minTmpNumList = new ArrayList<>(); + maxResNumList = new ArrayList<>(); + minResNumList = new ArrayList<>(); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/dto/Statistic/DisChargeStic.java b/src/main/java/com/whyc/dto/Statistic/DisChargeStic.java index 9a7267f..5d7a152 100644 --- a/src/main/java/com/whyc/dto/Statistic/DisChargeStic.java +++ b/src/main/java/com/whyc/dto/Statistic/DisChargeStic.java @@ -4,6 +4,7 @@ import lombok.Data; import java.util.Date; +import java.util.List; @Data public class DisChargeStic { @@ -19,4 +20,5 @@ private Date testEndTime;//缁撴潫鏃堕棿 private Integer pageNum; private Integer pageSize; + private List<Integer> typeList; //鍋滄鍘熷洜闆嗗悎 } \ No newline at end of file diff --git a/src/main/java/com/whyc/dto/Statistic/SticDischarge6Res.java b/src/main/java/com/whyc/dto/Statistic/SticDischarge6Res.java new file mode 100644 index 0000000..8184297 --- /dev/null +++ b/src/main/java/com/whyc/dto/Statistic/SticDischarge6Res.java @@ -0,0 +1,22 @@ +package com.whyc.dto.Statistic; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class SticDischarge6Res { + private String provice; + private String city; + private String country; + private String stationName; + private String battgroupName; + private Float monvolstd; + private Float moncapstd; + private Float monCount; + private String product; + private Integer errorNum; + private List<String> stopList; +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BattInfMapper.java b/src/main/java/com/whyc/mapper/BattInfMapper.java index 0e66a3b..46b3234 100644 --- a/src/main/java/com/whyc/mapper/BattInfMapper.java +++ b/src/main/java/com/whyc/mapper/BattInfMapper.java @@ -50,4 +50,6 @@ List<BattInf> getBattCompare17Statistic(@Param("stic") BattCompareStic stic); //鏈勾搴﹀凡鏀剧數鏁伴噺缁熻(1.2.5) List<BattInf> getDischr5Statistic(@Param("stic") DisChargeStic stic); + //鏈勾搴﹀凡鏀剧數鏁伴噺缁熻(1.2.6) + List<BattInf> getDischr6Statistic(@Param("stic") DisChargeStic stic); } \ No newline at end of file diff --git a/src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java b/src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java index 8260781..ded6769 100644 --- a/src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java +++ b/src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java @@ -105,5 +105,8 @@ @ApiModelProperty(value = "涓婁竴娆℃牳瀹圭粓姝㈠師鍥�") private Integer lastCaptestStopType; + @ApiModelProperty(value = "涓婁竴娆℃牳瀹圭粓姝㈠師鍥�") + private Float loadCurr; + } diff --git a/src/main/java/com/whyc/service/BattInfService.java b/src/main/java/com/whyc/service/BattInfService.java index a7061be..eeea2e3 100644 --- a/src/main/java/com/whyc/service/BattInfService.java +++ b/src/main/java/com/whyc/service/BattInfService.java @@ -464,4 +464,8 @@ public List<BattInf> getDischr5Statistic(DisChargeStic stic) { return mapper.getDischr5Statistic(stic); } + //鏈勾搴﹀凡鏀剧數鏁伴噺缁熻(1.2.6) + public List<BattInf> getDischr6Statistic(DisChargeStic stic) { + return mapper.getDischr6Statistic(stic); + } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java index 0f96191..b8f010d 100644 --- a/src/main/java/com/whyc/service/BatttestdataInfService.java +++ b/src/main/java/com/whyc/service/BatttestdataInfService.java @@ -86,7 +86,7 @@ BattInf binf=battInfService.getBinfByBattgroupId(tinf.getBattgroupId()); //瀹炴椂缁勭鐢垫祦锛屽墿浣欏閲忥紝鏍囩О瀹归噺 if(battRtstate!=null){ - Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), restCap, binf.getMoncapstd()); + Float restTime= BattCapFactory.getTheoryTime(battRtstate.getLoadCurr(), restCap, binf.getMoncapstd()); tinf.setRestTime(restTime); } //淇濈暀5浣嶅皬鏁� @@ -572,7 +572,7 @@ dto.setMonCount(binf.getMoncount()); dto.setMonvolstd(binf.getMonvolstd()); if(battRtstate!=null){ - Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), realCap, binf.getMoncapstd()); + Float restTime= BattCapFactory.getTheoryTime(battRtstate.getLoadCurr(), realCap, binf.getMoncapstd()); dto.setRestTime(restTime); dto.setFloatchartVol(battRtstate.getGroupVol()); }else{ @@ -715,37 +715,23 @@ Map<String, Object> map=new HashMap<>(); //鏌ヨ鍑烘墍鏈夌殑鐝粍骞惰祴浜堝垵濮嬪�� setBanZuDefault(map); - //鑾峰彇鏍稿浼樺姡锛屾崯鍧忓弬鏁� - List<AppParam> paramList=appParamService.getHrParam(); - Float badValue=0f; - Float damageValue=0f; - if(paramList!=null){ - for (AppParam param:paramList) { - if(param.getParamNamePsx().equals("batt_mon_deteriorate_val")){ - badValue=param.getParamValue(); - } - if(param.getParamNamePsx().equals("batt_mon_damage_val")){ - damageValue=param.getParamValue(); - } - } - } //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍 - List<BattInf> binfList=battInfService.getDischr5Statistic(stic); + List<BattInf> binfList=battInfService.getDischr6Statistic(stic); if(binfList==null||binfList.size()==0){ return new Response().set(1,false,"褰撳墠鐢ㄦ埛鏈鐞嗘弧瓒虫潯浠剁殑鐢垫睜缁�"); } - List<SticDischarge5Res> reslist=new ArrayList<>(); - for (BattInf binf:binfList) { + List<SticDischarge6Res> reslist=new ArrayList<>(); + /*for (BattInf binf:binfList) { //鏌ヨ鐢垫睜缁勬墍鍦ㄧ殑鐝粍 String groupName=bjService.getGroupName(binf.getPowerId()); - SticDischarge5Res res=new SticDischarge5Res(); + SticDischarge6Res res=new SticDischarge6Res(); res.setProvice(binf.getProvice()); res.setCity(binf.getCity()); res.setCountry(binf.getCountry()); res.setStationName(binf.getStationName()); res.setBattgroupName(binf.getBattgroupName()); - //2.鑾峰彇鐢垫睜缁勫湪缁欏畾鏃堕棿娈电殑鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數) + //2.鑾峰彇鐢垫睜缁勬湭鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數) BatttestdataInf tinf =getLastStandardTestDataByTime(binf.getBattgroupId(),stic.getTestStartTime(),stic.getTestEndTime()); if(tinf==null){ res.setRealCap(0f); @@ -794,7 +780,7 @@ reslist.add(res); } } - } + }*/ PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize()); return new Response().setII(1,reslist.size()>0,pageInfo,"鏈勾搴︽湭鏀剧數鏁伴噺缁熻"); } diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java index a4194ed..9e46536 100644 --- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java +++ b/src/main/java/com/whyc/webSocket/RealTimeSocket.java @@ -2,6 +2,7 @@ import com.whyc.config.WebSocketConfig; import com.whyc.constant.DevStateEnum; +import com.whyc.dto.Real.SticRealRtdataDto; import com.whyc.dto.Real.TopDto; import com.whyc.dto.RealTimeDto; import com.whyc.dto.Response; @@ -25,6 +26,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; @@ -238,7 +240,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); } } @@ -462,13 +464,98 @@ //鐢垫簮瀵硅薄(鏁存祦鍣ㄤ娇鐢ㄦ儏鍐�) 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 (BattRtdata rtdata:battRtdataList) { + 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()); + } + } + return dto; + } @OnClose public void onClose(CloseReason closeReason){ System.err.println("closeReason = " + closeReason); diff --git a/src/main/resources/mapper/BattInfMapper.xml b/src/main/resources/mapper/BattInfMapper.xml index 11389a9..5886e22 100644 --- a/src/main/resources/mapper/BattInfMapper.xml +++ b/src/main/resources/mapper/BattInfMapper.xml @@ -346,5 +346,32 @@ order by tb_batt_inf.dev_id asc,battgroup_id asc </where> </select> - + <select id="getDischr6Statistic" resultType="com.whyc.pojo.db_station.BattInf"> + select distinct tb_batt_inf.* + ,tb_station_inf.station_type,tb_station_inf.station_name,tb_station_inf.provice,tb_station_inf.city,tb_station_inf.country,tb_station_inf.full_name + from db_station.tb_batt_inf,db_station.tb_station_inf + <where> + tb_batt_inf.station_id=tb_station_inf.station_id + <if test="stic.provice!=null"> + and tb_station_inf.provice=#{stic.provice} + </if> + <if test="stic.city!=null"> + and tb_station_inf.city=#{stic.city} + </if> + <if test="stic.country!=null"> + and tb_station_inf.country=#{stic.country} + </if> + <if test="stic.stationName!=null"> + and tb_station_inf.station_name=#{stic.stationName} + </if> + <if test="stic.uid>100"> + and tb_batt_inf.station_id in( + select distinct station_id from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr + where tb_baojigroup_power.baoji_group_id=tb_baojigroup_usr.baoji_group_id + and tb_baojigroup_usr.uid=#{stic.uid} + ) + </if> + order by tb_batt_inf.dev_id asc,battgroup_id asc + </where> + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/DeviceSetparamMapper.xml b/src/main/resources/mapper/DeviceSetparamMapper.xml index 8f2ea1a..bca13f6 100644 --- a/src/main/resources/mapper/DeviceSetparamMapper.xml +++ b/src/main/resources/mapper/DeviceSetparamMapper.xml @@ -26,6 +26,6 @@ from db_ram_db.tb_device_setparam, db_station.tb_batt_inf, db_station.tb_station_inf where tb_device_setparam.dev_id = tb_batt_inf.dev_id and tb_batt_inf.station_id = tb_station_inf.station_id - and dev_id = #{devId} and battgroup_num = #{battGroupNum} + and tb_device_setparam.dev_id = #{devId} and tb_device_setparam.battgroupnum = #{battGroupNum} </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1