From 8ea6bcb91b4a8b50dfac568b0d0b52cd543b9f8c Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期四, 12 十二月 2024 11:39:05 +0800 Subject: [PATCH] 电源历史告警 --- src/main/java/com/whyc/pojo/db_alarm/BattAlarmHistory.java | 2 src/main/java/com/whyc/service/SubTableService.java | 68 +++++++++++++++++++++- src/main/java/com/whyc/service/PowerAlarmHistoryService.java | 17 +++++ src/main/java/com/whyc/pojo/db_power_alarm/PowerAlarmHistory.java | 12 ++++ src/main/java/com/whyc/util/DateUtil.java | 33 +++++++++++ src/main/java/com/whyc/util/SubTablePageInfoUtil.java | 42 +++++++++---- 6 files changed, 155 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/whyc/pojo/db_alarm/BattAlarmHistory.java b/src/main/java/com/whyc/pojo/db_alarm/BattAlarmHistory.java index ea85046..65a31e0 100644 --- a/src/main/java/com/whyc/pojo/db_alarm/BattAlarmHistory.java +++ b/src/main/java/com/whyc/pojo/db_alarm/BattAlarmHistory.java @@ -47,7 +47,7 @@ @TableField("alm_value") @ApiModelProperty("鍛婅鍊�") - private Float almValue; + private Integer almValue; @TableField(exist = false) diff --git a/src/main/java/com/whyc/pojo/db_power_alarm/PowerAlarmHistory.java b/src/main/java/com/whyc/pojo/db_power_alarm/PowerAlarmHistory.java index 17d9378..f742d15 100644 --- a/src/main/java/com/whyc/pojo/db_power_alarm/PowerAlarmHistory.java +++ b/src/main/java/com/whyc/pojo/db_power_alarm/PowerAlarmHistory.java @@ -57,4 +57,16 @@ @TableField("alm_level") @ApiModelProperty("鍛婅绛夌骇[1-绱ф�� 2-閲嶅ぇ -3-涓�鑸琞") private Integer almLevel; + + @TableField(exist = false) + @ApiModelProperty("琛ㄥ悕瀛楁嫾鎺�") + private String recordYear; + + @TableField(exist = false) + @ApiModelProperty("鍒嗛〉寮�濮嬩綅缃�") + private Integer limitStart; + + @TableField(exist = false) + @ApiModelProperty("鍒嗛〉缁撴潫浣嶇疆") + private Integer limitEnd; } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/PowerAlarmHistoryService.java b/src/main/java/com/whyc/service/PowerAlarmHistoryService.java index 881429b..4a0e2d0 100644 --- a/src/main/java/com/whyc/service/PowerAlarmHistoryService.java +++ b/src/main/java/com/whyc/service/PowerAlarmHistoryService.java @@ -1,13 +1,26 @@ package com.whyc.service; +import com.github.pagehelper.PageInfo; import com.whyc.dto.Response; +import com.whyc.pojo.db_power_alarm.PowerAlarmHistory; +import com.whyc.util.SubTablePageInfoUtil; +import com.whyc.util.ThreadLocalUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.text.ParseException; @Service public class PowerAlarmHistoryService { + @Autowired + private SubTablePageInfoUtil util; //鏌ヨ鐢垫簮鍘嗗彶鏃堕棿鍛婅 - public Response getHisAlarm(int pinfId, String startTime, String endTime, int pageNum, int pageSize) { - return new Response().set(1); + public Response getHisAlarm(int pinfId, String startTime, String endTime, int pageNum, int pageSize) throws ParseException { + PowerAlarmHistory his=new PowerAlarmHistory(); + his.setPowerId(pinfId); + PageInfo pageInfo=util.getPageInfo(pageNum,pageSize, ThreadLocalUtil.parse(startTime,1),ThreadLocalUtil.parse(endTime,1) + ,"db_power_alarm","power_alarm_history",his); + return new Response().setII(1,pageInfo.getList()!=null,pageInfo,"鏌ヨ鐢垫簮鍘嗗彶鏃堕棿鍛婅"); } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/SubTableService.java b/src/main/java/com/whyc/service/SubTableService.java index 6cb66dd..8202027 100644 --- a/src/main/java/com/whyc/service/SubTableService.java +++ b/src/main/java/com/whyc/service/SubTableService.java @@ -3,6 +3,7 @@ import com.whyc.mapper.CallBack; import com.whyc.pojo.db_alarm.BattAlarmHistory; import com.whyc.pojo.db_dis_batt.BattTestInfData; +import com.whyc.pojo.db_power_alarm.PowerAlarmHistory; import com.whyc.util.ActionUtil; import com.whyc.util.ThreadLocalUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -52,7 +53,7 @@ }); return list; } - //鍛婅鍘嗗彶瀹炴椂璁$畻姣忓紶琛ㄦ煡璇㈡�绘暟 + //鐢垫睜鍛婅鍘嗗彶瀹炴椂璁$畻姣忓紶琛ㄦ煡璇㈡�绘暟 public int getBattHisCount(BattAlarmHistory battAlarmHistory) { String sql="SELECT count(*) as number FROM db_alarm."+ battAlarmHistory.getRecordYear()+" history " + " where history.binf_id="+ battAlarmHistory.getBinfId() ; @@ -81,7 +82,7 @@ } return num; } - //鍛婅鍘嗗彶瀹炴椂 + //鐢垫睜鍛婅鍘嗗彶瀹炴椂 public List<BattAlarmHistory> getBattHisList(BattAlarmHistory battAlarmHistory) { String sql="SELECT * FROM db_alarm."+ battAlarmHistory.getRecordYear()+" history " + " where history.binf_id="+ battAlarmHistory.getBinfId() ; @@ -105,7 +106,68 @@ data.setMonNum(rs.getInt("mon_num")); data.setAlmId(rs.getInt("alm_id")); data.setAlmLevel(rs.getInt("alm_level")); - data.setAlmValue(rs.getFloat("alm_value")); + data.setAlmValue(rs.getInt("alm_value")); + list.add(data); + } + return list; + } + }); + return list; + } + + //鐢垫簮鍛婅鍘嗗彶瀹炴椂璁$畻姣忓紶琛ㄦ煡璇㈡�绘暟 + public int getPowerHisCount(PowerAlarmHistory powerAlarmHistory) { + String sql="SELECT count(*) as number FROM db_power_alarm."+ powerAlarmHistory.getRecordYear()+" history " + + " where history.power_id="+ powerAlarmHistory.getPowerId() ; + if(powerAlarmHistory.getAlmStartTime()!=null){ + sql+=" and alm_start_time >='"+ ThreadLocalUtil.format(powerAlarmHistory.getAlmStartTime(),1)+"' "; + } + if(powerAlarmHistory.getAlmEndTime()!=null){ + sql+=" and alm_start_time <='"+ThreadLocalUtil.format(powerAlarmHistory.getAlmEndTime(),1)+"' "; + } + List list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + LinkedList<Object> temp = new LinkedList<>(); + try { + while (rs.next()) + temp.add(rs.getInt("number")); + } catch (SQLException e) { + e.printStackTrace(); + } + return temp; + } + }); + int num =0; + if(list!=null){ + num= (int) list.get(0); + } + return num; + } + //鐢垫簮鍛婅鍘嗗彶瀹炴椂 + public List<PowerAlarmHistory> getPowerHisList(PowerAlarmHistory powerAlarmHistory) { + String sql="SELECT * FROM db_power_alarm."+ powerAlarmHistory.getRecordYear()+" history " + + " where history.power_id="+ powerAlarmHistory.getPowerId() ; + if(powerAlarmHistory.getAlmStartTime()!=null){ + sql+=" and alm_start_time >='"+ ThreadLocalUtil.format(powerAlarmHistory.getAlmStartTime(),1)+"' "; + } + if(powerAlarmHistory.getAlmEndTime()!=null){ + sql+=" and alm_start_time <='"+ThreadLocalUtil.format(powerAlarmHistory.getAlmEndTime(),1)+"' "; + } + sql+=" ORDER BY alm_start_time asc limit "+ powerAlarmHistory.getLimitStart()+","+ powerAlarmHistory.getLimitEnd()+" "; + List<PowerAlarmHistory> list=sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List list=new ArrayList(); + while (rs.next()){ + PowerAlarmHistory data=new PowerAlarmHistory(); + data.setNum(rs.getInt("num")); + data.setPowerId(rs.getInt("power_id")); + data.setAlmStartTime(rs.getTimestamp("alm_start_time")); + data.setAlmEndTime(rs.getTimestamp("alm_end_time")); + data.setAlmId(rs.getInt("alm_id")); + data.setAlmLevel(rs.getInt("alm_level")); + data.setAlmValue(rs.getInt("alm_value")); list.add(data); } return list; diff --git a/src/main/java/com/whyc/util/DateUtil.java b/src/main/java/com/whyc/util/DateUtil.java index aef26cb..e8afed1 100644 --- a/src/main/java/com/whyc/util/DateUtil.java +++ b/src/main/java/com/whyc/util/DateUtil.java @@ -545,6 +545,39 @@ } /** + * 鏌ヨ浣跨敤鏃�,闇�瑕佸鐞� 榛樿琛ㄦ煡璇㈢殑闂 鍊掑簭 + * 绀轰緥: + * <p> + * {2020=[Fri Dec 25 14:12:22 CST 2020, Thu Dec 31 23:59:59 CST 2020]} + * {2021=[Fri Jan 01 00:00:00 CST 2021, Fri Dec 31 23:59:59 CST 2021]} + * {2022=[Sat Jan 01 00:00:00 CST 2022, Tue Nov 29 09:12:22 CST 2022]} + * 鎴� + * {2020=[Fri Dec 25 14:12:22 CST 2020, Thu Dec 31 23:59:59 CST 2020]} + * {2021=[Fri Jan 01 00:00:00 CST 2021, Fri Dec 31 23:59:59 CST 2021]} + * {2022=[Sat Jan 01 00:00:00 CST 2022, Thu Dec 29 09:12:22 CST 2022]} + * {default=[Wed Dec 14 15:27:13 CST 2022, Thu Dec 29 09:12:22 CST 2022]} + * </p> + * key涓烘暟瀛�,琛ㄧず骞村害鍒嗚〃;default涓洪粯璁よ〃 + * @param startTimeDate 璧峰鏃堕棿 + * @param endTimeDate 缁堟鏃堕棿 + * @return 闇�瑕佹煡璇㈢殑琛ㄥ強鏌ヨ鏃堕棿 + * @throws ParseException + */ + public static Map<String,List<Date>> getQueryTimeForSubTablesDescWithOutDefault(Date startTimeDate,Date endTimeDate) throws ParseException { + //鏍规嵁绛涢�夌殑鏃堕棿娈�,鏌ヨ鍑虹鍚堣姹傜殑鍚勫垎琛ㄨ褰曟暟 + //棣栧厛,濡傛灉褰撳墠鏃堕棿瓒呰繃7鏈�,榛樿琛ㄤ腑鍙湁鏈勾搴︾殑;濡傛灉娌¤秴杩�7鏈�,榛樿琛ㄨ繕瀛樺湪涓婁竴骞村害鐨勮褰� + Calendar now = Calendar.getInstance(); + if(endTimeDate.compareTo(now.getTime())>0){ //鏍¢獙浼樺寲鏈�澶ф煡璇㈡椂闂� + endTimeDate = now.getTime(); + } + Calendar timeBefore7Month = Calendar.getInstance(); + timeBefore7Month.add(Calendar.MONTH,-7); + + LinkedHashMap<String,List<Date>> yearTimeMap = (LinkedHashMap<String, List<Date>>) DateUtil.getYearListDesc(startTimeDate, endTimeDate); + return yearTimeMap; + } + + /** * 鎸夊勾鍒掑垎 * 浼樺寲getQueryTimeForSubTablesDesc,寰呮祴璇� * 鏇存柊default琛ㄦ槸鍚︽煡璇㈢殑閫昏緫,鏀箌|涓�&& diff --git a/src/main/java/com/whyc/util/SubTablePageInfoUtil.java b/src/main/java/com/whyc/util/SubTablePageInfoUtil.java index 3ed199d..82a70d7 100644 --- a/src/main/java/com/whyc/util/SubTablePageInfoUtil.java +++ b/src/main/java/com/whyc/util/SubTablePageInfoUtil.java @@ -4,6 +4,8 @@ import com.whyc.factory.ThreadPoolExecutorFactory; import com.whyc.mapper.CommonMapper; import com.whyc.pojo.db_alarm.BattAlarmHistory; +import com.whyc.pojo.db_power_alarm.PowerAlarm; +import com.whyc.pojo.db_power_alarm.PowerAlarmHistory; import com.whyc.service.SubTableService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -32,24 +34,17 @@ Date startTime,Date endTime, String dbName,String tablePrefix, Object pojo) throws ParseException { - Map<String, List<Date>> queryTimeForSubTables = DateUtil.getQueryTimeForSubTablesDesc(startTime, endTime); + Map<String, List<Date>> queryTimeForSubTables = DateUtil.getQueryTimeForSubTablesDescWithOutDefault(startTime, endTime); //鏌ヨ鍒嗚〃鏄惁瀛樺湪,瀛樺湪鍒欐煡璇㈢粨鏋� Map<String,Integer> queryCountMap = new LinkedHashMap<>(); Set<String> tableYearKeySet = queryTimeForSubTables.keySet(); for (String tableYear : tableYearKeySet) { List<Date> queryTime = queryTimeForSubTables.get(tableYear); - String tableName; - if(!tableYear.equals("default")){ - //鏁板�� - tableName = tablePrefix+"_"+tableYear; - String existTableName = commonMapper.existTable(dbName, tableName); - if(existTableName == null){ - continue; - } - }else{ - //涓嶅瓨鍦╠efault - //tableName = tablePrefix; + //鏁板�� + String tableName = tablePrefix+"_"+tableYear; + String existTableName = commonMapper.existTable(dbName, tableName); + if(existTableName == null){ continue; } //====== 鏍规嵁涓嶅悓绫诲瀷绫诲瀷瀵硅薄瀵瑰簲璋冩暣 ====== @@ -60,6 +55,15 @@ battAlarmHistory.setAlmEndTime(queryTime.get(1)); battAlarmHistory.setRecordYear(tableName); int currentCount = service.getBattHisCount(battAlarmHistory); + queryCountMap.put(tableYear, currentCount); + } + else if(pojo instanceof PowerAlarmHistory) { + PowerAlarmHistory powerAlarmHistory = new PowerAlarmHistory(); + BeanUtils.copyProperties(pojo, powerAlarmHistory); + powerAlarmHistory.setAlmStartTime(queryTime.get(0)); + powerAlarmHistory.setAlmEndTime(queryTime.get(1)); + powerAlarmHistory.setRecordYear(tableName); + int currentCount = service.getPowerHisCount(powerAlarmHistory); queryCountMap.put(tableYear, currentCount); } @@ -92,7 +96,7 @@ for (String key : keySet) { List<Date> queryTime = queryTimeForSubTables.get(key); //====== 鏍规嵁涓嶅悓绫诲瀷绫诲瀷瀵硅薄瀵瑰簲璋冩暣 ====== - String recordYear = key.equals("default") ? tablePrefix : tablePrefix + "_" + key; + String recordYear = tablePrefix + "_" + key; if(pojo instanceof BattAlarmHistory) { BattAlarmHistory battAlarmHistory = new BattAlarmHistory(); BeanUtils.copyProperties(pojo, battAlarmHistory); @@ -105,6 +109,18 @@ List<BattAlarmHistory> list = service.getBattHisList(battAlarmHistory); dataList.addAll(list); } + else if(pojo instanceof PowerAlarmHistory) { + PowerAlarmHistory powerAlarmHistory = new PowerAlarmHistory(); + BeanUtils.copyProperties(pojo, powerAlarmHistory); + powerAlarmHistory.setAlmStartTime(queryTime.get(0)); + powerAlarmHistory.setAlmEndTime(queryTime.get(1)); + powerAlarmHistory.setRecordYear(recordYear); + List<Integer> limitList = tableAndLimitMap.get(key); + powerAlarmHistory.setLimitStart(limitList.get(0)); + powerAlarmHistory.setLimitEnd(limitList.get(1)); + List<PowerAlarmHistory> list = service.getPowerHisList(powerAlarmHistory); + dataList.addAll(list); + } } pageInfo.setList(dataList); return pageInfo; -- Gitblit v1.9.1