From 971d9a9286aba3d2e7fcfbb905573a31c65e9104 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期六, 28 六月 2025 15:58:09 +0800 Subject: [PATCH] 实时数据统计曲线-蓄电池组初稿 --- src/main/java/com/whyc/service/SubTablePageInfoService.java | 100 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 99 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java index b49a7a0..f49315f 100644 --- a/src/main/java/com/whyc/service/SubTablePageInfoService.java +++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java @@ -5,7 +5,9 @@ import com.whyc.dto.AlmHis.PwrAlmPar; import com.whyc.dto.AnalysisAlm.ResAnalysis; import com.whyc.dto.Real.*; +import com.whyc.dto.RealDataStatic.MonDataDto; import com.whyc.dto.RealDataStatic.ResRealDataAc; +import com.whyc.dto.RealDataStatic.ResRealDataMon; import com.whyc.dto.Statistic.ComPareChangeCurve; import com.whyc.dto.Statistic.ComPareChart; import com.whyc.dto.Statistic.QuarterPwr7Res; @@ -1016,7 +1018,51 @@ return list; } - //鏌ヨ鐢垫睜缁勫瓧娈电殑寮傚姩鐨勮褰� + //瀹炴椂鏁版嵁缁熻鏇茬嚎--钃勭數姹犵粍 + public List<ResRealDataMon> getSticRealMonData(String tableName, Integer granularity, Date recordDatetime, Date recordDatetime1, Integer maxRecordNum, Integer minRecordNum) { + String sql=" select distinct battgroup_id,record_time,record_num,mon_num,mon_vol,mon_tmp,mon_res,mon_jh_curr "+ + " from "+tableName+" " + + " where record_time >= '"+ThreadLocalUtil.format(recordDatetime,1)+"' " + + " and record_time <= '"+ThreadLocalUtil.format(recordDatetime1,1)+"' "+ + " and (record_num-"+minRecordNum+")%"+granularity+"=0 or record_num="+maxRecordNum+" or record_num="+minRecordNum ; + sql+=" order by record_num,mon_num asc "; + List<ResRealDataMon> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<ResRealDataMon> result = new ArrayList<>(); + Map<String, ResRealDataMon> map = new HashMap<>(); + while (rs.next()) { + Integer battgroupId = rs.getInt("battgroup_id"); + Date recordTime = rs.getTimestamp("record_time"); + Integer recordNum = rs.getInt("record_num"); + // 鏋勫缓鍞竴閿紙battgroupId + recordNum锛� + String key = battgroupId + "_" + recordNum; + ResRealDataMon data = map.get(key); + if (data == null) { + data = new ResRealDataMon(); + data.setBattgroupId(battgroupId); + data.setRecordTime(recordTime); + data.setRecordNum(recordNum); + data.setMonList(new ArrayList<>()); + map.put(key, data); + result.add(data); + } + // 灏嗗崟浣撴暟鎹皝瑁呭埌 monList 涓� + MonDataDto monData = new MonDataDto(); + monData.setMonNum(rs.getInt("mon_num")); + monData.setMonVol(rs.getFloat("mon_vol")); + monData.setMonTmp(rs.getFloat("mon_tmp")); + monData.setMonRes(rs.getFloat("mon_res")); + monData.setMonJhCurr(rs.getFloat("mon_jh_curr")); + data.getMonList().add(monData); + } + return result; + } + }); + return list; + } + + //鏌ヨ鏍稿璁惧/鍗曚綋瀛楁鐨勫紓鍔ㄧ殑璁板綍 public List<Object> getBattChangesRecordNum(String tableName, Date recordDatetime, Date recordDatetime1, String value, float upperLimit, float lowerLimit) { String sql=" select distinct record_time,record_num "+ " from "+tableName+" where record_time>='"+ActionUtil.sdf.format(recordDatetime)+"'" + @@ -1040,6 +1086,58 @@ }); return list; } + //鏌ヨ鐢垫睜缁勫崟浣撳瓧娈电殑寮傚姩 + public List<ResRealDataMon> getMonPropertyChangesByRecordNum(String tableName, Date recordDatetime, Date recordDatetime1, List<Integer> allChangeNums) { + String sql=" select distinct battgroup_id,record_time,record_num,mon_num,mon_vol,mon_tmp,mon_res,mon_jh_curr "+ + " from "+tableName+" where record_time>='"+ActionUtil.sdf.format(recordDatetime)+"'" + + " and record_time<='"+ActionUtil.sdf.format(recordDatetime1)+"'"; + if (allChangeNums.size() > 0) { + //鍘婚櫎閲嶅椤� + List<Integer> uniqueList = allChangeNums.stream() + .distinct() + .collect(Collectors.toList()); + //鎷兼帴鐢熸垚sql + String changeNumsStr = uniqueList.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + sql += " and record_num in (" + changeNumsStr + ")"; + } + sql += " order by record_num,mon_num asc "; + List<ResRealDataMon> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<ResRealDataMon> result = new ArrayList<>(); + Map<String, ResRealDataMon> map = new HashMap<>(); + while (rs.next()) { + Integer battgroupId = rs.getInt("battgroup_id"); + Date recordTime = rs.getTimestamp("record_time"); + Integer recordNum = rs.getInt("record_num"); + // 鏋勫缓鍞竴閿紙battgroupId + recordNum锛� + String key = battgroupId + "_" + recordNum; + ResRealDataMon data = map.get(key); + if (data == null) { + data = new ResRealDataMon(); + data.setBattgroupId(battgroupId); + data.setRecordTime(recordTime); + data.setRecordNum(recordNum); + data.setMonList(new ArrayList<>()); + map.put(key, data); + result.add(data); + } + // 灏嗗崟浣撴暟鎹皝瑁呭埌 monList 涓� + MonDataDto monData = new MonDataDto(); + monData.setMonNum(rs.getInt("mon_num")); + monData.setMonVol(rs.getFloat("mon_vol")); + monData.setMonTmp(rs.getFloat("mon_tmp")); + monData.setMonRes(rs.getFloat("mon_res")); + monData.setMonJhCurr(rs.getFloat("mon_jh_curr")); + data.getMonList().add(monData); + } + return result; + } + }); + return list; + } //鏌ヨ鐢垫睜缁勫瓧娈电殑寮傚姩 public List<ResRealDataAc> getBattPropertyChangesByRecordNum(String tableName, Date recordDatetime, Date recordDatetime1, List<Integer> allChangeNums, Map<String, List<String>> propertyInfo) { String propertyStr = propertyInfo.values().stream() -- Gitblit v1.9.1