From 62b3ae5384422b63f098c6fb02f390f429d02522 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期四, 07 十二月 2023 14:16:39 +0800 Subject: [PATCH] 告警分页 --- src/main/java/com/whyc/util/DateUtil.java | 138 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 136 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/whyc/util/DateUtil.java b/src/main/java/com/whyc/util/DateUtil.java index 90317c1..35f2df0 100644 --- a/src/main/java/com/whyc/util/DateUtil.java +++ b/src/main/java/com/whyc/util/DateUtil.java @@ -1,8 +1,8 @@ package com.whyc.util; +import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; +import java.util.*; /** * 鏃ユ湡澶勭悊宸ュ叿绫� @@ -133,4 +133,138 @@ return c.getTime(); } + /*==========鏃堕棿鍒囧壊,鎸夊勾==========*/ + /** + * 鍦ㄥ垎琛ㄧ殑鎯呭喌涓嬩娇鐢�,鎸夊勾鍒嗚〃,鏌ヨ闇�瑕佸垏鍓叉煡璇娇鐢� 鏃堕棿鍊掑簭 + * <p> + * 鏍规嵁浼犲叆鐨勮捣姝㈡椂闂�,鎸夌収骞村垏鍓叉垚涓嶅悓鏃堕棿娈� + * + * @param startTime 2021-01-01 10:00:00 + * @param endTime 2023-05-01 10:10:10 + * @return 绀轰緥 + * 浣跨敤鏂规硶: + * 鏍规嵁杩斿洖鐨勭涓�涓暟鎹�,濡傛灉瀛樺湪琛�,鍒欐煡璇㈢瓫閫夋潯浠朵负>=杈撳叆鐨勮捣濮嬫椂闂�;涓嶅瓨鍦ㄥ垯寮冪敤杈撳叆鐨勮捣濮嬫椂闂� + * 鏍规嵁杩斿洖鐨勬渶鍚庝釜鏁版嵁,濡傛灉琛ㄥ瓨鍦�,鍒欐煡璇㈢瓫閫夋潯浠朵负<=杈撳叆鐨勭粓姝㈡椂闂�;涓嶅瓨鍦ㄥ垯寮冪敤杈撳叆鐨勭粓姝㈡椂闂� + * 杩斿洖鐨勯潪绗竴鏈�鍚庢暟鎹�,鏌ヨ鍏ㄨ〃 + */ + public static Map<String, List<Date>> getYearListDesc(Date startTime, Date endTime) throws ParseException { + Map<String,List<Date>> result = new LinkedHashMap<>(); + Calendar startTimeC = Calendar.getInstance(); + startTimeC.setTime(startTime); + int startYear = startTimeC.get(Calendar.YEAR); + + Calendar endTimeC = Calendar.getInstance(); + endTimeC.setTime(endTime); + int endYear = endTimeC.get(Calendar.YEAR); + int yearSize = endYear - startYear + 1; + for (int i = endYear; i >= startYear; i--) { + List<Date> dateList = new LinkedList<>(); + if(yearSize == 1){ //璧锋鏃堕棿娌℃湁璺ㄥ勾 + dateList.add(startTime); + dateList.add(endTime); + } + else if(i==startYear){ //绗竴骞� + dateList.add(startTime); + + Calendar instance = Calendar.getInstance(); + instance.set(Calendar.YEAR,i); + instance.set(Calendar.MONTH,instance.getActualMaximum(Calendar.MONTH)); + instance.set(Calendar.DAY_OF_MONTH,instance.getActualMaximum(Calendar.DAY_OF_MONTH)); + instance.set(Calendar.HOUR_OF_DAY,instance.getActualMaximum(Calendar.HOUR_OF_DAY)); + instance.set(Calendar.MINUTE,instance.getActualMaximum(Calendar.MINUTE)); + instance.set(Calendar.SECOND,instance.getActualMaximum(Calendar.SECOND)); + dateList.add(instance.getTime()); + } + else if(i== endYear){ //灏惧勾 + Calendar instance = Calendar.getInstance(); + instance.set(Calendar.YEAR,i); + instance.set(Calendar.MONTH,instance.getActualMinimum(Calendar.MONTH)); + instance.set(Calendar.DAY_OF_MONTH,instance.getActualMinimum(Calendar.DAY_OF_MONTH)); + instance.set(Calendar.HOUR_OF_DAY,instance.getActualMinimum(Calendar.HOUR_OF_DAY)); + instance.set(Calendar.MINUTE,instance.getActualMinimum(Calendar.MINUTE)); + instance.set(Calendar.SECOND,instance.getActualMinimum(Calendar.SECOND)); + dateList.add(instance.getTime()); + + dateList.add(endTime); + }else{ + Calendar instance = Calendar.getInstance(); + instance.set(Calendar.YEAR,i); + instance.set(Calendar.MONTH,instance.getActualMinimum(Calendar.MONTH)); + instance.set(Calendar.DAY_OF_MONTH,instance.getActualMinimum(Calendar.DAY_OF_MONTH)); + instance.set(Calendar.HOUR_OF_DAY,instance.getActualMinimum(Calendar.HOUR_OF_DAY)); + instance.set(Calendar.MINUTE,instance.getActualMinimum(Calendar.MINUTE)); + instance.set(Calendar.SECOND,instance.getActualMinimum(Calendar.SECOND)); + dateList.add(instance.getTime()); + + Calendar instance2 = Calendar.getInstance(); + instance2.set(Calendar.YEAR,i); + instance2.set(Calendar.MONTH,instance2.getActualMaximum(Calendar.MONTH)); + instance2.set(Calendar.DAY_OF_MONTH,instance2.getActualMaximum(Calendar.DAY_OF_MONTH)); + instance2.set(Calendar.HOUR_OF_DAY,instance2.getActualMaximum(Calendar.HOUR_OF_DAY)); + instance2.set(Calendar.MINUTE,instance2.getActualMaximum(Calendar.MINUTE)); + instance2.set(Calendar.SECOND,instance2.getActualMaximum(Calendar.SECOND)); + dateList.add(instance2.getTime()); + + } + result.put(String.valueOf(i),dateList); + } + return result; + } + + /** + * 鏌ヨ浣跨敤鏃�,闇�瑕佸鐞� 榛樿琛ㄦ煡璇㈢殑闂 鍊掑簭 + * 绀轰緥: + * <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>> getQueryTimeForSubTablesDesc(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); + Map<String,List<Date>> yearTimeDescMap = new LinkedHashMap<>(); + boolean existDefaultYear = false; + if(startTimeDate.before(now.getTime()) || endTimeDate.after(timeBefore7Month.getTime())){ + List<Date> defaultDateList = new LinkedList<>(); + defaultDateList.add(startTimeDate); + defaultDateList.add(endTimeDate); + + yearTimeMap.put("default",defaultDateList); + existDefaultYear = true; + } + //璋冩暣涓嬮『搴�,灏哾efault璋冩暣鍒伴浣� + if(existDefaultYear){ + List<Date> defaultTimeList = yearTimeMap.get("default"); + yearTimeDescMap.put("default",defaultTimeList); + } + Set<String> yearSet = yearTimeMap.keySet(); + for (String year : yearSet) { + if(!year.equals("default")){ + yearTimeDescMap.put(year,yearTimeMap.get(year)); + } + } + + return yearTimeDescMap; + } + + } -- Gitblit v1.9.1