فهرست منبع

紫金财险报价过程修改

wks 1 سال پیش
والد
کامیت
668cacdbf7

+ 18 - 7
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/QuoteResultsVo.java

@@ -26,29 +26,40 @@ public class QuoteResultsVo implements Serializable {
     private static final long serialVersionUID = -8957029953841098891L;
 
     /**
-     * 保险公司订单号
+     * 交互唯一订单
      */
-    private String insuranceOrderNo;
-
+    private String ordersNo;
     /**
      * 交强险 险种信息
      */
     private RiskInfoVo ciRiskInfoVo;
-
     /**
      * 商业险 险种信息
      */
     private RiskInfoVo biRiskInfoVo;
-
     /**
      * 商业险信息
      */
     private List<KindInfoVo> kindInfoVo;
-
     /**
      * 费用因子
      */
     private List<ExpenseFactor> expenseFactors;
-
+    /**
+     * 商业险保费
+     */
+    private String ciPremium;
+    /**
+     * 交强险保费
+     */
+    private String biPremium;
+    /**
+     *  非车险(交叉销售/驾意险)保费
+     */
+    private String niPremium;
+    /**
+     * 车船税 	Vehicle and Vessel Tax
+     */
+    private String vvTax;
 
 }

+ 1 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/CarInfoVo.java

