InsUtils.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package com.ydtech.utils;
  2. import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
  3. import com.ydtech.modules.ins.model.dto.CarInsDateDto;
  4. import com.ydtech.modules.order.entity.InsAreaCompany;
  5. import com.ydtech.modules.order.entity.InsOrders;
  6. import java.time.LocalDate;
  7. import java.time.LocalDateTime;
  8. import java.time.LocalTime;
  9. /**
  10. * 保险业务涉及的工具类
  11. *
  12. * @author: lig
  13. * @date: 2023年09月06日 0006
  14. */
  15. public class InsUtils {
  16. /**
  17. * 是今天内 大于当天0点 小于当天23:59
  18. *
  19. * @author: lig
  20. * @date: 2023年10月16日 0016
  21. */
  22. public static boolean isNowToTodayEnd(String dateTime) {
  23. LocalDateTime now = LocalDateTime.now();
  24. LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
  25. LocalDateTime startDateTime = DateTimeUtil.parseLocalDateTime(dateTime, DateTimeUtil.DATETIME_PATTERN);
  26. return startDateTime.isAfter(now) && startDateTime.isBefore(todayEnd);
  27. }
  28. /**
  29. * 构造 交强保险日期
  30. *
  31. * @author: lig
  32. * @date: 2023年10月16日 0016
  33. */
  34. public static CarInsDateDto buildCiInsDate(String startDate, String endDate) {
  35. CarInsDateDto cidd = new CarInsDateDto();
  36. if (isNowToTodayEnd(startDate)) {
  37. cidd.setForthwith(true);
  38. cidd.setStartDate(startDate);
  39. LocalDateTime sEndDateTime = DateTimeUtil.parseLocalDateTime(startDate, DateTimeUtil.DATETIME_PATTERN);
  40. sEndDateTime = sEndDateTime.plusYears(1);
  41. cidd.setEndDate(DateTimeUtil.format(sEndDateTime,"yyyy-MM-dd HH:mm:ss"));
  42. }else{
  43. cidd.setStartDate(startDate);
  44. cidd.setEndDate(endDate);
  45. }
  46. return cidd;
  47. }
  48. /**
  49. * 构造 商业险日期
  50. *
  51. * @author: lig
  52. * @date: 2023年10月16日 0016
  53. */
  54. public static CarInsDateDto buildBiInsDate(String startDate, String endDate) {
  55. CarInsDateDto cidd = new CarInsDateDto();
  56. LocalDateTime sStartDateTime = DateTimeUtil.parseLocalDateTime(startDate, DateTimeUtil.DATETIME_PATTERN);
  57. cidd.setStartDate(DateTimeUtil.getStartTimeOfDayStr(sStartDateTime));
  58. LocalDateTime sEndDateTime = sStartDateTime.plusYears(1);
  59. cidd.setEndDate(DateTimeUtil.getEndTimeOfDayStr(sEndDateTime));
  60. return cidd;
  61. }
  62. /**
  63. * 构造订单状态
  64. *
  65. * @author: lig
  66. * @date: 2023年10月19日 0019
  67. */
  68. public static void buildOrderStatus(InsOrders order, InsAreaCompany iac) {
  69. String iacStatus = iac.getOrderstatus();
  70. String orderStatus = order.getOrderstatus();
  71. if(orderStatus.equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) return;
  72. if(iacStatus.equals(InsOrderStatusEnum.WAIT_PAY.getCode()) && orderStatus.equals(InsOrderStatusEnum.WAIT_AUDIT.getCode())){
  73. order.setOrderstatus(iac.getOrderstatus());
  74. } else if (iacStatus.equals(InsOrderStatusEnum.WAIT_AUDIT.getCode()) && orderStatus.equals(InsOrderStatusEnum.QUOTE_ING.getCode())) {
  75. order.setOrderstatus(iac.getOrderstatus());
  76. } else if (iacStatus.equals(InsOrderStatusEnum.WAIT_PAY.getCode()) && !orderStatus.equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) {
  77. order.setOrderstatus(iac.getOrderstatus());
  78. } else if (iacStatus.equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()) ) {
  79. order.setOrderstatus(iac.getOrderstatus());
  80. } else if (iacStatus.equals(InsOrderStatusEnum.TO_BACK.getCode()) && orderStatus.equals(InsOrderStatusEnum.WAIT_AUDIT.getCode()) ) {
  81. order.setOrderstatus(iac.getOrderstatus());
  82. }
  83. }
  84. public static void main(String[] args) {
  85. // String jq = "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";
  86. //
  87. // String ss = "2023-01-23 14:00:00";
  88. //
  89. // LocalDateTime sEndDateTime = DateTimeUtil.parseLocalDateTime(ss,DateTimeUtil.DATETIME_PATTERN);
  90. // sEndDateTime = sEndDateTime.plusYears(1);
  91. //
  92. //
  93. // System.err.println(DateTimeUtil.getFirstDayOfYearStr(sEndDateTime));
  94. InsOrders order = new InsOrders();
  95. InsAreaCompany iac = new InsAreaCompany();
  96. order.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
  97. iac.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
  98. buildOrderStatus(order,iac);
  99. System.err.println("订单状态:" + order.getOrderstatus());
  100. System.err.println("子订单状态:" + iac.getOrderstatus());
  101. }
  102. }