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