package com.ydtech.utils; import com.ydtech.constants.enums.dict.InsOrderStatusEnum; import com.ydtech.modules.ins.model.dto.CarInsDateDto; import com.ydtech.modules.order.entity.InsAreaCompany; import com.ydtech.modules.order.entity.InsOrders; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; /** * 保险业务涉及的工具类 * * @author: lig * @date: 2023年09月06日 0006 */ public class InsUtils { /** * 是今天内 大于当天0点 小于当天23:59 * * @author: lig * @date: 2023年10月16日 0016 */ public static boolean isNowToTodayEnd(String dateTime) { LocalDateTime now = LocalDateTime.now(); LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); LocalDateTime startDateTime = DateTimeUtil.parseLocalDateTime(dateTime, DateTimeUtil.DATETIME_PATTERN); return startDateTime.isAfter(now) && startDateTime.isBefore(todayEnd); } /** * 构造 交强保险日期 * * @author: lig * @date: 2023年10月16日 0016 */ public static CarInsDateDto buildCiInsDate(String startDate, String endDate) { CarInsDateDto cidd = new CarInsDateDto(); if (isNowToTodayEnd(startDate)) { cidd.setForthwith(true); cidd.setStartDate(startDate); LocalDateTime sEndDateTime = DateTimeUtil.parseLocalDateTime(startDate, DateTimeUtil.DATETIME_PATTERN); sEndDateTime = sEndDateTime.plusYears(1); cidd.setEndDate(DateTimeUtil.format(sEndDateTime,"yyyy-MM-dd HH:mm:ss")); }else{ cidd.setStartDate(startDate); cidd.setEndDate(endDate); } return cidd; } /** * 构造 商业险日期 * * @author: lig * @date: 2023年10月16日 0016 */ public static CarInsDateDto buildBiInsDate(String startDate, String endDate) { CarInsDateDto cidd = new CarInsDateDto(); LocalDateTime sStartDateTime = DateTimeUtil.parseLocalDateTime(startDate, DateTimeUtil.DATETIME_PATTERN); cidd.setStartDate(DateTimeUtil.getStartTimeOfDayStr(sStartDateTime)); LocalDateTime sEndDateTime = sStartDateTime.plusYears(1); cidd.setEndDate(DateTimeUtil.getEndTimeOfDayStr(sEndDateTime)); return cidd; } /** * 构造订单状态 * * @author: lig * @date: 2023年10月19日 0019 */ public static void buildOrderStatus(InsOrders order, InsAreaCompany iac) { String iacStatus = iac.getOrderstatus(); String orderStatus = order.getOrderstatus(); if(orderStatus.equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) return; if(iacStatus.equals(InsOrderStatusEnum.WAIT_PAY.getCode()) && orderStatus.equals(InsOrderStatusEnum.WAIT_AUDIT.getCode())){ order.setOrderstatus(iac.getOrderstatus()); } else if (iacStatus.equals(InsOrderStatusEnum.WAIT_AUDIT.getCode()) && orderStatus.equals(InsOrderStatusEnum.QUOTE_ING.getCode())) { order.setOrderstatus(iac.getOrderstatus()); } else if (iacStatus.equals(InsOrderStatusEnum.WAIT_PAY.getCode()) && !orderStatus.equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) { order.setOrderstatus(iac.getOrderstatus()); } else if (iacStatus.equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()) ) { order.setOrderstatus(iac.getOrderstatus()); } else if (iacStatus.equals(InsOrderStatusEnum.TO_BACK.getCode()) && orderStatus.equals(InsOrderStatusEnum.WAIT_AUDIT.getCode()) ) { order.setOrderstatus(iac.getOrderstatus()); } } public static void main(String[] args) { // String jq = "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"; // // String ss = "2023-01-23 14:00:00"; // // LocalDateTime sEndDateTime = DateTimeUtil.parseLocalDateTime(ss,DateTimeUtil.DATETIME_PATTERN); // sEndDateTime = sEndDateTime.plusYears(1); // // // System.err.println(DateTimeUtil.getFirstDayOfYearStr(sEndDateTime)); InsOrders order = new InsOrders(); InsAreaCompany iac = new InsAreaCompany(); order.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode()); iac.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode()); buildOrderStatus(order,iac); System.err.println("订单状态:" + order.getOrderstatus()); System.err.println("子订单状态:" + iac.getOrderstatus()); } }