dadcdd429f370471ff58f41d70d3f09ec5033b32.svn-base 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package cn.com.goldenwater.dcproj.utils;
  2. import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto;
  3. import java.time.LocalDate;
  4. import java.time.format.DateTimeFormatter;
  5. import java.util.Calendar;
  6. import java.util.Optional;
  7. public class TaskDateUtils {
  8. /**
  9. * 设置时间
  10. *
  11. * @param bisInspTaskDthDayDto
  12. */
  13. public static void setDate(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  14. // 1. 判断 时间类别
  15. String timeType = Optional.ofNullable(bisInspTaskDthDayDto).map(BisInspTaskDthDayDto::getTimeType).orElse("");
  16. if(timeType.contains("_")){
  17. //自定义时间段
  18. String[] dateStr = timeType.split("_");
  19. if( 2 == dateStr.length){
  20. bisInspTaskDthDayDto.setSttm(dateStr[0]);
  21. bisInspTaskDthDayDto.setEntm(dateStr[1]);
  22. return ;
  23. }
  24. }
  25. Calendar sttm = Calendar.getInstance();
  26. switch (timeType) {
  27. // 近一个月
  28. case "1":
  29. sttm.add(Calendar.MONTH, -1);
  30. break;
  31. // 近三个月
  32. case "2":
  33. sttm.add(Calendar.MONTH, -3);
  34. break;
  35. // 近半年
  36. case "3":
  37. sttm.add(Calendar.MONTH, -6);
  38. break;
  39. // 近一年
  40. case "4":
  41. sttm.add(Calendar.YEAR, -1);
  42. break;
  43. // 今年
  44. case "6":
  45. sttm.set(Integer.parseInt(DateUtils.getToday("yyyy")), Calendar.JANUARY, 1);
  46. break; // 今年
  47. case "7":
  48. // 按年度
  49. break;
  50. default:
  51. return;
  52. }
  53. bisInspTaskDthDayDto.setSttm(DateUtils.Calendar2Str(sttm, "yyyy-MM-dd"));
  54. bisInspTaskDthDayDto.setEntm(DateUtils.getToday("yyyy-MM-dd"));
  55. if("7".equals(timeType)){
  56. // 福建省 督查首页 按年份统计
  57. String year = bisInspTaskDthDayDto.getYear();
  58. DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  59. LocalDate startDate = null ;
  60. if(StringUtils.isNotBlank(year)){
  61. try {
  62. startDate = LocalDate.parse(year+"-01-01", dtf);
  63. } catch (Exception e) {
  64. startDate = LocalDate.now().withMonth(1).withDayOfMonth(1);
  65. }
  66. }
  67. if(null == startDate){
  68. startDate = LocalDate.now().withMonth(1).withDayOfMonth(1);
  69. }
  70. LocalDate endDate = startDate.plusYears(1L).minusDays(1L) ;
  71. bisInspTaskDthDayDto.setSttm(startDate.format(dtf));
  72. bisInspTaskDthDayDto.setEntm(endDate.format(dtf));
  73. bisInspTaskDthDayDto.setYear(String.valueOf(startDate.getYear()));
  74. }
  75. }
  76. }