From 10574a67b78e2578fc10e8fbe83965bf4832c36a Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期四, 12 六月 2025 17:06:40 +0800 Subject: [PATCH] 优良电源数量统计(1.2.7) --- src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java | 16 +++ src/main/java/com/whyc/service/BattInfService.java | 4 src/main/java/com/whyc/service/BatttestdataInfService.java | 47 ++++++--- src/main/resources/mapper/PowerInfMapper.xml | 40 ++++++++ src/main/java/com/whyc/service/SubTablePageInfoService.java | 24 ++++ src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java | 11 +- src/main/java/com/whyc/mapper/PowerInfMapper.java | 5 + src/main/java/com/whyc/service/PowerInfService.java | 5 + src/main/java/com/whyc/dto/Statistic/SticPwr7Res.java | 21 ++++ src/main/java/com/whyc/mapper/BattInfMapper.java | 3 src/main/java/com/whyc/service/PwrdevHistorydataIdService.java | 40 ++++++++ src/main/resources/mapper/BattInfMapper.xml | 40 -------- 12 files changed, 188 insertions(+), 68 deletions(-) diff --git a/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java b/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java index 11fa0c9..b2f672a 100644 --- a/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java +++ b/src/main/java/com/whyc/dto/Statistic/Pwr7Stic.java @@ -11,15 +11,14 @@ private String city; private String country; private String stationName; - private String battgroupName; - private String product; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String company; + @JsonFormat(pattern = "yyyy-MM-dd") private Date inuseStartTime;//寮�濮嬫椂闂� - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd") private Date inuseEndTime;//缁撴潫鏃堕棿 - private Float monvolstd; + private String stationType; private Integer performance;//鐢垫睜鎬ц兘锛�1浼樼锛�2鍔e寲锛�3鎹熷潖 4鏈斁鐢� 涓嶄紶鍏ㄩ儴 - private Integer baojiGroupId; + private String groupName; private Integer uid; private Integer pageNum; private Integer pageSize; diff --git a/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java b/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java new file mode 100644 index 0000000..19259b4 --- /dev/null +++ b/src/main/java/com/whyc/dto/Statistic/QuarterPwr7Res.java @@ -0,0 +1,16 @@ +package com.whyc.dto.Statistic; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class QuarterPwr7Res { + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date recordDatetime; + private Float acin1Vola; + private Float acoutVola; + private Float dcoutVol; + private Float dcoutCurr; +} \ No newline at end of file diff --git a/src/main/java/com/whyc/dto/Statistic/SticPwr7Res.java b/src/main/java/com/whyc/dto/Statistic/SticPwr7Res.java new file mode 100644 index 0000000..d844030 --- /dev/null +++ b/src/main/java/com/whyc/dto/Statistic/SticPwr7Res.java @@ -0,0 +1,21 @@ +package com.whyc.dto.Statistic; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class SticPwr7Res { + private String provice; + private String city; + private String country; + private String stationName; + private String powerName; + private String company; + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inuseTime; + private String stationType; + private String groupName; + private String performanceName;//鐢垫睜鎬ц兘锛�1浼樼锛�2鍔e寲锛�3鎹熷潖 4鏈斁鐢� 涓嶄紶鍏ㄩ儴 +} \ 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 f479160..c36a67d 100644 --- a/src/main/java/com/whyc/mapper/BattInfMapper.java +++ b/src/main/java/com/whyc/mapper/BattInfMapper.java @@ -53,6 +53,5 @@ List<BattInf> getPerformanceStatistic(@Param("stic") PerformanceStic stic); //鏈勾搴﹀凡/鏈斁鐢垫暟閲忕粺璁″彸渚у浘琛�(1.2.5) List<BattInf> getDischrChart(@Param("uid") Integer uid); - //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7) - List<BattInf> getPwr7Statistic(@Param("stic") Pwr7Stic stic); + } \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/PowerInfMapper.java b/src/main/java/com/whyc/mapper/PowerInfMapper.java index d4a31dc..598ed76 100644 --- a/src/main/java/com/whyc/mapper/PowerInfMapper.java +++ b/src/main/java/com/whyc/mapper/PowerInfMapper.java @@ -1,7 +1,9 @@ package com.whyc.mapper; import com.whyc.dto.PowerDto; +import com.whyc.dto.Statistic.Pwr7Stic; import com.whyc.dto.Statistic.StationStic; +import com.whyc.pojo.db_station.BattInf; import com.whyc.pojo.db_station.PowerInf; import com.whyc.pojo.db_station.StationInf; import org.apache.ibatis.annotations.Param; @@ -26,4 +28,7 @@ List<PowerInf> getPowerStatistic(@Param("stic") StationStic stic); //鏌ヨ鏈烘埧鎵�鍦ㄧ殑鐝粍 String getGroupName(Integer powerId); + + //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7) + List<PowerInf> getPwr7Statistic(@Param("stic") Pwr7Stic stic); } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattInfService.java b/src/main/java/com/whyc/service/BattInfService.java index 9f5d008..534ae58 100644 --- a/src/main/java/com/whyc/service/BattInfService.java +++ b/src/main/java/com/whyc/service/BattInfService.java @@ -473,8 +473,4 @@ public List<BattInf> getDischrChart(Integer uid) { return mapper.getDischrChart(uid); } - //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7) - public List<BattInf> getPwr7Statistic(Pwr7Stic stic) { - return mapper.getPwr7Statistic(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 1cf2ea5..19b4222 100644 --- a/src/main/java/com/whyc/service/BatttestdataInfService.java +++ b/src/main/java/com/whyc/service/BatttestdataInfService.java @@ -17,6 +17,7 @@ import com.whyc.pojo.db_ram_db.BattRtdata; import com.whyc.pojo.db_ram_db.BattRtstate; import com.whyc.pojo.db_station.BattInf; +import com.whyc.pojo.db_station.PowerInf; import com.whyc.pojo.db_user.Baojigroup; import com.whyc.util.ActionUtil; import com.whyc.util.PageInfoUtils; @@ -49,8 +50,11 @@ @Autowired(required = false) private BaojigroupService bjService; + @Autowired(required = false) + private PowerInfService powerInfService; - + @Autowired(required = false) + private PwrdevHistorydataIdService pwrHisdataIdService; //鑾峰彇鏈�鍚庝竴娆℃祴璇曟暟鎹苟璁$畻鍓╀綑瀹归噺 @@ -875,24 +879,35 @@ } //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7) public Response getPwr7Statistic(Pwr7Stic stic) { - //鑾峰彇鏍稿浼樺姡锛屾崯鍧忓弬鏁� - 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(); + //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍 + List<PowerInf> pinfList=powerInfService.getPwr7Statistic(stic); + if(pinfList==null||pinfList.size()==0){ + return new Response().set(1,false,"褰撳墠鐢ㄦ埛鏈鐞嗘弧瓒虫潯浠剁殑鐢垫睜缁�"); + } + List<SticPwr7Res> reslist=new ArrayList<>(); + for (PowerInf pinf:pinfList) { + SticPwr7Res res=new SticPwr7Res(); + //鏌ヨ鐢垫睜缁勬墍鍦ㄧ殑鐝粍 + String groupName = bjService.getGroupName(pinf.getPowerId()); + if(groupName.equals("none")){ + continue; + }else{ + if(stic.getGroupName()==null||res.getGroupName()==stic.getGroupName()){ + res.setProvice(pinf.getProvice()); + res.setCity(pinf.getCity()); + res.setCountry(pinf.getCountry()); + res.setStationName(pinf.getStationName()); + res.setPowerName(pinf.getPowerName()); + res.setCompany(pinf.getCompany()); + res.setStationType(pinf.getStationType()); + res.setGroupName(groupName); + res.setInuseTime(pinf.getPowerInuseTime()); + Map<String,Integer> map=pwrHisdataIdService.getPwrQuarter7(pinf.getPowerId(),null); + reslist.add(res); } - if(param.getParamNamePsx().equals("batt_mon_damage_val")){ - damageValue=param.getParamValue(); - } - } } - //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍 - List<BattInf> binfList=battInfService.getPwr7Statistic(stic); - List<PerformanceRes> reslist=new ArrayList<>(); + PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize()); return new Response().setII(1,reslist.size()>0,pageInfo,"浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7)"); } diff --git a/src/main/java/com/whyc/service/PowerInfService.java b/src/main/java/com/whyc/service/PowerInfService.java index 90e1e71..8441058 100644 --- a/src/main/java/com/whyc/service/PowerInfService.java +++ b/src/main/java/com/whyc/service/PowerInfService.java @@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo; import com.whyc.dto.PowerDto; import com.whyc.dto.Response; +import com.whyc.dto.Statistic.Pwr7Stic; import com.whyc.dto.Statistic.StationStic; import com.whyc.mapper.BaojigroupPowerMapper; import com.whyc.mapper.BaojigroupUsrMapper; @@ -148,4 +149,8 @@ PageInfo<PowerInf> pageInfo=new PageInfo<>(list); return new Response().setII(1,list.size()>0,pageInfo,"鐢垫簮淇℃伅缁熻"); } + //浼樿壇鐢垫簮鏁伴噺缁熻(1.2.7) + public List<PowerInf> getPwr7Statistic(Pwr7Stic stic) { + return mapper.getPwr7Statistic(stic); + } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java index f5646de..a83a90c 100644 --- a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java +++ b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java @@ -1,8 +1,11 @@ package com.whyc.service; +import com.whyc.dto.Real.CompareDto; import com.whyc.dto.Real.PwrHisRealAcInDto; import com.whyc.dto.Real.PwrHisRealDcoutInDto; +import com.whyc.dto.Real.QuarterDto; import com.whyc.dto.Response; +import com.whyc.dto.Statistic.QuarterPwr7Res; import com.whyc.mapper.CommonMapper; import com.whyc.pojo.db_data_history.BattRealdataId; import com.whyc.pojo.db_data_history.PwrdevHistorydataId; @@ -15,7 +18,9 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service public class PwrdevHistorydataIdService { @@ -70,4 +75,39 @@ } return new Response().setIII(1,datalist.size()>0,datalist,modelCfg,"鑾峰彇鍗婂皬鏃跺唴鐩存祦杈撳嚭缁熻"); } + //1.2.7浼樿壇鐢垫簮缁熻涓婁竴瀛e害鐨勭數婧愭煇涓�灞炴�у拰鍙傛暟闃堝�艰秴杩囩殑娆℃暟 + public Map<String,Integer> getPwrQuarter7(Integer powerId, Map<String,Float> paramValue) { + Map<String,Integer> map=new HashMap<>(); + map.put("acin1Vola",0); + map.put("acoutVola",0); + map.put("dcoutVol",0); + map.put("dcoutCurr",0); + List<String> datelist = ActionUtil.getLastQuarterYearMonths(); + for (int i=0;i<datelist.size();i++) { + String date=datelist.get(i); + String tableName ="db_data_history.tb_pwrdev_historydata_"+powerId+"_"+date; + String existTableName = commonMapper.existTable("db_data_history", "tb_pwrdev_historydata_"+powerId+"_"+date); + //鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦� + if(existTableName == null){ + continue; + } + List<QuarterPwr7Res> datalist=subTablePageInfoService.getPwrQuarter7(tableName); + // 閬嶅巻 dataList 骞舵瘮杈冨睘鎬у�� + for (QuarterPwr7Res data : datalist) { + if (data.getAcin1Vola() > paramValue.get("acin1Vola")) { + map.put("acin1Vola", map.get("acin1Vola") + 1); + } + if (data.getAcoutVola() > paramValue.get("acoutVola")) { + map.put("acoutVola", map.get("acoutVola") + 1); + } + if (data.getDcoutVol() > paramValue.get("dcoutVol")) { + map.put("dcoutVol", map.get("dcoutVol") + 1); + } + if (data.getDcoutCurr() > paramValue.get("dcoutCurr")) { + map.put("dcoutCurr", map.get("dcoutCurr") + 1); + } + } + } + return map; + } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java index 88522b3..2bc905d 100644 --- a/src/main/java/com/whyc/service/SubTablePageInfoService.java +++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java @@ -4,6 +4,7 @@ import com.whyc.dto.AlmHis.DevAlmPar; import com.whyc.dto.AlmHis.PwrAlmPar; import com.whyc.dto.Real.*; +import com.whyc.dto.Statistic.QuarterPwr7Res; import com.whyc.mapper.CallBack; import com.whyc.pojo.db_alarm.BattalarmDataHistory; import com.whyc.pojo.db_alarm.DevalarmDataHistory; @@ -791,4 +792,27 @@ }); return list; } + //1.2.7浼樿壇鐢垫簮缁熻涓婁竴瀛e害鐨勭數婧愭煇涓�灞炴�у拰鍙傛暟闃堝�艰秴杩囩殑娆℃暟 + public List<QuarterPwr7Res> getPwrQuarter7(String tableName) { + String sql=" select distinct record_datetime,acin1_vola,acout_vola,dcout_vol,dcout_curr " + + " from "+tableName+" " ; + sql+=" order by record_datetime asc"; + List<QuarterPwr7Res> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<QuarterPwr7Res> list=new ArrayList<>(); + while (rs.next()){ + QuarterPwr7Res data=new QuarterPwr7Res(); + data.setRecordDatetime(rs.getTimestamp("record_datetime")); + data.setAcin1Vola(rs.getFloat("acin1_vola")); + data.setAcoutVola(rs.getFloat("acout_vola")); + data.setDcoutVol(rs.getFloat("dcout_vol")); + data.setDcoutCurr(rs.getFloat("dcout_curr")); + list.add(data); + } + return list; + } + }); + return list; + } } diff --git a/src/main/resources/mapper/BattInfMapper.xml b/src/main/resources/mapper/BattInfMapper.xml index 36b74db..6d8f68f 100644 --- a/src/main/resources/mapper/BattInfMapper.xml +++ b/src/main/resources/mapper/BattInfMapper.xml @@ -418,44 +418,4 @@ order by tb_batt_inf.dev_id asc,battgroup_id asc </where> </select> - <select id="getPwr7Statistic" 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.monvolstd!=null"> - and tb_batt_inf.monvolstd=#{stic.monvolstd} - </if> - <if test="stic.product!=null"> - and tb_batt_inf.product=#{stic.product} - </if> - <if test="stic.inuseStartTime!=null"> - and tb_batt_inf.inuse_time>=#{stic.inuseStartTime} - </if> - <if test="stic.inuseEndTime!=null"> - and tb_batt_inf.inuse_time<=#{stic.inuseEndTimee} - </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/PowerInfMapper.xml b/src/main/resources/mapper/PowerInfMapper.xml index 7520c9f..8bdef81 100644 --- a/src/main/resources/mapper/PowerInfMapper.xml +++ b/src/main/resources/mapper/PowerInfMapper.xml @@ -121,5 +121,45 @@ </if> </where> </select> + <select id="getPwr7Statistic" resultType="com.whyc.pojo.db_station.PowerInf"> + select distinct tb_power_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_power_inf,db_station.tb_station_inf + <where> + tb_power_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.stationType!=null"> + and tb_station_inf.station_type=#{stic.stationType} + </if> + <if test="stic.company!=null"> + and tb_power_inf.company=#{stic.company} + </if> + <if test="stic.inuseStartTime!=null"> + and tb_power_inf.power_inuse_time>=#{stic.inuseStartTime} + </if> + <if test="stic.inuseEndTime!=null"> + and tb_power_inf.power_inuse_time<=#{stic.inuseEndTimee} + </if> + <if test="stic.uid>100"> + and tb_power_inf.power_id in( + select distinct power_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_power_inf.power_id asc + </where> + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1