Qchen 3 ماه پیش
والد
کامیت
569048bcf4

+ 7 - 4
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerQuotedPriceRequest.java

@@ -93,11 +93,11 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
         @JsonProperty("accident")
         private List<AccidentDTO> accident;
 
-        public List<ContractDTO> buildContractList(QuoteVo quoteVo) {
+        public List<ContractDTO> buildContractList(QuoteVo quoteVo,ZmCrawlerActualValueResponse actualValueResponse) {
             List<ContractDTO> contracts = new ArrayList<>();
             String date = DateUtil.getDateFormat(new Date(), DateUtil.FULL_TIME_SPLIT_PATTERN);
             ContractDTO ciContract = buildCiContract(quoteVo, date);
-            ContractDTO biContract = buildBiContract(quoteVo, date);
+            ContractDTO biContract = buildBiContract(quoteVo, date,actualValueResponse);
             if(Objects.nonNull(ciContract)){
                 contracts.add(ciContract);
             }
@@ -156,7 +156,7 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
          * @param productionDate
          * @return
          */
-        public ContractDTO buildBiContract(QuoteVo quoteVo, String productionDate) {
+        public ContractDTO buildBiContract(QuoteVo quoteVo, String productionDate,ZmCrawlerActualValueResponse actualValueResponse) {
             ContractDTO contract = new ContractDTO();
             RiskInfoVo biRiskInfoVo = quoteVo.getBiRiskInfoVo();
             if(Objects.isNull(biRiskInfoVo)){return null;}
@@ -182,6 +182,9 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
                 coverageDTO.setUnitAmount(Integer.parseInt(kindInfoVo.getUnitAmount()));
                 coverageDTO.setQuantity(Objects.isNull(kindInfoVo.getQuantity()) ? 0 : Integer.parseInt(kindInfoVo.getQuantity()));
                 Integer seatCount = Integer.parseInt(quoteVo.getCarInfoVo().getSeatCount());
+                if (kindInfoVo.getKindCode().equals("01")) {
+                    coverageDTO.setAmount(String.valueOf(actualValueResponse.getActualValue()));
+                }
                 if (kindInfoVo.getKindCode().equals("041")) {
                     coverageDTO.setQuantity(1);
                 }
@@ -295,7 +298,7 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
 
             this.saleInfo = saleInfoDTO;
             //处理险种信息
-            this.contract = buildContractList(quoteVo);
+            this.contract = buildContractList(quoteVo,actualValueResponse);
             //处理投保人,被保人,车主信息
             this.customer = buildCustomerList(quoteVo);
             //处理意外险

+ 32 - 31
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java

@@ -197,38 +197,39 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
                         .filter(contractDTO -> "0361".equals(contractDTO.getContractMain().getRiskCode()))
                         .findFirst()
                         .orElse(null);
-
-        ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO.PlantFormMessageBeanDTO messageBeanDTO = contract.getPlantFormMessageBean();
-        if (messageBeanDTO.getAnswer().contains("可能存在重复投保")) {
-            String answer = messageBeanDTO.getAnswer();
-            String startTime = extractDuplicateStartTime(answer);
-            String endTime = calculateEndTime(startTime);
-            ZmCrawlerQuotedPriceRequest.BusinessDataDTO.ContractDTO contractReq =
-                    quotedPriceRequest.getBusinessData().getContract().stream()
-                            .filter(contractDTO -> "0361".equals(contractDTO.getContractMain().getRiskCode()))
-                            .findFirst()
-                            .orElse(null);
-            if (startTime != null && endTime != null && contractReq != null) {
-                contractReq.getContractMain().setValidDate(startTime);
-                contractReq.getContractMain().setExpiryDate(endTime);
-            }
-            // 判断是否是即时起保
-            if (!startTime.endsWith("00:00:00")) {
-                contractReq.getContractMain().setReinsuranceFlag("1");
+        if (contract != null) {
+            ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO.PlantFormMessageBeanDTO messageBeanDTO = contract.getPlantFormMessageBean();
+            if (messageBeanDTO.getAnswer().contains("可能存在重复投保")) {
+                String answer = messageBeanDTO.getAnswer();
+                String startTime = extractDuplicateStartTime(answer);
+                String endTime = calculateEndTime(startTime);
+                ZmCrawlerQuotedPriceRequest.BusinessDataDTO.ContractDTO contractReq =
+                        quotedPriceRequest.getBusinessData().getContract().stream()
+                                .filter(contractDTO -> "0361".equals(contractDTO.getContractMain().getRiskCode()))
+                                .findFirst()
+                                .orElse(null);
+                if (startTime != null && endTime != null && contractReq != null) {
+                    contractReq.getContractMain().setValidDate(startTime);
+                    contractReq.getContractMain().setExpiryDate(endTime);
+                }
+                // 判断是否是即时起保
+                if (!startTime.endsWith("00:00:00")) {
+                    contractReq.getContractMain().setReinsuranceFlag("1");
+                }
+                contractReq.getCoverage().forEach(coverageDTO -> {
+                    coverageDTO.setValidDate(startTime);
+                    coverageDTO.setExpiryDate(endTime);
+                });
+                quoteVo.getBiRiskInfoVo().setStartDate(startTime);
+                quoteVo.getBiRiskInfoVo().setEndDate(endTime);
+                ZmCrawlerActualValueRequest actualValueReq = new ZmCrawlerActualValueRequest(quoteVo.getCarInfoVo(),fullCarDataDTO,head,quoteVo);
+                ZmCrawlerActualValueResponse actualValueResp = zmCrawlerRequestComponent.getActualValue(actualValueReq);
+                quotedPriceRequest.getBusinessData().getInsuredObject().getPolicyCar().setActualValue(actualValueResp.getActualValue());
+                quotedPriceRequest.getBusinessData().getInsuredObject().getPolicyCar().setActualValueCarLoss(actualValueResp.getActualValue());
+                quotedPriceRequest.getBusinessData().getInsuredObject().getPolicyCar().setUseYears(actualValueResp.getUseYears());
+                quotedPriceRequest.getHead().setTransCode(TransCode.QUOTE_PRICE);
+                quotedPriceResponse = zmCrawlerRequestComponent.quotedPrice(quotedPriceRequest);
             }
-            contractReq.getCoverage().forEach(coverageDTO -> {
-                coverageDTO.setValidDate(startTime);
-                coverageDTO.setExpiryDate(endTime);
-            });
-            quoteVo.getBiRiskInfoVo().setStartDate(startTime);
-            quoteVo.getBiRiskInfoVo().setEndDate(endTime);
-            ZmCrawlerActualValueRequest actualValueReq = new ZmCrawlerActualValueRequest(quoteVo.getCarInfoVo(),fullCarDataDTO,head,quoteVo);
-            ZmCrawlerActualValueResponse actualValueResp = zmCrawlerRequestComponent.getActualValue(actualValueReq);
-            quotedPriceRequest.getBusinessData().getInsuredObject().getPolicyCar().setActualValue(actualValueResp.getActualValue());
-            quotedPriceRequest.getBusinessData().getInsuredObject().getPolicyCar().setActualValueCarLoss(actualValueResp.getActualValue());
-            quotedPriceRequest.getBusinessData().getInsuredObject().getPolicyCar().setUseYears(actualValueResp.getUseYears());
-            quotedPriceRequest.getHead().setTransCode(TransCode.QUOTE_PRICE);
-            quotedPriceResponse = zmCrawlerRequestComponent.quotedPrice(quotedPriceRequest);
         }
         return quotedPriceResponse;
     }