@@ -135,6 +135,7 @@ public class CarInfoVo implements Serializable {
      * 新能源标志 true 新能源
      */
     private boolean newEnergyMark;
+
     /**
      * 过户日期:发证日期的正确格式为yyyy-MM-dd
      */

+ 8 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/KindInfoVo.java

@@ -26,6 +26,14 @@ public class KindInfoVo implements Serializable {
      * 险种名称
      */
     private String kindName;
+    /**
+     * 平台险种编码
+     */
+    private String platformKindCode;
+    /**
+     * 平台险种名称
+     */
+    private String platformKindName;
     /**
      * 保额
      */

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/converter/QuoteInfoConverter.java

@@ -43,7 +43,7 @@ public class QuoteInfoConverter {
         Map<String, QuoteRuleMapping> ruleMappingMap = quoteRuleMappingList.stream()
                 .collect(Collectors.toMap(QuoteRuleMapping::getPlatformCode, x -> x));
         kindInfoVo.forEach(kind -> {
-            QuoteRuleMapping quoteRuleMapping = ruleMappingMap.get(kind.getKindCode());
+            QuoteRuleMapping quoteRuleMapping = ruleMappingMap.get(kind.getPlatformKindCode());
             kind.setKindCode(quoteRuleMapping.getRuleCode());
             kind.setKindName(quoteRuleMapping.getRuleName());
         });

+ 74 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/build/ZiJinQuoteResultsVoBuild.java

@@ -0,0 +1,74 @@
+package com.jzg.quotation.zijin.api.build;
+
+import com.jzg.quotation.commons.constant.enums.quote.KindCode;
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.commons.entity.vo.quote.ExpenseFactor;
+import com.jzg.quotation.commons.entity.vo.quote.KindInfoVo;
+import com.jzg.quotation.commons.entity.vo.quote.RiskInfoVo;
+import com.google.common.collect.Lists;
+
+
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
+import com.jzg.quotation.zijin.api.constant.enums.RiskCodeEnum;
+import com.jzg.quotation.zijin.api.entity.response.CalculatePremiumResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+public class ZiJinQuoteResultsVoBuild {
+
+    public ZiJinQuoteResultsVoBuild() {
+        throw new IllegalStateException("Utility class");
+    }
+
+
+    public static QuoteResultsVo buildQuoteResultsVo(String orderNo, QuoteVo quoteVo, CalculatePremiumResponse calculatePremiumResponse) {
+        QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
+        quoteResultsVo.setOrdersNo(orderNo);
+        // 交强险
+        quoteResultsVo.setCiRiskInfoVo(new RiskInfoVo());
+        // 商业险
+        quoteResultsVo.setBiRiskInfoVo(new RiskInfoVo());
+        // 商业险险种信息
+        List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), calculatePremiumResponse.getItemKindList());
+        quoteResultsVo.setKindInfoVo(kindInfoVo);
+        // 费用因子
+        List<ExpenseFactor> expenseFactors = buildExpenseFactor(calculatePremiumResponse.getPriceInfoList());
+        quoteResultsVo.setExpenseFactors(expenseFactors);
+        // 交强保费 车船税 商业保费
+        buildPremium(quoteResultsVo, calculatePremiumResponse.getPlanList());
+        return quoteResultsVo;
+    }
+
+    private static List<ExpenseFactor> buildExpenseFactor(List<CalculatePremiumResponse.PriceInfoListDTO> priceInfoList) {
+
+
+
+        return new ArrayList<>();
+    }
+
+    private static List<KindInfoVo> buildKindInfoVo(List<KindInfoVo> kindInfoVo, List<CalculatePremiumResponse.ItemKindListDTO> itemKindList) {
+        Map<String, CalculatePremiumResponse.ItemKindListDTO> collect = itemKindList.stream()
+                .collect(Collectors.toMap(CalculatePremiumResponse.ItemKindListDTO::getKindCode, x -> x));
+        kindInfoVo.forEach(kind -> {
+            CalculatePremiumResponse.ItemKindListDTO itemKindListDTO = collect.get(kind.getKindCode());
+            if (KindCode.A.getCode().equals(kind.getPlatformKindCode())) {
+                kind.setAmount(itemKindListDTO.getAmount());
+            }
+            // 设置保费
+            kind.setPremium(itemKindListDTO.getPremium());
+        });
+        return kindInfoVo;
+    }
+
+    private static void buildPremium(QuoteResultsVo quoteResultsVo, List<CalculatePremiumResponse.PlanListDTO> planList) {
+        Map<String, String> planMap = planList.stream().collect(Collectors.toMap(CalculatePremiumResponse.PlanListDTO::getRiskCode, CalculatePremiumResponse.PlanListDTO::getPlanDate));
+        quoteResultsVo.setCiPremium(planMap.get(RiskCodeEnum.TRAFFIC_CODE));
+        quoteResultsVo.setBiPremium(planMap.get(RiskCodeEnum.BUSINESS_CODE));
+        quoteResultsVo.setVvTax(planMap.get(RiskCodeEnum.ACCIDENT_CODE));
+    }
+
+
+}

+ 2 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/CalculatePremiumRequest.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.zijin.api.entity.request;
 
 import cn.hutool.core.util.IdcardUtil;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.constant.enums.quote.KindCode;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
 import com.jzg.quotation.commons.entity.vo.quote.CustomerInfoVo;
@@ -1097,7 +1098,7 @@ public class CalculatePremiumRequest implements Serializable {
                 itemKindListDTO.unitAmount = kindInfoVo.getAmount();
                 itemKindListDTO.amount = kindInfoVo.getAmount();
                 // 车损险
-                if ("A".equals(itemKindListDTO.kindCode)) {
+                if (KindCode.A.getCode().equals(kindInfoVo.getPlatformKindCode())) {
                     itemKindListDTO.amount = actualValue;
                 }
                 itemKindListDTO.deductibleRate = kindInfoVo.getDeductibleRate();

+ 3 - 3
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java

@@ -7,6 +7,7 @@ import com.jzg.quotation.commons.entity.vo.quote.AttributionInformationVo;
 import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
+import com.jzg.quotation.zijin.api.build.ZiJinQuoteResultsVoBuild;
 import com.jzg.quotation.zijin.api.component.ZiJinApiRequestComponent;
 import com.jzg.quotation.zijin.api.entity.ZiJinApiConfigureParameters;
 import com.jzg.quotation.zijin.api.entity.request.CalculatePremiumRequest;
@@ -45,14 +46,13 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
         // 过滤车型
         ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO = CarModelsFilterUtils.to(modelQueryResponse.getVehicleModelInfos(), carInfoVo);
         // 计算车辆价格
+
         QueryActualValueRequest queryActualValueRequest = new QueryActualValueRequest(carInfoVo, vehicleModelInfosDTO.getPurchasePrice(), "");
         QueryActualValueResponse queryActualValueResponse = ziJinApiRequestComponent.queryActualValue(queryActualValueRequest, httpHeaders);
         // 报价
         CalculatePremiumRequest calculatePremiumRequest = new CalculatePremiumRequest(quoteVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), parameters, modelQueryResponse);
         CalculatePremiumResponse calculatePremiumResponse = ziJinApiRequestComponent.calculatePremium(calculatePremiumRequest, httpHeaders);
-
-
-        return null;
+        return ZiJinQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, calculatePremiumResponse);
     }
 
     @Override