Ver Fonte

fix 国任财险 python 对接 交三

liub há 4 meses atrás
pai
commit
eb5ef01ac4
26 ficheiros alterados com 3880 adições e 1287 exclusões
  1. 17 0
      commons/src/main/java/com/jzg/commons/entity/quote/vo/KindInfoVo.java
  2. 8 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/build/GuoRenCrawlerQuoteResultsVoBuild.java
  3. 11 25
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/component/GuoRenCrawlerRequestComponent.java
  4. 203 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/CiCarShipTaxQGDemandSchemaDTO.java
  5. 1 1
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/CiInsureDemandDTO.java
  6. 101 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/CiInsureDemandPayDTO.java
  7. 5 7
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenBcDTO.java
  8. 393 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenBiDTO.java
  9. 19 284
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenCiDTO.java
  10. 1 1
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenOcrOrderDTO.java
  11. 1 1
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenPrpTinsuredDTO.java
  12. 5 4
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenPrpTitemCarDTO.java
  13. 344 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenPrpTmainDTO.java
  14. 241 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenPrpTmainRateDTO.java
  15. 24 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/PrpTChannelDTO.java
  16. 1 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/PrpTMainDTO.java
  17. 71 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/QueryExpensePowerOutputVoDTO.java
  18. 20 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/TrafficInsuranceDTO.java
  19. 19 952
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerCalculationPremiumRequest.java
  20. 1 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerProposalNoSaveRequest.java
  21. 13 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerCalculationPremiumData.java
  22. 1 3
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java
  23. 1 3
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerRequestImpl.java
  24. 2352 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/utils/JsonCompareUtil.java
  25. 0 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java
  26. 27 4
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

+ 17 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/KindInfoVo.java

@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @description: 商业险 险种信息
@@ -92,9 +93,25 @@ public class KindInfoVo implements Serializable {
     @Schema(description = "服务次数")
     private String serviceTimes;
 
+    private List<OptionsDTO> options;
+
     public KindInfoVo(String number, String number1, String number2, String number3, String number4, String number5, String number6, String number7, String number8, String number9,String number10) {
     }
 
     public KindInfoVo(String number, String number1, String number2, String number3, String number4, String number5, String number6, String number7, String number8, String number9) {
     }
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class OptionsDTO{
+
+        private String id;
+
+        private String label;
+
+        private String value;
+
+    }
+
 }

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

@@ -4,10 +4,14 @@ import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.constants.quote.enums.quote.KindCode;
 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.quotation.guoren.api.constant.enums.GuoRenRiskCode;
+import com.jzg.quotation.guoren.api.entity.Response.PremiumResponse;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerBaseResponse;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerCalculationPremiumData;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerProposalNoSaveData;
+import me.chanjar.weixin.mp.bean.card.BaseInfo;
 
 import java.util.List;
 import java.util.Map;
@@ -45,6 +49,10 @@ public final class GuoRenCrawlerQuoteResultsVoBuild {
         quoteResultsVo.getCosts().setBiPremium(biPremium); // 注意这里CI和BI保费相同
         quoteResultsVo.getCosts().setVvTax(vvTax);
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
+
+        quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
+        quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
+
         if (calculationPremium.getBi().getPrptitemkindList() != null) {
             List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), calculationPremium.getBi().getPrptitemkindList());
             quoteResultsVo.setKindInfoVo(kindInfoVo);

+ 11 - 25
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/component/GuoRenCrawlerRequestComponent.java

@@ -1,14 +1,11 @@
 package com.jzg.quotation.guoren.crawler.component;
 
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.constants.quote.enums.base.InsuranceEnum;
 import com.jzg.commons.entity.po.SysUploadFiles;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
-import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.MinioUtils;
@@ -18,9 +15,8 @@ import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.utils.HttpUtil;
 import com.jzg.quotation.commons.utils.InsuranceLog;
-import com.jzg.quotation.guoren.api.entity.Response.PremiumResponse;
-import com.jzg.quotation.guoren.crawler.build.GuoRenCrawlerQuoteResultsVoBuild;
 import com.jzg.quotation.guoren.crawler.constant.enums.RequestUrl;
+import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenPrpTitemCarDTO;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
 import com.jzg.quotation.guoren.crawler.entity.request.*;
 import com.jzg.quotation.guoren.crawler.entity.response.*;
@@ -32,13 +28,10 @@ import org.apache.commons.httpclient.methods.multipart.FilePart;
 import org.apache.commons.httpclient.methods.multipart.Part;
 import org.apache.commons.httpclient.methods.multipart.StringPart;
 import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.core.io.ByteArrayResource;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -46,8 +39,6 @@ import java.io.InputStream;
 import java.util.List;
 import java.util.Optional;
 
