dongxin пре 1 година
родитељ
комит
b3f38b6dde

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

@@ -28,53 +28,80 @@ public class QuoteInfoConverter {
                 .stream()
                 .collect(Collectors.groupingBy(QuoteRuleMapping::getGroupCode, Collectors.toMap(QuoteRuleMapping::getPlatformCode, QuoteRuleMapping::getRuleCode)));
         // 使用性质
-        carInfoVo.setCarNatureCode(groupCodeMap
-                .get(QuoteRuleGroup.CAR_NATURE.getCode())
-                .get(carInfoVo.getCarNatureCode()));
+        if(groupCodeMap.containsKey(QuoteRuleGroup.VEHICLE_USE.getCode())){
+            carInfoVo.setCarNatureCode(groupCodeMap
+                    .get(QuoteRuleGroup.VEHICLE_USE.getCode())
+                    .get(carInfoVo.getCarNatureCode()));
+        }
         // 车辆用途
-        carInfoVo.setVehicleUseCode(groupCodeMap
-                .get(QuoteRuleGroup.VEHICLE_USE.getCode())
-                .get(carInfoVo.getVehicleUseCode()));
+        if(groupCodeMap.containsKey(QuoteRuleGroup.VEHICLE_USE.getCode())){
+            carInfoVo.setVehicleUseCode(groupCodeMap
+                    .get(QuoteRuleGroup.VEHICLE_USE.getCode())
+                    .get(carInfoVo.getVehicleUseCode()));
+        }
         // 车辆种类
-        carInfoVo.setCarKindCode(groupCodeMap
-                .get(QuoteRuleGroup.CAR_KIND.getCode())
-                .get(carInfoVo.getCarKindCode()));
+        if(groupCodeMap.containsKey(QuoteRuleGroup.CAR_KIND.getCode())){
+            carInfoVo.setCarKindCode(groupCodeMap
+                    .get(QuoteRuleGroup.CAR_KIND.getCode())
+                    .get(carInfoVo.getCarKindCode()));
+        }
         // 能源类型
-        carInfoVo.setEnergyTypeCode(groupCodeMap
-                .get(QuoteRuleGroup.ENERGY_TYPE.getCode())
-                .get(carInfoVo.getEnergyTypeCode()));
+        if(groupCodeMap.containsKey(QuoteRuleGroup.ENERGY_TYPE.getCode())){
+            carInfoVo.setEnergyTypeCode(groupCodeMap
+                    .get(QuoteRuleGroup.ENERGY_TYPE.getCode())
+                    .get(carInfoVo.getEnergyTypeCode()));
+        }
+
         // 车辆类型 有的保险公司不需要映射
-        String carType = groupCodeMap
-                .get(QuoteRuleGroup.CAR_TYPE.getCode())
-                .get(carInfoVo.getCarTypeCode());
-        if (StringUtils.hasText(carType)) {
-            carInfoVo.setCarTypeCode(carType);
+        if(groupCodeMap.containsKey(QuoteRuleGroup.CAR_TYPE.getCode())){
+            String carType = groupCodeMap
+                    .get(QuoteRuleGroup.CAR_TYPE.getCode())
+                    .get(carInfoVo.getCarTypeCode());
+            if (StringUtils.hasText(carType)) {
+                carInfoVo.setCarTypeCode(carType);
+            }
         }
         // 所属性质
-        carInfoVo.setPropertyCode(groupCodeMap
-                .get(QuoteRuleGroup.PROPERTY.getCode())
-                .get(carInfoVo.getPropertyCode()));
+        if(groupCodeMap.containsKey(QuoteRuleGroup.PROPERTY.getCode())){
+            carInfoVo.setPropertyCode(groupCodeMap
+                    .get(QuoteRuleGroup.PROPERTY.getCode())
+                    .get(carInfoVo.getPropertyCode()));
+        }
+
         // 车辆明细
-        carInfoVo.setLicenseColorCode(groupCodeMap
-                .get(QuoteRuleGroup.CAR_KIND_DETAIL.getCode())
-                .get(carInfoVo.getLicenseColorCode()));
+        if(groupCodeMap.containsKey(QuoteRuleGroup.CAR_KIND_DETAIL.getCode())){
+            carInfoVo.setLicenseColorCode(groupCodeMap
+                    .get(QuoteRuleGroup.CAR_KIND_DETAIL.getCode())
+                    .get(carInfoVo.getLicenseColorCode()));
+        }
+
         // 号牌颜色
-        carInfoVo.setLicenseColorCode(groupCodeMap
-                .get(QuoteRuleGroup.LICENSE_COLOR.getCode())
-                .get(carInfoVo.getLicenseColorCode()));
+        if(groupCodeMap.containsKey(QuoteRuleGroup.LICENSE_COLOR.getCode())){
+            carInfoVo.setLicenseColorCode(groupCodeMap
+                    .get(QuoteRuleGroup.LICENSE_COLOR.getCode())
+                    .get(carInfoVo.getLicenseColorCode()));
+        }
+
         // 号牌种类
-        carInfoVo.setLicenseKindCode(groupCodeMap
-                .get(QuoteRuleGroup.LICENSE_KIND.getCode())
-                .get(carInfoVo.getLicenseKindCode()));
+        if(groupCodeMap.containsKey(QuoteRuleGroup.LICENSE_KIND.getCode())){
+            carInfoVo.setLicenseKindCode(groupCodeMap
+                    .get(QuoteRuleGroup.LICENSE_KIND.getCode())
+                    .get(carInfoVo.getLicenseKindCode()));
+        }
+
     }
 
     /**
      * @param kindInfoVo           险种信息
      * @param quoteRuleMappingList 报价规则映射
+     * @param carInfoVo
      */
-    public static void converterKindInfoVo(List<KindInfoVo> kindInfoVo, List<QuoteRuleMapping> quoteRuleMappingList) {
+    public static void converterKindInfoVo(List<KindInfoVo> kindInfoVo, List<QuoteRuleMapping> quoteRuleMappingList, CarInfoVo carInfoVo) {
+
+        String groupCode = carInfoVo.getEnergyTypeCode().equals("0") ?
+                QuoteRuleGroup.BUS_KIND.getCode():QuoteRuleGroup.NEW_ENERGY_KIND.getCode();
         Map<String, QuoteRuleMapping> ruleMappingMap = quoteRuleMappingList
-                .stream()
+                .stream().filter(x -> x.getGroupCode().equals(groupCode))
                 .collect(Collectors.toMap(QuoteRuleMapping::getPlatformCode, x -> x));
         kindInfoVo.forEach(kind -> {
             QuoteRuleMapping quoteRuleMapping = ruleMappingMap.get(kind.getKindCode());