Explorar o código

大家商业险问题

xuqiang hai 4 meses
pai
achega
f928097c76

+ 1 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerPriceRequest.java

@@ -136,7 +136,7 @@ public class DaJiaCrawlerPriceRequest implements Serializable {
         this.applicantInfo = new PersonnelInformation(quoteVo.getPolicyHolderInfo());
         // 商业险
         if (!ObjectUtils.isEmpty(quoteVo.getBiRiskInfoVo())) {
-            this.businessInsurance = new BusinessInsuranceDTO(quoteVo.getBiRiskInfoVo(), quoteVo.getKindInfoVo());
+            this.businessInsurance = new BusinessInsuranceDTO(quoteVo.getBiRiskInfoVo(), quoteVo.getKindInfoVo(),quoteVo.getCarInfoVo().getSeatCount());
         }else {
             this.businessInsurance = new BusinessInsuranceDTO();
         }

+ 17 - 3
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/quote/BusinessInsuranceDTO.java

@@ -11,8 +11,8 @@ import lombok.NoArgsConstructor;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.List;
-import java.util.stream.Collectors;
 
 @Data
 public class BusinessInsuranceDTO implements Serializable {
@@ -47,14 +47,28 @@ public class BusinessInsuranceDTO implements Serializable {
     @JsonProperty("chargPostInfos")
     private List<Object> chargPostInfos;
 
-    public BusinessInsuranceDTO(RiskInfoVo biRiskInfoVo, List<KindInfoVo> kindInfoVo) {
+    public BusinessInsuranceDTO(RiskInfoVo biRiskInfoVo, List<KindInfoVo> kindInfoVo,String seatCount) {
         this.coefficientInfo = new CoefficientInfoDTO();
         this.deviceInfos = List.of();
-        this.itemKinds = kindInfoVo.stream().map(ItemKindsDTO::new).collect(Collectors.toList());
+        this.itemKinds = getKinds(kindInfoVo,seatCount);
         this.productInfo = new ProductInfoDTO(biRiskInfoVo);
         this.specialInfos = List.of();
     }
 
+
+    public List<ItemKindsDTO> getKinds(List<KindInfoVo> kindInfoVo, String seatCount) {
+        BigDecimal seat = new BigDecimal(seatCount);
+        return kindInfoVo.stream()
+                .map(ItemKindsDTO::new)
+                .peek(dto -> {
+                    if ("030009".equals(dto.getKindCode()) || "035803".equals(dto.getKindCode())) {
+                        dto.setAmount(new BigDecimal(dto.getAmount()).multiply(seat).toString());
+                        dto.setQuantity(String.valueOf(Integer.parseInt(seatCount) - 1));
+                    }
+                }).toList();
+    }
+
+
     public BusinessInsuranceDTO(){
         this.coefficientInfo = new CoefficientInfoDTO();
         this.deviceInfos = List.of();

+ 1 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java

@@ -148,13 +148,13 @@ public class DaJiaCrawlerRequestImpl implements DaJiaCrawlerRequest {
 
         // 3.0 保费计算
         DaJiaCrawlerPriceRequest daJiaCrawlerPriceRequest = new DaJiaCrawlerPriceRequest(quoteVo, listDTO, daJiaCrawlerActualValueResponse, proposalInfoDTO, userCode, daJiaCrawlerCarResponse.getChannelOrderNo());
+        log.info("大家报价传参:{}", JSONObject.toJSONString(daJiaCrawlerPriceRequest));
         DaJiaCrawlerPriceResponse crawlerPriceResponse = daJiaCrawlerRequestComponent.price(daJiaCrawlerPriceRequest, headers);
         // 处理重复投保
         String message = crawlerPriceResponse.getIncreasedValueMsg();
         if (message.contains("重复投保")) {
             String startTime = extractDuplicateEndTime(message);
             String endTime = TimeProcessing.minusOneSecondAfterYear(startTime);
-            ;
             CompulsoryInsuranceDTO compulsoryInsuranceDTO = daJiaCrawlerPriceRequest.getCompulsoryInsurance();
             BusinessInsuranceDTO businessInsuranceDTO = daJiaCrawlerPriceRequest.getBusinessInsurance();
             compulsoryInsuranceDTO.getProductInfo().setStartDate(startTime);