-import static org.reflections.Reflections.log;
-
 
 /**
  * @author wks
@@ -84,8 +75,8 @@ public class GuoRenCrawlerRequestComponent {
 
         String bodyJson = JSON.toJSONString(body);
         String responseJson = JSON.toJSONString(response);
-        InsuranceLog.infoLog(InsuranceEnum.XDCX.getPinyin(), "\n\t---------> URl: {} \n\t---------> 请求参数:{}", url, bodyJson);
-        InsuranceLog.infoLog(InsuranceEnum.XDCX.getPinyin(), "\n\t---------> 响应参数:{}", responseJson);
+        InsuranceLog.infoLog(InsuranceEnum.XDCX.getPinyin(), "\t---------> URl: {} \t---------> 请求参数:{}", url, bodyJson);
+        InsuranceLog.infoLog(InsuranceEnum.XDCX.getPinyin(), "\t---------> 响应参数:{}", responseJson);
         return response;
     }
 //        if (response instanceof GuoRenCrawlerBaseResponse) {
@@ -274,8 +265,12 @@ public class GuoRenCrawlerRequestComponent {
      * @return 保费计算响应
      */
     public GuoRenCrawlerBaseResponse<GuoRenCrawlerCalculationPremiumData> calculationPremium(GuoRenCrawlerCalculationPremiumRequest crawlerCalculationPremiumRequest, HttpHeaders httpHeaders) {
-        return request(RequestUrl.CALCULATION_PREMIUM, crawlerCalculationPremiumRequest, new ParameterizedTypeReference<>() {
+        GuoRenCrawlerBaseResponse<GuoRenCrawlerCalculationPremiumData>  request = request(RequestUrl.CALCULATION_PREMIUM, crawlerCalculationPremiumRequest, new ParameterizedTypeReference<>() {
         }, httpHeaders);
+        if (request.getResultCode() == 1 && !request.getResultMsg().contains("重复投保")) {
+            throw new SystemException(request.getResultMsg());
+        }
+        return request;
     }
 
     /**
@@ -291,7 +286,9 @@ public class GuoRenCrawlerRequestComponent {
         GuoRenCrawlerProposalNoSaveRequest guoRenCrawlerProposalNoSaveRequest = new GuoRenCrawlerProposalNoSaveRequest(calculationPremium, calculationPremiumRequest);
         GuoRenCrawlerBaseResponse<GuoRenCrawlerProposalNoSaveData> request = request(RequestUrl.PROPOSAL_NO_SAVE, guoRenCrawlerProposalNoSaveRequest, new ParameterizedTypeReference<>() {
         }, httpHeaders);
-
+        if (request.getResultCode() != 0) {
+            throw new SystemException(request.getResultMsg());
+        }
         return request.getData();
     }
 
@@ -414,17 +411,6 @@ public class GuoRenCrawlerRequestComponent {
         GuoRenCrawlerCheckNoticeRequest checkNotice = new GuoRenCrawlerCheckNoticeRequest(proposalNo);
         GuoRenCrawlerBaseResponse<GuoRenCrawlerCheckNoticeData> request = request(RequestUrl.CHECK_NOTICE, checkNotice, new ParameterizedTypeReference<>() {
         }, httpHeaders);
-//        String url = guoRenCrawlerProperties.getBaseUrl() + RequestUrl.CHECK_NOTICE.getUri();
-//        String bodyStr = JSON.toJSONString(checkNotice);
-//        InsuranceLog.infoLog(InsuranceEnum.XDCX.getName(), "\n\t---------> URl: {} \n\t---------> 请求参数:{}", url, bodyStr);
-//
-//        HttpRequest request = HttpRequest.post(url)
-//                .header("Content-Type", "application/json")
-//                .body(bodyStr);
-//        HttpResponse response = request.execute();
-//        String respStr = response.body();
-//        InsuranceLog.infoLog(InsuranceEnum.XDCX.getName(), "\n\t---------> 响应参数:{}", respStr);
-//        GuoRenCrawlerBaseResponse<GuoRenCrawlerCheckNoticeData> premiumResponse = JSON.parseObject(respStr, GuoRenCrawlerBaseResponse.class);
         return request.getData();
     }
 

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

@@ -0,0 +1,203 @@
+package com.jzg.quotation.guoren.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class CiCarShipTaxQGDemandSchemaDTO {
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+
+    @JsonProperty("demandNo")
+    private String demandNo;
+
+    @JsonProperty("policyNo")
+    private String policyNo;
+
+    @JsonProperty("taxType")
+    private String taxType;
+
+    @JsonProperty("serialNo")
+    private String serialNo;
+
+    @JsonProperty("taxTermTypeCode")
+    private String taxTermTypeCode;
+
+    @JsonProperty("taxConditionCode")
+    private String taxConditionCode;
+
+    @JsonProperty("taxRegistryNumber")
+    private String taxRegistryNumber;
+
+    @JsonProperty("taxPayerName")
+    private String taxPayerName;
+
+    @JsonProperty("taxPayerIdentificationCode")
+    private String taxPayerIdentificationCode;
+
+    @JsonProperty("taxLocationCode")
+    private String taxLocationCode;
+
+    @JsonProperty("taxStartDate")
+    private String taxStartDate;
+
+    @JsonProperty("taxEndDate")
+    private String taxEndDate;
+
+    @JsonProperty("declareDate")
+    private String declareDate;
+
+    @JsonProperty("taxDepartmentCode")
+    private String taxDepartmentCode;
+
+    @JsonProperty("taxDepartment")
+    private String taxDepartment;
+
+    @JsonProperty("taxDocumentNumber")
+    private String taxDocumentNumber;
+
+    @JsonProperty("annualTaxAmount")
+    private String annualTaxAmount;
+
+    @JsonProperty("appliedArea")
+    private String appliedArea;
+
+    @JsonProperty("taxRateIdentifier")
+    private String taxRateIdentifier;
+
+    @JsonProperty("taxItemDetailCode")
+    private String taxItemDetailCode;
+
+    @JsonProperty("taxUnitTypeCode")
+    private String taxUnitTypeCode;
+
+    @JsonProperty("unitRate")
+    private String unitRate;
+
+    @JsonProperty("taxRateStartDate")
+    private String taxRateStartDate;
+
+    @JsonProperty("taxRateEndDate")
+    private String taxRateEndDate;
+
+    @JsonProperty("deductionDueCode")
+    private String deductionDueCode;
+
+    @JsonProperty("deductionDueType")
+    private String deductionDueType;
+
+    @JsonProperty("deductionDueProportion")
+    private String deductionDueProportion;
+
+    @JsonProperty("deduction")
+    private String deduction;
+
+    @JsonProperty("deductionDocumentNumber")
+    private String deductionDocumentNumber;
+
+    @JsonProperty("deductionDepartmentCode")
+    private String deductionDepartmentCode;
+
+    @JsonProperty("deductionDepartment")
+    private String deductionDepartment;
+
+    @JsonProperty("taxDue")
+    private String taxDue;
+
+    @JsonProperty("exceedDate")
+    private String exceedDate;
+
+    @JsonProperty("exceedDaysCount")
+    private String exceedDaysCount;
+
+    @JsonProperty("overDue")
+    private String overDue;
+
+    @JsonProperty("totalAmount")
+    private String totalAmount;
+
+    @JsonProperty("annualTaxDue")
+    private String annualTaxDue;
+
+    @JsonProperty("sumTaxDefault")
+    private String sumTaxDefault;
+
+    @JsonProperty("sumOverdue")
+    private String sumOverdue;
+
+    @JsonProperty("sumTax")
+    private String sumTax;
+
+    @JsonProperty("taxDescription")
+    private String taxDescription;
+
+    @JsonProperty("taxAmountFlag")
+    private String taxAmountFlag;
+
+    @JsonProperty("calcTaxFlag")
+    private String calcTaxFlag;
+
+    @JsonProperty("taxPrintNo")
+    private String taxPrintNo;
+
+    @JsonProperty("payDate")
+    private String payDate;
+
+    @JsonProperty("taxAmountFlagLT")
+    private String taxAmountFlagLT;
+
+    @JsonProperty("annualTaxDueLT")
+    private String annualTaxDueLT;
+
+    @JsonProperty("sumTaxDefaultLT")
+    private String sumTaxDefaultLT;
+
+    @JsonProperty("sumOverdueLT")
+    private String sumOverdueLT;
+
+    @JsonProperty("sumTaxLT")
+    private String sumTaxLT;
+
+    @JsonProperty("declareStatusLT")
+    private String declareStatusLT;
+
+    @JsonProperty("declareStatusIA")
+    private String declareStatusIA;
+
+    @JsonProperty("taxPaidAreaCode")
+    private String taxPaidAreaCode;
+
+    @JsonProperty("refundTaxDue")
+    private String refundTaxDue;
+
+    public CiCarShipTaxQGDemandSchemaDTO(String demandNo) {
+        this.demandNo = demandNo;
+        this.taxType = "0";
+        this.serialNo = "1";
+        this.taxTermTypeCode = "08";
+        this.taxConditionCode = "1";
+        this.taxRegistryNumber = "91140100MA0KJ5L06P";
+        this.taxPayerName = "韩云福";
+        this.taxPayerIdentificationCode = "140121196207080534";
+        this.taxLocationCode = "140000";
+        this.taxStartDate = "2026-01-01";
+        this.taxEndDate = "2026-12-31";
+        this.annualTaxAmount = "360.0";
+        this.taxUnitTypeCode = "1";
+        this.unitRate = "360.0";
+        this.deductionDueProportion = "0.0";
+        this.taxDue = "360.0";
+        this.exceedDaysCount = "0";
+        this.overDue = "0.0";
+        this.totalAmount = "360.0";
+        this.annualTaxDue = "360.0";
+        this.sumTaxDefault = "0.0";
+        this.sumOverdue = "0.0";
+        this.sumTax = "360.0";
+        this.taxAmountFlag = "1";
+        this.calcTaxFlag = "1";
+        this.declareStatusIA = "0";
+    }
+}

+ 1 - 1
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/CiInsureDemandDTO.java

@@ -421,5 +421,5 @@ public class CiInsureDemandDTO  implements Serializable {
         this.demandNo = demandNo;
         this.checkCode = checkCode;
     }
-    
+
 }

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

@@ -0,0 +1,101 @@
+package com.jzg.quotation.guoren.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class CiInsureDemandPayDTO {
+
+    @JsonProperty("payCompany")
+    private String payCompany;
+
+    @JsonProperty("compensateNo")
+    private String compensateNo;
+
+    @JsonProperty("lossTime")
+    private String lossTime;
+
+    @JsonProperty("lossFee")
+    private String lossFee;
+
+    @JsonProperty("endCaseTime")
+    private String endCaseTime;
+
+    @JsonProperty("totalAmount")
+    private String totalAmount;
+
+    @JsonProperty("claimNotificationNo")
+    private String claimNotificationNo;
+
+    @JsonProperty("claimRegistrationNo")
+    private String claimRegistrationNo;
+
+    @JsonProperty("caseID")
+    private String caseID;
+
+    @JsonProperty("effectiveDate")
+    private String effectiveDate;
+
+    @JsonProperty("expireDate")
+    private String expireDate;
+
+    @JsonProperty("flag")
+    private String flag;
+
+    @JsonProperty("personPayType")
+    private String personPayType;
+
+    @JsonProperty("accidentDeathFlag")
+    private String accidentDeathFlag;
+
+    @JsonProperty("optionType")
+    private String optionType;
+
+    @JsonProperty("kindCode")
+    private String kindCode;
+
+    @JsonProperty("policyNo")
+    private String policyNo;
+
+    @JsonProperty("payType")
+    private String payType;
+
+    @JsonProperty("demandNo")
+    private String demandNo;
+
+    @JsonProperty("serialNo")
+    private String serialNo;
+
+    @JsonProperty("insurerArea")
+    private String insurerArea;
+
+    @JsonProperty("remark")
+    private String remark;
+
+    public CiInsureDemandPayDTO(String demandNo) {
+        this.payCompany = "AICS";
+        this.compensateNo = "50AICS140026032213046613845808";
+        this.lossTime = "2026-03-09 16:53";
+        this.lossFee = "2000.0";
+        this.endCaseTime = "2026-03-10 08:51";
+        this.totalAmount = "2000.0";
+        this.claimNotificationNo = "";
+        this.claimRegistrationNo = "880326202614002211";
+        this.caseID = "";
+        this.effectiveDate = "";
+        this.expireDate = "";
+        this.flag = "";
+        this.personPayType = "";
+        this.accidentDeathFlag = "0";
+        this.optionType = "";
+        this.kindCode = "";
+        this.policyNo = "114B7032620250026994";
+        this.payType = "";
+        this.demandNo = demandNo;
+        this.serialNo = "1";
+        this.insurerArea = "";
+        this.remark = "";
+    }
+}

+ 5 - 7
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenBcDTO.java → tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenBcDTO.java

@@ -1,11 +1,9 @@
-package com.jzg.quotation.guoren.crawler.entity.request;
+package com.jzg.quotation.guoren.crawler.entity.dto;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
-import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
-import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerGetCarPriceData;
+import com.jzg.quotation.guoren.crawler.entity.request.GuoRenCrawlerCalculationPremiumRequest;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerWriteBackAddressData;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -65,13 +63,13 @@ public class GuoRenBcDTO {
     private String feeandDiscountFlag;
 
     @JsonProperty("prpTChannel")
-    private GuoRenCrawlerCalculationPremiumRequest.PrpTChannelDTO prpTChannel;
+    private PrpTChannelDTO prpTChannel;
 
 
     public GuoRenBcDTO(QuoteVo quoteVo, PrpTMainDTO prpTmainDTO, GuoRenPrpTitemCarDTO prpTitemCar, Integer insuredTypeTmp, GuoRenCrawlerWriteBackAddressData policyHolderAddr, GuoRenCrawlerWriteBackAddressData insuredPersonAddr) {
         CustomerInfoVo policyHolderInfo = quoteVo.getPolicyHolderInfo();
         CustomerInfoVo insuredPersonInfo = quoteVo.getInsuredPersonInfo();
-        this.baseInfoInit = 2;
+        this.baseInfoInit = 1;
         this.riskCode = "0500";
         // 添加非车险信息
         if (quoteVo.getAccidentalDrivings().size() > 0) {
@@ -97,7 +95,7 @@ public class GuoRenBcDTO {
         this.derailleurType = prpTitemCar.getDerailleurType();
         this.loginComCode = prpTmainDTO.getLoginComCode();
         this.feeandDiscountFlag = "0";
-        this.prpTChannel = new GuoRenCrawlerCalculationPremiumRequest.PrpTChannelDTO();
+        this.prpTChannel = new PrpTChannelDTO("","","");
     }
 
     @Data

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

@@ -0,0 +1,393 @@
+package com.jzg.quotation.guoren.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+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 lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class GuoRenBiDTO {
+
+    @JsonProperty("prpDclauseRule")
+    private List<?> prpDclauseRule;
+
+    @JsonProperty("inintFlag")
+    private Integer inintFlag;
+
+    @JsonProperty("prpTmain")
+    private GuoRenPrpTmainDTO prpTmain;
+
+    @JsonProperty("prpTmainRate")
+    private GuoRenPrpTmainRateDTO prpTmainRate;
+
+    @JsonProperty("prpTitemCar")
+    private GuoRenPrpTitemCarDTO prpTitemCar;
+
+    @JsonProperty("ciInsureDemand")
+    private CiInsureDemandDTO ciInsureDemand;
+
+    @JsonProperty("ciInsureDemandPay")
+    private List<?> ciInsureDemandPay;
+
+    @JsonProperty("ciInsureDemandWarningClaim")
+    private List<?> ciInsureDemandWarningClaim;
+
+    @JsonProperty("prpTenGearAllocationFeeList")
+    private List<PrpTenGearAllocationFeeListDTO> prpTenGearAllocationFeeList;
+
+    @JsonProperty("prpTchargingPostData")
+    private List<?> prpTchargingPostData;
+
+    @JsonProperty("prptitemkindList")
+    private List<GuoRenCrawlerCalculationPremiumRequest.PrptitemkindListDTO> prptitemkindList;
+
+    @JsonProperty("prptengageList")
+    private List<PrptengageListDTO> prptengageList;
+
+    @JsonProperty("prpDclause")
+    private List<?> prpDclause;
+
+    @JsonProperty("prpTcarDeviceCount")
+    private PrpTcarDeviceCountDTO prpTcarDeviceCount;
+
+    @JsonProperty("prpTrenewal")
+    private List<?> prpTrenewal;
+
+    @JsonProperty("queryExpensePowerOutputVo")
+    private QueryExpensePowerOutputVoDTO queryExpensePowerOutputVo;
+
+    @JsonProperty("ciInsureValid")
+    private CiInsureValidDTO ciInsureValid;
+
+    @JsonProperty("prpDagentVo")
+    private PrpDagentVoDTO prpDagentVo;
+
+    @JsonProperty("commercialInsurances")
+    private List<?> commercialInsurances;
+
+    @JsonProperty("blPrpTRealNameVerification")
+    private List<?> blPrpTRealNameVerification;
+
+    @JsonProperty("prpTLastCarShipTax")
+    private PrpTLastCarShipTaxDTO prpTLastCarShipTax;
+
+    @JsonProperty("duplicateInsuranceItemsSchema")
+    private DuplicateInsuranceItemsSchemaDTO duplicateInsuranceItemsSchema;
+
+    @JsonProperty("termsSystem")
+    private String termsSystem;
+
+    @JsonProperty("inputRisk")
+    private Integer inputRisk = 0;
+
+    @JsonProperty("inputRisk0518")
+    private Integer inputRisk0518;
+
+    @JsonProperty("inputRisk0521")
+    private Integer inputRisk0521;
+
+    @JsonProperty("inputRisk0530")
+    private Integer inputRisk0530;
+
+    @JsonProperty("shortRate")
+    private Integer shortRate;
+
+    @JsonProperty("scoreCodeFlag")
+    private Boolean scoreCodeFlag;
+
+    @JsonProperty("image")
+    private ImageDTO image;
+
+    @JsonProperty("calculateFlagBI")
+    private String calculateFlagBI;
+
+    @JsonProperty("prpTChannel")
+    private PrpTChannelDTO prpTChannel;
+
+
+    public GuoRenBiDTO(QuoteVo quoteVo, String today, GuoRenPrpTitemCarDTO prpTitemCar) {
+        RiskInfoVo biRiskInfoVo = quoteVo.getBiRiskInfoVo();
+        List<KindInfoVo> kindInfoVo = quoteVo.getKindInfoVo();
+        this.prpDclauseRule = new ArrayList<>();
+        this.inintFlag = 1;
+        if (biRiskInfoVo != null) {
+            this.inputRisk = 1;
+            this.prpTmain = new GuoRenPrpTmainDTO(biRiskInfoVo, today);
+            this.prpTmainRate = new GuoRenPrpTmainRateDTO();
+        }
+        this.prpTitemCar = prpTitemCar;
+        this.ciInsureDemand = new CiInsureDemandDTO("", "");
+        this.ciInsureDemandPay = new ArrayList<>();
+        this.ciInsureDemandWarningClaim = new ArrayList<>();
+        this.prpTenGearAllocationFeeList = new ArrayList<>();
+        this.prpTchargingPostData = new ArrayList<>();
+        this.prptitemkindList = GuoRenCrawlerCalculationPremiumRequest.PrptitemkindListDTO.getBiPrptitemkindList(kindInfoVo, prpTmain);
+        this.prptengageList = new ArrayList<>();
+        this.prpDclause = new ArrayList<>();
+        this.prpTcarDeviceCount = new PrpTcarDeviceCountDTO();
+        this.prpTrenewal = new ArrayList<>();
+        this.queryExpensePowerOutputVo = new QueryExpensePowerOutputVoDTO();
+        this.ciInsureValid = new CiInsureValidDTO();
+        this.prpDagentVo = new PrpDagentVoDTO();
+        this.commercialInsurances = new ArrayList<>();
+        this.blPrpTRealNameVerification = new ArrayList<>();
+        this.prpTLastCarShipTax = new PrpTLastCarShipTaxDTO();
+        this.duplicateInsuranceItemsSchema = new DuplicateInsuranceItemsSchemaDTO();
+        this.prpTChannel = new PrpTChannelDTO("","","");
+
+        this.inputRisk0518 = 1;
+        this.inputRisk0521 = 0;
+        this.inputRisk0530 = 0;
+        this.shortRate = 100;
+        this.calculateFlagBI = "1";
+        this.termsSystem = "04";
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpTcarDeviceCountDTO {
+
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CiInsureValidDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpDagentVoDTO {
+        @JsonProperty("agentCode")
+        private String agentCode;
+
+        @JsonProperty("agentName")
+        private String agentName;
+
+        @JsonProperty("addressName")
+        private String addressName;
+
+        @JsonProperty("postCode")
+        private String postCode;
+
+        @JsonProperty("agentType")
+        private String agentType;
+
+        @JsonProperty("permitNo")
+        private String permitNo;
+
+        @JsonProperty("linkerName")
+        private String linkerName;
+
+        @JsonProperty("phoneNumber")
+        private String phoneNumber;
+
+        @JsonProperty("faxNumber")
+        private String faxNumber;
+
+        @JsonProperty("comCode")
+        private String comCode;
+
+        @JsonProperty("handlerCode")
+        private String handlerCode;
+
+        @JsonProperty("upperAgentCode")
+        private String upperAgentCode;
+
+        @JsonProperty("newAgentCode")
+        private String newAgentCode;
+
+        @JsonProperty("validStatus")
+        private String validStatus;
+
+        @JsonProperty("articleCode")
+        private String articleCode;
+
+        @JsonProperty("flag")
+        private String flag;
+
+        @JsonProperty("mobile")
+        private String mobile;
+
+        @JsonProperty("agentTypeSub")
+        private String agentTypeSub;
+
+        @JsonProperty("taxPayerAccountNo")
+        private String taxPayerAccountNo;
+
+        @JsonProperty("practiceName")
+        private String practiceName;
+
+        @JsonProperty("practiceCertificateCode")
+        private String practiceCertificateCode;
+
+        @JsonProperty("saleChannelCode")
+        private String saleChannelCode;
+
+        @JsonProperty("orgCode")
+        private String orgCode;
+
+        @JsonProperty("taxPayerIdentity")
+        private String taxPayerIdentity;
+
+        @JsonProperty("invoiceType")
+        private String invoiceType;
+
+        @JsonProperty("taxPayerName")
+        private String taxPayerName;
+
+        @JsonProperty("taxPayerRegiNumber")
+        private String taxPayerRegiNumber;
+
+        @JsonProperty("taxPayerAdress")
+        private String taxPayerAdress;
+
+        @JsonProperty("taxPayerBank")
+        private String taxPayerBank;
+
+        @JsonProperty("defaultRate")
+        private String defaultRate;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpTLastCarShipTaxDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class DuplicateInsuranceItemsSchemaDTO {
+        @JsonProperty("policyNo")
+        private String policyNo;
+
+        @JsonProperty("frameNoBC")
+        private String frameNoBC;
+
+        @JsonProperty("coverageCode")
+        private String coverageCode;
+
+        @JsonProperty("licensePlateColorCode")
+        private String licensePlateColorCode;
+
+        @JsonProperty("effectiveDate")
+        private String effectiveDate;
+
+        @JsonProperty("insurerCompanyType")
+        private String insurerCompanyType;
+
+        @JsonProperty("billDate")
+        private String billDate;
+
+        @JsonProperty("licensePlateType")
+        private String licensePlateType;
+
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+
+        @JsonProperty("licensePlateNo")
+        private String licensePlateNo;
+
+        @JsonProperty("frameNo")
+        private String frameNo;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("inputDate")
+        private String inputDate;
+
+        @JsonProperty("insurerCode")
+        private String insurerCode;
+
+        @JsonProperty("expireDate")
+        private String expireDate;
+
+        @JsonProperty("insurerArea")
+        private String insurerArea;
+
+        @JsonProperty("serialNo")
+        private String serialNo;
+
+        @JsonProperty("engineNo")
+        private String engineNo;
+
+        @JsonProperty("demandNo")
+        private String demandNo;
+
+        @JsonProperty("licensePlateType_name")
+        private String licenseplatetypeName;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class ImageDTO {
+        @JsonProperty("changingThisBreaksApplicationSecurity")
+        private String changingThisBreaksApplicationSecurity;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpTenGearAllocationFeeListDTO {
+        @JsonProperty("billcomeGroup")
+        private String billcomeGroup;
+
+        @JsonProperty("billELR")
+        private Double billELR;
+
+        @JsonProperty("coefficient1BI")
+        private Integer coefficient1BI;
+
+        @JsonProperty("coefficient3BI")
+        private Integer coefficient3BI;
+
+        @JsonProperty("coefficient5BI")
+        private Integer coefficient5BI;
+
+        @JsonProperty("coefficient7BI")
+        private Integer coefficient7BI;
+
+        @JsonProperty("addonRate")
+        private Integer addonRate;
+
+        @JsonProperty("noClaimRate")
+        private Double noClaimRate;
+
+        @JsonProperty("selfAdjustRate")
+        private Double selfAdjustRate;
+
+        @JsonProperty("recommenDiscountScore")
+        private Integer recommenDiscountScore;
+
+        @JsonProperty("sumPremium")
+        private Double sumPremium;
+
+        @JsonProperty("coefficient1CI")
+        private Integer coefficient1CI;
+
+        @JsonProperty("coefficient3CI")
+        private Integer coefficient3CI;
+
+        @JsonProperty("coefficient5CI")
+        private Integer coefficient5CI;
+
+        @JsonProperty("coefficient7CI")
+        private Integer coefficient7CI;
+
+        @JsonProperty("groupNum")
+        private Integer groupNum;
+
+        @JsonProperty("conditionGroupNum")
+        private Integer conditionGroupNum;
+
+        @JsonProperty("isFlag")
+        private String isFlag;
+    }
+
+
+}

+ 19 - 284
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCiDTO.java → tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenCiDTO.java

@@ -1,11 +1,12 @@
-package com.jzg.quotation.guoren.crawler.entity.request;
+package com.jzg.quotation.guoren.crawler.entity.dto;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
+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.dto.CiInsureDemandDTO;
-import com.jzg.quotation.guoren.crawler.entity.dto.PrptengageListDTO;
 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.VehicleTaxCalculator;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -18,7 +19,7 @@ import java.util.Map;
 
 @NoArgsConstructor
 @Data
-public class GuoRenCiDTO  {
+public class GuoRenCiDTO {
     @JsonProperty("prpDclauseRule")
     private List<?> prpDclauseRule;
 
@@ -29,13 +30,13 @@ public class GuoRenCiDTO  {
     private Integer carShipTaxInfoInit;
 
     @JsonProperty("prpTmain")
-    private GuoRenCrawlerCalculationPremiumRequest.PrpTmainDTO prpTmain;
+    private GuoRenPrpTmainDTO prpTmain;
 
     @JsonProperty("prpTitemCar")
-    private PrpTitemCarDTO prpTitemCar;
+    private GuoRenPrpTitemCarDTO prpTitemCar;
 
     @JsonProperty("prpTmainRate")
-    private GuoRenCrawlerCalculationPremiumRequest.PrpTmainRateDTO prpTmainRate;
+    private GuoRenPrpTmainRateDTO prpTmainRate;
 
     @JsonProperty("prptitemkindList")
     private List<GuoRenCrawlerCalculationPremiumRequest.PrptitemkindListDTO> prptitemkindList;
@@ -53,7 +54,7 @@ public class GuoRenCiDTO  {
     private CiInsureDemandDTO ciInsureDemand;
 
     @JsonProperty("ciInsureDemandPay")
-    private List<?> ciInsureDemandPay;
+    private List<CiInsureDemandPayDTO> ciInsureDemandPay;
 
     @JsonProperty("ciInsureDemandLoss")
     private List<?> ciInsureDemandLoss;
@@ -104,7 +105,7 @@ public class GuoRenCiDTO  {
     private Integer inputRisk0507t1;
 
     @JsonProperty("shortRate")
-    private String shortRate;
+    private Integer shortRate;
 
     @JsonProperty("sumPremium")
     private Integer sumPremium;
@@ -113,15 +114,17 @@ public class GuoRenCiDTO  {
     private String calculateFlagCI;
 
     @JsonProperty("prpTChannel")
-    private GuoRenCrawlerCalculationPremiumRequest.PrpTChannelDTO prpTChannel;
+    private PrpTChannelDTO prpTChannel;
 
-    public GuoRenCiDTO(RiskInfoVo ciRiskInfoVo, String today, String clauseTypeSystem, PrpTcarshipTaxDTO prpTcarshipTax) {
+    public GuoRenCiDTO(QuoteVo quoteVo, String today, GuoRenPrpTitemCarDTO prpTitemCar, PrpTcarshipTaxDTO prpTcarshipTax) {
+        RiskInfoVo ciRiskInfoVo = quoteVo.getCiRiskInfoVo();
+        List<KindInfoVo> kindInfoVo = quoteVo.getKindInfoVo();
         this.prpDclauseRule = new ArrayList<>();
         this.showCarShip = true;
         this.carShipTaxInfoInit = 1;
-        this.prpTmain = new GuoRenCrawlerCalculationPremiumRequest.PrpTmainDTO(ciRiskInfoVo, today);
-        this.prpTitemCar = new PrpTitemCarDTO(clauseTypeSystem);
-        this.prpTmainRate = new GuoRenCrawlerCalculationPremiumRequest.PrpTmainRateDTO("");
+        this.prpTmain = new GuoRenPrpTmainDTO(ciRiskInfoVo, today);
+        this.prpTitemCar = prpTitemCar;
+        this.prpTmainRate = new GuoRenPrpTmainRateDTO();
         this.prptitemkindList = GuoRenCrawlerCalculationPremiumRequest.PrptitemkindListDTO.getCiPrptitemkindList(prpTmain);
         this.prptengageList = new ArrayList<>();
         this.prpDclause = new ArrayList<>();
@@ -144,210 +147,16 @@ public class GuoRenCiDTO  {
         this.inputRisk = 1;
         this.inputRisk0507 = 1;
         this.inputRisk0507t1 = 0;
-        this.shortRate = "100";
+        this.shortRate = 100;
         this.calculateFlagCI = "1";
-        this.prpTChannel = new GuoRenCrawlerCalculationPremiumRequest.PrpTChannelDTO();
+        this.prpTChannel = new PrpTChannelDTO("","","");
     }
 
-    @NoArgsConstructor
-    @Data
-    public static class PrpTitemCarDTO {
-        @JsonProperty("lossCondition")
-        private String lossCondition;
-
-        @JsonProperty("lossConditionCode")
-        private String lossConditionCode;
-
-        @JsonProperty("comlossCondition")
-        private String comlossCondition;
-
-        @JsonProperty("basePureRiskPremium")
-        private String basePureRiskPremium;
-
-        @JsonProperty("clauseTypeSystem")
-        private String clauseTypeSystem;
-
-        public PrpTitemCarDTO(String clauseTypeSystem) {
-            this.clauseTypeSystem = clauseTypeSystem;
-        }
-    }
-
-
     @NoArgsConstructor
     @Data
     public static class PrpTitemCarExtDTO {
     }
 
-
-    @NoArgsConstructor
-    @Data
-    public static class CiCarShipTaxQGDemandSchemaDTO {
-        @JsonProperty("proposalNo")
-        private String proposalNo;
-
-        @JsonProperty("demandNo")
-        private String demandNo;
-
-        @JsonProperty("policyNo")
-        private String policyNo;
-
-        @JsonProperty("taxType")
-        private String taxType;
-
-        @JsonProperty("serialNo")
-        private String serialNo;
-
-        @JsonProperty("taxTermTypeCode")
-        private String taxTermTypeCode;
-
-        @JsonProperty("taxConditionCode")
-        private String taxConditionCode;
-
-        @JsonProperty("taxRegistryNumber")
-        private String taxRegistryNumber;
-
-        @JsonProperty("taxPayerName")
-        private String taxPayerName;
-
-        @JsonProperty("taxPayerIdentificationCode")
-        private String taxPayerIdentificationCode;
-
-        @JsonProperty("taxLocationCode")
-        private String taxLocationCode;
-
-        @JsonProperty("taxStartDate")
-        private String taxStartDate;
-
-        @JsonProperty("taxEndDate")
-        private String taxEndDate;
-
-        @JsonProperty("declareDate")
-        private String declareDate;
-
-        @JsonProperty("taxDepartmentCode")
-        private String taxDepartmentCode;
-
-        @JsonProperty("taxDepartment")
-        private String taxDepartment;
-
-        @JsonProperty("taxDocumentNumber")
-        private String taxDocumentNumber;
-
-        @JsonProperty("annualTaxAmount")
-        private String annualTaxAmount;
-
-        @JsonProperty("appliedArea")
-        private String appliedArea;
-
-        @JsonProperty("taxRateIdentifier")
-        private String taxRateIdentifier;
-
-        @JsonProperty("taxItemDetailCode")
-        private String taxItemDetailCode;
-
-        @JsonProperty("taxUnitTypeCode")
-        private String taxUnitTypeCode;
-
-        @JsonProperty("unitRate")
-        private String unitRate;
-
-        @JsonProperty("taxRateStartDate")
-        private String taxRateStartDate;
-
-        @JsonProperty("taxRateEndDate")
-        private String taxRateEndDate;
-
-        @JsonProperty("deductionDueCode")
-        private String deductionDueCode;
-
-        @JsonProperty("deductionDueType")
-        private String deductionDueType;
-
-        @JsonProperty("deductionDueProportion")
-        private String deductionDueProportion;
-
-        @JsonProperty("deduction")
-        private String deduction;
-
-        @JsonProperty("deductionDocumentNumber")
-        private String deductionDocumentNumber;
-
-        @JsonProperty("deductionDepartmentCode")
-        private String deductionDepartmentCode;
-
-        @JsonProperty("deductionDepartment")
-        private String deductionDepartment;
-
-        @JsonProperty("taxDue")
-        private String taxDue;
-
-        @JsonProperty("exceedDate")
-        private String exceedDate;
-
-        @JsonProperty("exceedDaysCount")
-        private String exceedDaysCount;
-
-        @JsonProperty("overDue")
-        private String overDue;
-
-        @JsonProperty("totalAmount")
-        private String totalAmount;
-
-        @JsonProperty("annualTaxDue")
-        private String annualTaxDue;
-
-        @JsonProperty("sumTaxDefault")
-        private String sumTaxDefault;
-
-        @JsonProperty("sumOverdue")
-        private String sumOverdue;
-
-        @JsonProperty("sumTax")
-        private String sumTax;
-
-        @JsonProperty("taxDescription")
-        private String taxDescription;
-
-        @JsonProperty("taxAmountFlag")
-        private String taxAmountFlag;
-
-        @JsonProperty("calcTaxFlag")
-        private String calcTaxFlag;
-
-        @JsonProperty("taxPrintNo")
-        private String taxPrintNo;
-
-        @JsonProperty("payDate")
-        private String payDate;
-
-        @JsonProperty("taxAmountFlagLT")
-        private String taxAmountFlagLT;
-
-        @JsonProperty("annualTaxDueLT")
-        private String annualTaxDueLT;
-
-        @JsonProperty("sumTaxDefaultLT")
-        private String sumTaxDefaultLT;
-
-        @JsonProperty("sumOverdueLT")
-        private String sumOverdueLT;
-
-        @JsonProperty("sumTaxLT")
-        private String sumTaxLT;
-
-        @JsonProperty("declareStatusLT")
-        private String declareStatusLT;
-
-        @JsonProperty("declareStatusIA")
-        private String declareStatusIA;
-
-        @JsonProperty("taxPaidAreaCode")
-        private String taxPaidAreaCode;
-
-        @JsonProperty("refundTaxDue")
-        private String refundTaxDue;
-    }
-
     @NoArgsConstructor
     @Data
     public static class CICarshipTaxDemandSchemaDTO {
@@ -513,85 +322,11 @@ public class GuoRenCiDTO  {
         }
     }
 
-    @NoArgsConstructor
-    @Data
-    public static class QueryExpensePowerOutputVoDTO {
-        @JsonProperty("errorCode")
-        private String errorCode;
-
-        @JsonProperty("errorMessage")
-        private String errorMessage;
-
-        @JsonProperty("configPowerManageFeeRateCI")
-        private String configPowerManageFeeRateCI;
-
-        @JsonProperty("configPowerMiddleCostCI")
-        private String configPowerMiddleCostCI;
-
-        @JsonProperty("configPowerManageFeeRateBI")
-        private String configPowerManageFeeRateBI;
-
-        @JsonProperty("configPowerMiddleCostBI")
-        private String configPowerMiddleCostBI;
-
-        @JsonProperty("personPowerManageFeeRateBC")
-        private String personPowerManageFeeRateBC;
-
-        @JsonProperty("personPowerMiddleCostBC")
-        private String personPowerMiddleCostBC;
-
-        @JsonProperty("personPowerDisRateNoShow")
-        private String personPowerDisRateNoShow;
-
-        @JsonProperty("personPowerDisRateNoModify")
-        private String personPowerDisRateNoModify;
-
-        @JsonProperty("personPowerAllowanceRateNoShow")
-        private String personPowerAllowanceRateNoShow;
-
-        @JsonProperty("personPowerAllowanceRateNoModify")
-        private String personPowerAllowanceRateNoModify;
-
-        @JsonProperty("personPowerBusinessPromoteRateNoShow")
-        private String personPowerBusinessPromoteRateNoShow;
-
-        @JsonProperty("personPowerBusinessPromoteRateNoModify")
-        private String personPowerBusinessPromoteRateNoModify;
-
-        @JsonProperty("personPowerBusinessTotalCostCIShow")
-        private String personPowerBusinessTotalCostCIShow;
-
-        @JsonProperty("personPowerBusinessTotalCostBIShow")
-        private String personPowerBusinessTotalCostBIShow;
-
-        @JsonProperty("companyRatePower")
-        private String companyRatePower;
-
-        @JsonProperty("salesSalaryRateDisplay")
-        private String salesSalaryRateDisplay;
-
-        @JsonProperty("manageFeeRateDisplay")
-        private String manageFeeRateDisplay;
-
-        @JsonProperty("agentClerkFlagDisplay")
-        private String agentClerkFlagDisplay;
-    }
-
     @NoArgsConstructor
     @Data
     public static class CiInsureValidDTO {
     }
 
-    @NoArgsConstructor
-    @Data
-    public static class TrafficInsuranceDTO {
-        @JsonProperty("startDate")
-        private String startDate;
-
-        @JsonProperty("endDate")
-        private String endDate;
-    }
-
     @NoArgsConstructor
     @Data
     public static class PrpTLastCarShipTaxDTO {

+ 1 - 1
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenOcrOrderDTO.java → tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenOcrOrderDTO.java

@@ -1,4 +1,4 @@
-package com.jzg.quotation.guoren.crawler.entity.request;
+package com.jzg.quotation.guoren.crawler.entity.dto;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.CustomerInfoVo;

+ 1 - 1
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenPrpTinsuredDTO.java → tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenPrpTinsuredDTO.java

@@ -1,4 +1,4 @@
-package com.jzg.quotation.guoren.crawler.entity.request;
+package com.jzg.quotation.guoren.crawler.entity.dto;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.CustomerInfoVo;

+ 5 - 4
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenPrpTitemCarDTO.java → tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/GuoRenPrpTitemCarDTO.java

@@ -1,7 +1,8 @@
-package com.jzg.quotation.guoren.crawler.entity.request;
+package com.jzg.quotation.guoren.crawler.entity.dto;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.guoren.crawler.entity.request.GuoRenCrawlerGetCarPriceRequest;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerGetCarPriceData;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -242,7 +243,7 @@ public class GuoRenPrpTitemCarDTO {
     private String clauseType;
 
     @JsonProperty("natureOfUse")
-    private Integer natureOfUse;
+    private String natureOfUse;
 
     @JsonProperty("addressRevise")
     private String addressRevise;
@@ -512,7 +513,7 @@ public class GuoRenPrpTitemCarDTO {
         this.carUsage = getCarPriceRequest.getCarUsage();
         this.purchasePrice = getCarPriceRequest.getPurchasePrice();
         this.actualValue = carPriceData.getActualValue();
-        this.licenseKindCode = getCarPriceRequest.getLicenseKindCode();
+        this.licenseKindCode = "02";
         this.maincarKindCode = getCarPriceRequest.getMaincarKindCode();
         this.purchasePricelb = getCarPriceRequest.getPurchasePricelb();
         this.seatCountlb = Integer.valueOf(getCarPriceRequest.getSeatCount());
@@ -619,7 +620,7 @@ public class GuoRenPrpTitemCarDTO {
         this.maincarKindCodeNition = getCarPriceRequest.getMaincarKindCodeNition();
         this.carKindCodeNition = getCarPriceRequest.getCarKindCodeNition();
         this.licenseKindCodeNition = getCarPriceRequest.getLicenseKindCodeNition();
-        this.natureOfUse = getCarPriceRequest.getNatureOfUse();
+        this.natureOfUse = String.valueOf(getCarPriceRequest.getNatureOfUse());
         this.carOwnerIdentifyTypeSides = getCarPriceRequest.getCarOwnerIdentifyTypeSides();
         this.carOwnerIdentifyNumberRecogNition = getCarPriceRequest.getCarOwnerIdentifyNumberRecogNition();
         this.birthdayRecogNition = getCarPriceRequest.getBirthdayRecogNition();

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

@@ -0,0 +1,344 @@
+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.TimeProcessing;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class GuoRenPrpTmainDTO  {
+
+    @JsonProperty("startDate")
+    private String startDate;
+
+    @JsonProperty("endDate")
+    private String endDate;
+
+    @JsonProperty("startHour")
+    private Integer startHour;
+
+    @JsonProperty("endHour")
+    private Integer endHour;
+
+    @JsonProperty("period0530")
+    private Integer period0530;
+
+    @JsonProperty("immeValiFlag0507")
+    private Integer immeValiFlag0507;
+
+    @JsonProperty("startDate0507")
+    private String startDate0507;
+
+    @JsonProperty("endDate0507")
+    private String endDate0507;
+
+    @JsonProperty("immeValidStartDate0507")
+    private String immeValidStartDate0507;
+
+    @JsonProperty("immeValidEndDate0507")
+    private String immeValidEndDate0507;
+
+    @JsonProperty("startHour0507")
+    private Integer startHour0507;
+
+    @JsonProperty("endHour0507")
+    private Integer endHour0507;
+
+    @JsonProperty("startMinute0507")
+    private Integer startMinute0507;
+
+    @JsonProperty("endMinute0507")
+    private Integer endMinute0507;
+
+    @JsonProperty("startDateFlag0507")
+    private Integer startDateFlag0507;
+
+    @JsonProperty("immeValiFlag0507t1")
+    private Integer immeValiFlag0507t1;
+
+    @JsonProperty("startDate0507t1")
+    private String startDate0507t1;
+
+    @JsonProperty("endDate0507t1")
+    private String endDate0507t1;
+
+    @JsonProperty("immeValidStartDate0507t1")
+    private String immeValidStartDate0507t1;
+
+    @JsonProperty("immeValidEndDate0507t1")
+    private String immeValidEndDate0507t1;
+
+    @JsonProperty("startMinute0507t1")
+    private Integer startMinute0507t1;
+
+    @JsonProperty("endMinute0507t1")
+    private Integer endMinute0507t1;
+
+    @JsonProperty("startDateFlag0507t1")
+    private Integer startDateFlag0507t1;
+
+    @JsonProperty("immeValidStartDate")
+    private String immeValidStartDate;
+
+    @JsonProperty("immeValidEndDate")
+    private String immeValidEndDate;
+
+    @JsonProperty("feeandDiscountFlag")
+    private String feeandDiscountFlag;
+
+    @JsonProperty("saleChange")
+    private String saleChange;
+
+    @JsonProperty("immeValiFlag0518")
+    private Integer immeValiFlag0518;
+
+    @JsonProperty("startDate0518")
+    private String startDate0518;
+
+    @JsonProperty("endDate0518")
+    private String endDate0518;
+
+    @JsonProperty("immeValidStartDate0518")
+    private Object immeValidStartDate0518;
+
+    @JsonProperty("immeValidEndDate0518")
+    private Object immeValidEndDate0518;
+
+    @JsonProperty("startHour0518")
+    private Integer startHour0518;
+
+    @JsonProperty("endHour0518")
+    private Integer endHour0518;
+
+    @JsonProperty("startMinute0518")
+    private Integer startMinute0518;
+
+    @JsonProperty("endMinute0518")
+    private Integer endMinute0518;
+
+    @JsonProperty("startDateFlag0518")
+    private Integer startDateFlag0518;
+
+    @JsonProperty("immeValiFlag0521")
+    private Integer immeValiFlag0521;
+
+    @JsonProperty("startDate0521")
+    private String startDate0521;
+
+    @JsonProperty("endDate0521")
+    private String endDate0521;
+
+    @JsonProperty("immeValidStartDate0521")
+    private String immeValidStartDate0521;
+
+    @JsonProperty("immeValidEndDate0521")
+    private String immeValidEndDate0521;
+
+    @JsonProperty("startHour0521")
+    private Integer startHour0521;
+
+    @JsonProperty("endHour0521")
+    private Integer endHour0521;
+
+    @JsonProperty("startMinute0521")
+    private Integer startMinute0521;
+
+    @JsonProperty("endMinute0521")
+    private Integer endMinute0521;
+
+    @JsonProperty("startDateFlag0521")
+    private Integer startDateFlag0521;
+
+    @JsonProperty("immeValiFlag0530")
+    private Integer immeValiFlag0530;
+
+    @JsonProperty("startDate0530")
+    private String startDate0530;
+
+    @JsonProperty("endDate0530")
+    private String endDate0530;
+
+    @JsonProperty("immeValidStartDate0530")
+    private String immeValidStartDate0530;
+
+    @JsonProperty("immeValidEndDate0530")
+    private String immeValidEndDate0530;
+
+    @JsonProperty("startHour0530")
+    private Integer startHour0530;
+
+    @JsonProperty("endHour0530")
+    private Integer endHour0530;
+
+    @JsonProperty("startMinute0530")
+    private Integer startMinute0530;
+
+    @JsonProperty("endMinute0530")
+    private Integer endMinute0530;
+
+    @JsonProperty("startDateFlag0530")
+    private Integer startDateFlag0530;
+
+    @JsonProperty("answer")
+    private String answer;
+
+    @JsonProperty("biAnswer")
+    private String biAnswer;
+
+    @JsonProperty("expectDiscount")
+    private String expectDiscount;
+
+    @JsonProperty("signDiscount")
+    private Double signDiscount;
+
+    @JsonProperty("sumLowerRate")
+    private String sumLowerRate;
+
+    @JsonProperty("sumPremium")
+    private String sumPremium;
+
+    @JsonProperty("sumTaxFee")
+    private String sumTaxFee;
+
+    @JsonProperty("sumnoTaxPremium")
+    private Double sumnoTaxPremium;
+
+    @JsonProperty("addonRate")
+    private String addonRate;
+
+    @JsonProperty("addonCount")
+    private String addonCount;
+
+    @JsonProperty("noclaimRate")
+    private Double noclaimRate;
+
+    @JsonProperty("expectPremiumLow")
+    private String expectPremiumLow;
+
+    @JsonProperty("expectPremiumTop")
+    private String expectPremiumTop;
+
+    @JsonProperty("sumTopRate")
+    private String sumTopRate;
+
+    @JsonProperty("selfAdjustRate")
+    private Double selfAdjustRate;
+
+    @JsonProperty("selfChannelRate")
+    private Integer selfChannelRate;
+
+    @JsonProperty("appliFactorFlag")
+    private String appliFactorFlag;
+
+    @JsonProperty("insuredFactorFlag")
+    private String insuredFactorFlag;
+
+    @JsonProperty("isOffical")
+    private String isOffical;
+
+    @JsonProperty("sumBenchMarkPremium")
+    private String sumBenchMarkPremium;
+
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+
+    @JsonProperty("immeValiFlag")
+    private String immeValiFlag;
+
+    @JsonProperty("startDateFlag")
+    private Integer startDateFlag;
+
+    @JsonProperty("renewalFlag")
+    private String renewalFlag;
+
+    @JsonProperty("firstProposalDate")
+    private String firstProposalDate;
+
+    @JsonProperty("demandNo")
+    private String demandNo;
+
+    @JsonProperty("disCount")
+    private Double disCount;
+
+    @JsonProperty("riskDateFlag")
+    private Integer riskDateFlag;
+
+    @JsonProperty("certiNo")
+    private String certiNo;
+
+    @JsonProperty("certino1")
+    private String certino1;
+
+    @JsonProperty("rateFactorsTotal")
+    private Double rateFactorsTotal;
+
+    @JsonProperty("rateFactorsTotalOrigin")
+    private Double rateFactorsTotalOrigin;
+
+    @JsonProperty("inputDate")
+    private String inputDate;
+
+    @JsonProperty("signDate")
+    private String signDate;
+
+    @JsonProperty("startMinute")
+    private Integer startMinute;
+
+    @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;
+
+        this.period0530 = 30;
+
+        // 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.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.startDateFlag0507t1 = 0;
+
+        this.immeValidStartDate = "";
+        this.immeValidEndDate = "";
+        this.feeandDiscountFlag = "0";
+        this.saleChange = "0";
+        this.startDateFlag = 0;
+        this.answer = "";
+        this.biAnswer = "";
+        this.expectDiscount = "";
+        this.signDiscount = 0.0;
+        this.sumLowerRate = "";
+        this.renewalFlag = "";
+        this.sumPremium = "";
+        this.inputDate = today;
+        this.signDate = today;
+        this.immeValiFlag = "";
+        this.disCount = 1.0;
+        this.sumnoTaxPremium = 896.23;
+
+    }
+}

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

@@ -0,0 +1,241 @@
+package com.jzg.quotation.guoren.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class GuoRenPrpTmainRateDTO {
+    
+    @JsonProperty("proposalno")
+    private String proposalno;
+
+    @JsonProperty("riskcode")
+    private String riskcode;
+
+    @JsonProperty("classcode")
+    private String classcode;
+
+    @JsonProperty("coefficient1")
+    private Integer coefficient1;
+
+    @JsonProperty("coefficient2")
+    private Integer coefficient2;
+
+    @JsonProperty("coefficient3")
+    private Integer coefficient3;
+
+    @JsonProperty("coefficient4")
+    private Integer coefficient4;
+
+    @JsonProperty("coefficient5")
+    private Integer coefficient5;
+
+    @JsonProperty("coefficient6")
+    private Integer coefficient6;
+
+    @JsonProperty("coefficient7")
+    private Integer coefficient7;
+
+    @JsonProperty("coefficient8")
+    private Integer coefficient8;
+
+    @JsonProperty("coefficient9")
+    private Integer coefficient9;
+
+    @JsonProperty("coefficient10")
+    private Integer coefficient10;
+
+    @JsonProperty("coefficient11")
+    private Integer coefficient11;
+
+    @JsonProperty("remark")
+    private String remark;
+
+    @JsonProperty("flag")
+    private String flag;
+
+    @JsonProperty("businesscategory")
+    private String businesscategory;
+
+    @JsonProperty("attribute1")
+    private String attribute1;
+
+    @JsonProperty("attribute2")
+    private String attribute2;
+
+    @JsonProperty("attribute3")
+    private String attribute3;
+
+    @JsonProperty("attribute4")
+    private String attribute4;
+
+    @JsonProperty("attribute5")
+    private String attribute5;
+
+    @JsonProperty("billcomtransfeerate")
+    private Integer billcomtransfeerate;
+
+    @JsonProperty("billcomallowance")
+    private Integer billcomallowance;
+
+    @JsonProperty("billcomacquisitionfeerate")
+    private Integer billcomacquisitionfeerate;
+
+    @JsonProperty("billcomotherfeerate")
+    private Integer billcomotherfeerate;
+
+    @JsonProperty("totalcost")
+    private Integer totalcost;
+
+    @JsonProperty("tempLateID")
+    private String tempLateID;
+
+    @JsonProperty("tempLateName")
+    private String tempLateName;
+
+    @JsonProperty("papldetailID")
+    private String papldetailID;
+
+    @JsonProperty("businesstype")
+    private String businesstype;
+
+    @JsonProperty("underwriterlossratio")
+    private String underwriterlossratio;
+
+    @JsonProperty("accruedexpenses")
+    private String accruedexpenses;
+
+    @JsonProperty("managelimit")
+    private String managelimit;
+
+    @JsonProperty("controllimit")
+    private String controllimit;
+
+    @JsonProperty("mutualback")
+    private String mutualback;
+
+    @JsonProperty("limitflag")
+    private String limitflag;
+
+    @JsonProperty("autoFeeType")
+    private String autoFeeType;
+
+    @JsonProperty("billcomeGroup")
+    private String billcomeGroup;
+
+    @JsonProperty("riskLevel")
+    private String riskLevel;
+
+    @JsonProperty("respAttrExt1")
+    private String respAttrExt1;
+
+    @JsonProperty("respAttrExt2")
+    private String respAttrExt2;
+
+    @JsonProperty("respOnlineExt1")
+    private String respOnlineExt1;
+
+    @JsonProperty("respOnlineExt2")
+    private String respOnlineExt2;
+
+    @JsonProperty("respOnlineExt3")
+    private String respOnlineExt3;
+
+    @JsonProperty("respOnlineExt4")
+    private String respOnlineExt4;
+
+    @JsonProperty("highRiskCar")
+    private String highRiskCar;
+
+    @JsonProperty("detail_id")
+    private String detailId;
+
+    @JsonProperty("vhlScore")
+    private String vhlScore;
+
+    @JsonProperty("queryNo")
+    private String queryNo;
+
+    @JsonProperty("tempLateFlag")
+    private String tempLateFlag;
+
+    @JsonProperty("evScore")
+    private String evScore;
+
+    @JsonProperty("qjhScore")
+    private String qjhScore;
+
+    @JsonProperty("predictedNature")
+    private String predictedNature;
+
+    @JsonProperty("score12sd")
+    private String score12sd;
+
+    @JsonProperty("residentCity")
+    private String residentCity;
+
+    @JsonProperty("actuarialRuleCode")
+    private String actuarialRuleCode;
+
+    @JsonProperty("actuarialCoef")
+    private String actuarialCoef;
+
+    @JsonProperty("riskExposure")
+    private String riskExposure;
+
+    @JsonProperty("carLevel")
+    private String carLevel;
+
+    @JsonProperty("dispersion")
+    private String dispersion;
+
+    @JsonProperty("riskIncrease")
+    private String riskIncrease;
+
+    @JsonProperty("isSuspectedBusinessTruck")
+    private String isSuspectedBusinessTruck;
+
+    @JsonProperty("violateScore")
+    private String violateScore;
+
+    @JsonProperty("insurePolicyLowerBase")
+    private String insurePolicyLowerBase;
+
+    @JsonProperty("pendantid")
+    private String pendantid;
+
+    @JsonProperty("serviceStrategy")
+    private String serviceStrategy;
+
+    @JsonProperty("customerValueScore")
+    private String customerValueScore;
+
+    @JsonProperty("chdTranche")
+    private String chdTranche;
+
+    @JsonProperty("chdConsistent")
+    private String chdConsistent;
+
+    @JsonProperty("natrnk")
+    private String natrnk;
+
+    @JsonProperty("isFromApps")
+    private String isFromApps;
+
+    @JsonProperty("mileage6")
+    private String mileage6;
+
+    @JsonProperty("mileage12")
+    private String mileage12;
+
+    @JsonProperty("mileage24")
+    private String mileage24;
+
+    @JsonProperty("rybLogo")
+    private String rybLogo;
+
+    @JsonProperty("totalAttribute")
+    private Double totalAttribute;
+}

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

@@ -0,0 +1,24 @@
+package com.jzg.quotation.guoren.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class PrpTChannelDTO {
+    @JsonProperty("agentCode")
+    private String agentCode;
+
+    @JsonProperty("saleGentType")
+    private String saleGentType;
+
+    @JsonProperty("agentIdNo")
+    private String agentIdNo;
+
+    public PrpTChannelDTO(String agentCode, String saleGentType, String agentIdNo) {
+        this.agentCode = agentCode;
+        this.saleGentType = saleGentType;
+        this.agentIdNo = agentIdNo;
+    }
+}

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

@@ -687,6 +687,7 @@ public class PrpTMainDTO implements Serializable {
         this.operatorCode = username;
         this.signDate = today;
         this.loginComCode = comCodeData.getCodeCode();
+        this.carsonlyid = "17118";
     }
 
 

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

@@ -0,0 +1,71 @@
+package com.jzg.quotation.guoren.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class QueryExpensePowerOutputVoDTO {
+
+    @JsonProperty("errorCode")
+    private String errorCode;
+
+    @JsonProperty("errorMessage")
+    private String errorMessage;
+
+    @JsonProperty("configPowerManageFeeRateCI")
+    private String configPowerManageFeeRateCI;
+
+    @JsonProperty("configPowerMiddleCostCI")
+    private String configPowerMiddleCostCI;
+
+    @JsonProperty("configPowerManageFeeRateBI")
+    private String configPowerManageFeeRateBI;
+
+    @JsonProperty("configPowerMiddleCostBI")
+    private String configPowerMiddleCostBI;
+
+    @JsonProperty("personPowerManageFeeRateBC")
+    private String personPowerManageFeeRateBC;
+
+    @JsonProperty("personPowerMiddleCostBC")
+    private String personPowerMiddleCostBC;
+
+    @JsonProperty("personPowerDisRateNoShow")
+    private String personPowerDisRateNoShow;
+
+    @JsonProperty("personPowerDisRateNoModify")
+    private String personPowerDisRateNoModify;
+
+    @JsonProperty("personPowerAllowanceRateNoShow")
+    private String personPowerAllowanceRateNoShow;
+
+    @JsonProperty("personPowerAllowanceRateNoModify")
+    private String personPowerAllowanceRateNoModify;
+
+    @JsonProperty("personPowerBusinessPromoteRateNoShow")
+    private String personPowerBusinessPromoteRateNoShow;
+
+    @JsonProperty("personPowerBusinessPromoteRateNoModify")
+    private String personPowerBusinessPromoteRateNoModify;
+
+    @JsonProperty("personPowerBusinessTotalCostCIShow")
+    private String personPowerBusinessTotalCostCIShow;
+
+    @JsonProperty("personPowerBusinessTotalCostBIShow")
+    private String personPowerBusinessTotalCostBIShow;
+
+    @JsonProperty("companyRatePower")
+    private String companyRatePower;
+
+    @JsonProperty("salesSalaryRateDisplay")
+    private String salesSalaryRateDisplay;
+
+    @JsonProperty("manageFeeRateDisplay")
+    private String manageFeeRateDisplay;
+
+    @JsonProperty("agentClerkFlagDisplay")
+    private String agentClerkFlagDisplay;
+
+}

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

@@ -0,0 +1,20 @@
+package com.jzg.quotation.guoren.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class TrafficInsuranceDTO {
+    @JsonProperty("startDate")
+    private String startDate;
+
+    @JsonProperty("endDate")
+    private String endDate;
+
+    public TrafficInsuranceDTO(String startDate, String endDate) {
+        this.startDate = startDate;
+        this.endDate = endDate;
+    }
+}

+ 19 - 952
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerCalculationPremiumRequest.java

@@ -1,20 +1,15 @@
 package com.jzg.quotation.guoren.crawler.entity.request;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.commons.utils.TimeProcessing;
 import com.jzg.quotation.guoren.crawler.constant.InsuranceMap;
-import com.jzg.quotation.guoren.crawler.entity.dto.CiInsureDemandDTO;
-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.dto.*;
 import com.jzg.quotation.guoren.crawler.entity.po.InsuranceItem;
-import com.jzg.quotation.guoren.crawler.entity.po.TaxResult;
-import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerGetCarPriceData;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerWriteBackAddressData;
-import com.jzg.quotation.guoren.crawler.utils.VehicleTaxCalculator;
-import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.util.ObjectUtils;
@@ -39,7 +34,7 @@ public class GuoRenCrawlerCalculationPremiumRequest {
     private BasePartVoDTO basePartVo;
 
     @JsonProperty("bi")
-    private BiDTO bi;
+    private GuoRenBiDTO bi;
 
     @JsonProperty("ci")
     private GuoRenCiDTO ci;
@@ -55,22 +50,10 @@ public class GuoRenCrawlerCalculationPremiumRequest {
         String today = TimeProcessing.nowDate();
         GuoRenCiDTO.PrpTcarshipTaxDTO prpTcarshipTax = new GuoRenCiDTO.PrpTcarshipTaxDTO(quoteVo.getPolicyHolderInfo(), prpTmainDTO.getComCode(), prpTitemCar);
         this.basePartVo = new BasePartVoDTO(prpTmainDTO.getComCode(), loginRiskCode, prpTmainDTO.getOperatorCode());
-        this.bi = new BiDTO(quoteVo, today, prpTitemCar);
-        this.ci = new GuoRenCiDTO(quoteVo.getCiRiskInfoVo(), today, prpTitemCar.getClauseTypeSystem(), prpTcarshipTax);
+        this.ci = new GuoRenCiDTO(quoteVo, today, prpTitemCar, prpTcarshipTax);
+        this.bi = new GuoRenBiDTO(quoteVo, today, prpTitemCar);
     }
 
-    @NoArgsConstructor
-    @Data
-    public static class PrpTChannelDTO {
-        @JsonProperty("agentCode")
-        private String agentCode;
-
-        @JsonProperty("saleGentType")
-        private String saleGentType;
-
-        @JsonProperty("agentIdNo")
-        private String agentIdNo;
-    }
 
     @NoArgsConstructor
     @Data
@@ -115,689 +98,6 @@ public class GuoRenCrawlerCalculationPremiumRequest {
         }
     }
 
-    @NoArgsConstructor
-    @Data
-    public static class BiDTO {
-        @JsonProperty("prpDclauseRule")
-        private List<?> prpDclauseRule;
-
-        @JsonProperty("inintFlag")
-        private Integer inintFlag;
-
-        @JsonProperty("prpTmain")
-        private PrpTmainDTO prpTmain;
-
-        @JsonProperty("prpTmainRate")
-        private PrpTmainRateDTO prpTmainRate;
-
-        @JsonProperty("prpTitemCar")
-        private GuoRenPrpTitemCarDTO prpTitemCar;
-
-        @JsonProperty("ciInsureDemand")
-        private CiInsureDemandDTO ciInsureDemand;
-
-        @JsonProperty("ciInsureDemandPay")
-        private List<?> ciInsureDemandPay;
-
-        @JsonProperty("ciInsureDemandWarningClaim")
-        private List<?> ciInsureDemandWarningClaim;
-
-        @JsonProperty("prpTenGearAllocationFeeList")
-        private List<PrpTenGearAllocationFeeListDTO> prpTenGearAllocationFeeList;
-
-        @JsonProperty("prpTchargingPostData")
-        private List<?> prpTchargingPostData;
-
-        @JsonProperty("prptitemkindList")
-        private List<PrptitemkindListDTO> prptitemkindList;
-
-        @JsonProperty("prptengageList")
-        private List<PrptengageListDTO> prptengageList;
-
-        @JsonProperty("prpDclause")
-        private List<?> prpDclause;
-
-        @JsonProperty("prpTcarDeviceCount")
-        private PrpTcarDeviceCountDTO prpTcarDeviceCount;
-
-        @JsonProperty("prpTrenewal")
-        private List<?> prpTrenewal;
-
-        @JsonProperty("queryExpensePowerOutputVo")
-        private QueryExpensePowerOutputVoDTO queryExpensePowerOutputVo;
-
-        @JsonProperty("ciInsureValid")
-        private CiInsureValidDTO ciInsureValid;
-
-        @JsonProperty("prpDagentVo")
-        private PrpDagentVoDTO prpDagentVo;
-
-        @JsonProperty("commercialInsurances")
-        private List<?> commercialInsurances;
-
-        @JsonProperty("blPrpTRealNameVerification")
-        private List<?> blPrpTRealNameVerification;
-
-        @JsonProperty("prpTLastCarShipTax")
-        private PrpTLastCarShipTaxDTO prpTLastCarShipTax;
-
-        @JsonProperty("duplicateInsuranceItemsSchema")
-        private DuplicateInsuranceItemsSchemaDTO duplicateInsuranceItemsSchema;
-
-        @JsonProperty("termsSystem")
-        private String termsSystem;
-
-        @JsonProperty("inputRisk")
-        private Integer inputRisk;
-
-        @JsonProperty("inputRisk0518")
-        private Integer inputRisk0518;
-
-        @JsonProperty("inputRisk0521")
-        private Integer inputRisk0521;
-
-        @JsonProperty("inputRisk0530")
-        private Integer inputRisk0530;
-
-        @JsonProperty("shortRate")
-        private String shortRate;
-
-        @JsonProperty("scoreCodeFlag")
-        private Boolean scoreCodeFlag;
-
-        @JsonProperty("image")
-        private ImageDTO image;
-
-        @JsonProperty("calculateFlagBI")
-        private String calculateFlagBI;
-
-
-        public BiDTO(QuoteVo quoteVo, String today, GuoRenPrpTitemCarDTO prpTitemCar) {
-            RiskInfoVo biRiskInfoVo = quoteVo.getBiRiskInfoVo();
-            List<KindInfoVo> kindInfoVo = quoteVo.getKindInfoVo();
-            this.prpDclauseRule = new ArrayList<>();
-            this.inintFlag = 1;
-            if (biRiskInfoVo != null) {
-                this.prpTmain = new PrpTmainDTO(biRiskInfoVo, today);
-            }
-            this.prpTmainRate = new PrpTmainRateDTO("");
-            this.prpTitemCar = prpTitemCar;
-            this.ciInsureDemand = new CiInsureDemandDTO("", "");
-            this.ciInsureDemandPay = new ArrayList<>();
-            this.ciInsureDemandWarningClaim = new ArrayList<>();
-            this.prpTenGearAllocationFeeList = new ArrayList<>();
-            this.prpTchargingPostData = new ArrayList<>();
-            this.prptitemkindList = PrptitemkindListDTO.getBiPrptitemkindList(kindInfoVo, prpTmain);
-            this.prptengageList = new ArrayList<>();
-            this.prpDclause = new ArrayList<>();
-            this.prpTcarDeviceCount = new PrpTcarDeviceCountDTO();
-            this.prpTrenewal = new ArrayList<>();
-            this.queryExpensePowerOutputVo = new QueryExpensePowerOutputVoDTO();
-            this.ciInsureValid = new CiInsureValidDTO();
-            this.prpDagentVo = new PrpDagentVoDTO();
-            this.commercialInsurances = new ArrayList<>();
-            this.blPrpTRealNameVerification = new ArrayList<>();
-            this.prpTLastCarShipTax = new PrpTLastCarShipTaxDTO();
-            this.duplicateInsuranceItemsSchema = new DuplicateInsuranceItemsSchemaDTO();
-            this.termsSystem = termsSystem;
-            this.inputRisk = 0;
-            this.inputRisk0518 = 1;
-            this.inputRisk0521 = 0;
-            this.inputRisk0530 = 0;
-            this.shortRate = "100.00";
-            this.calculateFlagBI = "1";
-        }
-
-
-        @NoArgsConstructor
-        @Data
-        public static class PrpTcarDeviceCountDTO {
-        }
-
-        @NoArgsConstructor
-        @Data
-        public static class QueryExpensePowerOutputVoDTO {
-            @JsonProperty("errorCode")
-            private String errorCode;
-
-            @JsonProperty("errorMessage")
-            private String errorMessage;
-
-            @JsonProperty("configPowerManageFeeRateCI")
-            private String configPowerManageFeeRateCI;
-
-            @JsonProperty("configPowerMiddleCostCI")
-            private String configPowerMiddleCostCI;
-
-            @JsonProperty("configPowerManageFeeRateBI")
-            private String configPowerManageFeeRateBI;
-
-            @JsonProperty("configPowerMiddleCostBI")
-            private String configPowerMiddleCostBI;
-
-            @JsonProperty("personPowerManageFeeRateBC")
-            private String personPowerManageFeeRateBC;
-
-            @JsonProperty("personPowerMiddleCostBC")
-            private String personPowerMiddleCostBC;
-
-            @JsonProperty("personPowerDisRateNoShow")
-            private String personPowerDisRateNoShow;
-
-            @JsonProperty("personPowerDisRateNoModify")
-            private String personPowerDisRateNoModify;
-
-            @JsonProperty("personPowerAllowanceRateNoShow")
-            private String personPowerAllowanceRateNoShow;
-
-            @JsonProperty("personPowerAllowanceRateNoModify")
-            private String personPowerAllowanceRateNoModify;
-
-            @JsonProperty("personPowerBusinessPromoteRateNoShow")
-            private String personPowerBusinessPromoteRateNoShow;
-
-            @JsonProperty("personPowerBusinessPromoteRateNoModify")
-            private String personPowerBusinessPromoteRateNoModify;
-
-            @JsonProperty("personPowerBusinessTotalCostCIShow")
-            private String personPowerBusinessTotalCostCIShow;
-
-            @JsonProperty("personPowerBusinessTotalCostBIShow")
-            private String personPowerBusinessTotalCostBIShow;
-
-            @JsonProperty("companyRatePower")
-            private String companyRatePower;
-
-            @JsonProperty("salesSalaryRateDisplay")
-            private String salesSalaryRateDisplay;
-
-            @JsonProperty("manageFeeRateDisplay")
-            private String manageFeeRateDisplay;
-
-            @JsonProperty("agentClerkFlagDisplay")
-            private String agentClerkFlagDisplay;
-        }
-
-        @NoArgsConstructor
-        @Data
-        public static class CiInsureValidDTO {
-        }
-
-        @NoArgsConstructor
-        @Data
-        public static class PrpDagentVoDTO {
-            @JsonProperty("agentCode")
-            private String agentCode;
-
-            @JsonProperty("agentName")
-            private String agentName;
-
-            @JsonProperty("addressName")
-            private String addressName;
-
-            @JsonProperty("postCode")
-            private String postCode;
-
-            @JsonProperty("agentType")
-            private String agentType;
-
-            @JsonProperty("permitNo")
-            private String permitNo;
-
-            @JsonProperty("linkerName")
-            private String linkerName;
-
-            @JsonProperty("phoneNumber")
-            private String phoneNumber;
-
-            @JsonProperty("faxNumber")
-            private String faxNumber;
-
-            @JsonProperty("comCode")
-            private String comCode;
-
-            @JsonProperty("handlerCode")
-            private String handlerCode;
-
-            @JsonProperty("upperAgentCode")
-            private String upperAgentCode;
-
-            @JsonProperty("newAgentCode")
-            private String newAgentCode;
-
-            @JsonProperty("validStatus")
-            private String validStatus;
-
-            @JsonProperty("articleCode")
-            private String articleCode;
-
-            @JsonProperty("flag")
-            private String flag;
-
-            @JsonProperty("mobile")
-            private String mobile;
-
-            @JsonProperty("agentTypeSub")
-            private String agentTypeSub;
-
-            @JsonProperty("taxPayerAccountNo")
-            private String taxPayerAccountNo;
-
-            @JsonProperty("practiceName")
-            private String practiceName;
-
-            @JsonProperty("practiceCertificateCode")
-            private String practiceCertificateCode;
-
-            @JsonProperty("saleChannelCode")
-            private String saleChannelCode;
-
-            @JsonProperty("orgCode")
-            private String orgCode;
-
-            @JsonProperty("taxPayerIdentity")
-            private String taxPayerIdentity;
-
-            @JsonProperty("invoiceType")
-            private String invoiceType;
-
-            @JsonProperty("taxPayerName")
-            private String taxPayerName;
-
-            @JsonProperty("taxPayerRegiNumber")
-            private String taxPayerRegiNumber;
-
-            @JsonProperty("taxPayerAdress")
-            private String taxPayerAdress;
-
-            @JsonProperty("taxPayerBank")
-            private String taxPayerBank;
-
-            @JsonProperty("defaultRate")
-            private String defaultRate;
-        }
-
-        @NoArgsConstructor
-        @Data
-        public static class PrpTLastCarShipTaxDTO {
-        }
-
-        @NoArgsConstructor
-        @Data
-        public static class DuplicateInsuranceItemsSchemaDTO {
-            @JsonProperty("policyNo")
-            private String policyNo;
-
-            @JsonProperty("frameNoBC")
-            private String frameNoBC;
-
-            @JsonProperty("coverageCode")
-            private String coverageCode;
-
-            @JsonProperty("licensePlateColorCode")
-            private String licensePlateColorCode;
-
-            @JsonProperty("effectiveDate")
-            private String effectiveDate;
-
-            @JsonProperty("insurerCompanyType")
-            private String insurerCompanyType;
-
-            @JsonProperty("billDate")
-            private String billDate;
-
-            @JsonProperty("licensePlateType")
-            private String licensePlateType;
-
-            @JsonProperty("proposalNo")
-            private String proposalNo;
-
-            @JsonProperty("licensePlateNo")
-            private String licensePlateNo;
-
-            @JsonProperty("frameNo")
-            private String frameNo;
-
-            @JsonProperty("riskCode")
-            private String riskCode;
-
-            @JsonProperty("inputDate")
-            private String inputDate;
-
-            @JsonProperty("insurerCode")
-            private String insurerCode;
-
-            @JsonProperty("expireDate")
-            private String expireDate;
-
-            @JsonProperty("insurerArea")
-            private String insurerArea;
-
-            @JsonProperty("serialNo")
-            private String serialNo;
-
-            @JsonProperty("engineNo")
-            private String engineNo;
-
-            @JsonProperty("demandNo")
-            private String demandNo;
-
-            @JsonProperty("licensePlateType_name")
-            private String licenseplatetypeName;
-        }
-
-        @NoArgsConstructor
-        @Data
-        public static class ImageDTO {
-            @JsonProperty("changingThisBreaksApplicationSecurity")
-            private String changingThisBreaksApplicationSecurity;
-        }
-
-        @NoArgsConstructor
-        @Data
-        public static class PrpTenGearAllocationFeeListDTO {
-            @JsonProperty("billcomeGroup")
-            private String billcomeGroup;
-
-            @JsonProperty("billELR")
-            private Double billELR;
-
-            @JsonProperty("coefficient1BI")
-            private Integer coefficient1BI;
-
-            @JsonProperty("coefficient3BI")
-            private Integer coefficient3BI;
-
-            @JsonProperty("coefficient5BI")
-            private Integer coefficient5BI;
-
-            @JsonProperty("coefficient7BI")
-            private Integer coefficient7BI;
-
-            @JsonProperty("addonRate")
-            private Integer addonRate;
-
-            @JsonProperty("noClaimRate")
-            private Double noClaimRate;
-
-            @JsonProperty("selfAdjustRate")
-            private Double selfAdjustRate;
-
-            @JsonProperty("recommenDiscountScore")
-            private Integer recommenDiscountScore;
-
-            @JsonProperty("sumPremium")
-            private Double sumPremium;
-
-            @JsonProperty("coefficient1CI")
-            private Integer coefficient1CI;
-
-            @JsonProperty("coefficient3CI")
-            private Integer coefficient3CI;
-
-            @JsonProperty("coefficient5CI")
-            private Integer coefficient5CI;
-
-            @JsonProperty("coefficient7CI")
-            private Integer coefficient7CI;
-
-            @JsonProperty("groupNum")
-            private Integer groupNum;
-
-            @JsonProperty("conditionGroupNum")
-            private Integer conditionGroupNum;
-
-            @JsonProperty("isFlag")
-            private String isFlag;
-        }
-
-
-    }
-
-    @NoArgsConstructor
-    @Data
-    public static class PrpTmainDTO {
-        @JsonProperty("startDate")
-        private String startDate;
-
-        @JsonProperty("endDate")
-        private String endDate;
-
-        @JsonProperty("startHour")
-        private Integer startHour;
-
-        @JsonProperty("endHour")
-        private Integer endHour;
-
-        @JsonProperty("period0530")
-        private Integer period0530;
-
-        @JsonProperty("immeValidStartDate")
-        private String immeValidStartDate;
-
-        @JsonProperty("immeValidEndDate")
-        private String immeValidEndDate;
-
-        @JsonProperty("feeandDiscountFlag")
-        private String feeandDiscountFlag;
-
-        @JsonProperty("saleChange")
-        private String saleChange;
-
-        @JsonProperty("immeValiFlag0518")
-        private Integer immeValiFlag0518;
-
-        @JsonProperty("startDate0518")
-        private String startDate0518;
-
-        @JsonProperty("endDate0518")
-        private String endDate0518;
-
-        @JsonProperty("immeValidStartDate0518")
-        private Object immeValidStartDate0518;
-
-        @JsonProperty("immeValidEndDate0518")
-        private Object immeValidEndDate0518;
-
-        @JsonProperty("startHour0518")
-        private Integer startHour0518;
-
-        @JsonProperty("endHour0518")
-        private Integer endHour0518;
-
-        @JsonProperty("startDateFlag0518")
-        private Integer startDateFlag0518;
-
-        @JsonProperty("immeValiFlag0521")
-        private Integer immeValiFlag0521;
-
-        @JsonProperty("startDate0521")
-        private String startDate0521;
-
-        @JsonProperty("endDate0521")
-        private String endDate0521;
-
-        @JsonProperty("immeValidStartDate0521")
-        private String immeValidStartDate0521;
-
-        @JsonProperty("immeValidEndDate0521")
-        private String immeValidEndDate0521;
-
-        @JsonProperty("startHour0521")
-        private Integer startHour0521;
-
-        @JsonProperty("endHour0521")
-        private Integer endHour0521;
-
-        @JsonProperty("startMinute0521")
-        private Integer startMinute0521;
-
-        @JsonProperty("endMinute0521")
-        private Integer endMinute0521;
-
-        @JsonProperty("startDateFlag0521")
-        private Integer startDateFlag0521;
-
-        @JsonProperty("immeValiFlag0530")
-        private Integer immeValiFlag0530;
-
-        @JsonProperty("startDate0530")
-        private String startDate0530;
-
-        @JsonProperty("endDate0530")
-        private String endDate0530;
-
-        @JsonProperty("immeValidStartDate0530")
-        private String immeValidStartDate0530;
-
-        @JsonProperty("immeValidEndDate0530")
-        private String immeValidEndDate0530;
-
-        @JsonProperty("startHour0530")
-        private Integer startHour0530;
-
-        @JsonProperty("endHour0530")
-        private Integer endHour0530;
-
-        @JsonProperty("startMinute0530")
-        private Integer startMinute0530;
-
-        @JsonProperty("endMinute0530")
-        private Integer endMinute0530;
-
-        @JsonProperty("startDateFlag0530")
-        private Integer startDateFlag0530;
-
-        @JsonProperty("answer")
-        private String answer;
-
-        @JsonProperty("expectDiscount")
-        private String expectDiscount;
-
-        @JsonProperty("signDiscount")
-        private String signDiscount;
-
-        @JsonProperty("sumLowerRate")
-        private String sumLowerRate;
-
-        @JsonProperty("sumPremium")
-        private String sumPremium;
-
-        @JsonProperty("sumTaxFee")
-        private String sumTaxFee;
-
-        @JsonProperty("sumnoTaxPremium")
-        private String sumnoTaxPremium;
-
-        @JsonProperty("addonRate")
-        private String addonRate;
-
-        @JsonProperty("addonCount")
-        private String addonCount;
-
-        @JsonProperty("noclaimRate")
-        private Double noclaimRate;
-
-        @JsonProperty("expectPremiumLow")
-        private String expectPremiumLow;
-
-        @JsonProperty("expectPremiumTop")
-        private String expectPremiumTop;
-
-        @JsonProperty("sumTopRate")
-        private String sumTopRate;
-
-        @JsonProperty("selfAdjustRate")
-        private Double selfAdjustRate;
-
-        @JsonProperty("selfChannelRate")
-        private Integer selfChannelRate;
-
-        @JsonProperty("appliFactorFlag")
-        private String appliFactorFlag;
-
-        @JsonProperty("insuredFactorFlag")
-        private String insuredFactorFlag;
-
-        @JsonProperty("isOffical")
-        private String isOffical;
-
-        @JsonProperty("sumBenchMarkPremium")
-        private String sumBenchMarkPremium;
-
-        @JsonProperty("proposalNo")
-        private String proposalNo;
-
-        @JsonProperty("immeValiFlag")
-        private String immeValiFlag;
-
-        @JsonProperty("startDateFlag")
-        private Integer startDateFlag;
-
-        @JsonProperty("renewalFlag")
-        private String renewalFlag;
-
-        @JsonProperty("firstProposalDate")
-        private String firstProposalDate;
-
-        @JsonProperty("demandNo")
-        private String demandNo;
-
-        @JsonProperty("disCount")
-        private Double disCount;
-
-        @JsonProperty("certiNo")
-        private String certiNo;
-
-        @JsonProperty("certino1")
-        private String certino1;
-
-        @JsonProperty("rateFactorsTotal")
-        private Double rateFactorsTotal;
-
-        @JsonProperty("rateFactorsTotalOrigin")
-        private Double rateFactorsTotalOrigin;
-
-        @JsonProperty("inputDate")
-        private String inputDate;
-
-        @JsonProperty("signDate")
-        private String signDate;
-
-        @JsonProperty("startMinute")
-        private Integer startMinute;
-
-        @JsonProperty("endMinute")
-        private Integer endMinute;
-
-        public PrpTmainDTO(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;
-
-            this.period0530 = 30;
-            this.immeValidStartDate = "";
-            this.immeValidEndDate = "";
-            this.feeandDiscountFlag = "0";
-            this.saleChange = "0";
-            this.startDateFlag = 0;
-            this.answer = "";
-            this.expectDiscount = "";
-            this.signDiscount = "";
-            this.sumLowerRate = "";
-            this.renewalFlag = "";
-            this.sumPremium = "";
-            this.inputDate = today;
-            this.signDate = today;
-            this.immeValiFlag = "";
-
-        }
-    }
-
     @NoArgsConstructor
     @Data
     public static class PrptitemkindListDTO {
@@ -839,7 +139,7 @@ public class GuoRenCrawlerCalculationPremiumRequest {
         private String rate;
 
         @JsonProperty("amount")
-        private String amount;
+        private Integer amount;
 
         @JsonProperty("premium")
         private String premium;
@@ -872,10 +172,10 @@ public class GuoRenCrawlerCalculationPremiumRequest {
         private String modeCode;
 
         @JsonProperty("unitAmount")
-        private String unitAmount;
+        private Integer unitAmount;
 
         @JsonProperty("quantity")
-        private String quantity;
+        private Integer quantity;
 
         @JsonProperty("adjustRate")
         private String adjustRate;
@@ -965,7 +265,7 @@ public class GuoRenCrawlerCalculationPremiumRequest {
         private Integer shareSumLimitSign;
 
 
-        public PrptitemkindListDTO(KindInfoVo kindInfoVo, PrpTmainDTO prpTmain) {
+        public PrptitemkindListDTO(KindInfoVo kindInfoVo, GuoRenPrpTmainDTO prpTmain) {
             InsuranceItem insuranceItem = InsuranceMap.INSURANCE_MAP.get(kindInfoVo.getKindCode());
             if (ObjectUtils.isEmpty(insuranceItem)) {
                 throw new SystemException("未知险种");
@@ -982,7 +282,8 @@ public class GuoRenCrawlerCalculationPremiumRequest {
             this.deductible = "";
             this.isDeductible = 0;
             this.rate = "";
-            this.amount = kindInfoVo.getAmount();
+            this.amount = Integer.parseInt(kindInfoVo.getAmount());
+            this.unitAmount = Integer.parseInt(kindInfoVo.getUnitAmount());
             this.premium = "";
             this.basePremium = "";
             this.benchMarkPremium = "";
@@ -993,8 +294,10 @@ public class GuoRenCrawlerCalculationPremiumRequest {
             this.taxRate = "0.06";
             this.value = "";
             this.modeCode = "";
-            this.unitAmount = kindInfoVo.getUnitAmount();
-            this.quantity = kindInfoVo.getQuantity();
+            List<KindInfoVo.OptionsDTO> options = kindInfoVo.getOptions();
+            if (!CollectionUtils.isEmpty(options) || !options.get(0).getLabel().contains("次") ) {
+                this.quantity = Integer.parseInt(options.get(0).getValue());
+            }
             this.adjustRate = "";
             this.channelrate = "";
             this.flag = insuranceItem.getFlag();
@@ -1023,7 +326,7 @@ public class GuoRenCrawlerCalculationPremiumRequest {
             this.deductibleRate = kindInfoVo.getDeductibleRate();
         }
 
-        public static List<PrptitemkindListDTO> getCiPrptitemkindList(PrpTmainDTO prpTmain) {
+        public static List<PrptitemkindListDTO> getCiPrptitemkindList(GuoRenPrpTmainDTO prpTmain) {
             PrptitemkindListDTO prptitemkindListDTO = new PrptitemkindListDTO();
             prptitemkindListDTO.setKindCode("BZ");
             prptitemkindListDTO.setKindName("机动车交通事故责任强制保险");
@@ -1042,7 +345,7 @@ public class GuoRenCrawlerCalculationPremiumRequest {
             prptitemkindListDTO.setDeductible("");
             prptitemkindListDTO.setIsDeductible(0);
             prptitemkindListDTO.setRate("0");
-            prptitemkindListDTO.setAmount("200000");
+            prptitemkindListDTO.setAmount(200000);
             prptitemkindListDTO.setPremium("0.0");
             prptitemkindListDTO.setBasePremium("0");
             prptitemkindListDTO.setDiscount("0.0");
@@ -1054,245 +357,9 @@ public class GuoRenCrawlerCalculationPremiumRequest {
             return List.of(prptitemkindListDTO);
         }
 
-        public static List<PrptitemkindListDTO> getBiPrptitemkindList(List<KindInfoVo> kindInfoVo, PrpTmainDTO prpTmain) {
+        public static List<PrptitemkindListDTO> getBiPrptitemkindList(List<KindInfoVo> kindInfoVo, GuoRenPrpTmainDTO prpTmain) {
             return kindInfoVo.stream().map(x -> new PrptitemkindListDTO(x, prpTmain)).toList();
         }
 
     }
-
-    @NoArgsConstructor
-    @Data
-    public static class PrpTmainRateDTO {
-        @JsonProperty("proposalno")
-        private String proposalno;
-
-        @JsonProperty("riskcode")
-        private String riskcode;
-
-        @JsonProperty("classcode")
-        private String classcode;
-
-        @JsonProperty("coefficient1")
-        private Integer coefficient1;
-
-        @JsonProperty("coefficient2")
-        private Integer coefficient2;
-
-        @JsonProperty("coefficient3")
-        private Integer coefficient3;
-
-        @JsonProperty("coefficient4")
-        private Integer coefficient4;
-
-        @JsonProperty("coefficient5")
-        private Integer coefficient5;
-
-        @JsonProperty("coefficient6")
-        private Integer coefficient6;
-
-        @JsonProperty("coefficient7")
-        private Integer coefficient7;
-
-        @JsonProperty("coefficient8")
-        private Integer coefficient8;
-
-        @JsonProperty("coefficient9")
-        private Integer coefficient9;
-
-        @JsonProperty("coefficient10")
-        private Integer coefficient10;
-
-        @JsonProperty("coefficient11")
-        private Integer coefficient11;
-
-        @JsonProperty("remark")
-        private String remark;
-
-        @JsonProperty("flag")
-        private String flag;
-
-        @JsonProperty("businesscategory")
-        private String businesscategory;
-
-        @JsonProperty("attribute1")
-        private String attribute1;
-
-        @JsonProperty("attribute2")
-        private String attribute2;
-
-        @JsonProperty("attribute3")
-        private String attribute3;
-
-        @JsonProperty("attribute4")
-        private String attribute4;
-
-        @JsonProperty("attribute5")
-        private String attribute5;
-
-        @JsonProperty("billcomtransfeerate")
-        private Integer billcomtransfeerate;
-
-        @JsonProperty("billcomallowance")
-        private Integer billcomallowance;
-
-        @JsonProperty("billcomacquisitionfeerate")
-        private Integer billcomacquisitionfeerate;
-
-        @JsonProperty("billcomotherfeerate")
-        private Integer billcomotherfeerate;
-
-        @JsonProperty("totalcost")
-        private Integer totalcost;
-
-        @JsonProperty("tempLateID")
-        private String tempLateID;
-
-        @JsonProperty("tempLateName")
-        private String tempLateName;
-
-        @JsonProperty("papldetailID")
-        private String papldetailID;
-
-        @JsonProperty("businesstype")
-        private String businesstype;
-
-        @JsonProperty("underwriterlossratio")
-        private String underwriterlossratio;
-
-        @JsonProperty("accruedexpenses")
-        private String accruedexpenses;
-
-        @JsonProperty("managelimit")
-        private String managelimit;
-
-        @JsonProperty("controllimit")
-        private String controllimit;
-
-        @JsonProperty("mutualback")
-        private String mutualback;
-
-        @JsonProperty("limitflag")
-        private String limitflag;
-
-        @JsonProperty("autoFeeType")
-        private String autoFeeType;
-
-        @JsonProperty("billcomeGroup")
-        private String billcomeGroup;
-
-        @JsonProperty("riskLevel")
-        private String riskLevel;
-
-        @JsonProperty("respAttrExt1")
-        private String respAttrExt1;
-
-        @JsonProperty("respAttrExt2")
-        private String respAttrExt2;
-
-        @JsonProperty("respOnlineExt1")
-        private String respOnlineExt1;
-
-        @JsonProperty("respOnlineExt2")
-        private String respOnlineExt2;
-
-        @JsonProperty("respOnlineExt3")
-        private String respOnlineExt3;
-
-        @JsonProperty("respOnlineExt4")
-        private String respOnlineExt4;
-
-        @JsonProperty("highRiskCar")
-        private String highRiskCar;
-
-        @JsonProperty("detail_id")
-        private String detailId;
-
-        @JsonProperty("vhlScore")
-        private String vhlScore;
-
-        @JsonProperty("queryNo")
-        private String queryNo;
-
-        @JsonProperty("tempLateFlag")
-        private String tempLateFlag;
-
-        @JsonProperty("evScore")
-        private String evScore;
-
-        @JsonProperty("qjhScore")
-        private String qjhScore;
-
-        @JsonProperty("predictedNature")
-        private String predictedNature;
-
-        @JsonProperty("score12sd")
-        private String score12sd;
-
-        @JsonProperty("residentCity")
-        private String residentCity;
-
-        @JsonProperty("actuarialRuleCode")
-        private String actuarialRuleCode;
-
-        @JsonProperty("actuarialCoef")
-        private String actuarialCoef;
-
-        @JsonProperty("riskExposure")
-        private String riskExposure;
-
-        @JsonProperty("carLevel")
-        private String carLevel;
-
-        @JsonProperty("dispersion")
-        private String dispersion;
-
-        @JsonProperty("riskIncrease")
-        private String riskIncrease;
-
-        @JsonProperty("isSuspectedBusinessTruck")
-        private String isSuspectedBusinessTruck;
-
-        @JsonProperty("violateScore")
-        private String violateScore;
-
-        @JsonProperty("insurePolicyLowerBase")
-        private String insurePolicyLowerBase;
-
-        @JsonProperty("pendantid")
-        private String pendantid;
-
-        @JsonProperty("serviceStrategy")
-        private String serviceStrategy;
-
-        @JsonProperty("customerValueScore")
-        private String customerValueScore;
-
-        @JsonProperty("chdTranche")
-        private String chdTranche;
-
-        @JsonProperty("chdConsistent")
-        private String chdConsistent;
-
-        @JsonProperty("natrnk")
-        private String natrnk;
-
-        @JsonProperty("mileage6")
-        private String mileage6;
-
-        @JsonProperty("mileage12")
-        private String mileage12;
-
-        @JsonProperty("mileage24")
-        private String mileage24;
-
-        @JsonProperty("rybLogo")
-        private String rybLogo;
-
-        @JsonProperty("totalAttribute")
-        private Double totalAttribute;
-
-        public PrpTmainRateDTO(String highRiskCar) {
-            this.highRiskCar = highRiskCar;
-        }
-    }
 }

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

@@ -1,6 +1,7 @@
 package com.jzg.quotation.guoren.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenBcDTO;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerCalculationPremiumData;
 import lombok.Data;
 import lombok.NoArgsConstructor;

+ 13 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerCalculationPremiumData.java

@@ -105,6 +105,9 @@ public class GuoRenCrawlerCalculationPremiumData extends GuoRenCrawlerBaseRespon
         @JsonProperty("queryExpensePowerOutputVo")
         private QueryExpensePowerOutputVoDTO queryExpensePowerOutputVo;
 
+        @JsonProperty("trafficInsurance")
+        private TrafficInsuranceDTO trafficInsurance;
+
         @NoArgsConstructor
         @Data
         public static class PrpTmainDTO {
@@ -1940,6 +1943,16 @@ public class GuoRenCrawlerCalculationPremiumData extends GuoRenCrawlerBaseRespon
             @JsonProperty("isFlag")
             private String isFlag;
         }
+
+        @NoArgsConstructor
+        @Data
+        public static class TrafficInsuranceDTO {
+            @JsonProperty("startDate")
+            private String startDate;
+
+            @JsonProperty("endDate")
+            private String endDate;
+        }
     }
 
     @NoArgsConstructor

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

@@ -52,7 +52,7 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
     public HttpHeaders getHeaders(String username) {
         HttpHeaders headers = new HttpHeaders();
 //        String token = guoRenCrawlerCacheComponent.getToken(username);
-        String token = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJXMzAwMDM5OSIsInVzZXJJZCI6IjQ5NjE4MSIsIm5hbWUiOiLmnY7mmKXmooUiLCJleHAiOjE3Nzg1NDY1Njl9.R0wPEisTH4nvmX5EMlLul01JyQENQ4Z4cOkHvcY0zNaLy4N5lIyhyXI8K2GVo4sOjpPm0BgiHmSzV9ugDdHHbBk6wCw1o2pq1QE-mqvBBTF0iTXZB2HsqL_p3EJd6p2zFS4HRafMOLMKb4F3ugDY7cSNyAQyn7Ee9J-FJTWgXc0";
+        String token = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJXMzAwMDM5OSIsInVzZXJJZCI6IjQ5NjE4MSIsIm5hbWUiOiLmnY7mmKXmooUiLCJleHAiOjE3Nzg3MjI5NTB9.iRyriJoek5iqC3yCOJhFZL-yqDqNlXvpm6jSR-IuGX60oxGkEGLt0w_a4w55TGK7_jfRdFB47150-d_pw91lrG9b2zjaxFFtHaHx29BRoAGIvwLOZXqZBZwEfHBlyY9xf9L4EKvmqHR7kN_e4Ss3HMj5t6w0e5fK1LvNAsW6YK8";
         if (!StringUtils.hasText(token)) {
             throw new SystemException("登录失败,请重新登录");
         }
@@ -167,13 +167,11 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
         ReinsuranceCaptchaVo reinsuranceCaptchaVo1 = exteriorUtilsRequest.reinsuranceCaptchaIdentify(reinsuranceCaptchaVo);
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setDemandNo(demandNoCi);
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getCiCaptcha());
-        crawlerCalculationPremiumRequest.getCi().getPrpTmain().setCertiNo(calculationPremium.getCi().getPrpTmain().getCertiNo());
         crawlerCalculationPremiumRequest.getCi().setCiInsureDemand(calculationPremium.getCi().getCiInsureDemand());
         crawlerCalculationPremiumRequest.getCi().setPrptengageList(calculationPremium.getCi().getPrptengageList());
         if (crawlerCalculationPremiumRequest.getBi().getPrpTmain() != null) {
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setDemandNo(demandNoBi);
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getBiCaptcha());
-            crawlerCalculationPremiumRequest.getBi().getPrpTmain().setCertiNo(calculationPremium.getBi().getPrpTmain().getCertiNo());
             crawlerCalculationPremiumRequest.getBi().setCiInsureDemand(calculationPremium.getBi().getCiInsureDemand());
             crawlerCalculationPremiumRequest.getBi().setPrptengageList(calculationPremium.getBi().getPrptengageList());
         }

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

@@ -6,7 +6,6 @@ import com.jzg.commons.entity.quote.vo.QuoteVo;
 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;
-import com.jzg.quotation.commons.annotation.QuoteApiService;
 import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.quotation.commons.entity.GetCaptchaRequest;
@@ -20,9 +19,8 @@ import com.jzg.quotation.guoren.crawler.entity.GuoRenCrawlerConfigureParameters;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
 import com.jzg.quotation.guoren.crawler.entity.po.GuoRenCrawlerOrder;
 import com.jzg.quotation.guoren.crawler.entity.po.OrderCommon;
-import com.jzg.quotation.guoren.crawler.entity.request.GuoRenBcDTO;
 import com.jzg.quotation.guoren.crawler.entity.request.GuoRenCrawlerCalculationPremiumRequest;
-import com.jzg.quotation.guoren.crawler.entity.request.GuoRenPrpTitemCarDTO;
+import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenPrpTitemCarDTO;
 import com.jzg.quotation.guoren.crawler.entity.response.*;
 import com.jzg.quotation.guoren.crawler.service.GuoRenCrawlerOrderService;
 import com.jzg.quotation.guoren.crawler.service.GuoRenCrawlerQuoteProcessService;

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

@@ -0,0 +1,2352 @@
+package com.jzg.quotation.guoren.crawler.utils;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+import java.util.*;
+
+/**
+ * JSON 深度对比工具(专门适配你两段保险保单JSON)
+ * 输出:字段路径 + 原值 + 新值
+ */
+public class JsonCompareUtil {
+    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+
+    // 存储差异结果
+    public static class JsonDiff {
+        private final String path;
+        private final Object oldValue;
+        private final Object newValue;
+
+        public JsonDiff(String path, Object oldValue, Object newValue) {
+            this.path = path;
+            this.oldValue = oldValue;
+            this.newValue = newValue;
+        }
+
+        @Override
+        public String toString() {
+            return "【路径】" + path +
+                    "\n【第一段值】" + oldValue +
+                    "\n【第二段值】" + newValue +
+                    "\n----------------------------------------";
+        }
+    }
+
+    public static List<JsonDiff> compareJson(JsonNode oldJson, JsonNode newJson) {
+        List<JsonDiff> diffs = new ArrayList<>();
+        compareNode("", oldJson, newJson, diffs);
+        return diffs;
+    }
+
+    private static void compareNode(String path, JsonNode oldNode, JsonNode newNode, List<JsonDiff> diffs) {
+        if (oldNode == null && newNode == null) return;
+        if (oldNode == null) {
+            diffs.add(new JsonDiff(path, "null", newNode));
+            return;
+        }
+        if (newNode == null) {
+            diffs.add(new JsonDiff(path, oldNode, "null"));
+            return;
+        }
+
+        // 类型不同
+        if (!oldNode.getNodeType().equals(newNode.getNodeType())) {
+            diffs.add(new JsonDiff(path, oldNode, newNode));
+            return;
+        }
+
+        // 对象类型
+        if (oldNode.isObject()) {
+            Set<String> allFields = new HashSet<>();
+            oldNode.fieldNames().forEachRemaining(allFields::add);
+            newNode.fieldNames().forEachRemaining(allFields::add);
+
+            for (String field : allFields) {
+                String currentPath = path.isBlank() ? field : path + "." + field;
+                compareNode(currentPath, oldNode.get(field), newNode.get(field), diffs);
+            }
+        }
+        // 数组类型(按索引对比)
+        else if (oldNode.isArray()) {
+            int maxLen = Math.max(oldNode.size(), newNode.size());
+            for (int i = 0; i < maxLen; i++) {
+                JsonNode o = i < oldNode.size() ? oldNode.get(i) : null;
+                JsonNode n = i < newNode.size() ? newNode.get(i) : null;
+                compareNode(path + "[" + i + "]", o, n, diffs);
+            }
+        }
+        // 普通值
+        else {
+            String oldVal = oldNode.asText();
+            String newVal = newNode.asText();
+            if (!Objects.equals(oldVal, newVal)) {
+                diffs.add(new JsonDiff(path, oldVal, newVal));
+            }
+        }
+    }
+
+    // ====================== 测试:直接对比你的两段JSON ======================
+    public static void main(String[] args) throws Exception {
+        // 把你的两段JSON粘贴在这里
+        String json1 = "{\n" +
+                "    \"bc\": {\n" +
+                "        \"baseInfoInit\": 1,\n" +
+                "        \"riskCode\": \"0500\",\n" +
+                "        \"prpTmain\": {\n" +
+                "            \"agreementNo\": \"\",\n" +
+                "            \"cooprOutlets\": \"\",\n" +
+                "            \"commissionerNo\": \"\",\n" +
+                "            \"comName\": \"太原营业大区科政保营业部经代业务部\",\n" +
+                "            \"handler1Name\": \"陶娇\",\n" +
+                "            \"agentName\": \"\",\n" +
+                "            \"project\": \"\",\n" +
+                "            \"unitMaintenanceName\": \"科政保天勤代理\",\n" +
+                "            \"unitMaintenanceType1Name\": \"代理\",\n" +
+                "            \"unitMaintenanceType2Name\": \"专业代理\",\n" +
+                "            \"channeltypeoneName\": \"个客发展\",\n" +
+                "            \"channeltypetwoName\": \"经代\",\n" +
+                "            \"argueSolution\": \"1\",\n" +
+                "            \"arbitboardName\": \"\",\n" +
+                "            \"isExpressProtectionFlag\": \"JSB00\",\n" +
+                "            \"eProposalFlag\": \"1\",\n" +
+                "            \"businessNature\": \"0\",\n" +
+                "            \"lifeAgentName\": \"\",\n" +
+                "            \"lifeAgentCode\": \"\",\n" +
+                "            \"saleProfessionalNum\": \"\",\n" +
+                "            \"saleGentType\": \"\",\n" +
+                "            \"agentCanalCode\": \" \",\n" +
+                "            \"amlCode\": \"\",\n" +
+                "            \"comCode\": \"305002A0\",\n" +
+                "            \"noCarFlag\": 0,\n" +
+                "            \"agentCode\": \"\",\n" +
+                "            \"saleName\": \"\",\n" +
+                "            \"cooprOutletsName\": \"\",\n" +
+                "            \"templateNo\": \"\",\n" +
+                "            \"handler1Code\": \"S3000222\",\n" +
+                "            \"channeltypeone\": \"60\",\n" +
+                "            \"channeltypetwo\": \"0101\",\n" +
+                "            \"unitMaintenanceCode\": \"3050D022512317323\",\n" +
+                "            \"unitmainTenanceType1\": \"D\",\n" +
+                "            \"unitmainTenanceType2\": \"02\",\n" +
+                "            \"classIdentifier\": \"00\",\n" +
+                "            \"isStandard\": \"0\",\n" +
+                "            \"uwELRrel1\": \"0\",\n" +
+                "            \"uwELRrel2\": \"0\",\n" +
+                "            \"templateName\": \"\",\n" +
+                "            \"deGentType\": \"\",\n" +
+                "            \"serviceLabelName\": \"\",\n" +
+                "            \"uniteBusinessFlag\": 0,\n" +
+                "            \"carsonlyid\": \"17118\",\n" +
+                "            \"goodCodes\": [],\n" +
+                "            \"noCarPremium\": 0,\n" +
+                "            \"operateDate\": \"2026-05-13\",\n" +
+                "            \"business\": null,\n" +
+                "            \"operatorCode\": \"W3000399\",\n" +
+                "            \"signDate\": \"2026-05-13\",\n" +
+                "            \"loginComCode\": \"305002A0\"\n" +
+                "        },\n" +
+                "        \"prpTitemCar\": {\n" +
+                "            \"licenseNo\": \"晋A345G0\",\n" +
+                "            \"vinNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"engineNo\": \"1237456\",\n" +
+                "            \"carIdentifyType\": \"01\",\n" +
+                "            \"rateCode\": \"20\",\n" +
+                "            \"loanVehicleFlag\": \"0\",\n" +
+                "            \"chgOwnerFlag\": \"0\",\n" +
+                "            \"ciChgOwnerFlag\": \"0\",\n" +
+                "            \"biChgOwnerFlag\": \"0\",\n" +
+                "            \"newDeviceFlag\": \"0\",\n" +
+                "            \"chargingpostFlag\": \"0\",\n" +
+                "            \"productType\": \"0101\",\n" +
+                "            \"ownerAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"relationShip\": \"1\",\n" +
+                "            \"carCertificateDate\": \"\",\n" +
+                "            \"newCaRegistration\": \"1\",\n" +
+                "            \"ocr_invoice_flag\": \"0\",\n" +
+                "            \"idvalidStartDate\": \"2014-02-17\",\n" +
+                "            \"carOwnerNature\": \"0\",\n" +
+                "            \"birthday\": \"1962-07-08\",\n" +
+                "            \"idValidDate\": \"9999-12-31\",\n" +
+                "            \"carOwner\": \"韩云福\",\n" +
+                "            \"carOwnerIdentifyType\": \"01\",\n" +
+                "            \"carOwnerIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"sex\": \"1\",\n" +
+                "            \"carOwnerAgeW\": \"63\",\n" +
+                "            \"ownerAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"newEnergyFlag\": \"0\",\n" +
+                "            \"enrollDateValueStatus\": 1,\n" +
+                "            \"enrollDate\": \"2014-09-03\",\n" +
+                "            \"chgOwnerDate\": \"2014-09-03\",\n" +
+                "            \"useYears\": 11,\n" +
+                "            \"brandName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"carInsuredRelation\": \"1\",\n" +
+                "            \"useNatureCode\": \"8A\",\n" +
+                "            \"maincarKindCode\": \"A\",\n" +
+                "            \"carKindCode\": \"A0\",\n" +
+                "            \"licenseCategory\": \"K33\",\n" +
+                "            \"carTypeCode\": \"1\",\n" +
+                "            \"licenseKindCode\": \"02\",\n" +
+                "            \"countryNature\": \"B\",\n" +
+                "            \"compromisePrice\": \"29960.00\",\n" +
+                "            \"fuelType\": \"0\",\n" +
+                "            \"seatCount\": \"5\",\n" +
+                "            \"tonCount\": \"0.0\",\n" +
+                "            \"exhaustScale\": \"1.997\",\n" +
+                "            \"power\": \"114\",\n" +
+                "            \"completeKerbMass\": \"1495\",\n" +
+                "            \"colorCode\": \"03\",\n" +
+                "            \"pureElectricBatteryType\": \"11\",\n" +
+                "            \"speed\": null,\n" +
+                "            \"powertypecode\": \"D1\",\n" +
+                "            \"carCertificateType\": \"\",\n" +
+                "            \"restricFlag\": \"\",\n" +
+                "            \"carAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"ownerProvinceName\": \"山西省\",\n" +
+                "            \"ownerCityName\": \"太原市\",\n" +
+                "            \"ownerPostName\": \"清徐县\",\n" +
+                "            \"postCode\": \"140100\",\n" +
+                "            \"identiFication\": 0,\n" +
+                "            \"carKindCodeDesc\": \"\",\n" +
+                "            \"licenseColorCode\": \"01\",\n" +
+                "            \"carOwnerRecogNition\": \"韩云福\",\n" +
+                "            \"vinNoRecogNition\": \"LHGCR1640E8037440\",\n" +
+                "            \"engineNoRecogNition\": \"1237456\",\n" +
+                "            \"licenseNoRecogNition\": \"晋A345G0\",\n" +
+                "            \"modelName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"modelNameRecogNition\": \"雅阁牌HG7205AAC4\",\n" +
+                "            \"enrollDateoRecogNition\": \"2014-09-03T00:00:00.000Z\",\n" +
+                "            \"chgOwnerDateRecogNition\": \"2014-09-03T00:00:00.000Z\",\n" +
+                "            \"useNatureCodeNitionNew\": \"非营运\",\n" +
+                "            \"useNatureCodeNition\": \"8A\",\n" +
+                "            \"maincarKindCodeNition\": \"A\",\n" +
+                "            \"carKindCodeNition\": \"A0\",\n" +
+                "            \"licenseKindCodeNition\": \"02\",\n" +
+                "            \"clauseType\": \"F54\",\n" +
+                "            \"natureOfUse\": 0,\n" +
+                "            \"addressRevise\": \"0\",\n" +
+                "            \"carOwnerIdentifyTypeSides\": \"back\",\n" +
+                "            \"carOwnerIdentifyNumberRecogNition\": \"140121196207080534\",\n" +
+                "            \"carAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"birthdayRecogNition\": \"1962-07-08\",\n" +
+                "            \"sexRecogNition\": \"1\",\n" +
+                "            \"ownersAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"carProvinceName\": \"山西省\",\n" +
+                "            \"carCityName\": \"太原市\",\n" +
+                "            \"carPostCode\": \"140100\",\n" +
+                "            \"carOwnerLongFlag\": \"1\",\n" +
+                "            \"vinClick\": \"1\",\n" +
+                "            \"tonCountlb\": 0,\n" +
+                "            \"seatCountlb\": 5,\n" +
+                "            \"exhaustScalelb\": 1.997,\n" +
+                "            \"powerLB\": 1.997,\n" +
+                "            \"newFuelModel\": \"正常缴税\",\n" +
+                "            \"mvSpeed\": null,\n" +
+                "            \"gearBoxtyPecodeName\": \"BS03-CVT\",\n" +
+                "            \"gearBoxtyPecode\": \"BS03\",\n" +
+                "            \"transmissionttype\": \"CVT\",\n" +
+                "            \"stopFlagCodeName\": \"1-停产\",\n" +
+                "            \"stopFlagCode\": \"1\",\n" +
+                "            \"riskTypeCodeName\": \"0-正常车型\",\n" +
+                "            \"riskTypeCode\": \"0\",\n" +
+                "            \"riskTypeName\": \"正常车型\",\n" +
+                "            \"vehicleClassNewCodeName\": \"JC04-中型轿车(B)\",\n" +
+                "            \"vehicleClassNewCode\": \"JC04\",\n" +
+                "            \"vehicleClassNewName\": \"中型轿车(B)\",\n" +
+                "            \"absFlag\": \"有\",\n" +
+                "            \"vehicleSize\": \"4930*1845*1470\",\n" +
+                "            \"newFuelModelName\": \"正常缴税\",\n" +
+                "            \"purchasePrice\": \"149800\",\n" +
+                "            \"brandCode\": \"BTAALD0103\",\n" +
+                "            \"carbrand\": \"雅阁(ACCORD)牌\",\n" +
+                "            \"modelCodeOld\": \"BTAALD0103\",\n" +
+                "            \"vinModel\": \"BTAALD0103\",\n" +
+                "            \"madeFactory\": \"广汽本田汽车有限公司\",\n" +
+                "            \"carUsage\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"vehicleBrand\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"modelCode\": \"BGQEYHUC0008\",\n" +
+                "            \"vehicleCode\": \"BGQEYHUC000871A1\",\n" +
+                "            \"actualValue\": \"29960.0\",\n" +
+                "            \"carName\": \"雅阁HG7205AAC4 舒适版\",\n" +
+                "            \"pureRiskPremium\": \"1\",\n" +
+                "            \"noticeType\": \"HG7205AAC4\",\n" +
+                "            \"ymModelSegmentation\": \"\",\n" +
+                "            \"basePureRiskPremium\": \"1290.596000\",\n" +
+                "            \"certifiCateDate\": null,\n" +
+                "            \"makeDate\": null,\n" +
+                "            \"frameNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"clauseTypeSystem\": \"04\",\n" +
+                "            \"identify\": \"1\"\n" +
+                "        },\n" +
+                "        \"prpTinsured\": {\n" +
+                "            \"appliNationality\": \"中国\",\n" +
+                "            \"insuredNationality\": \"中国\",\n" +
+                "            \"appliNationalityCode\": \"156\",\n" +
+                "            \"insuredNationalityCode\": \"156\",\n" +
+                "            \"appliModifyFlag\": \"\",\n" +
+                "            \"insuredModifyFlag\": \"\",\n" +
+                "            \"appliUnitType\": \"12\",\n" +
+                "            \"insuredUnitType\": \"12\",\n" +
+                "            \"appliInsuredNature\": \"3\",\n" +
+                "            \"appliIDValidDate\": \"9999-12-31\",\n" +
+                "            \"appliIDValidStartDate\": \"2014-02-17\",\n" +
+                "            \"appliLowerViewFlag\": \"0\",\n" +
+                "            \"appliUnitcodeTimes\": null,\n" +
+                "            \"appliLinkmanIDTimes\": null,\n" +
+                "            \"appliShareholdersIDTimes\": null,\n" +
+                "            \"appliLegalRepresentativeIDTimes\": null,\n" +
+                "            \"appliValidDateLongFlag\": \"0\",\n" +
+                "            \"appliUnitcodeTimesLongFlag\": \"0\",\n" +
+                "            \"insuredInsuredNature\": \"3\",\n" +
+                "            \"insuredIDValidDate\": \"9999-12-31\",\n" +
+                "            \"insuredIDValidStartDate\": \"2014-02-17\",\n" +
+                "            \"insuredLowerViewFlag\": \"0\",\n" +
+                "            \"insuredUnitcodeTimes\": null,\n" +
+                "            \"insuredLinkmanIDTimes\": null,\n" +
+                "            \"insuredBeneficialOwnerIDTimes\": null,\n" +
+                "            \"insuredShareholdersIDTimes\": null,\n" +
+                "            \"insuredLegalRepresentativeIDTimes\": null,\n" +
+                "            \"insuredValidDateLongFlag\": \"0\",\n" +
+                "            \"insuredUnitcodeTimesLongFlag\": \"0\",\n" +
+                "            \"contactNumber\": null,\n" +
+                "            \"contactPostAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"contactBank\": null,\n" +
+                "            \"contactAccount\": null,\n" +
+                "            \"appliName\": \"韩云福\",\n" +
+                "            \"appliIdentifyType\": \"01\",\n" +
+                "            \"appliIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"appliBusinessRegistrationNo\": null,\n" +
+                "            \"appliOrgCode\": null,\n" +
+                "            \"appliLinkerIdentifiNumber\": \"\",\n" +
+                "            \"appliSex\": \"1\",\n" +
+                "            \"appliAgeW\": \"63\",\n" +
+                "            \"appliBirthday\": \"1962-07-08\",\n" +
+                "            \"agentidcardtype\": \"01\",\n" +
+                "            \"appliOtherIdentifyType\": \"\",\n" +
+                "            \"appliOtherIdentifyNumber\": \"\",\n" +
+                "            \"appliMobile\": \"17535521256\",\n" +
+                "            \"appliAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"appliAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"appliPostCode\": \"140100\",\n" +
+                "            \"appliclientNatureCode\": \" \",\n" +
+                "            \"appliclientNatureName\": \" \",\n" +
+                "            \"insuredclientNatureCode\": \" \",\n" +
+                "            \"insuredclientNatureName\": \" \",\n" +
+                "            \"appliLinkerName\": \"韩云福\",\n" +
+                "            \"insuredPostCode\": \"140100\",\n" +
+                "            \"appliProvinceName\": \"山西省\",\n" +
+                "            \"appliCityName\": \"太原市\",\n" +
+                "            \"insuredProvinceName\": \"\",\n" +
+                "            \"insuredCityName\": \"\",\n" +
+                "            \"insuredAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"appliLegalBeneficiary\": \"法定\",\n" +
+                "            \"insuredLegalBeneficiary\": \"法定\",\n" +
+                "            \"appliVIPType\": \"00\",\n" +
+                "            \"appliVIPFlag\": \"00\",\n" +
+                "            \"appliBusinesssource\": \"\",\n" +
+                "            \"appliOccupationCode\": \"10201\",\n" +
+                "            \"appliOccupation\": \"国家权力机关负责人\",\n" +
+                "            \"is_Agency_Handling\": \"\",\n" +
+                "            \"userIdentityTypePipe\": \"身份证\",\n" +
+                "            \"insuredIdentifyType\": \"01\",\n" +
+                "            \"insuredName\": \"韩云福\",\n" +
+                "            \"insuredLinkerName\": \"韩云福\",\n" +
+                "            \"insuredIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"insuredSex\": \"1\",\n" +
+                "            \"insuredAddress\": \"\",\n" +
+                "            \"insuredAgeW\": \"63\",\n" +
+                "            \"insuredBirthday\": \"1962-07-08\",\n" +
+                "            \"appliIdentifyTypeSides\": \"face\",\n" +
+                "            \"insuredBusinesssource\": \"\",\n" +
+                "            \"insuredOrgCode\": null,\n" +
+                "            \"insuredBusinessRegistrationNo\": null,\n" +
+                "            \"insuredLinkerIdentifiNumber\": \"\",\n" +
+                "            \"insuredMobile\": \"17535521256\",\n" +
+                "            \"insuredVIPType\": \"00\",\n" +
+                "            \"insuredVIPFlag\": \"00\",\n" +
+                "            \"insuredOccupation\": \"国家权力机关负责人\",\n" +
+                "            \"insuredOccupationCode\": \"10201\",\n" +
+                "            \"agentidcard\": \"140121196207080534\",\n" +
+                "            \"appliPostName\": \"清徐县\",\n" +
+                "            \"appliLegalRepresentative\": \"\",\n" +
+                "            \"appliShareholders\": \"\",\n" +
+                "            \"appliBsinessScope\": \"\",\n" +
+                "            \"appliShareholdersIDType\": \"\",\n" +
+                "            \"appliShareholdersIDNum\": \"\",\n" +
+                "            \"appliLegalRepresentativeIDType\": \"\",\n" +
+                "            \"appliLegalRepresentativeIDNum\": \"\",\n" +
+                "            \"appliLinkmanIDType\": \"\",\n" +
+                "            \"appliLinkmanIDNum\": \"\",\n" +
+                "            \"appliLinkmanNationality\": \"\",\n" +
+                "            \"appliRegisteredCapital\": null,\n" +
+                "            \"appliUnitNature\": \"\",\n" +
+                "            \"insuredLegalRepresentative\": \"\",\n" +
+                "            \"insuredShareholders\": \"\",\n" +
+                "            \"insuredBsinessScope\": \"\",\n" +
+                "            \"insuredShareholdersIDType\": \"\",\n" +
+                "            \"insuredShareholdersIDNum\": \"\",\n" +
+                "            \"insuredLegalRepresentativeIDType\": \"\",\n" +
+                "            \"insuredLegalRepresentativeIDNum\": \"\",\n" +
+                "            \"insuredLinkmanIDType\": \"\",\n" +
+                "            \"insuredLinkmanIDNum\": \"\",\n" +
+                "            \"insuredLinkmanNationality\": \"\",\n" +
+                "            \"insuredBeneficialOwnerName\": \"\",\n" +
+                "            \"insuredBeneficialOwnerNationality\": \"\",\n" +
+                "            \"insuredBeneficialOwnerIDType\": \"\",\n" +
+                "            \"insuredBeneficialOwnerIDNum\": \"\",\n" +
+                "            \"insuredBeneficialOwnerAddress\": \"\",\n" +
+                "            \"insuredRegisteredCapital\": null,\n" +
+                "            \"insuredUnitNature\": \"\"\n" +
+                "        },\n" +
+                "        \"prpDcarModel\": {\n" +
+                "            \"isQueryByVinNo\": true\n" +
+                "        },\n" +
+                "        \"prpTengiNeerList\": [\n" +
+                "            {\n" +
+                "                \"projectname\": \"\",\n" +
+                "                \"projectcode\": \"\"\n" +
+                "            }\n" +
+                "        ],\n" +
+                "        \"ocrOrder\": {\n" +
+                "            \"ocrCarOwner\": \"韩云福\",\n" +
+                "            \"ocrCarOwnerIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"ocrCarAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ocrIdvalidStartDate\": \"2014-02-17T00:00:00.000Z\",\n" +
+                "            \"ocrIdValidDate\": \"2024-02-17T00:00:00.000Z\",\n" +
+                "            \"ocrAppliName\": \"韩云福\",\n" +
+                "            \"ocrAppliIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"ocrAppliAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ocrAppliIDValidStartDate\": \"2014-02-17T00:00:00.000Z\",\n" +
+                "            \"ocrAppliIDValidDate\": \"2024-02-17T00:00:00.000Z\",\n" +
+                "            \"ocrInsuredName\": \"韩云福\",\n" +
+                "            \"ocrInsuredIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"ocrInsuredAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ocrInsuredIDValidStartDate\": \"2014-02-17T00:00:00.000Z\",\n" +
+                "            \"ocrInsuredIDValidDate\": \"2024-02-17T00:00:00.000Z\",\n" +
+                "            \"ocrOwnerAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ocrVinNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"ocrEngineNo\": \"1237456\",\n" +
+                "            \"ocrEnrolLDate\": \"2014-09-03T00:00:00.000Z\",\n" +
+                "            \"ocrChgOwnerDate\": \"2014-09-03T00:00:00.000Z\",\n" +
+                "            \"ocrModelName\": \"雅阁牌HG7205AAC4\",\n" +
+                "            \"ocrUseYears\": 11,\n" +
+                "            \"ocrUseNatureCode\": \"8A\",\n" +
+                "            \"ocrMaincarKindCode\": \"A\",\n" +
+                "            \"ocrCarKindCode\": \"A0\",\n" +
+                "            \"ocrLicenseCategory\": \"K33\",\n" +
+                "            \"ocrLicenseKindCode\": \"02\"\n" +
+                "        },\n" +
+                "        \"agriFlagBC\": \"0\",\n" +
+                "        \"insuredTypeTmp\": \"1\",\n" +
+                "        \"proposalNO\": \"30\",\n" +
+                "        \"prpTChannel\": {\n" +
+                "            \"agentCode\": \"\",\n" +
+                "            \"saleGentType\": \"\",\n" +
+                "            \"agentIdNo\": \"\"\n" +
+                "        },\n" +
+                "        \"prptBeneficialOwnerVos\": [],\n" +
+                "        \"prptShareholderVos\": [],\n" +
+                "        \"derailleurType\": \"雅阁\",\n" +
+                "        \"carAppliTypeTmp\": 1,\n" +
+                "        \"loginComCode\": \"305002A0\",\n" +
+                "        \"feeandDiscountFlag\": \"0\"\n" +
+                "    },\n" +
+                "    \"basePartVo\": {\n" +
+                "        \"editType\": \"EditType_ProposalInput\",\n" +
+                "        \"inputType\": \"34\",\n" +
+                "        \"inputSource\": \"\",\n" +
+                "        \"includeFilePathType\": \"\",\n" +
+                "        \"loginComCode\": \"305002A0\",\n" +
+                "        \"loginComCodeSub\": \"30\",\n" +
+                "        \"loginRiskCode\": \"0500\",\n" +
+                "        \"userCode\": \"W3000399\"\n" +
+                "    },\n" +
+                "    \"bi\": {\n" +
+                "        \"prpDclauseRule\": [],\n" +
+                "        \"inintFlag\": 1,\n" +
+                "        \"prpTmain\": {\n" +
+                "            \"startDate\": \"2026-05-14\",\n" +
+                "            \"endDate\": \"2027-05-13\",\n" +
+                "            \"startHour\": 0,\n" +
+                "            \"endHour\": 24,\n" +
+                "            \"startMinute\": 0,\n" +
+                "            \"endMinute\": 0,\n" +
+                "            \"period0530\": 30,\n" +
+                "            \"immeValidStartDate\": \"\",\n" +
+                "            \"immeValidEndDate\": \"\",\n" +
+                "            \"feeandDiscountFlag\": \"0\",\n" +
+                "            \"saleChange\": \"0\",\n" +
+                "            \"immeValiFlag0518\": 0,\n" +
+                "            \"startDate0518\": \"2026-05-14T00:28:06.679Z\",\n" +
+                "            \"endDate0518\": \"2027-05-13T00:00:00.000Z\",\n" +
+                "            \"immeValidStartDate0518\": \"2026-05-13T00:28:06.679Z\",\n" +
+                "            \"immeValidEndDate0518\": \"2027-05-13T00:28:06.679Z\",\n" +
+                "            \"startHour0518\": 0,\n" +
+                "            \"endHour0518\": 24,\n" +
+                "            \"startMinute0518\": 0,\n" +
+                "            \"endMinute0518\": 0,\n" +
+                "            \"startDateFlag0518\": 0,\n" +
+                "            \"immeValiFlag0521\": 0,\n" +
+                "            \"startDate0521\": \"2026-05-14T00:28:06.679Z\",\n" +
+                "            \"endDate0521\": \"2027-05-13T00:00:00.000Z\",\n" +
+                "            \"immeValidStartDate0521\": \"2026-05-13T00:28:06.679Z\",\n" +
+                "            \"immeValidEndDate0521\": \"2027-05-13T00:28:06.679Z\",\n" +
+                "            \"startHour0521\": 0,\n" +
+                "            \"endHour0521\": 24,\n" +
+                "            \"startMinute0521\": 0,\n" +
+                "            \"endMinute0521\": 0,\n" +
+                "            \"startDateFlag0521\": 0,\n" +
+                "            \"immeValiFlag0530\": 0,\n" +
+                "            \"startDate0530\": \"2026-05-14T00:28:06.679Z\",\n" +
+                "            \"endDate0530\": \"2027-05-13T00:00:00.000Z\",\n" +
+                "            \"immeValidStartDate0530\": \"2026-05-13T00:28:06.679Z\",\n" +
+                "            \"immeValidEndDate0530\": \"2027-05-13T00:28:06.679Z\",\n" +
+                "            \"startHour0530\": 0,\n" +
+                "            \"endHour0530\": 24,\n" +
+                "            \"startMinute0530\": 0,\n" +
+                "            \"endMinute0530\": 0,\n" +
+                "            \"startDateFlag0530\": 0,\n" +
+                "            \"answer\": \"\",\n" +
+                "            \"expectDiscount\": \"\",\n" +
+                "            \"signDiscount\": \"\",\n" +
+                "            \"sumLowerRate\": \"\",\n" +
+                "            \"firstProposalDate\": \"2026-05-13 08:29:05\",\n" +
+                "            \"renewalFlag\": \"\",\n" +
+                "            \"sumPremium\": \"\",\n" +
+                "            \"inputDate\": \"2026-05-13\",\n" +
+                "            \"signDate\": \"2026-05-13\",\n" +
+                "            \"immeValiFlag\": \"\"\n" +
+                "        },\n" +
+                "        \"prpTmainRate\": {},\n" +
+                "        \"prpTitemCar\": {\n" +
+                "            \"termsSystem\": \"01\",\n" +
+                "            \"clauseTypeSystem\": \"04\"\n" +
+                "        },\n" +
+                "        \"ciInsureDemand\": {\n" +
+                "            \"demandNo\": \"\",\n" +
+                "            \"checkCode\": \"\"\n" +
+                "        },\n" +
+                "        \"ciInsureDemandPay\": [],\n" +
+                "        \"ciInsureDemandWarningClaim\": [],\n" +
+                "        \"prpTenGearAllocationFeeList\": [],\n" +
+                "        \"prpTchargingPostData\": [],\n" +
+                "        \"prptitemkindList\": [\n" +
+                "            {\n" +
+                "                \"checked\": true,\n" +
+                "                \"kindCode\": \"20B\",\n" +
+                "                \"kindName\": \"机动车第三者责任保险\",\n" +
+                "                \"itemKindNo\": \"33\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"startDate\": \"2026-05-14\",\n" +
+                "                \"endDate\": \"2027-05-13\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"amount\": \"2000000\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"value\": \"\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"unitAmount\": \"\",\n" +
+                "                \"quantity\": \"\",\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"flag\": \" 1  1 \",\n" +
+                "                \"mainKindFlag\": \"M\",\n" +
+                "                \"isMedical\": true,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"endHour\": 0,\n" +
+                "                \"endMinute\": 0\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"checked\": true,\n" +
+                "                \"kindCode\": \"20D3\",\n" +
+                "                \"kindName\": \"机动车车上人员责任保险(驾驶员)\",\n" +
+                "                \"itemKindNo\": \"35\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"startDate\": \"2026-05-14\",\n" +
+                "                \"endDate\": \"2027-05-13\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"amount\": 10000,\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"value\": \"\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"unitAmount\": \"10000\",\n" +
+                "                \"quantity\": 1,\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"flag\": \" 1  1 \",\n" +
+                "                \"mainKindFlag\": \"M\",\n" +
+                "                \"isMedical\": 0,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"endHour\": 0,\n" +
+                "                \"endMinute\": 0\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"checked\": true,\n" +
+                "                \"kindCode\": \"20D4\",\n" +
+                "                \"kindName\": \"机动车车上人员责任保险(乘客)\",\n" +
+                "                \"itemKindNo\": \"37\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"startDate\": \"2026-05-14\",\n" +
+                "                \"endDate\": \"2027-05-13\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"amount\": 40000,\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"value\": \"\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"unitAmount\": \"10000\",\n" +
+                "                \"quantity\": 4,\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"flag\": \" 1  1 \",\n" +
+                "                \"mainKindFlag\": \"M\",\n" +
+                "                \"isMedical\": 0,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"endHour\": 0,\n" +
+                "                \"endMinute\": 0\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"checked\": true,\n" +
+                "                \"kindCode\": \"20Z1\",\n" +
+                "                \"kindName\": \"道路救援服务特约条款\",\n" +
+                "                \"itemKindNo\": \"57\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"startDate\": \"2026-05-14\",\n" +
+                "                \"endDate\": \"2027-05-13\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"amount\": \"0\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"value\": \"\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"unitAmount\": \"\",\n" +
+                "                \"quantity\": 22,\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"flag\": \" 2  1 \",\n" +
+                "                \"mainKindFlag\": \"S\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"endHour\": 0,\n" +
+                "                \"endMinute\": 0\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"checked\": true,\n" +
+                "                \"kindCode\": \"20Z2\",\n" +
+                "                \"kindName\": \"车辆安全检测特约条款\",\n" +
+                "                \"itemKindNo\": \"58\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"startDate\": \"2026-05-14\",\n" +
+                "                \"endDate\": \"2027-05-13\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"amount\": \"0\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"value\": \"\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"unitAmount\": \"\",\n" +
+                "                \"quantity\": 1,\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"flag\": \" 2  1 \",\n" +
+                "                \"mainKindFlag\": \"S\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"endHour\": 0,\n" +
+                "                \"endMinute\": 0\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"checked\": true,\n" +
+                "                \"kindCode\": \"20Z4\",\n" +
+                "                \"kindName\": \"代为送检服务特约条款\",\n" +
+                "                \"itemKindNo\": \"38\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"startDate\": \"2026-05-14\",\n" +
+                "                \"endDate\": \"2027-05-13\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"amount\": \"0\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"value\": \"\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"unitAmount\": \"\",\n" +
+                "                \"quantity\": 1,\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"flag\": \" 2  1 \",\n" +
+                "                \"mainKindFlag\": \"S\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"endHour\": 0,\n" +
+                "                \"endMinute\": 0\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"checked\": true,\n" +
+                "                \"kindCode\": \"20Y\",\n" +
+                "                \"kindName\": \"附加医保外医疗费用责任险-三者险\",\n" +
+                "                \"itemKindNo\": \"54\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"startDate\": \"2026-05-14\",\n" +
+                "                \"endDate\": \"2027-05-13\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"amount\": \"0\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"value\": \"\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"unitAmount\": \"\",\n" +
+                "                \"quantity\": \"\",\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"flag\": \" 2  0 \",\n" +
+                "                \"mainKindFlag\": \"S\",\n" +
+                "                \"shareSumLimitSign\": 1,\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"endHour\": 0,\n" +
+                "                \"endMinute\": 0\n" +
+                "            }\n" +
+                "        ],\n" +
+                "        \"prptengageList\": [],\n" +
+                "        \"prpDclause\": [],\n" +
+                "        \"prpTcarDeviceCount\": {},\n" +
+                "        \"prpTrenewal\": [],\n" +
+                "        \"queryExpensePowerOutputVo\": {},\n" +
+                "        \"ciInsureValid\": {},\n" +
+                "        \"prpDagentVo\": {},\n" +
+                "        \"commercialInsurances\": [],\n" +
+                "        \"blPrpTRealNameVerification\": [],\n" +
+                "        \"prpTLastCarShipTax\": {},\n" +
+                "        \"duplicateInsuranceItemsSchema\": {},\n" +
+                "        \"termsSystem\": \"04\",\n" +
+                "        \"inputRisk\": 1,\n" +
+                "        \"inputRisk0518\": 1,\n" +
+                "        \"inputRisk0521\": 0,\n" +
+                "        \"inputRisk0530\": 0,\n" +
+                "        \"shortRate\": 100,\n" +
+                "        \"prpTChannel\": {\n" +
+                "            \"agentCode\": \"\",\n" +
+                "            \"saleGentType\": \"\",\n" +
+                "            \"agentIdNo\": \"\"\n" +
+                "        },\n" +
+                "        \"calculateFlagBI\": \"1\"\n" +
+                "    },\n" +
+                "    \"ci\": {\n" +
+                "        \"prpDclauseRule\": [],\n" +
+                "        \"showCarShip\": true,\n" +
+                "        \"carShipTaxInfoInit\": 1,\n" +
+                "        \"prpTmain\": {\n" +
+                "            \"startDate\": \"2026-05-31\",\n" +
+                "            \"endDate\": \"2027-05-30\",\n" +
+                "            \"startMinute\": 0,\n" +
+                "            \"endMinute\": 0,\n" +
+                "            \"immeValidStartDate\": \"\",\n" +
+                "            \"immeValidEndDate\": \"\",\n" +
+                "            \"immeValiFlag0507\": \"\",\n" +
+                "            \"startDate0507\": \"2026-05-30T16:00:00.000Z\",\n" +
+                "            \"endDate0507\": \"2027-05-29T16:00:00.000Z\",\n" +
+                "            \"immeValidStartDate0507\": \"2026-05-30T16:00:00.000Z\",\n" +
+                "            \"immeValidEndDate0507\": \"2027-05-29T16:00:00.000Z\",\n" +
+                "            \"startHour0507\": 0,\n" +
+                "            \"endHour0507\": 24,\n" +
+                "            \"startMinute0507\": 0,\n" +
+                "            \"endMinute0507\": 0,\n" +
+                "            \"startDateFlag0507\": 0,\n" +
+                "            \"immeValiFlag0507t1\": 0,\n" +
+                "            \"startDate0507t1\": \"2026-05-14T00:28:06.679Z\",\n" +
+                "            \"endDate0507t1\": \"2027-05-13T00:00:00.000Z\",\n" +
+                "            \"immeValidStartDate0507t1\": \"2026-05-13T00:28:06.679Z\",\n" +
+                "            \"immeValidEndDate0507t1\": \"2027-05-13T00:28:06.679Z\",\n" +
+                "            \"startMinute0507t1\": 0,\n" +
+                "            \"endMinute0507t1\": 0,\n" +
+                "            \"startDateFlag0507t1\": 0,\n" +
+                "            \"answer\": \"\",\n" +
+                "            \"saleChange\": \"0\",\n" +
+                "            \"firstProposalDate\": \"2026-05-13 08:29:05\",\n" +
+                "            \"renewalFlag\": \"\",\n" +
+                "            \"sumPremium\": \"\",\n" +
+                "            \"biAnswer\": \"\",\n" +
+                "            \"startHour\": 0,\n" +
+                "            \"endHour\": 24,\n" +
+                "            \"immeValiFlag\": \"\",\n" +
+                "            \"inputDate\": \"2026-05-13\",\n" +
+                "            \"signDate\": \"2026-05-13\"\n" +
+                "        },\n" +
+                "        \"prpTitemCar\": {\n" +
+                "            \"clauseTypeSystem\": \"04\"\n" +
+                "        },\n" +
+                "        \"prpTmainRate\": {},\n" +
+                "        \"prptitemkindList\": [\n" +
+                "            {\n" +
+                "                \"kindCode\": \"BZ\",\n" +
+                "                \"kindName\": \"机动车交通事故责任强制保险\",\n" +
+                "                \"itemKindNo\": \"0\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"calculateFlag\": \"N\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"isDeductible\": true,\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"amount\": \"\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"0\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"flag\": \" 2  03\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"endHour\": 0,\n" +
+                "                \"endMinute\": 0\n" +
+                "            }\n" +
+                "        ],\n" +
+                "        \"prptengageList\": [],\n" +
+                "        \"prpDclause\": [],\n" +
+                "        \"prpTitemCarExt\": {},\n" +
+                "        \"ciInsureDemand\": {\n" +
+                "            \"demandNo\": \"\",\n" +
+                "            \"checkCode\": \"\"\n" +
+                "        },\n" +
+                "        \"ciInsureDemandPay\": [],\n" +
+                "        \"ciInsureDemandLoss\": [],\n" +
+                "        \"ciInsureDemandWarningClaim\": [],\n" +
+                "        \"ciCarShipTaxQGDemandSchema\": {},\n" +
+                "        \"cICarshipTaxDemandSchema\": {},\n" +
+                "        \"prpTcarshipTax\": {\n" +
+                "            \"calLateFeeFlag\": \"\",\n" +
+                "            \"calPayBalanceFeeFlag\": \"\",\n" +
+                "            \"extendChar2\": \"K33\",\n" +
+                "            \"lateFeeStartDate\": null,\n" +
+                "            \"hisPolicyEndDate\": null,\n" +
+                "            \"payStartDate\": null,\n" +
+                "            \"payEndDate\": null,\n" +
+                "            \"taxDocumentDate\": null,\n" +
+                "            \"taxpayerName\": \"韩云福\",\n" +
+                "            \"taxpayerIdentifier\": \"140121196207080534\",\n" +
+                "            \"taxRelifFlag\": \"1\",\n" +
+                "            \"calculateMode\": \"1\",\n" +
+                "            \"completeKerbMass\": \"1495\",\n" +
+                "            \"taxItemCode\": \"A\",\n" +
+                "            \"taxItemName\": \"载客汽车\",\n" +
+                "            \"taxItemDetailCode\": \"A1\",\n" +
+                "            \"taxItemDetailName\": \"小型客车\",\n" +
+                "            \"taxUnit\": \"1\",\n" +
+                "            \"sumPayTax\": \"\",\n" +
+                "            \"certificateDate\": null\n" +
+                "        },\n" +
+                "        \"prpTrenewal\": [],\n" +
+                "        \"queryExpensePowerOutputVo\": {},\n" +
+                "        \"ciInsureValid\": {},\n" +
+                "        \"trafficInsurance\": {},\n" +
+                "        \"blPrpTRealNameVerification\": [],\n" +
+                "        \"prpTLastCarShipTax\": {},\n" +
+                "        \"duplicateInsuranceItemsSchema\": {},\n" +
+                "        \"image\": {\n" +
+                "            \"changingThisBreaksApplicationSecurity\": \"data:image/png;base64,\"\n" +
+                "        },\n" +
+                "        \"inputRisk\": 1,\n" +
+                "        \"inputRisk0507\": 1,\n" +
+                "        \"inputRisk0507t1\": 0,\n" +
+                "        \"shortRate\": 100,\n" +
+                "        \"prpTChannel\": {\n" +
+                "            \"agentCode\": \"\",\n" +
+                "            \"saleGentType\": \"\",\n" +
+                "            \"agentIdNo\": \"\"\n" +
+                "        },\n" +
+                "        \"calculateFlagCI\": \"1\"\n" +
+                "    }\n" +
+                "}";
+
+        String json2 = "{\n" +
+                "    \"basePartVo\": {\n" +
+                "        \"editType\": \"EditType_ProposalInput\",\n" +
+                "        \"includeFilePathType\": \"\",\n" +
+                "        \"inputSource\": \"\",\n" +
+                "        \"inputType\": \"34\",\n" +
+                "        \"loginComCode\": \"305002A0\",\n" +
+                "        \"loginComCodeSub\": \"30\",\n" +
+                "        \"loginRiskCode\": \"0500\",\n" +
+                "        \"userCode\": \"W3000399\"\n" +
+                "    },\n" +
+                "    \"bc\": {\n" +
+                "        \"agriFlagBC\": \"0\",\n" +
+                "        \"baseInfoInit\": 2,\n" +
+                "        \"derailleurType\": \"雅阁\",\n" +
+                "        \"feeandDiscountFlag\": \"0\",\n" +
+                "        \"insuredTypeTmp\": 1,\n" +
+                "        \"loginComCode\": \"305002A0\",\n" +
+                "        \"ocrOrder\": {\n" +
+                "            \"ocrAppliAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ocrAppliIDValidDate\": \"2044-02-17\",\n" +
+                "            \"ocrAppliIDValidStartDate\": \"2024-02-17\",\n" +
+                "            \"ocrAppliIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"ocrAppliName\": \"韩云福\",\n" +
+                "            \"ocrCarAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ocrCarKindCode\": \"A0\",\n" +
+                "            \"ocrCarOwner\": \"韩云福\",\n" +
+                "            \"ocrCarOwnerIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"ocrChgOwnerDate\": \"2014-09-03\",\n" +
+                "            \"ocrEngineNo\": \"1237456\",\n" +
+                "            \"ocrEnrolLDate\": \"2014-09-03\",\n" +
+                "            \"ocrIdValidDate\": \"2044-02-17\",\n" +
+                "            \"ocrIdvalidStartDate\": \"2024-02-17\",\n" +
+                "            \"ocrInsuredAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ocrInsuredIDValidDate\": \"2044-02-17\",\n" +
+                "            \"ocrInsuredIDValidStartDate\": \"2024-02-17\",\n" +
+                "            \"ocrInsuredIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"ocrInsuredName\": \"韩云福\",\n" +
+                "            \"ocrLicenseCategory\": \"K33\",\n" +
+                "            \"ocrLicenseKindCode\": \"01\",\n" +
+                "            \"ocrMaincarKindCode\": \"A\",\n" +
+                "            \"ocrModelName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"ocrOwnerAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ocrUseNatureCode\": \"8A\",\n" +
+                "            \"ocrUseYears\": 11,\n" +
+                "            \"ocrVinNo\": \"LHGCR1640E8037440\"\n" +
+                "        },\n" +
+                "        \"proposalNO\": \"30\",\n" +
+                "        \"prpDcarModel\": {\n" +
+                "            \"isQueryByVinNo\": true\n" +
+                "        },\n" +
+                "        \"prpTChannel\": {},\n" +
+                "        \"prpTengiNeerList\": [\n" +
+                "            {\n" +
+                "                \"projectcode\": \"\",\n" +
+                "                \"projectname\": \"\"\n" +
+                "            }\n" +
+                "        ],\n" +
+                "        \"prpTinsured\": {\n" +
+                "            \"agentidcardtype\": \"01\",\n" +
+                "            \"appliAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"appliAgeW\": \"63\",\n" +
+                "            \"appliAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"appliBirthday\": \"1962-07-08\",\n" +
+                "            \"appliBsinessScope\": \"\",\n" +
+                "            \"appliBusinesssource\": \"\",\n" +
+                "            \"appliCityName\": \"太原市\",\n" +
+                "            \"appliIDValidDate\": \"2044-02-17\",\n" +
+                "            \"appliIDValidStartDate\": \"2024-02-17\",\n" +
+                "            \"appliIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"appliIdentifyType\": \"01\",\n" +
+                "            \"appliIdentifyTypeSides\": \"back\",\n" +
+                "            \"appliInsuredNature\": \"3\",\n" +
+                "            \"appliLegalBeneficiary\": \"法定\",\n" +
+                "            \"appliLegalRepresentative\": \"\",\n" +
+                "            \"appliLegalRepresentativeIDNum\": \"\",\n" +
+                "            \"appliLegalRepresentativeIDType\": \"\",\n" +
+                "            \"appliLinkerIdentifiNumber\": \"\",\n" +
+                "            \"appliLinkerName\": \"韩云福\",\n" +
+                "            \"appliLinkmanIDNum\": \"\",\n" +
+                "            \"appliLinkmanIDType\": \"\",\n" +
+                "            \"appliLinkmanNationality\": \"\",\n" +
+                "            \"appliLowerViewFlag\": \"0\",\n" +
+                "            \"appliMobile\": \"17536985212\",\n" +
+                "            \"appliModifyFlag\": \"\",\n" +
+                "            \"appliName\": \"韩云福\",\n" +
+                "            \"appliNationality\": \"中国\",\n" +
+                "            \"appliNationalityCode\": \"156\",\n" +
+                "            \"appliOccupation\": \"中国共产党机关负责人\",\n" +
+                "            \"appliOccupationCode\": \"80000\",\n" +
+                "            \"appliOtherIdentifyNumber\": \"\",\n" +
+                "            \"appliOtherIdentifyType\": \"\",\n" +
+                "            \"appliPostCode\": \"140100\",\n" +
+                "            \"appliPostName\": \"清徐县\",\n" +
+                "            \"appliProvinceName\": \"山西省\",\n" +
+                "            \"appliSex\": \"1\",\n" +
+                "            \"appliShareholders\": \"\",\n" +
+                "            \"appliShareholdersIDNum\": \"\",\n" +
+                "            \"appliShareholdersIDType\": \"\",\n" +
+                "            \"appliUnitNature\": \"\",\n" +
+                "            \"appliUnitType\": \"12\",\n" +
+                "            \"appliUnitcodeTimesLongFlag\": \"0\",\n" +
+                "            \"appliVIPFlag\": \"00\",\n" +
+                "            \"appliVIPType\": \"00\",\n" +
+                "            \"appliclientNatureCode\": \" \",\n" +
+                "            \"appliclientNatureName\": \" \",\n" +
+                "            \"birthday\": \"1962-07-08\",\n" +
+                "            \"insuredAgeW\": \"63\",\n" +
+                "            \"insuredAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"insuredBeneficialOwnerAddress\": \"\",\n" +
+                "            \"insuredBeneficialOwnerIDNum\": \"\",\n" +
+                "            \"insuredBeneficialOwnerIDType\": \"\",\n" +
+                "            \"insuredBeneficialOwnerName\": \"\",\n" +
+                "            \"insuredBeneficialOwnerNationality\": \"\",\n" +
+                "            \"insuredBirthday\": \"1962-07-08\",\n" +
+                "            \"insuredBsinessScope\": \"\",\n" +
+                "            \"insuredCName\": \"韩云福\",\n" +
+                "            \"insuredCityName\": \"太原市\",\n" +
+                "            \"insuredIDValidDate\": \"2044-02-17\",\n" +
+                "            \"insuredIDValidStartDate\": \"2024-02-17\",\n" +
+                "            \"insuredIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"insuredIdentifyType\": \"01\",\n" +
+                "            \"insuredInsuredNature\": \"3\",\n" +
+                "            \"insuredLegalBeneficiary\": \"法定\",\n" +
+                "            \"insuredLegalRepresentative\": \"\",\n" +
+                "            \"insuredLegalRepresentativeIDNum\": \"\",\n" +
+                "            \"insuredLegalRepresentativeIDType\": \"\",\n" +
+                "            \"insuredLinkerIdentifiNumber\": \"\",\n" +
+                "            \"insuredLinkerName\": \"韩云福\",\n" +
+                "            \"insuredLinkmanIDNum\": \"\",\n" +
+                "            \"insuredLinkmanIDType\": \"\",\n" +
+                "            \"insuredLinkmanNationality\": \"\",\n" +
+                "            \"insuredLowerViewFlag\": \"0\",\n" +
+                "            \"insuredMobile\": \"17536985212\",\n" +
+                "            \"insuredModifyFlag\": \"\",\n" +
+                "            \"insuredName\": \"韩云福\",\n" +
+                "            \"insuredNationality\": \"中国\",\n" +
+                "            \"insuredNationalityCode\": \"156\",\n" +
+                "            \"insuredOccupation\": \"中国共产党机关负责人\",\n" +
+                "            \"insuredOccupationCode\": \"80000\",\n" +
+                "            \"insuredPostCode\": \"140100\",\n" +
+                "            \"insuredPostName\": \"清徐县\",\n" +
+                "            \"insuredProvinceName\": \"山西省\",\n" +
+                "            \"insuredSex\": \"1\",\n" +
+                "            \"insuredShareholders\": \"\",\n" +
+                "            \"insuredShareholdersIDNum\": \"\",\n" +
+                "            \"insuredShareholdersIDType\": \"\",\n" +
+                "            \"insuredUnitNature\": \"\",\n" +
+                "            \"insuredUnitPhone\": \"17536985212\",\n" +
+                "            \"insuredUnitType\": \"12\",\n" +
+                "            \"insuredUnitcodeTimesLongFlag\": \"0\",\n" +
+                "            \"insuredVIPFlag\": \"00\",\n" +
+                "            \"insuredVIPType\": \"00\",\n" +
+                "            \"insuredclientNatureCode\": \" \",\n" +
+                "            \"insuredclientNatureName\": \" \"\n" +
+                "        },\n" +
+                "        \"prpTitemCar\": {\n" +
+                "            \"IDValidDate\": \"2044-02-17\",\n" +
+                "            \"absFlag\": \"有\",\n" +
+                "            \"actualValue\": \"29960.0\",\n" +
+                "            \"addressRevise\": \"0\",\n" +
+                "            \"basePureRiskPremium\": \"1290.596000\",\n" +
+                "            \"biChgOwnerFlag\": \"0\",\n" +
+                "            \"birthday\": \"1962-07-08\",\n" +
+                "            \"birthdayRecogNition\": \"1962-07-08\",\n" +
+                "            \"brandCode\": \"BTAALD0103\",\n" +
+                "            \"brandName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"carAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"carAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"carCertificateDate\": \"\",\n" +
+                "            \"carCertificateType\": \"\",\n" +
+                "            \"carCityName\": \"太原市\",\n" +
+                "            \"carIdentifyType\": \"01\",\n" +
+                "            \"carInsuredRelation\": \"1\",\n" +
+                "            \"carKindCode\": \"A0\",\n" +
+                "            \"carKindCodeDesc\": \"\",\n" +
+                "            \"carKindCodeNition\": \"A0\",\n" +
+                "            \"carName\": \"雅阁HG7205AAC4 舒适版\",\n" +
+                "            \"carOwner\": \"韩云福\",\n" +
+                "            \"carOwnerAgeW\": \"63\",\n" +
+                "            \"carOwnerIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"carOwnerIdentifyNumberRecogNition\": \"140121196207080534\",\n" +
+                "            \"carOwnerIdentifyType\": \"01\",\n" +
+                "            \"carOwnerIdentifyTypeSides\": \"back\",\n" +
+                "            \"carOwnerNature\": \"0\",\n" +
+                "            \"carOwnerRecogNition\": \"韩云福\",\n" +
+                "            \"carPostCode\": \"140100\",\n" +
+                "            \"carProvinceName\": \"山西省\",\n" +
+                "            \"carTypeCode\": \"1\",\n" +
+                "            \"carUsage\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"carbrand\": \"雅阁(ACCORD)牌\",\n" +
+                "            \"certifiCateDate\": \"\",\n" +
+                "            \"chargingpostFlag\": \"0\",\n" +
+                "            \"chgOwnerDate\": \"2014-09-03\",\n" +
+                "            \"chgOwnerDateRecogNition\": \"2014-09-03\",\n" +
+                "            \"chgOwnerFlag\": \"0\",\n" +
+                "            \"ciChgOwnerFlag\": \"0\",\n" +
+                "            \"clauseType\": \"F54\",\n" +
+                "            \"clauseTypeSystem\": \"04\",\n" +
+                "            \"colorCode\": \"03\",\n" +
+                "            \"comlossCondition\": \"太原市\",\n" +
+                "            \"completeKerbMass\": \"1495\",\n" +
+                "            \"compromisePrice\": \"29960.0\",\n" +
+                "            \"countryNature\": \"B\",\n" +
+                "            \"engineNo\": \"1237456\",\n" +
+                "            \"engineNoRecogNition\": \"1237456\",\n" +
+                "            \"enrollDate\": \"2014-09-03\",\n" +
+                "            \"enrollDateValueStatus\": 1,\n" +
+                "            \"enrollDateoRecogNition\": \"2014-09-03\",\n" +
+                "            \"exhaustScale\": \"1.997\",\n" +
+                "            \"exhaustScalelb\": 1.997,\n" +
+                "            \"frameNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"fuelType\": \"0\",\n" +
+                "            \"gearBoxtyPecode\": \"BS03\",\n" +
+                "            \"gearBoxtyPecodeName\": \"BS03-CVT\",\n" +
+                "            \"idValidDate\": \"2044-02-17\",\n" +
+                "            \"identiFication\": 1,\n" +
+                "            \"identify\": \"1\",\n" +
+                "            \"idvalidStartDate\": \"2024-02-17\",\n" +
+                "            \"licenseCategory\": \"K33\",\n" +
+                "            \"licenseColorCode\": \"01\",\n" +
+                "            \"licenseKindCode\": \"01\",\n" +
+                "            \"licenseKindCodeNition\": \"01\",\n" +
+                "            \"licenseNo\": \"晋A345G0\",\n" +
+                "            \"licenseNoRecogNition\": \"晋A345G0\",\n" +
+                "            \"loanVehicleFlag\": \"0\",\n" +
+                "            \"lossCondition\": \"山西省\",\n" +
+                "            \"lossConditionCode\": \"Z278230500010001\",\n" +
+                "            \"madeFactory\": \"广汽本田汽车有限公司\",\n" +
+                "            \"maincarKindCode\": \"A\",\n" +
+                "            \"maincarKindCodeNition\": \"A\",\n" +
+                "            \"makeDate\": \"\",\n" +
+                "            \"modelCode\": \"BGQEYHUC0008\",\n" +
+                "            \"modelCodeOld\": \"BTAALD0103\",\n" +
+                "            \"modelName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"modelNameRecogNition\": \"\",\n" +
+                "            \"natureOfUse\": 1,\n" +
+                "            \"newCaRegistration\": \"1\",\n" +
+                "            \"newDeviceFlag\": \"0\",\n" +
+                "            \"newEnergyFlag\": \"0\",\n" +
+                "            \"newFuelModel\": \"0\",\n" +
+                "            \"newFuelModelName\": \"正常缴税\",\n" +
+                "            \"noticeType\": \"HG7205AAC4\",\n" +
+                "            \"ocr_invoice_flag\": \"0\",\n" +
+                "            \"ownerAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ownerAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"ownerCityName\": \"太原市\",\n" +
+                "            \"ownerPostName\": \"清徐县\",\n" +
+                "            \"ownerProvinceName\": \"山西省\",\n" +
+                "            \"ownersAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"postCode\": \"140100\",\n" +
+                "            \"power\": \"114\",\n" +
+                "            \"powerLB\": 1.997,\n" +
+                "            \"powertypecode\": \"D1\",\n" +
+                "            \"productType\": \"0101\",\n" +
+                "            \"proposalNo\": \"\",\n" +
+                "            \"purchasePrice\": \"149800\",\n" +
+                "            \"pureElectricBatteryType\": \"11\",\n" +
+                "            \"pureRiskPremium\": \"1\",\n" +
+                "            \"rateCode\": \"20\",\n" +
+                "            \"relationShip\": \"1\",\n" +
+                "            \"restricFlag\": \"\",\n" +
+                "            \"riskTypeCode\": \"0\",\n" +
+                "            \"riskTypeCodeName\": \"0-正常车型\",\n" +
+                "            \"riskTypeName\": \"正常车型\",\n" +
+                "            \"seatCount\": \"5\",\n" +
+                "            \"seatCountlb\": 5,\n" +
+                "            \"sex\": \"1\",\n" +
+                "            \"sexRecogNition\": \"1\",\n" +
+                "            \"speed\": \"200\",\n" +
+                "            \"stopFlagCode\": \"1\",\n" +
+                "            \"stopFlagCodeName\": \"1-停产\",\n" +
+                "            \"termsSystem\": \"04\",\n" +
+                "            \"tonCount\": \"0\",\n" +
+                "            \"tonCountlb\": \"0\",\n" +
+                "            \"tractionTonCount\": \"\",\n" +
+                "            \"transmissionttype\": \"CVT\",\n" +
+                "            \"useNatureCode\": \"8A\",\n" +
+                "            \"useNatureCodeNition\": \"8A\",\n" +
+                "            \"useNatureCodeNitionNew\": \"\",\n" +
+                "            \"useYears\": 11,\n" +
+                "            \"vehicleBrand\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"vehicleClassNewCode\": \"JC04\",\n" +
+                "            \"vehicleClassNewCodeName\": \"JC04-中型轿车(B)\",\n" +
+                "            \"vehicleClassNewName\": \"中型轿车(B)\",\n" +
+                "            \"vehicleCode\": \"BGQEYHUC000871A1\",\n" +
+                "            \"vehicleSize\": \"4930*1845*1470\",\n" +
+                "            \"vinClick\": \"1\",\n" +
+                "            \"vinModel\": \"BTAALD0103\",\n" +
+                "            \"vinNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"vinNoRecogNition\": \"LHGCR1640E8037440\",\n" +
+                "            \"ymModelSegmentation\": \"\"\n" +
+                "        },\n" +
+                "        \"prpTmain\": {\n" +
+                "            \"agentCanalCode\": \" \",\n" +
+                "            \"agentCode\": \"Z278230500010001\",\n" +
+                "            \"agentName\": \"太原天勤保险代理有限公司\",\n" +
+                "            \"agreementNo\": \"Z278230500010001-005\",\n" +
+                "            \"amlCode\": \"\",\n" +
+                "            \"appliFactorFlag\": \"\",\n" +
+                "            \"arbitboardName\": \"\",\n" +
+                "            \"argueSolution\": \"1\",\n" +
+                "            \"businessNature\": \"2\",\n" +
+                "            \"channeltypeone\": \"60\",\n" +
+                "            \"channeltypeoneName\": \"个客发展\",\n" +
+                "            \"channeltypetwo\": \"0101\",\n" +
+                "            \"channeltypetwoName\": \"经代\",\n" +
+                "            \"classIdentifier\": \"00\",\n" +
+                "            \"comCode\": \"305002A0\",\n" +
+                "            \"comName\": \"太原营业大区科政保营业部经代业务部\",\n" +
+                "            \"commissionerNo\": \"\",\n" +
+                "            \"cooprOutlets\": \"\",\n" +
+                "            \"cooprOutletsName\": \"\",\n" +
+                "            \"deGentType\": \"\",\n" +
+                "            \"eProposalFlag\": \"1\",\n" +
+                "            \"goodCodes\": [],\n" +
+                "            \"handler1Code\": \"S3000222\",\n" +
+                "            \"handler1Name\": \"陶娇\",\n" +
+                "            \"insuredFactorFlag\": \"\",\n" +
+                "            \"isExpressProtectionFlag\": \"JSB00\",\n" +
+                "            \"isStandard\": \"0\",\n" +
+                "            \"lifeAgentCode\": \"\",\n" +
+                "            \"lifeAgentName\": \"\",\n" +
+                "            \"loginComCode\": \"305002A0\",\n" +
+                "            \"noCarCodes\": \"02746400001\",\n" +
+                "            \"noCarFlag\": 1,\n" +
+                "            \"noCarPremium\": 100,\n" +
+                "            \"operateDate\": \"2026-05-13\",\n" +
+                "            \"operatorCode\": \"W3000399\",\n" +
+                "            \"project\": \"\",\n" +
+                "            \"saleName\": \"\",\n" +
+                "            \"saleProfessionalNum\": \"\",\n" +
+                "            \"serviceLabelName\": \"\",\n" +
+                "            \"signDate\": \"2026-05-13\",\n" +
+                "            \"templateName\": \"\",\n" +
+                "            \"templateNo\": \"\",\n" +
+                "            \"unitMaintenanceCode\": \"3050D022512317323\",\n" +
+                "            \"unitMaintenanceName\": \"科政保天勤代理\",\n" +
+                "            \"unitMaintenanceType1Name\": \"代理\",\n" +
+                "            \"unitMaintenanceType2Name\": \"专业代理\",\n" +
+                "            \"uniteBusinessFlag\": 0,\n" +
+                "            \"unitmainTenanceType1\": \"D\",\n" +
+                "            \"unitmainTenanceType2\": \"02\",\n" +
+                "            \"uwELRrel1\": \"0\",\n" +
+                "            \"uwELRrel2\": \"0\"\n" +
+                "        },\n" +
+                "        \"prptBeneficialOwnerVos\": [],\n" +
+                "        \"prptShareholderVos\": [],\n" +
+                "        \"riskCode\": \"0500\"\n" +
+                "    },\n" +
+                "    \"bi\": {\n" +
+                "        \"blPrpTRealNameVerification\": [],\n" +
+                "        \"calculateFlagBI\": \"1\",\n" +
+                "        \"ciInsureDemand\": {\n" +
+                "            \"amount\": \"200000\",\n" +
+                "            \"basePremium\": \"950.0\",\n" +
+                "            \"benchmarkPremium\": \"950.0\",\n" +
+                "            \"carOwner\": \"韩云福\",\n" +
+                "            \"checkCode\": \"\",\n" +
+                "            \"claimAdjustReason\": \"C4\",\n" +
+                "            \"claimCoeff\": \"0.0\",\n" +
+                "            \"comCode\": \"305002A0\",\n" +
+                "            \"demandNo\": \"\",\n" +
+                "            \"demandTime\": \"2026-05-12\",\n" +
+                "            \"endDate\": \"2027-05-30\",\n" +
+                "            \"errorCode\": \"\",\n" +
+                "            \"errorMessageGo\": \"成功\",\n" +
+                "            \"frameNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"lastBillDate\": \"20250530\",\n" +
+                "            \"lastYearEndDate\": \"2026-05-31\",\n" +
+                "            \"lastYearStartDate\": \"2025-05-31\",\n" +
+                "            \"licenseNo\": \"晋A345G0\",\n" +
+                "            \"operatorCode\": \"W3000399\",\n" +
+                "            \"peccancyCoeff\": \"0.0\",\n" +
+                "            \"premium\": \"950.0\",\n" +
+                "            \"reinsureFlag\": \"0\",\n" +
+                "            \"renewalFlag\": \"非重复投保\",\n" +
+                "            \"riskCode\": \"0507\",\n" +
+                "            \"startDate\": \"2026-05-31\"\n" +
+                "        },\n" +
+                "        \"ciInsureDemandPay\": [],\n" +
+                "        \"ciInsureDemandWarningClaim\": [],\n" +
+                "        \"ciInsureValid\": {},\n" +
+                "        \"commercialInsurances\": [],\n" +
+                "        \"duplicateInsuranceItemsSchema\": {},\n" +
+                "        \"inintFlag\": 1,\n" +
+                "        \"inputRisk\": 0,\n" +
+                "        \"inputRisk0518\": 1,\n" +
+                "        \"inputRisk0521\": 0,\n" +
+                "        \"inputRisk0530\": 0,\n" +
+                "        \"prpDagentVo\": {},\n" +
+                "        \"prpDclause\": [],\n" +
+                "        \"prpDclauseRule\": [],\n" +
+                "        \"prpTLastCarShipTax\": {},\n" +
+                "        \"prpTcarDeviceCount\": {},\n" +
+                "        \"prpTchargingPostData\": [],\n" +
+                "        \"prpTenGearAllocationFeeList\": [],\n" +
+                "        \"prpTitemCar\": {\n" +
+                "            \"IDValidDate\": \"2044-02-17\",\n" +
+                "            \"absFlag\": \"有\",\n" +
+                "            \"actualValue\": \"29960.0\",\n" +
+                "            \"addressRevise\": \"0\",\n" +
+                "            \"basePureRiskPremium\": \"1290.596000\",\n" +
+                "            \"biChgOwnerFlag\": \"0\",\n" +
+                "            \"birthday\": \"1962-07-08\",\n" +
+                "            \"birthdayRecogNition\": \"1962-07-08\",\n" +
+                "            \"brandCode\": \"BTAALD0103\",\n" +
+                "            \"brandName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"carAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"carAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"carCertificateDate\": \"\",\n" +
+                "            \"carCertificateType\": \"\",\n" +
+                "            \"carCityName\": \"太原市\",\n" +
+                "            \"carIdentifyType\": \"01\",\n" +
+                "            \"carInsuredRelation\": \"1\",\n" +
+                "            \"carKindCode\": \"A0\",\n" +
+                "            \"carKindCodeDesc\": \"\",\n" +
+                "            \"carKindCodeNition\": \"A0\",\n" +
+                "            \"carName\": \"雅阁HG7205AAC4 舒适版\",\n" +
+                "            \"carOwner\": \"韩云福\",\n" +
+                "            \"carOwnerAgeW\": \"63\",\n" +
+                "            \"carOwnerIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"carOwnerIdentifyNumberRecogNition\": \"140121196207080534\",\n" +
+                "            \"carOwnerIdentifyType\": \"01\",\n" +
+                "            \"carOwnerIdentifyTypeSides\": \"back\",\n" +
+                "            \"carOwnerNature\": \"0\",\n" +
+                "            \"carOwnerRecogNition\": \"韩云福\",\n" +
+                "            \"carPostCode\": \"140100\",\n" +
+                "            \"carProvinceName\": \"山西省\",\n" +
+                "            \"carTypeCode\": \"1\",\n" +
+                "            \"carUsage\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"carbrand\": \"雅阁(ACCORD)牌\",\n" +
+                "            \"certifiCateDate\": \"\",\n" +
+                "            \"chargingpostFlag\": \"0\",\n" +
+                "            \"chgOwnerDate\": \"2014-09-03\",\n" +
+                "            \"chgOwnerDateRecogNition\": \"2014-09-03\",\n" +
+                "            \"chgOwnerFlag\": \"0\",\n" +
+                "            \"ciChgOwnerFlag\": \"0\",\n" +
+                "            \"clauseType\": \"F54\",\n" +
+                "            \"clauseTypeSystem\": \"04\",\n" +
+                "            \"colorCode\": \"03\",\n" +
+                "            \"comlossCondition\": \"太原市\",\n" +
+                "            \"completeKerbMass\": \"1495\",\n" +
+                "            \"compromisePrice\": \"29960.0\",\n" +
+                "            \"countryNature\": \"B\",\n" +
+                "            \"engineNo\": \"1237456\",\n" +
+                "            \"engineNoRecogNition\": \"1237456\",\n" +
+                "            \"enrollDate\": \"2014-09-03\",\n" +
+                "            \"enrollDateValueStatus\": 1,\n" +
+                "            \"enrollDateoRecogNition\": \"2014-09-03\",\n" +
+                "            \"exhaustScale\": \"1.997\",\n" +
+                "            \"exhaustScalelb\": 1.997,\n" +
+                "            \"frameNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"fuelType\": \"0\",\n" +
+                "            \"gearBoxtyPecode\": \"BS03\",\n" +
+                "            \"gearBoxtyPecodeName\": \"BS03-CVT\",\n" +
+                "            \"idValidDate\": \"2044-02-17\",\n" +
+                "            \"identiFication\": 1,\n" +
+                "            \"identify\": \"1\",\n" +
+                "            \"idvalidStartDate\": \"2024-02-17\",\n" +
+                "            \"licenseCategory\": \"K33\",\n" +
+                "            \"licenseColorCode\": \"01\",\n" +
+                "            \"licenseKindCode\": \"01\",\n" +
+                "            \"licenseKindCodeNition\": \"01\",\n" +
+                "            \"licenseNo\": \"晋A345G0\",\n" +
+                "            \"licenseNoRecogNition\": \"晋A345G0\",\n" +
+                "            \"loanVehicleFlag\": \"0\",\n" +
+                "            \"lossCondition\": \"山西省\",\n" +
+                "            \"lossConditionCode\": \"Z278230500010001\",\n" +
+                "            \"madeFactory\": \"广汽本田汽车有限公司\",\n" +
+                "            \"maincarKindCode\": \"A\",\n" +
+                "            \"maincarKindCodeNition\": \"A\",\n" +
+                "            \"makeDate\": \"\",\n" +
+                "            \"modelCode\": \"BGQEYHUC0008\",\n" +
+                "            \"modelCodeOld\": \"BTAALD0103\",\n" +
+                "            \"modelName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"modelNameRecogNition\": \"\",\n" +
+                "            \"natureOfUse\": 1,\n" +
+                "            \"newCaRegistration\": \"1\",\n" +
+                "            \"newDeviceFlag\": \"0\",\n" +
+                "            \"newEnergyFlag\": \"0\",\n" +
+                "            \"newFuelModel\": \"0\",\n" +
+                "            \"newFuelModelName\": \"正常缴税\",\n" +
+                "            \"noticeType\": \"HG7205AAC4\",\n" +
+                "            \"ocr_invoice_flag\": \"0\",\n" +
+                "            \"ownerAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ownerAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"ownerCityName\": \"太原市\",\n" +
+                "            \"ownerPostName\": \"清徐县\",\n" +
+                "            \"ownerProvinceName\": \"山西省\",\n" +
+                "            \"ownersAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"postCode\": \"140100\",\n" +
+                "            \"power\": \"114\",\n" +
+                "            \"powerLB\": 1.997,\n" +
+                "            \"powertypecode\": \"D1\",\n" +
+                "            \"productType\": \"0101\",\n" +
+                "            \"proposalNo\": \"\",\n" +
+                "            \"purchasePrice\": \"149800\",\n" +
+                "            \"pureElectricBatteryType\": \"11\",\n" +
+                "            \"pureRiskPremium\": \"1\",\n" +
+                "            \"rateCode\": \"20\",\n" +
+                "            \"relationShip\": \"1\",\n" +
+                "            \"restricFlag\": \"\",\n" +
+                "            \"riskTypeCode\": \"0\",\n" +
+                "            \"riskTypeCodeName\": \"0-正常车型\",\n" +
+                "            \"riskTypeName\": \"正常车型\",\n" +
+                "            \"seatCount\": \"5\",\n" +
+                "            \"seatCountlb\": 5,\n" +
+                "            \"sex\": \"1\",\n" +
+                "            \"sexRecogNition\": \"1\",\n" +
+                "            \"speed\": \"200\",\n" +
+                "            \"stopFlagCode\": \"1\",\n" +
+                "            \"stopFlagCodeName\": \"1-停产\",\n" +
+                "            \"termsSystem\": \"04\",\n" +
+                "            \"tonCount\": \"0\",\n" +
+                "            \"tonCountlb\": \"0\",\n" +
+                "            \"tractionTonCount\": \"\",\n" +
+                "            \"transmissionttype\": \"CVT\",\n" +
+                "            \"useNatureCode\": \"8A\",\n" +
+                "            \"useNatureCodeNition\": \"8A\",\n" +
+                "            \"useNatureCodeNitionNew\": \"\",\n" +
+                "            \"useYears\": 11,\n" +
+                "            \"vehicleBrand\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"vehicleClassNewCode\": \"JC04\",\n" +
+                "            \"vehicleClassNewCodeName\": \"JC04-中型轿车(B)\",\n" +
+                "            \"vehicleClassNewName\": \"中型轿车(B)\",\n" +
+                "            \"vehicleCode\": \"BGQEYHUC000871A1\",\n" +
+                "            \"vehicleSize\": \"4930*1845*1470\",\n" +
+                "            \"vinClick\": \"1\",\n" +
+                "            \"vinModel\": \"BTAALD0103\",\n" +
+                "            \"vinNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"vinNoRecogNition\": \"LHGCR1640E8037440\",\n" +
+                "            \"ymModelSegmentation\": \"\"\n" +
+                "        },\n" +
+                "        \"prpTmain\": {\n" +
+                "            \"answer\": \"\",\n" +
+                "            \"biAnswer\": \"\",\n" +
+                "            \"disCount\": 1.0,\n" +
+                "            \"endDate\": \"2027-05-30\",\n" +
+                "            \"endDate0507\": \"2027-05-12T16:00:00.000Z\",\n" +
+                "            \"endDate0507t1\": \"2027-05-12T16:00:00.000Z\",\n" +
+                "            \"endHour\": 24,\n" +
+                "            \"endHour0507\": 24,\n" +
+                "            \"endMinute\": 0,\n" +
+                "            \"endMinute0507\": 0,\n" +
+                "            \"endMinute0507t1\": 0,\n" +
+                "            \"expectDiscount\": \"\",\n" +
+                "            \"feeandDiscountFlag\": \"0\",\n" +
+                "            \"immeValiFlag\": \"\",\n" +
+                "            \"immeValiFlag0507\": 0,\n" +
+                "            \"immeValiFlag0507t1\": 0,\n" +
+                "            \"immeValidEndDate\": \"\",\n" +
+                "            \"immeValidEndDate0507\": \"2027-05-12T16:00:00.000Z\",\n" +
+                "            \"immeValidEndDate0507t1\": \"2027-05-12T16:00:00.000Z\",\n" +
+                "            \"immeValidStartDate\": \"\",\n" +
+                "            \"immeValidStartDate0507\": \"2026-05-13T16:00:00.000Z\",\n" +
+                "            \"immeValidStartDate0507t1\": \"2026-05-13T16:00:00.000Z\",\n" +
+                "            \"inputDate\": \"2026-05-13\",\n" +
+                "            \"period0530\": 30,\n" +
+                "            \"renewalFlag\": \"\",\n" +
+                "            \"saleChange\": \"0\",\n" +
+                "            \"signDate\": \"2026-05-13\",\n" +
+                "            \"signDiscount\": 0.0,\n" +
+                "            \"startDate\": \"2026-05-31\",\n" +
+                "            \"startDate0507\": \"2026-05-13T16:00:00.000Z\",\n" +
+                "            \"startDate0507t1\": \"2026-05-13T16:00:00.000Z\",\n" +
+                "            \"startDateFlag\": 0,\n" +
+                "            \"startDateFlag0507\": 0,\n" +
+                "            \"startDateFlag0507t1\": 0,\n" +
+                "            \"startHour\": 0,\n" +
+                "            \"startHour0507\": 0,\n" +
+                "            \"startMinute\": 0,\n" +
+                "            \"startMinute0507\": 0,\n" +
+                "            \"startMinute0507t1\": 0,\n" +
+                "            \"sumLowerRate\": \"\",\n" +
+                "            \"sumPremium\": \"\",\n" +
+                "            \"sumnoTaxPremium\": 896.23\n" +
+                "        },\n" +
+                "        \"prpTmainRate\": {\n" +
+                "            \"accruedexpenses\": \"0\",\n" +
+                "            \"actuarialCoef\": \"交强险 1.2019;商业险 1.2019;\",\n" +
+                "            \"actuarialRuleCode\": \"交强险 I99A12511001,I03A12512007,I03A12504020,I03A12509002,I03A12512001;商业险 I99A12511001,I03A12512007,I03A12504020,I03A12509002,I03A12512001;\",\n" +
+                "            \"attribute1\": \"0.00\",\n" +
+                "            \"attribute2\": \"0.00\",\n" +
+                "            \"attribute3\": \"0.00\",\n" +
+                "            \"attribute4\": \"0.00\",\n" +
+                "            \"attribute5\": \"\",\n" +
+                "            \"billcomacquisitionfeerate\": 0,\n" +
+                "            \"billcomallowance\": 0,\n" +
+                "            \"billcomotherfeerate\": 0,\n" +
+                "            \"billcomtransfeerate\": 0,\n" +
+                "            \"chdConsistent\": \"-2\",\n" +
+                "            \"chdTranche\": \"-2\",\n" +
+                "            \"classcode\": \"05\",\n" +
+                "            \"coefficient1\": 0,\n" +
+                "            \"coefficient10\": 0,\n" +
+                "            \"coefficient11\": 0,\n" +
+                "            \"coefficient2\": 0,\n" +
+                "            \"coefficient3\": 0,\n" +
+                "            \"coefficient4\": 0,\n" +
+                "            \"coefficient5\": 0,\n" +
+                "            \"coefficient6\": 0,\n" +
+                "            \"coefficient7\": 0,\n" +
+                "            \"coefficient8\": 0,\n" +
+                "            \"coefficient9\": 0,\n" +
+                "            \"dispersion\": \"0\",\n" +
+                "            \"evScore\": \"-2\",\n" +
+                "            \"highRiskCar\": \"\",\n" +
+                "            \"isFromApps\": \"0\",\n" +
+                "            \"mileage12\": \"-2\",\n" +
+                "            \"mileage24\": \"-2\",\n" +
+                "            \"mileage6\": \"-2\",\n" +
+                "            \"mutualback\": \"0\",\n" +
+                "            \"natrnk\": \"-2\",\n" +
+                "            \"qjhScore\": \"-2\",\n" +
+                "            \"riskcode\": \"0500\",\n" +
+                "            \"score12sd\": \"-2\",\n" +
+                "            \"tempLateFlag\": \"1\",\n" +
+                "            \"totalAttribute\": 0.0,\n" +
+                "            \"totalcost\": 0,\n" +
+                "            \"vhlScore\": \"-2\"\n" +
+                "        },\n" +
+                "        \"prpTrenewal\": [],\n" +
+                "        \"prptengageList\": [],\n" +
+                "        \"prptitemkindList\": [\n" +
+                "            {\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"amount\": \"2000000\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"checked\": 1,\n" +
+                "                \"currency\": \"CNY\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"deductibleRate\": \"2000000\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"endHour\": 24,\n" +
+                "                \"endMinute\": 0,\n" +
+                "                \"familyName\": \"\",\n" +
+                "                \"flag\": \" 1  1\",\n" +
+                "                \"insurePlan\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"isMedical\": 1,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"itemCode\": \"1\",\n" +
+                "                \"itemDetailName\": \"车辆\",\n" +
+                "                \"itemKindNo\": \"33\",\n" +
+                "                \"itemNo\": 1,\n" +
+                "                \"kindCode\": \"20B\",\n" +
+                "                \"kindName\": \"机动车第三者责任保险\",\n" +
+                "                \"mainKindFlag\": \"M\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"modeName\": \"\",\n" +
+                "                \"model\": \"\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"proposalNo\": \"\",\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"ratePeriod\": 0,\n" +
+                "                \"rationType\": \"\",\n" +
+                "                \"riskCode\": \"0518\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxFlag\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"totalLossRate\": 9.0E-4,\n" +
+                "                \"unit\": \"\",\n" +
+                "                \"unitAmount\": \"2000000\",\n" +
+                "                \"value\": \"\"\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"amount\": \"10000\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"checked\": 1,\n" +
+                "                \"currency\": \"CNY\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"deductibleRate\": \"10000\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"endHour\": 24,\n" +
+                "                \"endMinute\": 0,\n" +
+                "                \"familyName\": \"\",\n" +
+                "                \"flag\": \" 1  1\",\n" +
+                "                \"insurePlan\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"isMedical\": 1,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"itemCode\": \"1\",\n" +
+                "                \"itemDetailName\": \"车辆\",\n" +
+                "                \"itemKindNo\": \"35\",\n" +
+                "                \"itemNo\": 1,\n" +
+                "                \"kindCode\": \"20D3\",\n" +
+                "                \"kindName\": \"机动车车上人员责任保险(驾驶员)\",\n" +
+                "                \"mainKindFlag\": \"M\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"modeName\": \"\",\n" +
+                "                \"model\": \"\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"proposalNo\": \"\",\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"ratePeriod\": 0,\n" +
+                "                \"rationType\": \"\",\n" +
+                "                \"riskCode\": \"0518\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxFlag\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"totalLossRate\": 9.0E-4,\n" +
+                "                \"unit\": \"\",\n" +
+                "                \"unitAmount\": \"10000\",\n" +
+                "                \"value\": \"\"\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"amount\": \"10000\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"checked\": 1,\n" +
+                "                \"currency\": \"CNY\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"deductibleRate\": \"10000\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"endHour\": 24,\n" +
+                "                \"endMinute\": 0,\n" +
+                "                \"familyName\": \"\",\n" +
+                "                \"flag\": \" 1  1\",\n" +
+                "                \"insurePlan\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"isMedical\": 1,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"itemCode\": \"1\",\n" +
+                "                \"itemDetailName\": \"车辆\",\n" +
+                "                \"itemKindNo\": \"37\",\n" +
+                "                \"itemNo\": 1,\n" +
+                "                \"kindCode\": \"20D4\",\n" +
+                "                \"kindName\": \"机动车车上人员责任保险(乘客)\",\n" +
+                "                \"mainKindFlag\": \"M\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"modeName\": \"\",\n" +
+                "                \"model\": \"\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"proposalNo\": \"\",\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"ratePeriod\": 0,\n" +
+                "                \"rationType\": \"\",\n" +
+                "                \"riskCode\": \"0518\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxFlag\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"totalLossRate\": 9.0E-4,\n" +
+                "                \"unit\": \"\",\n" +
+                "                \"unitAmount\": \"10000\",\n" +
+                "                \"value\": \"\"\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"amount\": \"100000\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"checked\": 1,\n" +
+                "                \"currency\": \"CNY\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"deductibleRate\": \"100000\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"endHour\": 24,\n" +
+                "                \"endMinute\": 0,\n" +
+                "                \"familyName\": \"\",\n" +
+                "                \"flag\": \" 2  0\",\n" +
+                "                \"insurePlan\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"isMedical\": 1,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"itemCode\": \"1\",\n" +
+                "                \"itemDetailName\": \"车辆\",\n" +
+                "                \"itemKindNo\": \"54\",\n" +
+                "                \"itemNo\": 1,\n" +
+                "                \"kindCode\": \"20Y\",\n" +
+                "                \"kindName\": \"附加医保外医疗费用责任险-三者险\",\n" +
+                "                \"mainKindFlag\": \"S\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"modeName\": \"\",\n" +
+                "                \"model\": \"\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"proposalNo\": \"\",\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"ratePeriod\": 0,\n" +
+                "                \"rationType\": \"\",\n" +
+                "                \"riskCode\": \"0518\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxFlag\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"totalLossRate\": 9.0E-4,\n" +
+                "                \"unit\": \"\",\n" +
+                "                \"unitAmount\": \"100000\",\n" +
+                "                \"value\": \"\"\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"amount\": \"2\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"checked\": 1,\n" +
+                "                \"currency\": \"CNY\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"deductibleRate\": \"2\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"endHour\": 24,\n" +
+                "                \"endMinute\": 0,\n" +
+                "                \"familyName\": \"\",\n" +
+                "                \"flag\": \" 2  1\",\n" +
+                "                \"insurePlan\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"isMedical\": 1,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"itemCode\": \"1\",\n" +
+                "                \"itemDetailName\": \"车辆\",\n" +
+                "                \"itemKindNo\": \"57\",\n" +
+                "                \"itemNo\": 1,\n" +
+                "                \"kindCode\": \"20Z1\",\n" +
+                "                \"kindName\": \"道路救援服务特约条款\",\n" +
+                "                \"mainKindFlag\": \"S\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"modeName\": \"\",\n" +
+                "                \"model\": \"\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"proposalNo\": \"\",\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"ratePeriod\": 0,\n" +
+                "                \"rationType\": \"\",\n" +
+                "                \"riskCode\": \"0518\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxFlag\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"totalLossRate\": 9.0E-4,\n" +
+                "                \"unit\": \"\",\n" +
+                "                \"unitAmount\": \"2\",\n" +
+                "                \"value\": \"\"\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"amount\": \"2\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"checked\": 1,\n" +
+                "                \"currency\": \"CNY\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"deductibleRate\": \"2\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"endHour\": 24,\n" +
+                "                \"endMinute\": 0,\n" +
+                "                \"familyName\": \"\",\n" +
+                "                \"flag\": \" 2  1\",\n" +
+                "                \"insurePlan\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"isMedical\": 1,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"itemCode\": \"1\",\n" +
+                "                \"itemDetailName\": \"车辆\",\n" +
+                "                \"itemKindNo\": \"58\",\n" +
+                "                \"itemNo\": 1,\n" +
+                "                \"kindCode\": \"20Z2\",\n" +
+                "                \"kindName\": \"车辆安全检测特约条款\",\n" +
+                "                \"mainKindFlag\": \"S\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"modeName\": \"\",\n" +
+                "                \"model\": \"\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"proposalNo\": \"\",\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"ratePeriod\": 0,\n" +
+                "                \"rationType\": \"\",\n" +
+                "                \"riskCode\": \"0518\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxFlag\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"totalLossRate\": 9.0E-4,\n" +
+                "                \"unit\": \"\",\n" +
+                "                \"unitAmount\": \"2\",\n" +
+                "                \"value\": \"\"\n" +
+                "            },\n" +
+                "            {\n" +
+                "                \"adjustRate\": \"\",\n" +
+                "                \"amount\": \"2\",\n" +
+                "                \"basePremium\": \"\",\n" +
+                "                \"benchMarkPremium\": \"\",\n" +
+                "                \"calculateFlag\": \"Y\",\n" +
+                "                \"channelrate\": \"\",\n" +
+                "                \"checked\": 1,\n" +
+                "                \"currency\": \"CNY\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"deductibleRate\": \"2\",\n" +
+                "                \"discount\": \"1\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"endHour\": 24,\n" +
+                "                \"endMinute\": 0,\n" +
+                "                \"familyName\": \"\",\n" +
+                "                \"flag\": \" 2  1\",\n" +
+                "                \"insurePlan\": \"\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"isMedical\": 1,\n" +
+                "                \"isMental\": 0,\n" +
+                "                \"itemCode\": \"1\",\n" +
+                "                \"itemDetailName\": \"车辆\",\n" +
+                "                \"itemKindNo\": \"59\",\n" +
+                "                \"itemNo\": 1,\n" +
+                "                \"kindCode\": \"20Z3\",\n" +
+                "                \"kindName\": \"代为驾驶服务特约条款\",\n" +
+                "                \"mainKindFlag\": \"S\",\n" +
+                "                \"modeCode\": \"\",\n" +
+                "                \"modeName\": \"\",\n" +
+                "                \"model\": \"\",\n" +
+                "                \"noTaxPremium\": \"\",\n" +
+                "                \"premium\": \"\",\n" +
+                "                \"proposalNo\": \"\",\n" +
+                "                \"rate\": \"\",\n" +
+                "                \"ratePeriod\": 0,\n" +
+                "                \"rationType\": \"\",\n" +
+                "                \"riskCode\": \"0518\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"standardPremuim\": \"\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"taxFee\": \"\",\n" +
+                "                \"taxFlag\": \"\",\n" +
+                "                \"taxRate\": \"0.06\",\n" +
+                "                \"totalLossRate\": 9.0E-4,\n" +
+                "                \"unit\": \"\",\n" +
+                "                \"unitAmount\": \"2\",\n" +
+                "                \"value\": \"\"\n" +
+                "            }\n" +
+                "        ],\n" +
+                "        \"queryExpensePowerOutputVo\": {},\n" +
+                "        \"shortRate\": \"100.00\"\n" +
+                "    },\n" +
+                "    \"ci\": {\n" +
+                "        \"blPrpTRealNameVerification\": [],\n" +
+                "        \"cICarshipTaxDemandSchema\": {},\n" +
+                "        \"calculateFlagCI\": \"1\",\n" +
+                "        \"carShipTaxInfoInit\": 1,\n" +
+                "        \"ciCarShipTaxQGDemandSchema\": {\n" +
+                "            \"annualTaxAmount\": \"360.0\",\n" +
+                "            \"annualTaxDue\": \"360.0\",\n" +
+                "            \"calcTaxFlag\": \"1\",\n" +
+                "            \"declareStatusIA\": \"0\",\n" +
+                "            \"deductionDueProportion\": \"0.0\",\n" +
+                "            \"demandNo\": \"01XDCX140026051888550279571118\",\n" +
+                "            \"exceedDaysCount\": \"0\",\n" +
+                "            \"overDue\": \"0.0\",\n" +
+                "            \"serialNo\": \"1\",\n" +
+                "            \"sumOverdue\": \"0.0\",\n" +
+                "            \"sumTax\": \"360.0\",\n" +
+                "            \"sumTaxDefault\": \"0.0\",\n" +
+                "            \"taxAmountFlag\": \"1\",\n" +
+                "            \"taxConditionCode\": \"1\",\n" +
+                "            \"taxDue\": \"360.0\",\n" +
+                "            \"taxEndDate\": \"2026-12-31\",\n" +
+                "            \"taxLocationCode\": \"140000\",\n" +
+                "            \"taxPayerIdentificationCode\": \"140121196207080534\",\n" +
+                "            \"taxPayerName\": \"韩云福\",\n" +
+                "            \"taxRegistryNumber\": \"91140100MA0KJ5L06P\",\n" +
+                "            \"taxStartDate\": \"2026-01-01\",\n" +
+                "            \"taxTermTypeCode\": \"08\",\n" +
+                "            \"taxType\": \"0\",\n" +
+                "            \"taxUnitTypeCode\": \"1\",\n" +
+                "            \"totalAmount\": \"360.0\",\n" +
+                "            \"unitRate\": \"360.0\"\n" +
+                "        },\n" +
+                "        \"ciInsureDemand\": {\n" +
+                "            \"amount\": \"200000\",\n" +
+                "            \"basePremium\": \"950.0\",\n" +
+                "            \"benchmarkPremium\": \"950.0\",\n" +
+                "            \"carOwner\": \"韩云福\",\n" +
+                "            \"checkCode\": \"\",\n" +
+                "            \"claimAdjustReason\": \"C4\",\n" +
+                "            \"claimCoeff\": \"0.0\",\n" +
+                "            \"comCode\": \"305002A0\",\n" +
+                "            \"demandNo\": \"\",\n" +
+                "            \"demandTime\": \"2026-05-12\",\n" +
+                "            \"endDate\": \"2027-05-30\",\n" +
+                "            \"errorCode\": \"\",\n" +
+                "            \"errorMessageGo\": \"成功\",\n" +
+                "            \"frameNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"lastBillDate\": \"20250530\",\n" +
+                "            \"lastYearEndDate\": \"2026-05-31\",\n" +
+                "            \"lastYearStartDate\": \"2025-05-31\",\n" +
+                "            \"licenseNo\": \"晋A345G0\",\n" +
+                "            \"operatorCode\": \"W3000399\",\n" +
+                "            \"peccancyCoeff\": \"0.0\",\n" +
+                "            \"premium\": \"950.0\",\n" +
+                "            \"reinsureFlag\": \"0\",\n" +
+                "            \"renewalFlag\": \"非重复投保\",\n" +
+                "            \"riskCode\": \"0507\",\n" +
+                "            \"startDate\": \"2026-05-31\"\n" +
+                "        },\n" +
+                "        \"ciInsureDemandLoss\": [],\n" +
+                "        \"ciInsureDemandPay\": [\n" +
+                "            {\n" +
+                "                \"accidentDeathFlag\": \"0\",\n" +
+                "                \"caseID\": \"\",\n" +
+                "                \"claimNotificationNo\": \"\",\n" +
+                "                \"claimRegistrationNo\": \"880326202614002211\",\n" +
+                "                \"compensateNo\": \"50AICS140026032213046613845808\",\n" +
+                "                \"demandNo\": \"01XDCX140026051888550279571118\",\n" +
+                "                \"effectiveDate\": \"\",\n" +
+                "                \"endCaseTime\": \"2026-03-10 08:51\",\n" +
+                "                \"expireDate\": \"\",\n" +
+                "                \"flag\": \"\",\n" +
+                "                \"insurerArea\": \"\",\n" +
+                "                \"kindCode\": \"\",\n" +
+                "                \"lossFee\": \"2000.0\",\n" +
+                "                \"lossTime\": \"2026-03-09 16:53\",\n" +
+                "                \"optionType\": \"\",\n" +
+                "                \"payCompany\": \"AICS\",\n" +
+                "                \"payType\": \"\",\n" +
+                "                \"personPayType\": \"\",\n" +
+                "                \"policyNo\": \"114B7032620250026994\",\n" +
+                "                \"remark\": \"\",\n" +
+                "                \"serialNo\": \"1\",\n" +
+                "                \"totalAmount\": \"2000.0\"\n" +
+                "            }\n" +
+                "        ],\n" +
+                "        \"ciInsureDemandWarningClaim\": [],\n" +
+                "        \"ciInsureValid\": {},\n" +
+                "        \"duplicateInsuranceItemsSchema\": {},\n" +
+                "        \"image\": {\n" +
+                "            \"changingThisBreaksApplicationSecurity\": \"data:image/png;base64,\"\n" +
+                "        },\n" +
+                "        \"inputRisk\": 1,\n" +
+                "        \"inputRisk0507\": 1,\n" +
+                "        \"inputRisk0507t1\": 0,\n" +
+                "        \"prpDclause\": [],\n" +
+                "        \"prpDclauseRule\": [],\n" +
+                "        \"prpTChannel\": {},\n" +
+                "        \"prpTLastCarShipTax\": {},\n" +
+                "        \"prpTcarshipTax\": {\n" +
+                "            \"calLateFeeFlag\": \"\",\n" +
+                "            \"calPayBalanceFeeFlag\": \"\",\n" +
+                "            \"calculateMode\": \"1\",\n" +
+                "            \"completeKerbMass\": 0,\n" +
+                "            \"extendChar2\": \"K33\",\n" +
+                "            \"sumPayTax\": \"\",\n" +
+                "            \"taxItemCode\": \"A\",\n" +
+                "            \"taxItemDetailCode\": \"A1\",\n" +
+                "            \"taxItemDetailName\": \"小型客车\",\n" +
+                "            \"taxItemName\": \"载客汽车\",\n" +
+                "            \"taxRelifFlag\": \"1\",\n" +
+                "            \"taxUnit\": \"1\",\n" +
+                "            \"taxpayerIdentifier\": \"140121196207080534\",\n" +
+                "            \"taxpayerName\": \"韩云福\"\n" +
+                "        },\n" +
+                "        \"prpTitemCar\": {\n" +
+                "            \"IDValidDate\": \"2044-02-17\",\n" +
+                "            \"absFlag\": \"有\",\n" +
+                "            \"actualValue\": \"29960.0\",\n" +
+                "            \"addressRevise\": \"0\",\n" +
+                "            \"basePureRiskPremium\": \"1290.596000\",\n" +
+                "            \"biChgOwnerFlag\": \"0\",\n" +
+                "            \"birthday\": \"1962-07-08\",\n" +
+                "            \"birthdayRecogNition\": \"1962-07-08\",\n" +
+                "            \"brandCode\": \"BTAALD0103\",\n" +
+                "            \"brandName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"carAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"carAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"carCertificateDate\": \"\",\n" +
+                "            \"carCertificateType\": \"\",\n" +
+                "            \"carCityName\": \"太原市\",\n" +
+                "            \"carIdentifyType\": \"01\",\n" +
+                "            \"carInsuredRelation\": \"1\",\n" +
+                "            \"carKindCode\": \"A0\",\n" +
+                "            \"carKindCodeDesc\": \"\",\n" +
+                "            \"carKindCodeNition\": \"A0\",\n" +
+                "            \"carName\": \"雅阁HG7205AAC4 舒适版\",\n" +
+                "            \"carOwner\": \"韩云福\",\n" +
+                "            \"carOwnerAgeW\": \"63\",\n" +
+                "            \"carOwnerIdentifyNumber\": \"140121196207080534\",\n" +
+                "            \"carOwnerIdentifyNumberRecogNition\": \"140121196207080534\",\n" +
+                "            \"carOwnerIdentifyType\": \"01\",\n" +
+                "            \"carOwnerIdentifyTypeSides\": \"back\",\n" +
+                "            \"carOwnerNature\": \"0\",\n" +
+                "            \"carOwnerRecogNition\": \"韩云福\",\n" +
+                "            \"carPostCode\": \"140100\",\n" +
+                "            \"carProvinceName\": \"山西省\",\n" +
+                "            \"carTypeCode\": \"1\",\n" +
+                "            \"carUsage\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"carbrand\": \"雅阁(ACCORD)牌\",\n" +
+                "            \"certifiCateDate\": \"\",\n" +
+                "            \"chargingpostFlag\": \"0\",\n" +
+                "            \"chgOwnerDate\": \"2014-09-03\",\n" +
+                "            \"chgOwnerDateRecogNition\": \"2014-09-03\",\n" +
+                "            \"chgOwnerFlag\": \"0\",\n" +
+                "            \"ciChgOwnerFlag\": \"0\",\n" +
+                "            \"clauseType\": \"F54\",\n" +
+                "            \"clauseTypeSystem\": \"04\",\n" +
+                "            \"colorCode\": \"03\",\n" +
+                "            \"comlossCondition\": \"太原市\",\n" +
+                "            \"completeKerbMass\": \"1495\",\n" +
+                "            \"compromisePrice\": \"29960.0\",\n" +
+                "            \"countryNature\": \"B\",\n" +
+                "            \"engineNo\": \"1237456\",\n" +
+                "            \"engineNoRecogNition\": \"1237456\",\n" +
+                "            \"enrollDate\": \"2014-09-03\",\n" +
+                "            \"enrollDateValueStatus\": 1,\n" +
+                "            \"enrollDateoRecogNition\": \"2014-09-03\",\n" +
+                "            \"exhaustScale\": \"1.997\",\n" +
+                "            \"exhaustScalelb\": 1.997,\n" +
+                "            \"frameNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"fuelType\": \"0\",\n" +
+                "            \"gearBoxtyPecode\": \"BS03\",\n" +
+                "            \"gearBoxtyPecodeName\": \"BS03-CVT\",\n" +
+                "            \"idValidDate\": \"2044-02-17\",\n" +
+                "            \"identiFication\": 1,\n" +
+                "            \"identify\": \"1\",\n" +
+                "            \"idvalidStartDate\": \"2024-02-17\",\n" +
+                "            \"licenseCategory\": \"K33\",\n" +
+                "            \"licenseColorCode\": \"01\",\n" +
+                "            \"licenseKindCode\": \"01\",\n" +
+                "            \"licenseKindCodeNition\": \"01\",\n" +
+                "            \"licenseNo\": \"晋A345G0\",\n" +
+                "            \"licenseNoRecogNition\": \"晋A345G0\",\n" +
+                "            \"loanVehicleFlag\": \"0\",\n" +
+                "            \"lossCondition\": \"山西省\",\n" +
+                "            \"lossConditionCode\": \"Z278230500010001\",\n" +
+                "            \"madeFactory\": \"广汽本田汽车有限公司\",\n" +
+                "            \"maincarKindCode\": \"A\",\n" +
+                "            \"maincarKindCodeNition\": \"A\",\n" +
+                "            \"makeDate\": \"\",\n" +
+                "            \"modelCode\": \"BGQEYHUC0008\",\n" +
+                "            \"modelCodeOld\": \"BTAALD0103\",\n" +
+                "            \"modelName\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"modelNameRecogNition\": \"\",\n" +
+                "            \"natureOfUse\": 1,\n" +
+                "            \"newCaRegistration\": \"1\",\n" +
+                "            \"newDeviceFlag\": \"0\",\n" +
+                "            \"newEnergyFlag\": \"0\",\n" +
+                "            \"newFuelModel\": \"0\",\n" +
+                "            \"newFuelModelName\": \"正常缴税\",\n" +
+                "            \"noticeType\": \"HG7205AAC4\",\n" +
+                "            \"ocr_invoice_flag\": \"0\",\n" +
+                "            \"ownerAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"ownerAreas\": \"山西省太原市清徐县\",\n" +
+                "            \"ownerCityName\": \"太原市\",\n" +
+                "            \"ownerPostName\": \"清徐县\",\n" +
+                "            \"ownerProvinceName\": \"山西省\",\n" +
+                "            \"ownersAddress\": \"山西省清徐县清源镇六合村北大街34号\",\n" +
+                "            \"postCode\": \"140100\",\n" +
+                "            \"power\": \"114\",\n" +
+                "            \"powerLB\": 1.997,\n" +
+                "            \"powertypecode\": \"D1\",\n" +
+                "            \"productType\": \"0101\",\n" +
+                "            \"proposalNo\": \"\",\n" +
+                "            \"purchasePrice\": \"149800\",\n" +
+                "            \"pureElectricBatteryType\": \"11\",\n" +
+                "            \"pureRiskPremium\": \"1\",\n" +
+                "            \"rateCode\": \"20\",\n" +
+                "            \"relationShip\": \"1\",\n" +
+                "            \"restricFlag\": \"\",\n" +
+                "            \"riskTypeCode\": \"0\",\n" +
+                "            \"riskTypeCodeName\": \"0-正常车型\",\n" +
+                "            \"riskTypeName\": \"正常车型\",\n" +
+                "            \"seatCount\": \"5\",\n" +
+                "            \"seatCountlb\": 5,\n" +
+                "            \"sex\": \"1\",\n" +
+                "            \"sexRecogNition\": \"1\",\n" +
+                "            \"speed\": \"200\",\n" +
+                "            \"stopFlagCode\": \"1\",\n" +
+                "            \"stopFlagCodeName\": \"1-停产\",\n" +
+                "            \"termsSystem\": \"04\",\n" +
+                "            \"tonCount\": \"0\",\n" +
+                "            \"tonCountlb\": \"0\",\n" +
+                "            \"tractionTonCount\": \"\",\n" +
+                "            \"transmissionttype\": \"CVT\",\n" +
+                "            \"useNatureCode\": \"8A\",\n" +
+                "            \"useNatureCodeNition\": \"8A\",\n" +
+                "            \"useNatureCodeNitionNew\": \"\",\n" +
+                "            \"useYears\": 11,\n" +
+                "            \"vehicleBrand\": \"雅阁HG7205AAC4轿车\",\n" +
+                "            \"vehicleClassNewCode\": \"JC04\",\n" +
+                "            \"vehicleClassNewCodeName\": \"JC04-中型轿车(B)\",\n" +
+                "            \"vehicleClassNewName\": \"中型轿车(B)\",\n" +
+                "            \"vehicleCode\": \"BGQEYHUC000871A1\",\n" +
+                "            \"vehicleSize\": \"4930*1845*1470\",\n" +
+                "            \"vinClick\": \"1\",\n" +
+                "            \"vinModel\": \"BTAALD0103\",\n" +
+                "            \"vinNo\": \"LHGCR1640E8037440\",\n" +
+                "            \"vinNoRecogNition\": \"LHGCR1640E8037440\",\n" +
+                "            \"ymModelSegmentation\": \"\"\n" +
+                "        },\n" +
+                "        \"prpTitemCarExt\": {},\n" +
+                "        \"prpTmain\": {\n" +
+                "            \"answer\": \"\",\n" +
+                "            \"biAnswer\": \"\",\n" +
+                "            \"disCount\": 1.0,\n" +
+                "            \"endDate\": \"2027-05-30\",\n" +
+                "            \"endDate0507\": \"2027-05-12T16:00:00.000Z\",\n" +
+                "            \"endDate0507t1\": \"2027-05-12T16:00:00.000Z\",\n" +
+                "            \"endHour\": 24,\n" +
+                "            \"endHour0507\": 24,\n" +
+                "            \"endMinute\": 0,\n" +
+                "            \"endMinute0507\": 0,\n" +
+                "            \"endMinute0507t1\": 0,\n" +
+                "            \"expectDiscount\": \"\",\n" +
+                "            \"feeandDiscountFlag\": \"0\",\n" +
+                "            \"immeValiFlag\": \"\",\n" +
+                "            \"immeValiFlag0507\": 0,\n" +
+                "            \"immeValiFlag0507t1\": 0,\n" +
+                "            \"immeValidEndDate\": \"\",\n" +
+                "            \"immeValidEndDate0507\": \"2027-05-12T16:00:00.000Z\",\n" +
+                "            \"immeValidEndDate0507t1\": \"2027-05-12T16:00:00.000Z\",\n" +
+                "            \"immeValidStartDate\": \"\",\n" +
+                "            \"immeValidStartDate0507\": \"2026-05-13T16:00:00.000Z\",\n" +
+                "            \"immeValidStartDate0507t1\": \"2026-05-13T16:00:00.000Z\",\n" +
+                "            \"inputDate\": \"2026-05-13\",\n" +
+                "            \"period0530\": 30,\n" +
+                "            \"renewalFlag\": \"\",\n" +
+                "            \"saleChange\": \"0\",\n" +
+                "            \"signDate\": \"2026-05-13\",\n" +
+                "            \"signDiscount\": 0.0,\n" +
+                "            \"startDate\": \"2026-05-31\",\n" +
+                "            \"startDate0507\": \"2026-05-13T16:00:00.000Z\",\n" +
+                "            \"startDate0507t1\": \"2026-05-13T16:00:00.000Z\",\n" +
+                "            \"startDateFlag\": 0,\n" +
+                "            \"startDateFlag0507\": 0,\n" +
+                "            \"startDateFlag0507t1\": 0,\n" +
+                "            \"startHour\": 0,\n" +
+                "            \"startHour0507\": 0,\n" +
+                "            \"startMinute\": 0,\n" +
+                "            \"startMinute0507\": 0,\n" +
+                "            \"startMinute0507t1\": 0,\n" +
+                "            \"sumLowerRate\": \"\",\n" +
+                "            \"sumPremium\": \"\",\n" +
+                "            \"sumnoTaxPremium\": 896.23\n" +
+                "        },\n" +
+                "        \"prpTmainRate\": {\n" +
+                "            \"accruedexpenses\": \"0\",\n" +
+                "            \"actuarialCoef\": \"交强险 1.2019;商业险 1.2019;\",\n" +
+                "            \"actuarialRuleCode\": \"交强险 I99A12511001,I03A12512007,I03A12504020,I03A12509002,I03A12512001;商业险 I99A12511001,I03A12512007,I03A12504020,I03A12509002,I03A12512001;\",\n" +
+                "            \"attribute1\": \"0.00\",\n" +
+                "            \"attribute2\": \"0.00\",\n" +
+                "            \"attribute3\": \"0.00\",\n" +
+                "            \"attribute4\": \"0.00\",\n" +
+                "            \"attribute5\": \"\",\n" +
+                "            \"billcomacquisitionfeerate\": 0,\n" +
+                "            \"billcomallowance\": 0,\n" +
+                "            \"billcomotherfeerate\": 0,\n" +
+                "            \"billcomtransfeerate\": 0,\n" +
+                "            \"chdConsistent\": \"-2\",\n" +
+                "            \"chdTranche\": \"-2\",\n" +
+                "            \"classcode\": \"05\",\n" +
+                "            \"coefficient1\": 0,\n" +
+                "            \"coefficient10\": 0,\n" +
+                "            \"coefficient11\": 0,\n" +
+                "            \"coefficient2\": 0,\n" +
+                "            \"coefficient3\": 0,\n" +
+                "            \"coefficient4\": 0,\n" +
+                "            \"coefficient5\": 0,\n" +
+                "            \"coefficient6\": 0,\n" +
+                "            \"coefficient7\": 0,\n" +
+                "            \"coefficient8\": 0,\n" +
+                "            \"coefficient9\": 0,\n" +
+                "            \"dispersion\": \"0\",\n" +
+                "            \"evScore\": \"-2\",\n" +
+                "            \"highRiskCar\": \"\",\n" +
+                "            \"isFromApps\": \"0\",\n" +
+                "            \"mileage12\": \"-2\",\n" +
+                "            \"mileage24\": \"-2\",\n" +
+                "            \"mileage6\": \"-2\",\n" +
+                "            \"mutualback\": \"0\",\n" +
+                "            \"natrnk\": \"-2\",\n" +
+                "            \"qjhScore\": \"-2\",\n" +
+                "            \"riskcode\": \"0507\",\n" +
+                "            \"score12sd\": \"-2\",\n" +
+                "            \"tempLateFlag\": \"1\",\n" +
+                "            \"totalAttribute\": 0.0,\n" +
+                "            \"totalcost\": 0,\n" +
+                "            \"vhlScore\": \"-2\"\n" +
+                "        },\n" +
+                "        \"prpTrenewal\": [],\n" +
+                "        \"prptengageList\": [],\n" +
+                "        \"prptitemkindList\": [\n" +
+                "            {\n" +
+                "                \"amount\": \"200000\",\n" +
+                "                \"basePremium\": \"0\",\n" +
+                "                \"calculateFlag\": \"N\",\n" +
+                "                \"currency\": \"CNY\",\n" +
+                "                \"deductible\": \"\",\n" +
+                "                \"discount\": \"0.0\",\n" +
+                "                \"endDate\": \"2027-05-30\",\n" +
+                "                \"endHour\": 24,\n" +
+                "                \"endMinute\": 0,\n" +
+                "                \"flag\": \" 2  03\",\n" +
+                "                \"isDeductible\": 0,\n" +
+                "                \"itemKindNo\": \"0\",\n" +
+                "                \"kindCode\": \"BZ\",\n" +
+                "                \"kindName\": \"机动车交通事故责任强制保险\",\n" +
+                "                \"noTaxPremium\": \"0.0\",\n" +
+                "                \"premium\": \"0.0\",\n" +
+                "                \"rate\": \"0\",\n" +
+                "                \"riskCode\": \"0507\",\n" +
+                "                \"shortRate\": \"100.0000\",\n" +
+                "                \"shortRateFlag\": \"2\",\n" +
+                "                \"startDate\": \"2026-05-31\",\n" +
+                "                \"startHour\": 0,\n" +
+                "                \"startMinute\": 0,\n" +
+                "                \"taxFee\": \"0.0\",\n" +
+                "                \"taxRate\": \"0.06\"\n" +
+                "            }\n" +
+                "        ],\n" +
+                "        \"queryExpensePowerOutputVo\": {\n" +
+                "            \"agentClerkFlagDisplay\": \"0\",\n" +
+                "            \"companyRatePower\": \"0\",\n" +
+                "            \"configPowerManageFeeRateBI\": \"0\",\n" +
+                "            \"configPowerManageFeeRateCI\": \"1\",\n" +
+                "            \"configPowerMiddleCostBI\": \"0\",\n" +
+                "            \"configPowerMiddleCostCI\": \"0\",\n" +
+                "            \"errorCode\": \"\",\n" +
+                "            \"errorMessage\": \"\",\n" +
+                "            \"manageFeeRateDisplay\": \"1\",\n" +
+                "            \"personPowerAllowanceRateNoModify\": \"1\",\n" +
+                "            \"personPowerAllowanceRateNoShow\": \"1\",\n" +
+                "            \"personPowerBusinessPromoteRateNoModify\": \"1\",\n" +
+                "            \"personPowerBusinessPromoteRateNoShow\": \"1\",\n" +
+                "            \"personPowerBusinessTotalCostBIShow\": \"1\",\n" +
+                "            \"personPowerBusinessTotalCostCIShow\": \"1\",\n" +
+                "            \"personPowerDisRateNoModify\": \"1\",\n" +
+                "            \"personPowerDisRateNoShow\": \"1\",\n" +
+                "            \"personPowerManageFeeRateBC\": \"0\",\n" +
+                "            \"personPowerMiddleCostBC\": \"0\",\n" +
+                "            \"salesSalaryRateDisplay\": \"0\"\n" +
+                "        },\n" +
+                "        \"shortRate\": 100,\n" +
+                "        \"showCarShip\": true,\n" +
+                "        \"trafficInsurance\": {\n" +
+                "            \"endDate\": \"2026-05-31\",\n" +
+                "            \"startDate\": \"2025-05-31\"\n" +
+                "        }\n" +
+                "    }\n" +
+                "}";
+
+        JsonNode oldNode = OBJECT_MAPPER.readTree(json1);
+        JsonNode newNode = OBJECT_MAPPER.readTree(json2);
+
+        List<JsonDiff> diffList = compareJson(oldNode, newNode);
+
+        System.out.println("==================== JSON 差异对比报告 ====================");
+        if (diffList.isEmpty()) {
+            System.out.println("两个JSON完全一致");
+        } else {
+            diffList.forEach(System.out::println);
+            System.out.println("共发现 " + diffList.size() + " 处差异");
+        }
+    }
+}

+ 0 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -283,8 +283,6 @@ public class UnifyOrderManager {
                 costs.setVvTax(formatPremium(costs.getVvTax()));               // 车船税
                 costs.setSumPremium(formatPremium(costs.getSumPremium()));     // 总保费
             }
-//            quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
-//            quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
             quoteResultsVo.setQuoteStatus(quoteResultsVo.getQuoteStatusEnum().getCode());
             quoteResultsVo.setOrdersNo(ordersNo);
             // 报价后更新订单

+ 27 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -718,6 +718,29 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
     }
 
+    /**
+     * 将日期字符串解析为LocalDateTime对象
+     * 支持两种日期格式:
+     * - 完整格式:yyyy-MM-dd HH:mm:ss
+     * - 简短格式:yyyy-MM-dd(自动补充时间为00:00:00)
+     *
+     * @param dateStr 日期字符串,可以为null或空字符串
+     * @return 解析后的LocalDateTime对象,如果输入为空则返回null
+     */
+    private LocalDateTime parseDate(String dateStr) {
+        if (StrUtil.isEmpty(dateStr)) {
+            return null;
+        }
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        // 处理仅包含日期的字符串(长度为10),补充默认时间
+        if (dateStr.length() == 10) {
+            return LocalDateTime.parse(dateStr + " 00:00:00", formatter);
+        }
+        return LocalDateTime.parse(dateStr, formatter);
+    }
+
+
     @Override
     public void orderAfterUpdateQuote(String ordersNo, QuoteResultsVo quoteResponse) {
 
@@ -746,12 +769,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             if (Objects.nonNull(insOrdersRiskList) && !insOrdersRiskList.isEmpty()) {
                 for (InsOrdersRisk insOrdersRisk : insOrdersRiskList) {
                     if (insOrdersRisk.getRiskCode().equals(InsuranceRisk.TRAFFIC.getCode())) {
-                        insOrdersRisk.setStartDate(LocalDateTime.parse(quoteResponse.getCiRiskInfoVo().getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-                        insOrdersRisk.setEndDate(LocalDateTime.parse(quoteResponse.getCiRiskInfoVo().getEndDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                        insOrdersRisk.setStartDate(parseDate(quoteResponse.getCiRiskInfoVo().getStartDate()));
+                        insOrdersRisk.setEndDate(parseDate(quoteResponse.getCiRiskInfoVo().getEndDate()));
                     }
                     if (insOrdersRisk.getRiskCode().equals(InsuranceRisk.BUSINESS.getCode())) {
-                        insOrdersRisk.setStartDate(LocalDateTime.parse(quoteResponse.getBiRiskInfoVo().getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-                        insOrdersRisk.setEndDate(LocalDateTime.parse(quoteResponse.getBiRiskInfoVo().getEndDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                        insOrdersRisk.setStartDate(parseDate(quoteResponse.getBiRiskInfoVo().getStartDate()));
+                        insOrdersRisk.setEndDate(parseDate(quoteResponse.getBiRiskInfoVo().getEndDate()));
                     }
                 }
             }