From 0e098bc8867700017407c7954d8e03d9dd1b8cb4 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期六, 07 六月 2025 14:50:19 +0800 Subject: [PATCH] 电池组历史实时数据 --- src/main/java/com/whyc/service/SubTablePageInfoService.java | 45 ++++++++++++++++++++++++++++----------------- src/main/java/com/whyc/dto/Real/RealDateDTO.java | 2 ++ src/main/java/com/whyc/service/BattRealdataIdService.java | 11 +++++++++-- 3 files changed, 39 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/whyc/dto/Real/RealDateDTO.java b/src/main/java/com/whyc/dto/Real/RealDateDTO.java index be0cb5a..d97ba68 100644 --- a/src/main/java/com/whyc/dto/Real/RealDateDTO.java +++ b/src/main/java/com/whyc/dto/Real/RealDateDTO.java @@ -27,4 +27,6 @@ private Float monRes; @ApiModelProperty(value = "鍗曚綋缂栧彿") private Integer monNum; + @ApiModelProperty(value = "鍗曚綋缂栧彿") + private Integer recordNum; } diff --git a/src/main/java/com/whyc/service/BattRealdataIdService.java b/src/main/java/com/whyc/service/BattRealdataIdService.java index cf13d1a..fe934ed 100644 --- a/src/main/java/com/whyc/service/BattRealdataIdService.java +++ b/src/main/java/com/whyc/service/BattRealdataIdService.java @@ -175,7 +175,6 @@ public Response getBattRealDataHis(Integer battgroupId, Integer granularity,String startTime,String endTime) throws ParseException, InterruptedException { List<RealDateDTO> dataList = new LinkedList<>(); List<List<Date>> monthTimeList = DateUtil.getMonthTime(ThreadLocalUtil.parse(startTime,1), ThreadLocalUtil.parse(endTime,1)); - ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor(); CountDownLatch latch = new CountDownLatch(monthTimeList.size()); for (int i = 0; i < monthTimeList.size(); i++) { @@ -191,7 +190,15 @@ int tableNum = subTablePageInfoService.judgeTable_realdata(table); List<RealDateDTO> list = new ArrayList(); if (tableNum > 0) { - list = subTablePageInfoService.serchByCondition2(realdata,granularity); + //鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈�澶ф渶灏弐ecordNum纭繚鏁版嵁鐨勫畬鏁� + List recordNums= subTablePageInfoService.getMaxAndMinRecordNum(realdata); + Integer maxRecordNum= 0; + Integer minRecordNum= 0; + if(recordNums.size()>0){ + maxRecordNum=(Integer)recordNums.get(0); + minRecordNum=(Integer)recordNums.get(1); + } + list = subTablePageInfoService.getBattRealDataHis(realdata,granularity,maxRecordNum,minRecordNum); } dataList.addAll(list); latch.countDown(); diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java index d429abb..21d38c5 100644 --- a/src/main/java/com/whyc/service/SubTablePageInfoService.java +++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java @@ -741,23 +741,13 @@ return tableNum; } - - public List<RealDateDTO> serchByCondition2(BattRealdataId realdata, int granularity) { - String sql=" select record_time, " + - " group_vol, " + - " online_vol, " + - " group_curr, " + - " mon_vol, " + - " mon_tmp, " + - " mon_res, " + - " mon_num " + - " from (select a.*, (@i:= @i+1) as number " + - " from (select * " + - " from db_data_history.tb_batt_realdata_"+realdata.getTableName()+" " + - " where record_time >= '"+ThreadLocalUtil.format(realdata.getRecordTime(),1)+"' " + - " and record_time <= '"+ThreadLocalUtil.format(realdata.getRecordTime1(),1)+"' ) a, " + - " (select @i:=0) b) c " + - " where c.number%"+granularity+"=0"; + //鐢垫睜鏁版嵁鍘嗗彶瀹炴椂澶勭悊 + public List<RealDateDTO> getBattRealDataHis(BattRealdataId realdata, int granularity,Integer maxRecordNum,Integer minRecordNum) { + String sql=" select record_time, group_vol, online_vol,group_curr, mon_vol, mon_tmp, mon_res, mon_num,record_num " + + " from db_data_history.tb_batt_realdata_"+realdata.getTableName()+" " + + " where record_time >= '"+ThreadLocalUtil.format(realdata.getRecordTime(),1)+"' " + + " and record_time <= '"+ThreadLocalUtil.format(realdata.getRecordTime1(),1)+"' "+ + " and (record_num-"+minRecordNum+")%"+granularity+"=0 or record_num="+maxRecordNum+" or record_num="+minRecordNum ; List<RealDateDTO> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { @Override public List getResults(ResultSet rs) throws SQLException { @@ -772,6 +762,7 @@ ph.setMonTmp(rs.getFloat("mon_tmp")); ph.setMonRes(rs.getFloat("mon_res")); ph.setMonNum(rs.getInt("mon_num")); + ph.setRecordNum(rs.getInt("record_num")); list.add(ph); } return list; @@ -779,4 +770,24 @@ }); return list; } + //鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈�澶ф渶灏弐ecordNum纭繚鏁版嵁鐨勫畬鏁� + public List getMaxAndMinRecordNum(BattRealdataId realdata) { + String sql="select max(record_num) as maxRecordNum,min(record_num) as minRecordNum " + + " from db_data_history.tb_batt_realdata_" + realdata.getTableName()+" " + + " where record_time >= '"+ThreadLocalUtil.format(realdata.getRecordTime(),1)+"' " + + " and record_time <= '"+ThreadLocalUtil.format(realdata.getRecordTime1(),1)+"' " + + " limit 1"; + List list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List list = new ArrayList<>(); + while (rs.next()) { + list.add(rs.getInt("maxRecordNum")); + list.add(rs.getInt("minRecordNum")); + } + return list; + } + }); + return list; + } } -- Gitblit v1.9.1