From 086e9639f47c407e3a1e5b2f71ca816d397fe9fc Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期四, 29 五月 2025 13:46:44 +0800 Subject: [PATCH] 实时页面内阻测试 --- src/main/java/com/whyc/service/BattInfService.java | 18 +++ src/main/java/com/whyc/webSocket/RealTimeSocket.java | 33 ++++++ src/main/java/com/whyc/service/BattresdataInfService.java | 30 ++++++ src/main/java/com/whyc/service/SubTablePageInfoService.java | 20 ++++ src/main/java/com/whyc/service/BattRealdataIdService.java | 122 +++++++++++++++++++++--- src/main/java/com/whyc/controller/HistoryIdController.java | 20 +++ 6 files changed, 222 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/whyc/controller/HistoryIdController.java b/src/main/java/com/whyc/controller/HistoryIdController.java index 8de5483..22e9fd8 100644 --- a/src/main/java/com/whyc/controller/HistoryIdController.java +++ b/src/main/java/com/whyc/controller/HistoryIdController.java @@ -21,9 +21,21 @@ private BattRealdataIdService battHisIdService; - @ApiOperation("鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬暟鎹�") - @GetMapping("getBattQuarter") - public Response getBattQuarter(@RequestParam Integer battgroupId) { - return battHisIdService.getBattQuarter(battgroupId); + @ApiOperation("鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勭數鍘嬫暟鎹�") + @GetMapping("getBattQuarterVol") + public Response getBattQuarterVol(@RequestParam Integer battgroupId) { + return battHisIdService.getBattQuarterVol(battgroupId); + } + + @ApiOperation("鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫唴闃绘暟鎹�") + @GetMapping("getBattQuarterRes") + public Response getBattQuarterRes(@RequestParam Integer battgroupId) { + return battHisIdService.getBattQuarterRes(battgroupId); + } + + @ApiOperation("鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬俯搴︽暟鎹�") + @GetMapping("getBattQuarterTmp") + public Response getBattQuarterTmp(@RequestParam Integer battgroupId) { + return battHisIdService.getBattQuarterTmp(battgroupId); } } \ 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 bf82d30..975e334 100644 --- a/src/main/java/com/whyc/service/BattInfService.java +++ b/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; + } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattRealdataIdService.java b/src/main/java/com/whyc/service/BattRealdataIdService.java index 264b57f..d85892d 100644 --- a/src/main/java/com/whyc/service/BattRealdataIdService.java +++ b/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; + + //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫崟浣撴暟鎹� - 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,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬暟鎹�"); + return new Response().setII(1,map.size()>0,map,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勭數鍘嬫暟鎹�"); + } + //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫唴闃绘暟鎹� + 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,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫唴闃绘暟鎹�"); + } + //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬俯搴︽暟鎹� + 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,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬俯搴︽暟鎹�"); } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattresdataInfService.java b/src/main/java/com/whyc/service/BattresdataInfService.java index 9c61fc4..0e089fe 100644 --- a/src/main/java/com/whyc/service/BattresdataInfService.java +++ b/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; + } } \ 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 c81970d..e93f3e9 100644 --- a/src/main/java/com/whyc/service/SubTablePageInfoService.java +++ b/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; + } } diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java index e5c7fdb..5092daa 100644 --- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java +++ b/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) { -- Gitblit v1.9.1