wks преди 2 години
родител
ревизия
22a2ce3787

+ 5 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java

@@ -169,6 +169,11 @@ public class QuoteRespVo {
     @ApiModelProperty("商业出险次数")
     private String syClaims;
 
+    @ApiModelProperty("期望折扣")
+    private String expectedDiscount;
+
+    @ApiModelProperty("初始建议折扣")
+    private String initialProposalDiscount;
 
     public void setJqClaims(String jqClaims) {
         this.jqClaims = StringUtils.isEmpty(jqClaims) ? null : jqClaims;

+ 24 - 3
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/QuotationRequest.java

@@ -59,14 +59,15 @@ public class QuotationRequest extends BoHaiBaseRequest {
                             String currentValue,
                             String orderNO,
                             CarInfoVo carInfo,
-                            List<BoHaiQuoteAccidentVo> accidentVo) {
+                            List<BoHaiQuoteAccidentVo> accidentVo,
+                            String discount) {
         this.setBaseParam(parameters, orderNO);
         this.argueSolution = "1";
         for (RiskInfoVo riskInfoVo : riskList) {
             if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
                 this.trafficPolicy = new TrafficPolicyDTO(riskInfoVo);
             } else if (InsuranceRisk.BUSINESS.getCode().equals(riskInfoVo.getRiskCode())) {
-                this.businessPolicy = new BusinessPolicyDTO(riskInfoVo, kindList, currentValue, carInfo);
+                this.businessPolicy = new BusinessPolicyDTO(riskInfoVo, kindList, currentValue, carInfo, discount);
             }
         }
         this.unAutos = accidentVo.stream().map(UnAutoDTO::new).collect(Collectors.toList());
@@ -150,10 +151,30 @@ public class QuotationRequest extends BoHaiBaseRequest {
         @JsonProperty("endDate")
         private String endDate;
 
-        public BusinessPolicyDTO(RiskInfoVo riskInfoVo, List<KindInfoVo> kindList, String currentValue, CarInfoVo carInfo) {
+        @JsonProperty("floatingRateOption")
+        private FloatingRateOptionDTO floatingRateOption;
+
+
+        public BusinessPolicyDTO(RiskInfoVo riskInfoVo, List<KindInfoVo> kindList, String currentValue, CarInfoVo carInfo, String floatingRate) {
             this.startDate = riskInfoVo.getStartDate();
             this.endDate = riskInfoVo.getEndDate();
             this.coverages = CoveragesDTO.toCoveragesDTOList(kindList, currentValue, carInfo);
+            this.floatingRateOption = new FloatingRateOptionDTO(floatingRate);
+        }
+
+
+        @NoArgsConstructor
+        @Data
+        public static class FloatingRateOptionDTO implements Serializable {
+
+            private static final long serialVersionUID = 7069606640083303229L;
+
+            @JsonProperty("floatingRate")
+            private String floatingRate;
+
+            public FloatingRateOptionDTO(String floatingRate) {
+                this.floatingRate = floatingRate;
+            }
         }
 
         @NoArgsConstructor

+ 31 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/response/QuotationResponse.java

@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.List;
 
 @EqualsAndHashCode(callSuper = true)
@@ -180,6 +181,36 @@ public class QuotationResponse extends BoHaiBaseResponse {
             @JsonProperty("errorMsg")
             private String errorMsg;
 
+            @JsonProperty("floatingRateOption")
+            private FloatingRateOptionDTO floatingRateOption;
+
+
+            @NoArgsConstructor
+            @Data
+            public static class FloatingRateOptionDTO implements Serializable {
+
+                private static final long serialVersionUID = -4148788116305981598L;
+
+                @JsonProperty("maxFloatingRate")
+                private String maxFloatingRate;
+
+                @JsonProperty("minFloatingRate")
+                private String minFloatingRate;
+
+                @JsonProperty("floatingRate")
+                private String floatingRate;
+
+                @JsonProperty("nonClaimDiscountRate")
+                private String nonClaimDiscountRate	;
+
+                @JsonProperty("trafficTransgressRate")
+                private String trafficTransgressRate;
+
+                @JsonProperty("adjustFactor")
+                private String adjustFactor;
+            }
+
+
             @NoArgsConstructor
             @Data
             public static class CoveragesDTO implements Serializable {

+ 12 - 4
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -42,6 +42,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -140,8 +141,10 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         // 车辆实际价值
         String currentValue = vehicleConfirmationResponse.getData().getVehicleModels().get(0).getCurrentValue();
         // 4. 报价接口
+        String discount = quoteVo.getDiscount();
+
         QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
-                currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
+                currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo(), discount);
         QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest, parameters.getSysSourceCode());
         //商业险重复投保  重复投保保单信息 :保单号:314042303060007485车牌号:晋A881SR车架号:LMGAC1381K1535834发动机号:F699317保险公司代码:YAIC签单日期:20230414起保日期:202305030000
         // 终保日期:202405030000险别:机动车第三者责任保险,附加医保外用药责任险(机动车第三者责任保险)
@@ -208,7 +211,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
      */
     private QuotationResponse getQuotationResponseNew(BaseQuoteInfoVo quoteInfoVo, BaseQuoteVo<List<BoHaiQuoteAccidentVo>> quoteVo,
                                                       BoHaiConfigureParameters parameters, String orderNo, CarInfoVo carInfo,
-                                                      String currentValue, QuotationResponse response) throws Exception {
+                                                      String currentValue, QuotationResponse response, String discount) throws Exception {
         VehicleCheckCodeRequest vehicleCheckCodeRequest = new VehicleCheckCodeRequest(parameters, orderNo, carInfo.getVinNo(),
                 carInfo.getEngineNo(), carInfo.getLicenseNo());
         VehicleCheckCodeResponse vehicleCheckCodeResponse = boHaiRequestApiComponent.getVehicleCheckCode(vehicleCheckCodeRequest,
@@ -217,7 +220,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             String checkCode = vehicleCheckCodeResponse.getData().getCheckCode();
             //重新报价
             QuotationRequest quotationRequestNew = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
-                    currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
+                    currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo(), discount);
             List<QuotationRequest.CheckInfoDTO> checkInfoList = new ArrayList<QuotationRequest.CheckInfoDTO>();
             QuotationRequest.CheckInfoDTO checkInfo = new QuotationRequest.CheckInfoDTO("2", checkCode, "N");
             checkInfoList.add(checkInfo);
@@ -608,7 +611,6 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
                 kindList1.add(kind);
             }
         }
-
         quoteRespVo.setKindList(kindList1);
 
         List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
@@ -617,6 +619,12 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         if (!ObjectUtils.isEmpty(unAutoPremium)) {
             jyPremium = StringUtils.isEmpty(unAutoPremium.getPremium()) ? 0 : Double.parseDouble(unAutoPremium.getPremium());
         }
+
+        // 保费浮动项信息
+        QuotationResponse.DataDTO.BusinessPolicyDTO.FloatingRateOptionDTO floatingRateOption = response.getData().getBusinessPolicy().getFloatingRateOption();
+        quoteRespVo.setExpectedDiscount(floatingRateOption.getAdjustFactor());
+        quoteRespVo.setInitialProposalDiscount(floatingRateOption.getNonClaimDiscountRate());
+
         //  报价险种放入保费
         List<QuoteRiskRespVo> riskList1 = QuoteRiskRespVo.toQuoteRiskRespVoList(riskList, jqPremium, syPremium);