| | |
| | | public static Map<String,List<Date>> getQueryTimeForSubTablesDesc(Date startTimeDate,Date endTimeDate) throws ParseException { |
| | | //根据筛选的时间段,查询出符合要求的各分表记录数 |
| | | //首先,如果当前时间超过7月,默认表中只有本年度的;如果没超过7月,默认表还存在上一年度的记录 |
| | | Calendar instance = Calendar.getInstance(); |
| | | if(endTimeDate.compareTo(instance.getTime())>0){ //校验优化最大查询时间 |
| | | endTimeDate = instance.getTime(); |
| | | Calendar now = Calendar.getInstance(); |
| | | if(endTimeDate.compareTo(now.getTime())>0){ //校验优化最大查询时间 |
| | | endTimeDate = now.getTime(); |
| | | } |
| | | int nowYear = instance.get(Calendar.YEAR); |
| | | instance.add(Calendar.MONTH,-6); |
| | | int beforeYear = instance.get(Calendar.YEAR); |
| | | Date beforeYearTime = instance.getTime(); |
| | | instance.setTime(endTimeDate); |
| | | int endTimeYear = instance.get(Calendar.YEAR); |
| | | |
| | | Calendar startTime = Calendar.getInstance(); |
| | | startTime.setTime(startTimeDate); |
| | | 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(nowYear == beforeYear){ //默认表只有本年度的(超过了半年,默认表记录全部只有本年度的,同时会生成了当前年度的分表) |
| | | /*if(nowYear == beforeYear){ //默认表只有本年度的(超过了半年,默认表记录全部只有本年度的,同时会生成了当前年度的分表) |
| | | //如果查询时间范围包含当前年度,则需要查询默认表 |
| | | if(startTime.get(Calendar.YEAR) >= nowYear && endTimeYear <= nowYear){ |
| | | //开始时间设置年度初始时间 |
| | |
| | | yearTimeMap.put("default",defaultDateList); |
| | | existDefaultYear = true; |
| | | } |
| | | }*/ |
| | | 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; |
| | | } |
| | | //调整下顺序,将default调整到首位 |
| | | if(existDefaultYear){ |