Просмотр исходного кода

Merge branch 'master' into wrq_dev

wangrq 3 месяцев назад
Родитель
Сommit
3cbbf96d7c

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

@@ -39,7 +39,8 @@ public final class AnShengCrawlerQuoteResultsVoBuild {
 
         if (!calculatePremiumApply.getCode().equals(200)) {
             quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.QUOTE_FAIL);
-            quoteResultsVo.setErrorMessage(calculatePremiumApply.getMessage());
+            String message = calculatePremiumApply.getMessage();
+            quoteResultsVo.setErrorMessage(message.contains("。") ? message.substring(0, message.indexOf("。")) : message);
             return quoteResultsVo;
         }
         List<AnShengCrawlerCalculatePremiumApplyResponse.DataDTO.ContractsDTO> contracts = calculatePremiumApply.getData()

+ 10 - 5
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerCalculatePremiumApplyMessage.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.collect.Lists;
 import com.jzg.commons.entity.quote.vo.*;
+import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.ansheng.crawler.constant.enums.DepartmentPlanCode;
 import com.jzg.quotation.ansheng.crawler.entity.response.AnShengCrawlerGetUserDetailResponse;
 import com.jzg.quotation.ansheng.crawler.entity.response.AnShengCrawlerSearchVehicleByVinResponse;
@@ -52,7 +53,7 @@ public class AnShengCrawlerCalculatePremiumApplyMessage {
         }
         if (!ObjectUtils.isEmpty(quoteVo.getBiRiskInfoVo())) {
             ContractsDTO baseContracts = getBaseContracts(quoteVo.getBiRiskInfoVo(), quoteVo, dataDTO, customerNegotiatePrice, userDetailResponse, departmentPlanCode.getCode(), departmentPlanCode.getProductCode(), checkVehicleCodeSecret);
-            baseContracts.addBusinessInsurance(quoteVo.getKindInfoVo());
+            baseContracts.addBusinessInsurance(quoteVo.getKindInfoVo(),quoteVo);
             baseContracts.addBiPolicyRatios();
             this.contracts.add(baseContracts);
         }
@@ -153,10 +154,14 @@ public class AnShengCrawlerCalculatePremiumApplyMessage {
             System.out.println(i);
         }
 
-        public void addBusinessInsurance(List<KindInfoVo> kindInfoVo) {
+        public void addBusinessInsurance(List<KindInfoVo> kindInfoVo, QuoteVo quoteVo) {
+            String seatCount = String.valueOf(Integer.parseInt(quoteVo.getCarInfoVo().getSeatCount()) - 1);
             for (KindInfoVo kind : kindInfoVo) {
-                PolicyCoveragesDTO policyCoveragesDTO = new PolicyCoveragesDTO(kind);
-                this.policyCoverages.add(policyCoveragesDTO);
+                PolicyCoveragesDTO dto = new PolicyCoveragesDTO(kind);
+                String code = dto.getDutyCode();
+                if (StringUtils.equalsAny(code, "APL", "APLDUOM")) dto.setSeats(seatCount);
+                else if (StringUtils.equalsAny(code, "ADL", "NEADL")) dto.setSeats("1");
+                policyCoverages.add(dto);
             }
         }
 
@@ -854,7 +859,7 @@ public class AnShengCrawlerCalculatePremiumApplyMessage {
                 this.autoModelChnName = brandAutoModel.getAutoModelChnName();
                 this.licenceTypeCode = carInfoVo.getLicenseKindCode();
                 this.ecdemicVehicleFlag = "0";
-                this.vehicleTonnages = "0";
+                this.vehicleTonnages = dataDTO.getBrandAutoModel().getTonsString();
                 this.power = brandAutoModel.getPower();
                 this.maxDesignSpeed = 0;
                 //this.runCardCertificateDate = TimeProcessing.dateToDateTime(carInfoVo.getIssueDate());

+ 8 - 9
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerRequestImpl.java

@@ -84,7 +84,7 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
 
         DepartmentPlanCode departmentPlanCode = DepartmentPlanCode.PLAN_109;
         // 新能源
-        if (quoteVo.getCarInfoVo().isNewEnergyMark()) {
+        if (StringUtils.equals("1",quoteVo.getCarInfoVo().getEnergyTypeCode())) {
             departmentPlanCode = DepartmentPlanCode.PLAN_113;
         }
 
@@ -97,9 +97,6 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
         // 车架号查询
         AnShengCrawlerSearchVehicleByVinRequest anShengCrawlerSearchVehicleByVinRequest = new AnShengCrawlerSearchVehicleByVinRequest(quoteVo.getCarInfoVo(), userDetailResponse.getDepartmentCode(), userDetailResponse.getAgentCode(),userDetailResponse.getRealBusinessType());
         List<AnShengCrawlerSearchVehicleByVinResponse.DataDTO> dataDTOS = anShengCrawlerRequestComponent.searchVehicleByVin(anShengCrawlerSearchVehicleByVinRequest, httpHeaders);
-        if (Objects.isNull(dataDTOS)){
-            throw new SystemException("车型查询错误");
-        }
         AnShengCrawlerSearchVehicleByVinResponse.DataDTO dataDTO = CarModelsFilterUtils.to(dataDTOS, quoteVo.getCarInfoVo());
         // 报价
         AnShengCrawlerCalculatePremiumApplyMessage crawlerCalculatePremiumApply = new AnShengCrawlerCalculatePremiumApplyMessage(quoteVo, dataDTO, userDetailResponse, departmentPlanCode, checkVehicleCodeSecretGenerate);
@@ -109,11 +106,13 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
         // 处理重复投保
         if (calculatePremiumApply.getMessage().contains("重复投保")) {
             String startTime = extractDuplicateEndTime(calculatePremiumApply.getMessage());
-            String endTime = TimeProcessing.minusOneSecondAfterYear(startTime);
-            crawlerCalculatePremiumApply.getContracts().get(0).getPolicyBase().setInsuranceBeginTime(startTime);
-            crawlerCalculatePremiumApply.getContracts().get(0).getPolicyBase().setInsuranceEndTime(endTime);
-            log.info("安盛报价重复投保参数:{}", JSONObject.toJSONString(crawlerCalculatePremiumApply));
-            calculatePremiumApply = anShengCrawlerRequestComponent.calculatePremiumApply(crawlerCalculatePremiumApply, httpHeaders);
+            if (StringUtils.isNotEmpty(startTime)){
+                String endTime = TimeProcessing.minusOneSecondAfterYear(startTime);
+                crawlerCalculatePremiumApply.getContracts().get(0).getPolicyBase().setInsuranceBeginTime(startTime);
+                crawlerCalculatePremiumApply.getContracts().get(0).getPolicyBase().setInsuranceEndTime(endTime);
+                log.info("安盛报价重复投保参数:{}", JSONObject.toJSONString(crawlerCalculatePremiumApply));
+                calculatePremiumApply = anShengCrawlerRequestComponent.calculatePremiumApply(crawlerCalculatePremiumApply, httpHeaders);
+            }
         }
         if (calculatePremiumApply.getCode() == 200) {
             // 缓存报价信息