Преглед изворни кода

Merge remote-tracking branch 'origin/master'

lixiaolong пре 1 месец
родитељ
комит
c842776a8f

+ 2 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/build/GuoRenCrawlerQuoteResultsVoBuild.java

@@ -11,6 +11,7 @@ import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerBaseRespons
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerCalculationPremiumData;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerProposalNoSaveData;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -94,6 +95,7 @@ public final class GuoRenCrawlerQuoteResultsVoBuild {
 
         scoreVo.setScoreJson(scoreJson);
         quoteResultsVo.setScoreVo(scoreVo);
+        quoteResultsVo.setCarActualValue(BigDecimal.valueOf(calculationPremium.getBc().getPrpTitemCar().getCompromisePrice()));
 
         return quoteResultsVo;
     }

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

@@ -124,9 +124,6 @@ public class GuoRenBiDTO {
             this.inputRisk = 1;
             this.prpTmain = new GuoRenPrpTmainDTO(biRiskInfoVo, today);
             this.prpTmainRate = new GuoRenPrpTmainRateDTO();
-            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);

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

@@ -126,9 +126,6 @@ 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);

+ 36 - 28
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenPrpTmainDTO.java

@@ -2,13 +2,14 @@ package com.jzg.quotation.guoren.crawler.entity.dto;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
+import com.jzg.quotation.commons.utils.DateUtil;
 import com.jzg.quotation.commons.utils.TimeProcessing;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 @NoArgsConstructor
 @Data
