package cn.com.goldenwater.dcproj.utils; import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Optional; public class TaskDateUtils { /** * 设置时间 * * @param bisInspTaskDthDayDto */ public static void setDate(BisInspTaskDthDayDto bisInspTaskDthDayDto) { // 1. 判断 时间类别 String timeType = Optional.ofNullable(bisInspTaskDthDayDto).map(BisInspTaskDthDayDto::getTimeType).orElse(""); if(timeType.contains("_")){ //自定义时间段 String[] dateStr = timeType.split("_"); if( 2 == dateStr.length){ bisInspTaskDthDayDto.setSttm(dateStr[0]); bisInspTaskDthDayDto.setEntm(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; } bisInspTaskDthDayDto.setSttm(DateUtils.Calendar2Str(sttm, "yyyy-MM-dd")); bisInspTaskDthDayDto.setEntm(DateUtils.getToday("yyyy-MM-dd")); if("7".equals(timeType)){ // 福建省 督查首页 按年份统计 String year = bisInspTaskDthDayDto.getYear(); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate startDate = null ; if(StringUtils.isNotBlank(year)){ try { startDate = LocalDate.parse(year+"-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) ; bisInspTaskDthDayDto.setSttm(startDate.format(dtf)); bisInspTaskDthDayDto.setEntm(endDate.format(dtf)); bisInspTaskDthDayDto.setYear(String.valueOf(startDate.getYear())); } } }