Browse Source

fix 国任保险即使起保问题

liub 3 months ago
parent
commit
1ddb90f94b

+ 5 - 20
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/filter/CarModelsFilterUtils.java

@@ -9,32 +9,22 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 /**
- * @description 过滤车型
  * @author wenks
+ * @description 过滤车型
  * @date 2023/8/22 9:54
  **/
 public final class CarModelsFilterUtils {
 
     public static <T extends CarModelsFilter> T to(List<T> carModelsFilterList, CarInfoVo carInfo) {
-        if (carModelsFilterList.isEmpty()) {
+        if (carModelsFilterList == null) {
             throw new SystemException("核心查询车型失败 请联系业务人员处理");
         }
         List<T> stadarCarDTOS = new ArrayList<>();
         if (!StringUtils.isEmpty(carInfo.getCarYear())) {
-            stadarCarDTOS = carModelsFilterList
-                    .stream()
-                    .filter(car -> carInfo
-                            .getCarYear()
-                            .equals(car.getCarYear()))
-                    .collect(Collectors.toList());
+            stadarCarDTOS = carModelsFilterList.stream().filter(car -> carInfo.getCarYear().equals(car.getCarYear())).collect(Collectors.toList());
         }
         if (!StringUtils.isEmpty(carInfo.getSeatCount())) {
-            stadarCarDTOS = stadarCarDTOS
-                    .stream()
-                    .filter(car -> carInfo
-                            .getSeatCount()
-                            .equals(car.getSeatCount()))
-                    .collect(Collectors.toList());
+            stadarCarDTOS = stadarCarDTOS.stream().filter(car -> carInfo.getSeatCount().equals(car.getSeatCount())).collect(Collectors.toList());
         }
 
         if (!stadarCarDTOS.isEmpty()) {
@@ -43,12 +33,7 @@ public final class CarModelsFilterUtils {
             stadarCarDTOS = carModelsFilterList;
         }
 
-        carModelsFilterList = carModelsFilterList
-                .stream()
-                .filter(car -> carInfo
-                        .getPurchasePrice()
-                        .equals(String.valueOf(car.getPurchasePrice())))
-                .collect(Collectors.toList());
+        carModelsFilterList = carModelsFilterList.stream().filter(car -> carInfo.getPurchasePrice().equals(String.valueOf(car.getPurchasePrice()))).collect(Collectors.toList());
 
         if (carModelsFilterList.isEmpty()) {
             return stadarCarDTOS.get(0);

+ 7 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenBiDTO.java

@@ -5,6 +5,7 @@ import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.quotation.guoren.crawler.entity.request.GuoRenCrawlerCalculationPremiumRequest;
+import com.jzg.quotation.guoren.crawler.utils.TimeUtils;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -136,6 +137,12 @@ public class GuoRenBiDTO {
                 infoVo.setAmount(prpTitemCar.getCompromisePrice());
             }
         }
+        prpTmain.setStartDate(TimeUtils.extractDate(biRiskInfoVo.getStartDate()));
+        prpTmain.setStartHour(Integer.valueOf(TimeUtils.extractHour(biRiskInfoVo.getStartDate())));
+        prpTmain.setStartMinute(Integer.valueOf(TimeUtils.extractMinute(biRiskInfoVo.getStartDate())));
+        prpTmain.setEndDate(TimeUtils.extractDate(biRiskInfoVo.getEndDate()));
+        prpTmain.setEndHour(24);
+        prpTmain.setEndMinute(0);
         this.prptitemkindList = GuoRenCrawlerCalculationPremiumRequest.PrptitemkindListDTO.getBiPrptitemkindList(kindInfoVo, prpTmain);
         this.prptengageList = new ArrayList<>();
         this.prpDclause = new ArrayList<>();

+ 7 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenCiDTO.java

@@ -7,6 +7,7 @@ import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.quotation.guoren.crawler.entity.po.TaxResult;
 import com.jzg.quotation.guoren.crawler.entity.request.GuoRenCrawlerCalculationPremiumRequest;
+import com.jzg.quotation.guoren.crawler.utils.TimeUtils;
 import com.jzg.quotation.guoren.crawler.utils.VehicleTaxCalculator;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -125,6 +126,12 @@ public class GuoRenCiDTO {
         this.prpTmain = new GuoRenPrpTmainDTO(ciRiskInfoVo, today);
         this.prpTitemCar = prpTitemCar;
         this.prpTmainRate = new GuoRenPrpTmainRateDTO();
+        prpTmain.setStartDate(TimeUtils.extractDate(ciRiskInfoVo.getStartDate()));
+        prpTmain.setStartHour(Integer.valueOf(TimeUtils.extractHour(ciRiskInfoVo.getStartDate())));
+        prpTmain.setStartMinute(Integer.valueOf(TimeUtils.extractMinute(ciRiskInfoVo.getStartDate())));
+        prpTmain.setEndDate(TimeUtils.extractDate(ciRiskInfoVo.getEndDate()));
+        prpTmain.setEndHour(24);
+        prpTmain.setEndMinute(0);
         this.prptitemkindList = GuoRenCrawlerCalculationPremiumRequest.PrptitemkindListDTO.getCiPrptitemkindList(prpTmain);
         this.prptengageList = new ArrayList<>();
         this.prpDclause = new ArrayList<>();

+ 3 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerRequestImpl.java

@@ -180,6 +180,9 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
             String businessNo = StringUtils.hasLength(guoRenCrawlerOrder.getCiPolicyNo()) ? guoRenCrawlerOrder.getCiPolicyNumber() : guoRenCrawlerOrder.getBiPolicyNumber();
             underwritingResultsVo.setCompanyOrderNo(businessNo);
             underwritingResultsVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
+        } else if (submitUnderwrite.getMessage().contains("人工核保")) {
+            underwritingResultsVo.setUnderwritingResult(submitUnderwrite.getMessage());
+            underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.STAFF_PROCESS);
         } else {
             underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
         }

+ 64 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/utils/TimeUtils.java

@@ -0,0 +1,64 @@
+package com.jzg.quotation.guoren.crawler.utils;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * 时间工具类
+ */
+public final class TimeUtils {
+
+    private static final String STANDARD_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
+    private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern(STANDARD_DATETIME_PATTERN);
+    private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+    private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm");
+
+    private TimeUtils() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    /**
+     * 从标准时间字符串(如 "2026-07-02 12:00:00")中提取日期部分
+     *
+     * @param dateTimeStr 标准时间字符串,格式:yyyy-MM-dd HH:mm:ss
+     * @return 日期字符串,格式:yyyy-MM-dd
+     */
+    public static String extractDate(String dateTimeStr) {
+        LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);
+        return dateTime.format(DATE_FORMATTER);
+    }
+
+    /**
+     * 从标准时间字符串(如 "2026-07-02 12:00:00")中提取时分部分
+     *
+     * @param dateTimeStr 标准时间字符串,格式:yyyy-MM-dd HH:mm:ss
+     * @return 时分字符串,格式:HH:mm
+     */
+    public static String extractTime(String dateTimeStr) {
+        LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);
+        return dateTime.format(TIME_FORMATTER);
+    }
+
+    /**
+     * 从标准时间字符串(如 "2026-07-02 12:00:00")中提取小时
+     *
+     * @param dateTimeStr 标准时间字符串,格式:yyyy-MM-dd HH:mm:ss
+     * @return 小时,如 "12"
+     */
+    public static String extractHour(String dateTimeStr) {
+        LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);
+        return String.format("%02d", dateTime.getHour());
+    }
+
+    /**
+     * 从标准时间字符串(如 "2026-07-02 12:00:00")中提取分钟
+     *
+     * @param dateTimeStr 标准时间字符串,格式:yyyy-MM-dd HH:mm:ss
+     * @return 分钟,如 "00"
+     */
+    public static String extractMinute(String dateTimeStr) {
+        LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);
+        return String.format("%02d", dateTime.getMinute());
+    }
+
+}