-public class GuoRenPrpTmainDTO  {
+public class GuoRenPrpTmainDTO {
 
     @JsonProperty("startDate")
     private String startDate;
@@ -70,12 +71,18 @@ public class GuoRenPrpTmainDTO  {
     @JsonProperty("immeValidEndDate0507t1")
     private String immeValidEndDate0507t1;
 
+    @JsonProperty("startHour0507t1")
+    private Integer startHour0507t1;
+
     @JsonProperty("startMinute0507t1")
     private Integer startMinute0507t1;
 
     @JsonProperty("endMinute0507t1")
     private Integer endMinute0507t1;
 
+    @JsonProperty("endHour0507t1")
+    private Integer endHour0507t1;
+
     @JsonProperty("startDateFlag0507t1")
     private Integer startDateFlag0507t1;
 
@@ -301,41 +308,42 @@ public class GuoRenPrpTmainDTO  {
     @JsonProperty("endMinute")
     private Integer endMinute;
 
-    public GuoRenPrpTmainDTO(RiskInfoVo biRiskInfoVo, String today) {
-        this.startDate = TimeProcessing.dateTimeToDate(biRiskInfoVo.getStartDate());
-        this.startHour = 0;
-        this.startMinute = 0;
-
-        this.endDate = TimeProcessing.dateTimeToDate(biRiskInfoVo.getEndDate());
-        this.endHour = 24;
-        this.endMinute = 0;
-
+    public GuoRenPrpTmainDTO(RiskInfoVo riskInfoVo, String today) {
+        this.startDate = TimeProcessing.dateTimeToDate(riskInfoVo.getStartDate());
+        this.endDate = TimeProcessing.dateTimeToDate(riskInfoVo.getEndDate());
         this.period0530 = 30;
 
+        this.startHour = TimeProcessing.getHour(riskInfoVo.getStartDate());
+        this.startMinute = TimeProcessing.getMinute(riskInfoVo.getStartDate());
+        this.endHour = TimeProcessing.getHour(riskInfoVo.getEndDate());
+        this.endMinute = TimeProcessing.getMinute(riskInfoVo.getEndDate());
+
         // 0507字段赋值
-        this.immeValiFlag0507 = 0;
-        this.startDate0507 = TimeProcessing.dateTimeToDate(biRiskInfoVo.getStartDate()) + "T16:00:00.000Z";
-        this.endDate0507 = TimeProcessing.dateTimeToDate(biRiskInfoVo.getEndDate()) + "T16:00:00.000Z";
-        this.immeValidStartDate0507 = this.startDate0507;
-        this.immeValidEndDate0507 = this.endDate0507;
-        this.startHour0507 = 0;
-        this.endHour0507 = 24;
-        this.startMinute0507 = 0;
-        this.endMinute0507 = 0;
+        this.immeValiFlag0507 = riskInfoVo.isInstantFlag() ? 1 : 0;
+        this.startDate0507 = TimeProcessing.dateTimeToDate(riskInfoVo.getStartDate());
+        this.endDate0507 = TimeProcessing.dateTimeToDate(riskInfoVo.getEndDate());
+        this.immeValidStartDate0507 =  DateUtil.toUtcDateTime(riskInfoVo.getStartDate());
+        this.immeValidEndDate0507 = DateUtil.toUtcDateTime(riskInfoVo.getEndDate());
+        this.startHour0507 = TimeProcessing.getHour(riskInfoVo.getStartDate());
+        this.endHour0507 = TimeProcessing.getHour(riskInfoVo.getEndDate());
+        this.startMinute0507 = TimeProcessing.getMinute(riskInfoVo.getStartDate());
+        this.endMinute0507 =  TimeProcessing.getMinute(riskInfoVo.getEndDate());
         this.startDateFlag0507 = 0;
 
         // 0507t1字段赋值
         this.immeValiFlag0507t1 = 0;
-        this.startDate0507t1 = TimeProcessing.dateTimeToDate(biRiskInfoVo.getStartDate()) + "T16:00:00.000Z";
-        this.endDate0507t1 = TimeProcessing.dateTimeToDate(biRiskInfoVo.getEndDate()) + "T16:00:00.000Z";
-        this.immeValidStartDate0507t1 = this.startDate0507t1;
-        this.immeValidEndDate0507t1 = this.endDate0507t1;
-        this.startMinute0507t1 = 0;
-        this.endMinute0507t1 = 0;
+        this.startDate0507t1 = TimeProcessing.dateTimeToDate(riskInfoVo.getStartDate());
+        this.endDate0507t1 = TimeProcessing.dateTimeToDate(riskInfoVo.getEndDate());
+        this.immeValidStartDate0507t1 = DateUtil.toUtcDateTime(riskInfoVo.getStartDate());
+        this.immeValidEndDate0507t1 = DateUtil.toUtcDateTime(riskInfoVo.getEndDate());
+        this.startHour0507t1 = TimeProcessing.getHour(riskInfoVo.getStartDate());
+        this.endHour0507t1 = TimeProcessing.getHour(riskInfoVo.getEndDate());
+        this.startMinute0507t1 = TimeProcessing.getMinute(riskInfoVo.getStartDate());
+        this.endMinute0507t1 = TimeProcessing.getMinute(riskInfoVo.getEndDate());
         this.startDateFlag0507t1 = 0;
 
-        this.immeValidStartDate = "";
-        this.immeValidEndDate = "";
+        this.immeValidStartDate = riskInfoVo.isInstantFlag() ? riskInfoVo.getStartDate() : "";
+        this.immeValidEndDate = riskInfoVo.isInstantFlag() ? riskInfoVo.getEndDate() : "";
         this.feeandDiscountFlag = "0";
         this.saleChange = "0";
         this.startDateFlag = 0;
@@ -348,7 +356,7 @@ public class GuoRenPrpTmainDTO  {
         this.sumPremium = "";
         this.inputDate = today;
         this.signDate = today;
-        this.immeValiFlag = "";
+        this.immeValiFlag = riskInfoVo.isInstantFlag() ? "1" : "0";
         this.disCount = 1.0;
         this.sumnoTaxPremium = 896.23;
 

+ 2 - 2
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java

@@ -110,8 +110,8 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
     @Override
     public HttpHeaders getHeaders(String username) {
         HttpHeaders headers = new HttpHeaders();
-        String token = guoRenCrawlerCacheComponent.getToken(username);
-//        String token = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJXMzAwMDM5OSIsInVzZXJJZCI6IjQ5NjE4MSIsIm5hbWUiOiLmnY7mmKXmooUiLCJleHAiOjE3ODQ2MjI5NzN9.ZmbT_sS1gSqbBu0vaCoZ3CPwzE7psQcSVyPDwxTtfffT5-Wr15MOJgH-vnUe1eD3in-RUWnoLXW6ZFybj2qXhm7-kZMKkIEISzaNFqHymoPQPlils2ydiVPigIWs4dhv8CLvH_OWYnOeucekHQKMMMZk26Lsi3Jy0wdgdN9X_k0";
+//        String token = guoRenCrawlerCacheComponent.getToken(username);
+        String token = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJXMzAwMDM5OSIsInVzZXJJZCI6IjQ5NjE4MSIsIm5hbWUiOiLmnY7mmKXmooUiLCJleHAiOjE3ODQ3OTMwNzR9.Jc-DOyqO7RatX9veTtF0cfVFF9EhLuP40eaEkSe_Tv8u33YFvosk50nAPdevmJ9t9WW7263S88fpfHy0gFNjTOjUk8KcOqmpJWbC9Q7Ydoq6NTRwKGIVgZI2VLVlPA99fPzTuxl-MPsyEU0_2KV4I_U7LcV5p3w0jEkPLdUFuXM";
         if (!StringUtils.hasText(token)) {
             throw new TokenExpireException("500", "国任财险账号登录过期,请重新登录");
         }

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

@@ -8,6 +8,7 @@ import com.jzg.commons.entity.po.InsCompanyClause;
 import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
 import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.entity.quote.vo.base.LoginBase;
 import com.jzg.commons.entity.quote.vo.base.OrderBase;
@@ -25,6 +26,7 @@ import com.jzg.quotation.guoren.crawler.component.GuoRenCrawlerRequestComponent;
 import com.jzg.quotation.guoren.crawler.constant.enums.RequestUrl;
 import com.jzg.quotation.guoren.crawler.entity.GuoRenCrawlerConfigureParameters;
 import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenPrpTitemCarDTO;
+import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenPrpTmainDTO;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrptengageListDTO;
 import com.jzg.quotation.guoren.crawler.entity.po.GuoRenCrawlerOrder;
@@ -149,23 +151,28 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
             if (startTime == null) {
                 return GuoRenCrawlerQuoteResultsVoBuild.buildFailQuoteResultsVo(quoteVo, calculationPremium);
             } else {
+                RiskInfoVo ciRiskInfoVo = new RiskInfoVo();
+
                 if (startTime != null && startTime.endsWith("00:00:00")) {
+                    ciRiskInfoVo.setInstantFlag(false);
                     endTime = TimeProcessing.minusOneSecondAfterYear(startTime);
                 } else {
+                    ciRiskInfoVo.setInstantFlag(true);
                     endTime = TimeProcessing.minusOneDayAfterYear(startTime);
                 }
                 String startDate = TimeProcessing.dateTimeToDate(startTime);
                 String endDate = TimeProcessing.dateTimeToDate(endTime);
 
+                ciRiskInfoVo.setStartDate(startTime);
+                ciRiskInfoVo.setEndDate(endTime);
+
+                GuoRenPrpTmainDTO prpTMainDTO = new GuoRenPrpTmainDTO(ciRiskInfoVo, TimeProcessing.nowDate());
+
                 // 交强
                 quoteVo.getCiRiskInfoVo().setStartDate(startTime);
                 quoteVo.getCiRiskInfoVo().setEndDate(endTime);
-                crawlerCalculationPremiumRequest.getCi().getPrpTmain().setStartDate(startDate);
-                crawlerCalculationPremiumRequest.getCi().getPrpTmain().setStartHour(TimeProcessing.getHour(startTime));
-                crawlerCalculationPremiumRequest.getCi().getPrpTmain().setStartMinute(TimeProcessing.getMinute(startTime));
-                crawlerCalculationPremiumRequest.getCi().getPrpTmain().setEndDate(endDate);
-                crawlerCalculationPremiumRequest.getCi().getPrpTmain().setEndHour(TimeProcessing.getHour(endTime));
-                crawlerCalculationPremiumRequest.getCi().getPrpTmain().setEndMinute(TimeProcessing.getMinute(endTime));
+                crawlerCalculationPremiumRequest.getCi().setPrpTmain(prpTMainDTO);
+
                 crawlerCalculationPremiumRequest.getCi().getPrptitemkindList().forEach(item -> {
                     item.setStartDate(startDate);
                     item.setEndDate(endDate);
@@ -173,7 +180,7 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
 
                 if (crawlerCalculationPremiumRequest.getBi().getPrpTmain() != null) {
                     // 商业
-                    String biStartDate = (startTime != null && startTime.endsWith("00:00:00")) ? startTime :TimeProcessing.plusDays(startDate, 1) + " 00:00:00";
+                    String biStartDate = (startTime != null && startTime.endsWith("00:00:00")) ? startTime : TimeProcessing.plusDays(startDate, 1) + " 00:00:00";
                     String biEndDate = TimeProcessing.minusOneSecondAfterYear(biStartDate);
                     quoteVo.getBiRiskInfoVo().setStartDate(biStartDate);
                     quoteVo.getBiRiskInfoVo().setEndDate(biEndDate);
@@ -200,7 +207,7 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
         GuoRenCrawlerCreateOrderRequest createOrderRequest = null;
         if (CollUtil.isNotEmpty(quoteVo.getAccidentalDrivings())) {
             // 驾意险查询:获取liabList用于订单创建
-            GuoRenCrawlerQueryQuotationRequest queryQuotationRequest = new GuoRenCrawlerQueryQuotationRequest(quoteVo,  crawlerCalculationPremiumRequest.getBc().getPrpTitemCar());
+            GuoRenCrawlerQueryQuotationRequest queryQuotationRequest = new GuoRenCrawlerQueryQuotationRequest(quoteVo, crawlerCalculationPremiumRequest.getBc().getPrpTitemCar());
             GuoRenCrawlerBaseResponse<GuoRenCrawlerQueryQuotationData> queryResponse = guoRenCrawlerRequestComponent.queryQuotation(queryQuotationRequest, headers);
             List<GuoRenCrawlerQueryQuotationData.LiabDTO> queryLiabList = null;
             if ("0000".equals(queryResponse.getCode()) && queryResponse.getData() != null) {

+ 7 - 3
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/build/HbCrawlerQuoteResultVoBuild.java

@@ -8,10 +8,12 @@ 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.commons.entity.quote.vo.aggregated.QuoteResultsVo;
+import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.commons.utils.DateTimeUtil;
 import com.jzg.quotation.hengbang.crawler.entity.response.HbCrawlerProposalResponse;
 import org.apache.http.util.TextUtils;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
@@ -28,7 +30,7 @@ public final class HbCrawlerQuoteResultVoBuild {
         throw new IllegalStateException("Utility class");
     }
 
-    public static QuoteResultsVo build(QuoteVo quoteVo, HbCrawlerProposalResponse proposalResponse, String calculationResult) {
+    public static QuoteResultsVo build(QuoteVo quoteVo, HbCrawlerProposalResponse proposalResponse, String calculationResult, String depreciationPrice) {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         quoteResultsVo.setOrdersNo(quoteVo.getOrder().getOrdersNo());
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
@@ -60,7 +62,9 @@ public final class HbCrawlerQuoteResultVoBuild {
 
         scoreVo.setScoreJson(scoreJson);
         quoteResultsVo.setScoreVo(scoreVo);
-
+        if (StringUtils.isNotBlank(depreciationPrice)) {
+            quoteResultsVo.setCarActualValue(new BigDecimal(depreciationPrice));
+        }
 
         //设置保费,车船税,投保单号
         buildParams(proposalResponse, quoteResultsVo);
@@ -165,7 +169,7 @@ public final class HbCrawlerQuoteResultVoBuild {
         }
         //设置非车保费
         quoteResultsVo.getCosts().setNiPremium(proposalResponse.getAccidentTotalPremium());
-        String sumPremium = String.valueOf(Double.parseDouble(biPremium) + Double.parseDouble(ciPremium) + Double.parseDouble(vvTax)+ Double.parseDouble(niPremium));
+        String sumPremium = String.valueOf(Double.parseDouble(biPremium) + Double.parseDouble(ciPremium) + Double.parseDouble(vvTax) + Double.parseDouble(niPremium));
         quoteResultsVo.getCosts().setSumPremium(sumPremium);
 
 

+ 4 - 4
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java

@@ -155,13 +155,13 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
         // 非车信息匹配核心
         matchingAccident(quoteVo, headers, plyappno, calculationRequest);
 
-        return executeCalculationWithRetry(calculationRequest, headers, quoteVo, plyappno);
+        return executeCalculationWithRetry(calculationRequest, headers, quoteVo, plyappno,depreciationPrice);
     }
 
     /**
      * 执行报价计算并处理重试逻辑(脱保、重复投保、转保车验证码)
      */
-    private QuoteResultsVo executeCalculationWithRetry(HbCrawlerCalculationRequest calculationRequest, HttpHeaders headers, QuoteVo quoteVo, String plyappno) {
+    private QuoteResultsVo executeCalculationWithRetry(HbCrawlerCalculationRequest calculationRequest, HttpHeaders headers, QuoteVo quoteVo, String plyappno,String depreciationPrice) {
         JSONObject resJsonObj = callCalculation(calculationRequest, headers);
         if (resJsonObj == null) {
             return buildErrorResult(quoteVo);
@@ -240,7 +240,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
             hbCrawlerOrder.setPlyappno(plyappno);
             hbCrawlerOrderService.save(hbCrawlerOrder);
         }
-        return HbCrawlerQuoteResultVoBuild.build(quoteVo, proposalResponse, errorMsg);
+        return HbCrawlerQuoteResultVoBuild.build(quoteVo, proposalResponse, errorMsg,depreciationPrice);
     }
 
     /**
@@ -263,7 +263,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
      * 构建异常返回结果
      */
     private QuoteResultsVo buildErrorResult(QuoteVo quoteVo) {
-        return HbCrawlerQuoteResultVoBuild.build(quoteVo, null, "恒邦calculation接口返回异常");
+        return HbCrawlerQuoteResultVoBuild.build(quoteVo, null, "恒邦calculation接口返回异常",null);
     }
 
     /**