src/main/java/com/whyc/controller/HistoryIdController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattInfService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattRealdataIdService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattresdataInfService.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/controller/HistoryIdController.java
@@ -21,9 +21,21 @@ private BattRealdataIdService battHisIdService; @ApiOperation("获取电池组最近一季度的数据") @GetMapping("getBattQuarter") public Response getBattQuarter(@RequestParam Integer battgroupId) { return battHisIdService.getBattQuarter(battgroupId); @ApiOperation("获取电池组最近一季度的电压数据") @GetMapping("getBattQuarterVol") public Response getBattQuarterVol(@RequestParam Integer battgroupId) { return battHisIdService.getBattQuarterVol(battgroupId); } @ApiOperation("获取电池组最近一季度的内阻数据") @GetMapping("getBattQuarterRes") public Response getBattQuarterRes(@RequestParam Integer battgroupId) { return battHisIdService.getBattQuarterRes(battgroupId); } @ApiOperation("获取电池组最近一季度的温度数据") @GetMapping("getBattQuarterTmp") public Response getBattQuarterTmp(@RequestParam Integer battgroupId) { return battHisIdService.getBattQuarterTmp(battgroupId); } } src/main/java/com/whyc/service/BattInfService.java
@@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo; import com.whyc.dto.BattDto; import com.whyc.dto.InfoDto; import com.whyc.dto.Real.QuarterDto; import com.whyc.dto.Response; import com.whyc.factory.InfoFactory; import com.whyc.mapper.BattInfMapper; @@ -386,5 +387,20 @@ BattInf binf=mapper.selectOne(wrapper); return binf; } //当没有内助测试时初始内阻值为标称内阻 public List<QuarterDto> getBinfResStd(Integer battgroupId) { QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("battgroup_id",battgroupId); wrapper.last("limit 1"); BattInf binf=mapper.selectOne(wrapper); Float monresstd=binf.getMonresstd(); List<QuarterDto> list=new ArrayList<>(); for(int i=0;i<binf.getMoncount();i++){ QuarterDto dto=new QuarterDto(); dto.setRecordTime(binf.getCreateTime()); dto.setMonNum(i+1); dto.setNumValue(monresstd); } return list; } } src/main/java/com/whyc/service/BattRealdataIdService.java
@@ -4,6 +4,9 @@ import com.whyc.dto.Real.QuarterDto; import com.whyc.dto.Response; import com.whyc.mapper.CommonMapper; import com.whyc.pojo.db_batt_testdata.BattresdataId; import com.whyc.pojo.db_batt_testdata.BattresdataInf; import com.whyc.pojo.db_station.BattInf; import com.whyc.util.ActionUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,12 +22,19 @@ @Resource private CommonMapper commonMapper; @Autowired private BattresdataInfService resInfService; @Autowired private BattInfService binfService; //获取电池组最近一季度的单体数据 public Response getBattQuarter(Integer battgroupId) { public Response getBattQuarterVol(Integer battgroupId) { HashMap<String,Object> map = new HashMap<>(); Float maxVol=0f; Float minVol=0f; Float avgVol=0f; Float maxData=0f; Float minData=0f; Float avgData=0f; int num=0; List<String> datelist = ActionUtil.getLastQuarterYearMonths(); for (int i=0;i<datelist.size();i++) { @@ -40,21 +50,103 @@ //获取表中最大,最小,平均数据值 CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_vol"); if(num==0){ maxVol=compareData.getMaxData(); minVol=compareData.getMinData(); maxData=compareData.getMaxData(); minData=compareData.getMinData(); } if (compareData.getMaxData() >= maxVol) { maxVol =compareData.getMaxData(); if (compareData.getMaxData() >= maxData) { maxData =compareData.getMaxData(); } if (compareData.getMinData() <= minVol) { minVol = compareData.getMinData(); if (compareData.getMinData() <= minData) { minData= compareData.getMinData(); } avgVol += compareData.getAvgData(); map.put("maxVol",maxVol); map.put("minVol",minVol); map.put("avgVol",avgVol/datelist.size()); avgData+= compareData.getAvgData(); map.put("maxData",maxData); map.put("minData",minData); map.put("avgData",avgData/datelist.size()); num++; } return new Response().setII(1,map.size()>0,map,"获取电池组最近一季度的数据"); return new Response().setII(1,map.size()>0,map,"获取电池组最近一季度的电压数据"); } //获取电池组最近一季度的内阻数据 public Response getBattQuarterRes(Integer battgroupId) { HashMap<String,Object> map = new HashMap<>(); Float maxData=0f; Float minData=0f; Float avgData=0f; int num=0; List<String> datelist = ActionUtil.getLastQuarterYearMonths(); //获取内阻初始数据(第一次内阻测试的第一笔数据) List<QuarterDto> list=resInfService.getFirstResData(battgroupId); if(list==null){//当初始值为0时使用标称内阻 list=binfService.getBinfResStd(battgroupId); } map.put("startRes",list); 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<QuarterDto> datalist=subTablePageInfoService.getBattRealHis(tableName,"mon_res"); map.put(date,datalist); //获取表中最大,最小,平均数据值 CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_res"); if(num==0){ maxData=compareData.getMaxData(); minData=compareData.getMinData(); } if (compareData.getMaxData() >= maxData) { maxData =compareData.getMaxData(); } if (compareData.getMinData() <= minData) { minData= compareData.getMinData(); } avgData+= compareData.getAvgData(); map.put("maxData",maxData); map.put("minData",minData); map.put("avgData",avgData/datelist.size()); num++; } return new Response().setII(1,map.size()>0,map,"获取电池组最近一季度的内阻数据"); } //获取电池组最近一季度的温度数据 public Response getBattQuarterTmp(Integer battgroupId) { HashMap<String,Object> map = new HashMap<>(); Float maxData=0f; Float minData=0f; Float avgData=0f; int num=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_batt_realdata_"+battgroupId+"_"+date; String existTableName = commonMapper.existTable("db_data_history", "tb_batt_realdata_"+battgroupId+"_"+date); if(existTableName == null){ continue; } //判断表是否存在 List<QuarterDto> datalist=subTablePageInfoService.getBattRealHis(tableName,"mon_tmp"); map.put(date,datalist); //获取表中最大,最小,平均数据值 CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_tmp"); if(num==0){ maxData=compareData.getMaxData(); minData=compareData.getMinData(); } if (compareData.getMaxData() >= maxData) { maxData =compareData.getMaxData(); } if (compareData.getMinData() <= minData) { minData= compareData.getMinData(); } avgData+= compareData.getAvgData(); map.put("maxData",maxData); map.put("minData",minData); map.put("avgData",avgData/datelist.size()); num++; } return new Response().setII(1,map.size()>0,map,"获取电池组最近一季度的温度数据"); } } src/main/java/com/whyc/service/BattresdataInfService.java
@@ -1,15 +1,28 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.whyc.dto.Real.QuarterDto; import com.whyc.mapper.BattresdataInfMapper; import com.whyc.mapper.CommonMapper; import com.whyc.pojo.db_batt_testdata.BattresdataId; import com.whyc.pojo.db_batt_testdata.BattresdataInf; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service public class BattresdataInfService { @Autowired(required = false) private BattresdataInfMapper mapper; @Autowired(required = false) private SubTablePageInfoService subTablePageInfoService; @Resource private CommonMapper commonMapper; //上一次内阻测试数据 public BattresdataInf getLastTestData(Integer battgroupId) { QueryWrapper wrapper = new QueryWrapper(); @@ -19,4 +32,21 @@ BattresdataInf rinf = mapper.selectOne(wrapper); return rinf; } //获取内阻初始数据(第一次内阻测试的第一笔数据) public List<QuarterDto> getFirstResData(Integer battgroupId) { QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("battgroup_id", battgroupId); wrapper.last(" limit 1"); wrapper.last(" ORDER BY test_record_count asc "); BattresdataInf rinf = mapper.selectOne(wrapper); if(rinf!=null){ String tableName ="db_batt_testdata.tb_battresdata_"+battgroupId; String existTableName = commonMapper.existTable("db_batt_testdata", "tb_battresdata_"+battgroupId); if(existTableName != null){ List<QuarterDto> list=subTablePageInfoService.getBattResInfData(battgroupId,rinf.getTestRecordCount()); return list; } } return null; } } src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -508,4 +508,24 @@ return null; } } //获取内阻数据 public List<QuarterDto> getBattResInfData(Integer battgroupId,Integer testRecordCount) { String sql="select distinct mon_num,test_starttime,mon_res, from db_batt_testdata.tb_battresdata_"+battgroupId +" where test_record_count="+testRecordCount+" order by mon_num asc"; List<QuarterDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { @Override public List getResults(ResultSet rs) throws SQLException { List<QuarterDto> list=new ArrayList<>(); while (rs.next()){ QuarterDto data=new QuarterDto(); data.setMonNum(rs.getInt("mon_num")); data.setNumValue(rs.getFloat("mon_res")); data.setRecordTime(rs.getTimestamp("test_starttime")); list.add(data); } return list; } }); return list; } } src/main/java/com/whyc/webSocket/RealTimeSocket.java
@@ -301,7 +301,38 @@ } //获取温度界面信息 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); map.put("maxData",maxData); map.put("minData",minData); map.put("avgData",avgData); return new Response().setII(1,true,map,"温度界面信息推送"); }catch (Exception e){ return new Response().set(1,false,"温度界面信息推送"); } } //获取内阻界面信息 private Response getResPage(RealTimeDto realDto) {