From e5b3e3492a7d5f079cad2ca5958a724cabfec401 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期六, 28 六月 2025 21:22:42 +0800 Subject: [PATCH] 文档类型管理更新 --- src/main/java/com/whyc/service/SubTablePageInfoService.java | 317 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 314 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java index 009cd4a..21adb88 100644 --- a/src/main/java/com/whyc/service/SubTablePageInfoService.java +++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java @@ -5,7 +5,10 @@ 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.ResRealDataHr; +import com.whyc.dto.RealDataStatic.ResRealDataMon; import com.whyc.dto.Statistic.ComPareChangeCurve; import com.whyc.dto.Statistic.ComPareChart; import com.whyc.dto.Statistic.QuarterPwr7Res; @@ -699,13 +702,84 @@ }); return list; } + //鏌ヨ鐢垫簮瀛楁鐨勫紓鍔ㄧ殑璁板綍 + public List<Object> getPwrChangesRecordNum(String tableName, Date recordDatetime, Date recordDatetime1, String value, float upperLimit, float lowerLimit) { + String sql=" select distinct record_datetime,record_num "+ + " from "+tableName+" where record_datetime>='"+ActionUtil.sdf.format(recordDatetime)+"'" + + " and record_datetime<='"+ActionUtil.sdf.format(recordDatetime1)+"'" + + " and "+value+">"+upperLimit+" or "+value+"<"+lowerLimit+" "; + sql+=" order by record_num asc"; + List<Object> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List list=new ArrayList<>(); + List numList=new ArrayList<>(); + List timeList=new ArrayList<>(); + while (rs.next()){ + numList.add(rs.getInt("record_num")); + timeList.add(rs.getString("record_datetime")); + } + list.add(numList); + list.add(timeList); + return list; + } + }); + return list; + } + //鏌ヨ鐢垫簮瀛楁鐨勫紓鍔� + public List<ResRealDataAc> getPwrPropertyChangesByRecordNum(String tableName, Date recordDatetime, Date recordDatetime1, List<Integer> allChangeNums, Map<String, List<String>> propertyInfo) { + String propertyStr = propertyInfo.values().stream() + .flatMap(List::stream) + .collect(Collectors.joining(",")); + String sql=" select distinct record_datetime,record_num, "+propertyStr+ + " from "+tableName+" where record_datetime>='"+ActionUtil.sdf.format(recordDatetime)+"'" + + " and record_datetime<='"+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_datetime asc"; + List<ResRealDataAc> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<ResRealDataAc> list=new ArrayList<>(); + while (rs.next()){ + ResRealDataAc data=new ResRealDataAc(); + data.setRecordNum(rs.getInt("record_num")); + data.setRecordDatetime(rs.getTimestamp("record_datetime")); + Map<String,Map<String,Float>>dataMap=new HashMap<>(); + for (Map.Entry<String, List<String>> entry : propertyInfo.entrySet()) { + String key = entry.getKey(); + List<String> valueList = entry.getValue(); + Map<String,Float> propertyMap=new HashMap<>(); + for (String value : valueList) { + Float propertyValue = rs.getFloat(value); + propertyMap.put(value,propertyValue); + } + dataMap.put(key,propertyMap); + } + data.setPropertyInfo(dataMap); + list.add(data); + } + return list; + } + }); + return list; + } //瀹炴椂鏁版嵁鏁版嵁鏇茬嚎缁熻-浜ゆ祦鍗曞厓 - public List<ResRealDataAc> getPwrHisAcData(String tableName, Integer granularity, Date recordDatetime, Date recordDatetime1 + public List<ResRealDataAc> getSticRealAcData(String tableName, Integer granularity, Date recordDatetime, Date recordDatetime1 , Integer maxRecordNum, Integer minRecordNum, Map<String, List<String>> propertyInfo) { String propertyStr = propertyInfo.values().stream() .flatMap(List::stream) .collect(Collectors.joining(",")); - String sql=" select distinct record_datetime,"+propertyStr+" "+ + String sql=" select distinct record_datetime,record_num,"+propertyStr+" "+ " from "+tableName+" where record_datetime>='"+ActionUtil.sdf.format(recordDatetime)+"'" + " and record_datetime<='"+ActionUtil.sdf.format(recordDatetime1)+ "' and (record_num-"+minRecordNum+")%"+granularity+"=0 or record_num="+minRecordNum+" or record_num="+maxRecordNum; @@ -716,6 +790,7 @@ List<ResRealDataAc> list=new ArrayList<>(); while (rs.next()){ ResRealDataAc data=new ResRealDataAc(); + data.setRecordNum(rs.getInt("record_num")); data.setRecordDatetime(rs.getTimestamp("record_datetime")); Map<String,Map<String,Float>>dataMap=new HashMap<>(); for (Map.Entry<String, List<String>> entry : propertyInfo.entrySet()) { @@ -879,7 +954,7 @@ } //鐢垫睜鏁版嵁鍘嗗彶瀹炴椂澶勭悊 public List<RealDateDTO> getBattRealDataHis(BattRealdataId realdata, int granularity,Integer maxRecordNum,Integer minRecordNum) { - String sql=" select record_time, group_vol, online_vol,group_curr,load_curr, mon_vol, mon_tmp, mon_res, mon_num,record_num " + + String sql=" select distinct record_time, group_vol, online_vol,group_curr,load_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)+"' "+ @@ -906,6 +981,241 @@ }); return list; } + //瀹炴椂鏁版嵁缁熻鏇茬嚎--鏍稿璁惧 + public List<ResRealDataHr> getSticRealHrData(String tableName, Integer granularity, Date recordDatetime, Date recordDatetime1, Integer maxRecordNum, Integer minRecordNum) { + String sql=" select distinct record_time,record_num,online_vol,group_vol,group_curr,group_tmp,hjq_tmp,dev_conresist,dev_condvoldp "+ + " 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 asc"; + List<ResRealDataHr> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<ResRealDataHr> list=new ArrayList<>(); + while (rs.next()){ + ResRealDataHr data=new ResRealDataHr(); + data.setRecordTime(rs.getTimestamp("record_time")); + data.setRecordNum(rs.getInt("record_num")); + data.setOnlineVol(rs.getFloat("online_vol")); + data.setGroupVol(rs.getFloat("group_vol")); + data.setGroupCurr(rs.getFloat("group_curr")); + data.setGroupTmp(rs.getFloat("group_tmp")); + data.setHjqTmp(rs.getFloat("hjq_tmp")); + data.setDevConresist(rs.getFloat("dev_conresist")); + data.setDevCondvoldp(rs.getFloat("dev_condvoldp")); + list.add(data); + } + return list; + } + }); + return list; + } + //鏌ヨ鏍稿璁惧瀛楁鐨勫紓鍔� + public List<ResRealDataHr> getHrPropertyChangesByRecordNum(String tableName, Date recordDatetime, Date recordDatetime1, List<Integer> allChangeNums) { + String sql=" select distinct record_time,record_num,online_vol,group_vol,group_curr,group_tmp,hjq_tmp,dev_conresist,dev_condvoldp "+ + " 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 asc "; + List<ResRealDataHr> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<ResRealDataHr> list=new ArrayList<>(); + while (rs.next()){ + ResRealDataHr data=new ResRealDataHr(); + data.setRecordTime(rs.getTimestamp("record_time")); + data.setRecordNum(rs.getInt("record_num")); + data.setOnlineVol(rs.getFloat("online_vol")); + data.setGroupVol(rs.getFloat("group_vol")); + data.setGroupCurr(rs.getFloat("group_curr")); + data.setGroupTmp(rs.getFloat("group_tmp")); + data.setHjqTmp(rs.getFloat("hjq_tmp")); + data.setDevConresist(rs.getFloat("dev_conresist")); + data.setDevCondvoldp(rs.getFloat("dev_condvoldp")); + list.add(data); + } + return list; + } + }); + 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.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)+"'" + + " and record_time<='"+ActionUtil.sdf.format(recordDatetime1)+"'" + + " and "+value+">"+upperLimit+" or "+value+"<"+lowerLimit+" "; + sql+=" order by record_num asc"; + List<Object> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List list=new ArrayList<>(); + List numList=new ArrayList<>(); + List timeList=new ArrayList<>(); + while (rs.next()){ + numList.add(rs.getInt("record_num")); + timeList.add(rs.getString("record_time")); + } + list.add(numList); + list.add(timeList); + return list; + } + }); + 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.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() + .flatMap(List::stream) + .collect(Collectors.joining(",")); + String sql=" select distinct record_time,record_num, "+propertyStr+ + " 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_time asc"; + List<ResRealDataAc> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<ResRealDataAc> list=new ArrayList<>(); + while (rs.next()){ + ResRealDataAc data=new ResRealDataAc(); + data.setRecordNum(rs.getInt("record_num")); + data.setRecordDatetime(rs.getTimestamp("record_time")); + Map<String,Map<String,Float>>dataMap=new HashMap<>(); + for (Map.Entry<String, List<String>> entry : propertyInfo.entrySet()) { + String key = entry.getKey(); + List<String> valueList = entry.getValue(); + Map<String,Float> propertyMap=new HashMap<>(); + for (String value : valueList) { + Float propertyValue = rs.getFloat(value); + propertyMap.put(value,propertyValue); + } + dataMap.put(key,propertyMap); + } + data.setPropertyInfo(dataMap); + list.add(data); + } + return list; + } + }); + return list; + } + //绯荤粺姒傝鑾峰彇鍓峃绗旀牳瀹硅澶囦俊鎭� public List<RealDateDTO> getBattDevData100(String tableName, Integer granularity, Date recordDatetime, Date recordDatetime1,Integer maxRecordNum,Integer minRecordNum) { @@ -1139,4 +1449,5 @@ }); return list; } + } -- Gitblit v1.9.1