| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package cn.com.goldenwater.dcproj.util;
- import cn.com.goldenwater.dcproj.utils.DateUtils;
- import org.apache.commons.collections.MapUtils;
- import org.apache.commons.lang.StringUtils;
- import java.time.LocalDate;
- import java.time.format.DateTimeFormatter;
- import java.util.Calendar;
- import java.util.Map;
- public class StatisticalUtil {
- private static final String STTM = "sttm";
- private static final String ENTM = "entm";
- private static final String DATE_FORMAT = "yyyy-MM-dd";
- /**
- * 设置时间
- *
- * @param paramMap
- */
- public static void setDate(Map<String, Object> paramMap) {
- // 1. 判断
- String sttmStr = MapUtils.getString(paramMap, STTM, "");
- String entmStr = MapUtils.getString(paramMap, ENTM, "");
- boolean check = StringUtils.isNotBlank(sttmStr) || StringUtils.isNotBlank(entmStr);
- if (check) {
- paramMap.put(STTM, sttmStr.length() > 10 ? sttmStr.substring(0, 10) : sttmStr);
- paramMap.put(ENTM, entmStr.length() > 10 ? entmStr.substring(0, 10) : entmStr);
- return;
- }
- // 2. 判断 时间类别
- String timeType = MapUtils.getString(paramMap, "timeType");
- if (StringUtils.isBlank(timeType)) {
- return;
- }
- if(timeType.contains("_")){
- //自定义时间段
- String[] dateStr = timeType.split("_");
- if( 2 == dateStr.length){
- paramMap.put(STTM, dateStr[0]);
- paramMap.put(ENTM, dateStr[1]);
- return ;
- }
- }
- Calendar sttm = Calendar.getInstance();
- switch (timeType) {
- // 近一个月
- case "1":
- sttm.add(Calendar.MONTH, -1);
- break;
- // 近三个月
- case "2":
- sttm.add(Calendar.MONTH, -3);
- break;
- // 近半年
- case "3":
- sttm.add(Calendar.MONTH, -6);
- break;
- // 近一年
- case "4":
- sttm.add(Calendar.YEAR, -1);
- break;
- case "6":
- sttm.set(Integer.parseInt(DateUtils.getToday("yyyy")), Calendar.JANUARY, 1);
- break;
- case "7":
- // 按年度
- break;
- default:
- return;
- }
- paramMap.put(STTM, DateUtils.Calendar2Str(sttm, DATE_FORMAT));
- paramMap.put(ENTM, DateUtils.getToday(DATE_FORMAT));
- if("7".equals(timeType)){
- // 福建省 督查首页 按年份统计
- Object year = paramMap.get("year");
- DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- LocalDate startDate = null ;
- if(null != year){
- try {
- startDate = LocalDate.parse(year.toString()+"-01-01", dtf);
- } catch (Exception e) {
- startDate = LocalDate.now().withMonth(1).withDayOfMonth(1);
- }
- }
- if(null == startDate){
- startDate = LocalDate.now().withMonth(1).withDayOfMonth(1);
- }
- LocalDate endDate = startDate.plusYears(1L).minusDays(1L) ;
- paramMap.put(STTM, startDate.format(dtf));
- paramMap.put(ENTM, endDate.format(dtf));
- paramMap.put("year",startDate.getYear());
- }
- }
- }
|