src/main/java/com/whyc/dto/Real/CompareDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/Real/QuarterDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattRealdataIdService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BatttestdataInfService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/SubTablePageInfoService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/webSocket/RealTimeSocket.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/dto/Real/CompareDto.java
New file @@ -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; } src/main/java/com/whyc/dto/Real/QuarterDto.java
File was renamed from src/main/java/com/whyc/dto/Real/QuarterData.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; 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 @@ //获取电池组最近一季度的单体数据 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,"获取电池组最近一季度的数据"); } 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); } } 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; } } } 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();