ソースを参照

update:
1.永安报价因子提交核保问题

wks 1 年間 前
コミット
4b2224677b
1 ファイル変更109 行追加57 行削除
  1. 109 57
      src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

+ 109 - 57
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -9,7 +9,6 @@ import com.ydtech.modules.ins.model.vo.KindInfoVo;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
-import com.ydtech.modules.order.entity.api.bohai.constants.VehicleUsage;
 import com.ydtech.modules.order.entity.api.dajia.constants.TypeVehicleMapping;
 import com.ydtech.modules.protocol.entity.po.PtlNewCarJudgeRules;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
@@ -24,6 +23,7 @@ import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.regex.Pattern;
 
 /**
@@ -81,7 +81,8 @@ public class RuleAttrMappingVo {
         LocalDate currentDate = LocalDate.now();
 
         //特种车判断
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("SpecialVehicle", Objects.nonNull(carInfo.getImportFlag()) && carInfo.getImportFlag().equals("特种车类") ? "1" : "0"));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("SpecialVehicle", Objects.nonNull(carInfo.getImportFlag()) && carInfo.getImportFlag()
+                .equals("特种车类") ? "1" : "0"));
 
         //交强起保日期
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqStartTime", insAreaCompany.getJqStartDate()));
@@ -90,7 +91,7 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyStartTime", insAreaCompany.getSyStartDate()));
 
         // 中煤不浮动原因
-        if(Objects.nonNull(quoteRespVo)) {
+        if (Objects.nonNull(quoteRespVo)) {
             String rateFloatFlag = ZmTransferType.getByCode(quoteRespVo.getRateFloatFlag());
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("RateFloatFlag", rateFloatFlag == null ? "null" : rateFloatFlag));
         }
@@ -118,7 +119,6 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleAge", String.valueOf(between)));
 
 
-
         //发证日期
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("DateofIssuance", carInfo.getIssueDate()));
         //车长
@@ -129,17 +129,20 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyRenewalOfInsurance", insAreaCompany.getSyRenewal()));
 
         CustomerInfoVo ownerInfo = insOrders.getOwnerinfo().toJavaObject(CustomerInfoVo.class);
-        if(StringUtils.isBlank(ownerInfo.getProperty()) || !"0".equals(ownerInfo.getProperty())) {
+        if (StringUtils.isBlank(ownerInfo.getProperty()) || !"0".equals(ownerInfo.getProperty())) {
             //车主 证件号码(前6位)
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersIDNumber", ownerInfo.getIdentifyNumber()));
             //车主 年龄
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersAge", ownerInfo.getAge()));
             //车主 性别
-            ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersSex", ownerInfo.getGender().equals("男") ? "1" : "2"));
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersSex", ownerInfo.getGender()
+                    .equals("男") ? "1" : "2"));
             //车主地址
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersAddress", ownerInfo.getAddr()));
             // 车主生日
-            String carOwnersBirthday = ownerInfo.getIdentifyNumber().substring(6,10) + "-" + ownerInfo.getIdentifyNumber().substring(10,12) + "-" + ownerInfo.getIdentifyNumber().substring(12,14);
+            String carOwnersBirthday = ownerInfo.getIdentifyNumber()
+                    .substring(6, 10) + "-" + ownerInfo.getIdentifyNumber()
+                    .substring(10, 12) + "-" + ownerInfo.getIdentifyNumber().substring(12, 14);
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersBirthday", carOwnersBirthday));
 
         }
@@ -147,81 +150,103 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnerName", ownerInfo.getName()));
 
         CustomerInfoVo policyHolderInfo = insOrders.getApplyinfo().toJavaObject(CustomerInfoVo.class);
-        if(StringUtils.isBlank(policyHolderInfo.getProperty()) || !"0".equals(policyHolderInfo.getProperty())) {
+        if (StringUtils.isBlank(policyHolderInfo.getProperty()) || !"0".equals(policyHolderInfo.getProperty())) {
             //投保人 证件号码(前6位)
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantIDNumber", policyHolderInfo.getIdentifyNumber()));
             //投保人 年龄
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantAge", policyHolderInfo.getAge()));
             //投保人 性别
-            ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantSex", policyHolderInfo.getGender().equals("男") ? "1" : "2"));
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantSex", policyHolderInfo.getGender()
+                    .equals("男") ? "1" : "2"));
             //投保人地址
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantAddress", policyHolderInfo.getAddr()));
             // 投保人生日
-            String applicantBirthday = policyHolderInfo.getIdentifyNumber().substring(6,10) + "-" + policyHolderInfo.getIdentifyNumber().substring(10,12) + "-" + policyHolderInfo.getIdentifyNumber().substring(12,14);
+            String applicantBirthday = policyHolderInfo.getIdentifyNumber()
+                    .substring(6, 10) + "-" + policyHolderInfo.getIdentifyNumber()
+                    .substring(10, 12) + "-" + policyHolderInfo.getIdentifyNumber().substring(12, 14);
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantBirthday", applicantBirthday));
         }
 
         CustomerInfoVo insuredPersonInfo = insOrders.getInsureinfo().toJavaObject(CustomerInfoVo.class);
-        if(StringUtils.isBlank(insuredPersonInfo.getProperty()) || !"0".equals(insuredPersonInfo.getProperty())) {
+        if (StringUtils.isBlank(insuredPersonInfo.getProperty()) || !"0".equals(insuredPersonInfo.getProperty())) {
             //被保人 证件号码(前6位)
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredIDNumber", insuredPersonInfo.getIdentifyNumber()));
             //被保人 年龄
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredAge", insuredPersonInfo.getAge()));
             //被保人 性别
-            ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredSex", insuredPersonInfo.getGender().equals("男") ? "1" : "2"));
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredSex", insuredPersonInfo.getGender()
+                    .equals("男") ? "1" : "2"));
             //被保人地址
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredAddress", insuredPersonInfo.getAddr()));
             //被保人生日
-            String insuredBirthday = insuredPersonInfo.getIdentifyNumber().substring(6,10) + "-" + insuredPersonInfo.getIdentifyNumber().substring(10,12) + "-" + insuredPersonInfo.getIdentifyNumber().substring(12,14);
+            String insuredBirthday = insuredPersonInfo.getIdentifyNumber()
+                    .substring(6, 10) + "-" + insuredPersonInfo.getIdentifyNumber()
+                    .substring(10, 12) + "-" + insuredPersonInfo.getIdentifyNumber().substring(12, 14);
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredBirthday", insuredBirthday));
         }
         String OPIConsistent = "0";
-        if(StringUtils.isNotBlank(ownerInfo.getProperty())){
-            boolean boo = ownerInfo.getProperty().equals(insuredPersonInfo.getProperty()) && insuredPersonInfo.getProperty().equals(policyHolderInfo.getProperty());
-            if(boo){
-                if("0".equals(ownerInfo.getProperty())){
-                    if((ownerInfo.getName().equals(insuredPersonInfo.getName()) && insuredPersonInfo.getName().equals(policyHolderInfo.getName())) &&
-                            (ownerInfo.getOrganizationCode().equals(insuredPersonInfo.getOrganizationCode()) && insuredPersonInfo.getOrganizationCode().equals(policyHolderInfo.getOrganizationCode()))){
+        if (StringUtils.isNotBlank(ownerInfo.getProperty())) {
+            boolean boo = ownerInfo.getProperty()
+                    .equals(insuredPersonInfo.getProperty()) && insuredPersonInfo.getProperty()
+                    .equals(policyHolderInfo.getProperty());
+            if (boo) {
+                if ("0".equals(ownerInfo.getProperty())) {
+                    if ((ownerInfo.getName().equals(insuredPersonInfo.getName()) && insuredPersonInfo.getName()
+                            .equals(policyHolderInfo.getName())) &&
+                            (ownerInfo.getOrganizationCode()
+                                    .equals(insuredPersonInfo.getOrganizationCode()) && insuredPersonInfo.getOrganizationCode()
+                                    .equals(policyHolderInfo.getOrganizationCode()))) {
                         OPIConsistent = "1";
                     }
-                }else{
-                    if((ownerInfo.getName().equals(insuredPersonInfo.getName()) && insuredPersonInfo.getName().equals(policyHolderInfo.getName())) &&
-                            (ownerInfo.getIdentifyNumber().equals(insuredPersonInfo.getIdentifyNumber()) && insuredPersonInfo.getIdentifyNumber().equals(policyHolderInfo.getIdentifyNumber()))){
+                } else {
+                    if ((ownerInfo.getName().equals(insuredPersonInfo.getName()) && insuredPersonInfo.getName()
+                            .equals(policyHolderInfo.getName())) &&
+                            (ownerInfo.getIdentifyNumber()
+                                    .equals(insuredPersonInfo.getIdentifyNumber()) && insuredPersonInfo.getIdentifyNumber()
+                                    .equals(policyHolderInfo.getIdentifyNumber()))) {
                         OPIConsistent = "1";
                     }
                 }
             }
-        }else {
-            if ((ownerInfo.getName().equals(insuredPersonInfo.getName()) && insuredPersonInfo.getName().equals(policyHolderInfo.getName())) &&
-                    (ownerInfo.getIdentifyNumber().equals(insuredPersonInfo.getIdentifyNumber()) && insuredPersonInfo.getIdentifyNumber().equals(policyHolderInfo.getIdentifyNumber()))) {
+        } else {
+            if ((ownerInfo.getName().equals(insuredPersonInfo.getName()) && insuredPersonInfo.getName()
+                    .equals(policyHolderInfo.getName())) &&
+                    (ownerInfo.getIdentifyNumber()
+                            .equals(insuredPersonInfo.getIdentifyNumber()) && insuredPersonInfo.getIdentifyNumber()
+                            .equals(policyHolderInfo.getIdentifyNumber()))) {
                 OPIConsistent = "1";
             }
         }
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("OPIConsistent",OPIConsistent));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("OPIConsistent", OPIConsistent));
         String PIConsistent = "0";
 
-        if(StringUtils.isNotBlank(insuredPersonInfo.getProperty())){
+        if (StringUtils.isNotBlank(insuredPersonInfo.getProperty())) {
             boolean boo = insuredPersonInfo.getProperty().equals(policyHolderInfo.getProperty());
-            if(boo){
-                if("0".equals(insuredPersonInfo.getProperty())){
+            if (boo) {
+                if ("0".equals(insuredPersonInfo.getProperty())) {
                     //投被保人是否一致
-                    if(insuredPersonInfo.getName().equals(policyHolderInfo.getName()) && insuredPersonInfo.getOrganizationCode().equals(policyHolderInfo.getOrganizationCode())){
+                    if (insuredPersonInfo.getName()
+                            .equals(policyHolderInfo.getName()) && insuredPersonInfo.getOrganizationCode()
+                            .equals(policyHolderInfo.getOrganizationCode())) {
                         PIConsistent = "1";
                     }
-                }else{
+                } else {
                     //投被保人是否一致
-                    if(insuredPersonInfo.getName().equals(policyHolderInfo.getName()) && insuredPersonInfo.getIdentifyNumber().equals(policyHolderInfo.getIdentifyNumber())){
+                    if (insuredPersonInfo.getName()
+                            .equals(policyHolderInfo.getName()) && insuredPersonInfo.getIdentifyNumber()
+                            .equals(policyHolderInfo.getIdentifyNumber())) {
                         PIConsistent = "1";
                     }
                 }
             }
-        }else{
+        } else {
             //投被保人是否一致
-            if(insuredPersonInfo.getName().equals(policyHolderInfo.getName()) && insuredPersonInfo.getIdentifyNumber().equals(policyHolderInfo.getIdentifyNumber())){
+            if (insuredPersonInfo.getName().equals(policyHolderInfo.getName()) && insuredPersonInfo.getIdentifyNumber()
+                    .equals(policyHolderInfo.getIdentifyNumber())) {
                 PIConsistent = "1";
             }
-       }
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PIConsistent",PIConsistent));
+        }
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PIConsistent", PIConsistent));
 
         //2024-06-20 起保日期 月份判断
         if (insAreaCompany.getJqStartDate() != null && !insAreaCompany.getJqStartDate().equals("")) {
@@ -237,69 +262,86 @@ public class RuleAttrMappingVo {
         //险别信息
         kindInfoVos.forEach(kindInfoVo -> {
             //机动车损失险
-            if (InsurKind.A.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.A.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("MotorVehicleDamageInsurance", String.valueOf(kindInfoVo.getAmount())));
+            }
             //第三者责任险
-            if (InsurKind.B.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.B.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyLiabilityInsurance",
                         String.valueOf(Double.valueOf(kindInfoVo.getAmount()).intValue())));
+            }
             //司机责任险
-            if (InsurKind.D3.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.D3.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
+            }
             //乘客责任险
-            if (InsurKind.D4.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.D4.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerLiabilityInsurance", String.valueOf(kindInfoVo.getUnitAmount())));
+            }
             //车身划痕险
-            if (InsurKind.L.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.L.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarScratchInsurance", String.valueOf(kindInfoVo.getAmount())));
+            }
             //绝对免赔率特约险(车损)
-            if (InsurKind.MJ1.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.MJ1.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleDamageAbsoluteDeductibleSpecialInsurance",
                         String.valueOf(kindInfoVo.getAmount())));
+            }
             //绝对免赔率特约险(三者)
-            if (InsurKind.MJ2.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.MJ2.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdAbsoluteDeductibleSpecialInsurance",
                         String.valueOf(kindInfoVo.getAmount())));
+            }
             //绝对免赔率特约险(司机)
-            if (InsurKind.MJ3.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.MJ3.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverAbsoluteDeductibleSpecialInsurance",
                         String.valueOf(kindInfoVo.getAmount())));
+            }
             //绝对免赔率特约险(乘客)
-            if (InsurKind.MJ4.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.MJ4.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerAbsoluteDeductibleSpecialInsurance",
                         String.valueOf(kindInfoVo.getAmount())));
+            }
             //附加医保-三者
-            if (InsurKind.SY_FJ_YBW1.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.SY_FJ_YBW1.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyAdditionalMedicalInsurance",
                         String.valueOf(kindInfoVo.getAmount())));
+            }
             //附加医保-座位险(乘客)
-            if (InsurKind.SY_FJ_YBW2.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.SY_FJ_YBW2.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerAdditionalMedicalInsurance",
                         String.valueOf(kindInfoVo.getAmount())));
+            }
             //附加医保-座位险(司机)
-            if (InsurKind.SY_FJ_YBW3.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.SY_FJ_YBW3.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverAdditionalMedicalInsurance",
                         String.valueOf(kindInfoVo.getAmount())));
+            }
             //法定节假日限额翻倍险
-            if (InsurKind.BD.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.BD.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("LegalHolidayLimitDoublingInsurance",
                         String.valueOf(kindInfoVo.getAmount())));
+            }
             //道路救援服务特约条款
-            if (InsurKind.TY1.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.TY1.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("RoadsideAssistanceServiceSpecialClause",
                         String.valueOf(kindInfoVo.getServiceTimes())));
+            }
             //车辆安全检测特约条款
-            if (InsurKind.TY2.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.TY2.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleSafetyInspectionSpecialClause",
                         String.valueOf(kindInfoVo.getServiceTimes())));
+            }
             //代为驾驶服务特约条款
-            if (InsurKind.TY3.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.TY3.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("SubstituteDrivingServiceSpecialClause",
                         String.valueOf(kindInfoVo.getServiceTimes())));
+            }
             //代为送检服务特约条款
-            if (InsurKind.TY4.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.TY4.getCode().equals(kindInfoVo.getKindCode())) {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("SubstituteInspectionServiceSpecialClause",
                         String.valueOf(kindInfoVo.getServiceTimes())));
+            }
         });
 
         //交强保费
@@ -317,13 +359,22 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialDiscount", String.valueOf(insAreaCompany.getSyAdjustRate())));
 
         //永安评分
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("YaScore", String.valueOf(quoteRespVo.getYaScore())));
+        Optional.ofNullable(quoteRespVo.getYaScore())
+                .ifPresent(x -> {
+                    ruleAttrMappingVoList.add(new RuleAttrMappingVo("YaScore", x));
+                });
 
         //永安交强费用浮动
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CifeeFloat", String.valueOf(quoteRespVo.getCifeeFloat())));
+        Optional.ofNullable(quoteRespVo.getCifeeFloat())
+                .ifPresent(x -> {
+                    ruleAttrMappingVoList.add(new RuleAttrMappingVo("CifeeFloat", quoteRespVo.getCifeeFloat()));
+                });
 
         //永安商业费用浮动
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("BifeeFloat", String.valueOf(quoteRespVo.getBifeeFloat())));
+        Optional.ofNullable(quoteRespVo.getBifeeFloat())
+                .ifPresent(x -> {
+                    ruleAttrMappingVoList.add(new RuleAttrMappingVo("BifeeFloat", quoteRespVo.getBifeeFloat()));
+                });
 
         //数值型总评分
         Pattern pattern = Pattern.compile("[0-9]*");
@@ -369,7 +420,8 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("GreenYellowAndRedAreas", insAreaCompany.getTpColorScore()));
         if (insAreaCompany.getAccidentalDriving() != null) {
             //非车名称
-            ruleAttrMappingVoList.add(new RuleAttrMappingVo("NonCarName", insAreaCompany.getAccidentalDriving().getRideRiskName()));
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("NonCarName", insAreaCompany.getAccidentalDriving()
+                    .getRideRiskName()));
             //非车份数
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("NonCarQuantity",
                     String.valueOf(insAreaCompany.getAccidentalDriving().getQuantity())));