Sfoglia il codice sorgente

fix 完善大地保险的核保

liub 3 mesi fa
parent
commit
8f76fe019f

+ 2 - 1
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/build/DaDiCrawlerQuoteResultVoBuild.java

@@ -105,7 +105,8 @@ public class DaDiCrawlerQuoteResultVoBuild {
         int sumPayment = daDiQuoteResponse.getInsurancePlan().getTax().getSumPayment();
         int sumPayment = daDiQuoteResponse.getInsurancePlan().getTax().getSumPayment();
         quoteResultsVo.getCosts().setVvTax(String.valueOf(sumPayment));
         quoteResultsVo.getCosts().setVvTax(String.valueOf(sumPayment));
         //设置非车保费
         //设置非车保费
-//        quoteResultsVo.getCosts().setNiPremium(proposalResponse.getAccidentTotalPremium());
+        int niPremium = daDiQuoteResponse.getInsurancePlan().getBusinessDuePremium();
+        quoteResultsVo.getCosts().setNiPremium(String.valueOf(niPremium));
 
 
         //总保费
         //总保费
         int sumPremium = trafficDuePremium + businessDuePremium + sumPayment;
         int sumPremium = trafficDuePremium + businessDuePremium + sumPayment;

+ 2 - 0
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiEleProposalQRCoreDataRequest.java

@@ -13,6 +13,8 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @NoArgsConstructor
 public class DaDiEleProposalQRCoreDataRequest extends DaDiOrderInfoRequest {
 public class DaDiEleProposalQRCoreDataRequest extends DaDiOrderInfoRequest {
 
 
+    private String flag = "";
+
     public DaDiEleProposalQRCoreDataRequest(String orderId, String comCode, String userCode) {
     public DaDiEleProposalQRCoreDataRequest(String orderId, String comCode, String userCode) {
         this.orderId = orderId;
         this.orderId = orderId;
         this.comCode = comCode;
         this.comCode = comCode;

+ 7 - 1
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiEleProposalQRCoreDataResponse.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.dadi.crawler.entity.response;
 package com.jzg.quotation.dadi.crawler.entity.response;
 
 
+import com.google.gson.annotations.SerializedName;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
@@ -14,5 +15,10 @@ import lombok.NoArgsConstructor;
 public class DaDiEleProposalQRCoreDataResponse extends DaDiBaseResponse {
 public class DaDiEleProposalQRCoreDataResponse extends DaDiBaseResponse {
 
 
 
 
-
+    @SerializedName("url")
+    private String url;
+    @SerializedName("paymentNo")
+    private String paymentNo;
+    @SerializedName("checkNo")
+    private String checkNo;
 }
 }

+ 12 - 2
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/service/impl/DaDiCrawlerRequestImpl.java

@@ -151,7 +151,10 @@ public class DaDiCrawlerRequestImpl implements DaDiCrawlerRequest {
 
 
             if (underwriting.getUwType().equals("3")) {
             if (underwriting.getUwType().equals("3")) {
                 DaDiPayNoDataResponse payNoDataResponse = daDiCrawlerRequestComponent.getPayNo(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
                 DaDiPayNoDataResponse payNoDataResponse = daDiCrawlerRequestComponent.getPayNo(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
-                DaDiEleProposalQRCoreDataResponse eleProposalQRCoreData = daDiCrawlerRequestComponent.getEleProposalQRCoreData(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
+                PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
+                paymentLinkVo.setOrder(underwritingVo.getOrder());
+                underwritingResultsVo.setPaymentLink(getPaymentLink(paymentLinkVo).getPaymentLink());
+                underwritingResultsVo.setCompanyOrderNo(payNoDataResponse.getPayApplyNo());
                 underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
                 underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
             } else {
             } else {
                 underwritingResultsVo.setUnderwritingResult(msg + DaDiVehicleUtils.UW_TYPE_MAP.get(underwriting.getUwType()));
                 underwritingResultsVo.setUnderwritingResult(msg + DaDiVehicleUtils.UW_TYPE_MAP.get(underwriting.getUwType()));
@@ -172,7 +175,14 @@ public class DaDiCrawlerRequestImpl implements DaDiCrawlerRequest {
 
 
     @Override
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws Exception {
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws Exception {
-        return null;
+        AttributionInformationVo attributionInformationVo = paymentLinkVo.getOrder().getAttributionInformationVo();
+        HttpHeaders headers = daDiCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        DaDiCrawlerOrder daDiCrawlerOrder = daDiCrawlerOrderService.findByOrdersNo(paymentLinkVo.getOrder().getOrdersNo());
+        DaDiEleProposalQRCoreDataResponse eleProposalQRCoreData = daDiCrawlerRequestComponent.getEleProposalQRCoreData(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
+        PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
+        paymentLinkResultsVo.setPayLinkStatus(true);
+        paymentLinkResultsVo.setPaymentLink(eleProposalQRCoreData.getUrl());
+        return paymentLinkResultsVo;
     }
     }
 
 
     @Override
     @Override

+ 51 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerProposalNoSaveRequest.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenBcDTO;
 import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenBcDTO;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerCalculationPremiumData;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerCalculationPremiumData;
+import org.springframework.util.StringUtils;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
@@ -43,6 +44,56 @@ public class GuoRenCrawlerProposalNoSaveRequest implements Serializable {
         }
         }
         this.bi = biDto;
         this.bi = biDto;
         this.ci = guoRenCrawlerCalculationPremiumData.getCi();
         this.ci = guoRenCrawlerCalculationPremiumData.getCi();
+        // 将试算响应中的报价ID回填到bc中
+        fillProposalNoFromResponse(guoRenCrawlerCalculationPremiumData);
+    }
+
+    /**
+     * 从试算响应中提取报价ID,回填到保存请求的bc字段中
+     * 解决保司合规规则"报价ID缺失"问题
+     */
+    private void fillProposalNoFromResponse(GuoRenCrawlerCalculationPremiumData response) {
+        if (response == null) {
+            return;
+        }
+        // 1. 从响应的BC中回填proposalNo到请求的BC
+        GuoRenCrawlerCalculationPremiumData.BcDTO responseBc = response.getBc();
+        if (responseBc != null) {
+            // 回填BC.prpTmain.proposalNo
+            if (responseBc.getPrpTmain() != null && StringUtils.hasText(responseBc.getPrpTmain().getProposalNo())) {
+                String bcProposalNo = responseBc.getPrpTmain().getProposalNo();
+                String bcDemandNo = responseBc.getPrpTmain().getDemandNo();
+                if (this.bc.getPrpTmain() != null) {
+                    this.bc.getPrpTmain().setProposalNo(bcProposalNo);
+                    this.bc.getPrpTmain().setDemandNo(bcDemandNo);
+                }
+                if (this.bc.getPrpTitemCar() != null) {
+                    this.bc.getPrpTitemCar().setProposalNo(bcProposalNo);
+                }
+            }
+        }
+        // 2. 从响应的CI中回填proposalNo到ciInsureDemand
+        GuoRenCrawlerCalculationPremiumData.CiDTO responseCi = response.getCi();
+        if (responseCi != null && responseCi.getPrpTmain() != null
+                && StringUtils.hasText(responseCi.getPrpTmain().getProposalNo())) {
+            String ciProposalNo = responseCi.getPrpTmain().getProposalNo();
+            String demandNo = responseCi.getPrpTmain().getDemandNo();
+            if (this.ci != null && this.ci.getCiInsureDemand() != null) {
+                this.ci.getCiInsureDemand().setProposalNo(ciProposalNo);
+                this.ci.getCiInsureDemand().setDemandNo(demandNo);
+            }
+        }
+        // 3. 从响应的BI中回填proposalNo到ciInsureDemand
+        GuoRenCrawlerCalculationPremiumData.BiDTO responseBi = response.getBi();
+        if (responseBi != null && responseBi.getPrpTmain() != null
+                && StringUtils.hasText(responseBi.getPrpTmain().getProposalNo())) {
+            String biProposalNo = responseBi.getPrpTmain().getProposalNo();
+            String biDemandNo = responseBi.getPrpTmain().getDemandNo();
+            if (this.bi != null && this.bi.getCiInsureDemand() != null) {
+                this.bi.getCiInsureDemand().setProposalNo(biProposalNo);
+                this.bi.getCiInsureDemand().setDemandNo(biDemandNo);
+            }
+        }
     }
     }
 
 
 }
 }

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

@@ -210,11 +210,23 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
         ReinsuranceCaptchaVo reinsuranceCaptchaVo1 = exteriorUtilsRequest.reinsuranceCaptchaIdentify(reinsuranceCaptchaVo);
         ReinsuranceCaptchaVo reinsuranceCaptchaVo1 = exteriorUtilsRequest.reinsuranceCaptchaIdentify(reinsuranceCaptchaVo);
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setDemandNo(demandNoCi);
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setDemandNo(demandNoCi);
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getCiCaptcha());
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getCiCaptcha());
+        // 回填第一次试算返回的proposalNo,避免第二次calculationPremium后丢失报价ID
+        crawlerCalculationPremiumRequest.getCi().getPrpTmain().setProposalNo(
+                calculationPremium.getCi().getPrpTmain().getProposalNo());
         crawlerCalculationPremiumRequest.getCi().setCiInsureDemand(calculationPremium.getCi().getCiInsureDemand());
         crawlerCalculationPremiumRequest.getCi().setCiInsureDemand(calculationPremium.getCi().getCiInsureDemand());
         crawlerCalculationPremiumRequest.getCi().setPrptengageList(calculationPremium.getCi().getPrptengageList());
         crawlerCalculationPremiumRequest.getCi().setPrptengageList(calculationPremium.getCi().getPrptengageList());
+        // BC也需要回填proposalNo
+        if (calculationPremium.getBc() != null && calculationPremium.getBc().getPrpTmain() != null
+                && org.springframework.util.StringUtils.hasText(calculationPremium.getBc().getPrpTmain().getProposalNo())) {
+            crawlerCalculationPremiumRequest.getBc().getPrpTmain().setProposalNo(
+                    calculationPremium.getBc().getPrpTmain().getProposalNo());
+        }
         if (crawlerCalculationPremiumRequest.getBi().getPrpTmain() != null) {
         if (crawlerCalculationPremiumRequest.getBi().getPrpTmain() != null) {
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setDemandNo(demandNoBi);
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setDemandNo(demandNoBi);
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getBiCaptcha());
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getBiCaptcha());
+            // 回填BI的proposalNo
+            crawlerCalculationPremiumRequest.getBi().getPrpTmain().setProposalNo(
+                    calculationPremium.getBi().getPrpTmain().getProposalNo());
             crawlerCalculationPremiumRequest.getBi().setCiInsureDemand(calculationPremium.getBi().getCiInsureDemand());
             crawlerCalculationPremiumRequest.getBi().setCiInsureDemand(calculationPremium.getBi().getCiInsureDemand());
             crawlerCalculationPremiumRequest.getBi().setPrptengageList(calculationPremium.getBi().getPrptengageList());
             crawlerCalculationPremiumRequest.getBi().setPrptengageList(calculationPremium.getBi().getPrptengageList());
         }
         }