From 53a01d18096982d75248d1d368021577b9638287 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期四, 12 十二月 2024 11:15:59 +0800 Subject: [PATCH] 电池历史告警 --- src/main/java/com/whyc/util/SubTablePageInfoUtil.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/util/SubTablePageInfoUtil.java b/src/main/java/com/whyc/util/SubTablePageInfoUtil.java index 016e37d..3ed199d 100644 --- a/src/main/java/com/whyc/util/SubTablePageInfoUtil.java +++ b/src/main/java/com/whyc/util/SubTablePageInfoUtil.java @@ -27,6 +27,89 @@ private SubTableService service; //鎸夊勾鏈堝垎琛� + /**鎸夊勾浠借〃鍒嗛〉鏌ヨ*/ + public PageInfo<Object> getPageInfo(int pageNum,int pageSize, + Date startTime,Date endTime, + String dbName,String tablePrefix, + Object pojo) throws ParseException { + Map<String, List<Date>> queryTimeForSubTables = DateUtil.getQueryTimeForSubTablesDesc(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; + continue; + } + //====== 鏍规嵁涓嶅悓绫诲瀷绫诲瀷瀵硅薄瀵瑰簲璋冩暣 ====== + if(pojo instanceof BattAlarmHistory) { + BattAlarmHistory battAlarmHistory = new BattAlarmHistory(); + BeanUtils.copyProperties(pojo, battAlarmHistory); + battAlarmHistory.setAlmStartTime(queryTime.get(0)); + battAlarmHistory.setAlmEndTime(queryTime.get(1)); + battAlarmHistory.setRecordYear(tableName); + int currentCount = service.getBattHisCount(battAlarmHistory); + queryCountMap.put(tableYear, currentCount); + } + + } + + //鍒嗛〉淇℃伅 + //纭鎬婚〉鏁�,鎬昏褰曟暟 + PageInfo<Object> pageInfo = new PageInfo<>(); + + int total = 0; + Set<String> queryKeySet = queryCountMap.keySet(); + for (String queryKey : queryKeySet) { + int size = queryCountMap.get(queryKey); + total+=size; + } + int pages = (int) Math.ceil(Float.parseFloat(String.valueOf(total))/pageSize); + pageInfo.setTotal(total); + pageInfo.setPages(pages); + pageInfo.setPageNum(pageNum); + pageInfo.setPageSize(pageSize); + //鏍规嵁褰撳墠椤垫墍闇�璁板綍,鏌ヨ褰撳墠椤佃褰� + int startNum = (pageNum-1)*pageSize+1; + int endNum = pageNum*pageSize; + + //鏈�鍚庝竴涓畻娉�:涓婇潰涓嶅簲璇ュ厛鏌ヨ鎵�鏈夎褰�,搴旇鍙朿ount. 杩欏悗闈㈠畾浣嶅埌鍝釜琛ㄦ垨鍝嚑寮犺〃鍚�,閲囧彇limit鑾峰彇褰撳墠椤佃褰曟暟; + //鏍煎紡:{琛ㄥ悕,[limit 2,20]} + Map<String,List<Integer>> tableAndLimitMap = MathUtil.getQueryTableAndLimit(startNum,endNum,pageSize,queryCountMap); + Set<String> keySet = tableAndLimitMap.keySet(); + List<Object> dataList = new LinkedList<>(); + for (String key : keySet) { + List<Date> queryTime = queryTimeForSubTables.get(key); + //====== 鏍规嵁涓嶅悓绫诲瀷绫诲瀷瀵硅薄瀵瑰簲璋冩暣 ====== + String recordYear = key.equals("default") ? tablePrefix : tablePrefix + "_" + key; + if(pojo instanceof BattAlarmHistory) { + BattAlarmHistory battAlarmHistory = new BattAlarmHistory(); + BeanUtils.copyProperties(pojo, battAlarmHistory); + battAlarmHistory.setAlmStartTime(queryTime.get(0)); + battAlarmHistory.setAlmEndTime(queryTime.get(1)); + battAlarmHistory.setRecordYear(recordYear); + List<Integer> limitList = tableAndLimitMap.get(key); + battAlarmHistory.setLimitStart(limitList.get(0)); + battAlarmHistory.setLimitEnd(limitList.get(1)); + List<BattAlarmHistory> list = service.getBattHisList(battAlarmHistory); + dataList.addAll(list); + } + } + pageInfo.setList(dataList); + return pageInfo; + } + /**鎸夋湀鍒嗚〃,鍒嗛〉鏌ヨ*/ public PageInfo<Object> getPageInfoByMonthTable(int pageNum, int pageSize, Date startTime, Date endTime, -- Gitblit v1.9.1