From 6c13a67934178804ba4845ed821a07145e679a0e Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期四, 29 五月 2025 11:25:58 +0800 Subject: [PATCH] 电压上一季度历史实时 --- src/main/java/com/whyc/service/BatttestdataInfService.java | 4 +- src/main/java/com/whyc/webSocket/RealTimeSocket.java | 11 ++++- src/main/java/com/whyc/service/SubTablePageInfoService.java | 36 ++++++++++++++--- src/main/java/com/whyc/service/BattRealdataIdService.java | 33 +++++++++++++--- src/main/java/com/whyc/dto/Real/CompareDto.java | 10 +++++ src/main/java/com/whyc/dto/Real/QuarterDto.java | 2 6 files changed, 77 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/whyc/dto/Real/CompareDto.java b/src/main/java/com/whyc/dto/Real/CompareDto.java new file mode 100644 index 0000000..ffc7437 --- /dev/null +++ b/src/main/java/com/whyc/dto/Real/CompareDto.java @@ -0,0 +1,10 @@ +package com.whyc.dto.Real; + +import lombok.Data; + +@Data +public class CompareDto { + private Float maxValue; + private Float minValue; + private Float avgValue; +} \ No newline at end of file diff --git a/src/main/java/com/whyc/dto/Real/QuarterData.java b/src/main/java/com/whyc/dto/Real/QuarterDto.java similarity index 91% rename from src/main/java/com/whyc/dto/Real/QuarterData.java rename to src/main/java/com/whyc/dto/Real/QuarterDto.java index 31e2c3f..69a23c7 100644 --- a/src/main/java/com/whyc/dto/Real/QuarterData.java +++ b/src/main/java/com/whyc/dto/Real/QuarterDto.java @@ -7,7 +7,7 @@ import java.util.Date; @Data -public class QuarterData { +public class QuarterDto { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date recordTime; private Integer monNum; diff --git a/src/main/java/com/whyc/service/BattRealdataIdService.java b/src/main/java/com/whyc/service/BattRealdataIdService.java index 846a634..34646a7 100644 --- a/src/main/java/com/whyc/service/BattRealdataIdService.java +++ b/src/main/java/com/whyc/service/BattRealdataIdService.java @@ -1,11 +1,10 @@ package com.whyc.service; -import com.whyc.dto.Real.QuarterData; +import com.whyc.dto.Real.CompareDto; +import com.whyc.dto.Real.QuarterDto; import com.whyc.dto.Response; import com.whyc.mapper.CommonMapper; -import com.whyc.pojo.db_data_history.BattRealdataId; import com.whyc.util.ActionUtil; -import com.whyc.util.SubTablePageInfoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,16 +22,38 @@ //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫崟浣撴暟鎹� public Response getBattQuarter(Integer battgroupId) { HashMap<String,Object> map = new HashMap<>(); + Float maxVol=0f; + Float minVol=0f; + Float avgVol=0f; + int num=0; List<String> datelist = ActionUtil.getLastQuarterYearMonths(); - for (String date:datelist) { + for (int i=0;i<datelist.size();i++) { + String date=datelist.get(i); String tableName ="db_data_history.tb_batt_realdata_"+battgroupId+"_"+date; String existTableName = commonMapper.existTable("db_data_history", "tb_batt_realdata_"+battgroupId+"_"+date); if(existTableName == null){ continue; } //鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦� - List<QuarterData> list=subTablePageInfoService.getBattRealHis(tableName,"mon_vol"); - map.put(date,list); + List<QuarterDto> datalist=subTablePageInfoService.getBattRealHis(tableName,"mon_vol"); + map.put(date,datalist); + //鑾峰彇琛ㄤ腑鏈�澶э紝鏈�灏忥紝骞冲潎鏁版嵁鍊� + CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_vol"); + if(num==0){ + maxVol=compareData.getMaxValue(); + minVol=compareData.getMinValue(); + } + if (compareData.getMaxValue() >= maxVol) { + maxVol =compareData.getMaxValue(); + } + if (compareData.getMinValue() <= minVol) { + minVol = compareData.getMinValue(); + } + avgVol += compareData.getAvgValue(); + map.put("maxVol",maxVol); + map.put("minVol",minVol); + map.put("avgVol",avgVol/datelist.size()); + num++; } return new Response().setII(1,map.size()>0,map,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬暟鎹�"); } diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java index a553c31..31cb05b 100644 --- a/src/main/java/com/whyc/service/BatttestdataInfService.java +++ b/src/main/java/com/whyc/service/BatttestdataInfService.java @@ -64,8 +64,8 @@ Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), restCap, binf.getMoncapstd()); tinf.setRestTime(restTime); } - //淇濈暀2浣嶅皬鏁� - String precentCap = String.format("%.2f",(restCap/binf.getMoncapstd()*100)); + //淇濈暀5浣嶅皬鏁� + String precentCap = String.format("%.5f",(restCap/binf.getMoncapstd()*100)); tinf.setPrecentCap(precentCap); } } diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java index 99d43ed..0913427 100644 --- a/src/main/java/com/whyc/service/SubTablePageInfoService.java +++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java @@ -1,14 +1,13 @@ package com.whyc.service; -import com.whyc.dto.AlmHis.BattAlarmRes; import com.whyc.dto.AlmHis.BattAlmPar; import com.whyc.dto.AlmHis.DevAlmPar; import com.whyc.dto.AlmHis.PwrAlmPar; -import com.whyc.dto.Real.QuarterData; +import com.whyc.dto.Real.CompareDto; +import com.whyc.dto.Real.QuarterDto; import com.whyc.mapper.CallBack; import com.whyc.pojo.db_alarm.BattalarmDataHistory; import com.whyc.pojo.db_alarm.DevalarmDataHistory; -import com.whyc.pojo.db_data_history.BattRealdataId; import com.whyc.pojo.db_pwrdev_alarm.PwrdevAlarmHistory; import com.whyc.util.ThreadLocalUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -468,14 +467,14 @@ return list; } //鑾峰彇鐢垫睜缁勬煇涓�骞存湀鐨勬暟鎹� - public List<QuarterData> getBattRealHis(String tableName,String columnName) { + public List<QuarterDto> getBattRealHis(String tableName, String columnName) { String sql="select distinct mon_num,record_time,"+columnName+" from "+tableName+" order by record_time asc"; - List<QuarterData> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + List<QuarterDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { @Override public List getResults(ResultSet rs) throws SQLException { - List<QuarterData> list=new ArrayList<>(); + List<QuarterDto> list=new ArrayList<>(); while (rs.next()){ - QuarterData data=new QuarterData(); + QuarterDto data=new QuarterDto(); data.setRecordTime(rs.getTimestamp("record_time")); data.setNumValue(rs.getFloat(columnName)); data.setMonNum(rs.getInt("mon_num")); @@ -486,4 +485,27 @@ }); return list; } + //鑾峰彇琛ㄤ腑鏈�澶э紝鏈�灏忥紝骞冲潎鏁版嵁鍊� + public CompareDto getBattCompareHis(String tableName, String columnName) { + String sql="select max("+columnName+") as maxValue1,min("+columnName+") as minValue,avg("+columnName+") as avgValue"+" from "+tableName; + List<CompareDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<CompareDto> list=new ArrayList<>(); + while (rs.next()){ + CompareDto data=new CompareDto(); + data.setMaxValue(rs.getFloat("maxValue1")); + data.setMinValue(rs.getFloat("minValue")); + data.setAvgValue(rs.getFloat("avgValue")); + list.add(data); + } + return list; + } + }); + if(list!=null&&list.size()>0){ + return list.get(0); + }else { + return null; + } + } } diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java index b899802..2f5aaf1 100644 --- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java +++ b/src/main/java/com/whyc/webSocket/RealTimeSocket.java @@ -316,11 +316,16 @@ //瀹炴椂鑾峰彇鍗曚綋淇℃伅 List<BattRtdata> rtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId()); if(rtdataList!=null&&rtdataList.size()>0){ - for(BattRtdata battRtdata:rtdataList) { - if (battRtdata.getMonVol() > maxVol) { + for(int i=0;i<rtdataList.size();i++) { + BattRtdata battRtdata=rtdataList.get(i); + if(i==0){ + maxVol=battRtdata.getMonVol(); + minVol=battRtdata.getMonVol(); + } + if (battRtdata.getMonVol() >= maxVol) { maxVol = battRtdata.getMonVol(); } - if (battRtdata.getMonVol() < minVol) { + if (battRtdata.getMonVol() <= minVol) { minVol = battRtdata.getMonVol(); } avgVol += battRtdata.getMonVol(); -- Gitblit v1.9.1