Răsfoiți Sursa

修改承保规则bug

785834757 2 ani în urmă
părinte
comite
981270e4c3

+ 157 - 151
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -42,9 +42,9 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 /**
- *@author: tz
- *@description: 费用接口中相关功能的实现类
- *@create: 2024-3-1 11:45:33
+ * @author: tz
+ * @description: 费用接口中相关功能的实现类
+ * @create: 2024-3-1 11:45:33
  */
 @Service
 public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
@@ -80,7 +80,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
     private EsmUserReferrerService esmUserReferrerService;
 
     @Autowired
-    private SysUserAccountService  sysUserAccountService;
+    private SysUserAccountService sysUserAccountService;
 
     @Autowired
     private PtlNewCarJudgeRulesService ptlNewCarJudgeRulesService;
@@ -111,54 +111,55 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
      * 校验费用因子
      */
     @Override
-    public void verificationCostFactor(InsAreaCompany insAreaCompany,InsOrders insOrders,StringBuilder logs){
+    public void verificationCostFactor(InsAreaCompany insAreaCompany, InsOrders insOrders, StringBuilder logs) {
 
-        List<AgreementProductCosts> agreementProductCosts = ptlAgreementProductCostsNewService.costsGetList(insAreaCompany.getAgreementId(),insOrders.getProductid());
+        List<AgreementProductCosts> agreementProductCosts = ptlAgreementProductCostsNewService.costsGetList(insAreaCompany.getAgreementId(), insOrders.getProductid());
 //        if(agreementProductCosts == null || agreementProductCosts.size() == 0){
 //            throw new SystemException("协议费用因子为空");
 //        }
-        for(int i=0;i<agreementProductCosts.size();i++)
-        {
-            if(agreementProductCosts.get(i).getPriorityLevel()==null){
+        for (int i = 0; i < agreementProductCosts.size(); i++) {
+            if (agreementProductCosts.get(i).getPriorityLevel() == null) {
                 agreementProductCosts.get(i).setPriorityLevel(10);
             }
         }
-        if(agreementProductCosts.size() > 0) {
+        if (agreementProductCosts.size() > 0) {
             //按优先级进行排序
             Collections.sort(agreementProductCosts, Comparator.comparingInt(AgreementProductCosts::getPriorityLevel));
             //遍历费用因子
-            String costsId = verificationCosts(agreementProductCosts, insAreaCompany, insOrders,logs);
-            if(costsId != null) {
+            String costsId = verificationCosts(agreementProductCosts, insAreaCompany, insOrders, logs);
+            if (costsId != null) {
                 calcCosts(costsId, insAreaCompany);
                 log.debug("费用因子校验通过,子订单id:" + insAreaCompany.getId() + ",费用id:" + costsId);
             }
-        }else{
+        } else {
             logs.append("没有找到该协议的费用信息" + "\n");
         }
     }
 
     /**
      * 校验承保规则
+     *
      * @param insAreaCompany
      * @param insOrders
      */
     @Override
     public void verificationRuleFactor(InsAreaCompany insAreaCompany, InsOrders insOrders) {
         List<PtlAgreementUndwrtRulesNew> ptlAgreementUndwrtRules = ptlAgreementUndwrtRulesNewService.rulesList(insAreaCompany.getAgreementId());
-        verificationRules(ptlAgreementUndwrtRules, insAreaCompany,insOrders);
+        verificationRules(ptlAgreementUndwrtRules, insAreaCompany, insOrders);
     }
 
     /**
      * 计算费用
+     *
      * @param costsId
      * @param insAreaCompany
      */
     @Override
-    public void calcCosts(String costsId,InsAreaCompany insAreaCompany) {
+    public void calcCosts(String costsId, InsAreaCompany insAreaCompany) {
         //获取协议信息
         PtlAgreement ptlAgreement = ptlAgreementService.getById(insAreaCompany.getAgreementId());
         BigDecimal taxRadio = new BigDecimal("1.00");
-        if(ptlAgreement.getWithTax().equals("否")){
+        if (ptlAgreement.getWithTax().equals("否")) {
             taxRadio = new BigDecimal("1.06");
         }
         //税比例 固定1.06
@@ -179,7 +180,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //存储部门id与用户id
         InsOrders order = insOrdersService.getById(insAreaCompany.getOrderno());
         InsFeeOrderNew insFeeOrderNewByCompanyId = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insAreaCompany.getId());
-        if(insFeeOrderNewByCompanyId != null){
+        if (insFeeOrderNewByCompanyId != null) {
             insFeeOrderNew.setId(insFeeOrderNewByCompanyId.getId());
         }
         insFeeOrderNew.setDeptId(order.getDeptid());
@@ -189,9 +190,9 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         insFeeOrderNew.setSyPremium(insAreaCompany.getSypremium());
         insFeeOrderNew.setNoPremium(insAreaCompany.getJypremium());
         //不含税
-        insFeeOrderNew.setJqNoTaxPremium(insAreaCompany.getJqpremium().divide(taxRadio,2));
-        insFeeOrderNew.setSyNoTaxPremium(insAreaCompany.getSypremium().divide(taxRadio,2));
-        insFeeOrderNew.setNoNoTaxPremium(insAreaCompany.getJypremium().divide(taxRadio,2));
+        insFeeOrderNew.setJqNoTaxPremium(insAreaCompany.getJqpremium().divide(taxRadio, 2));
+        insFeeOrderNew.setSyNoTaxPremium(insAreaCompany.getSypremium().divide(taxRadio, 2));
+        insFeeOrderNew.setNoNoTaxPremium(insAreaCompany.getJypremium().divide(taxRadio, 2));
 
         //region 计算入口费用
 
@@ -249,27 +250,27 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
             if (esmRetail != null) {
                 BigDecimal sumPremium = insFeeOrderNew.getJqPremium().add(insFeeOrderNew.getSyPremium()).add(insFeeOrderNew.getNoPremium());
-                if(Integer.parseInt(esmRetail.getRetailtype()) >= 3){
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 3) {
                     insFeeOrderNew.setThirdDetailProportion(new BigDecimal(esmRetail.getDisrate3()));
                     retailRadio.add(insFeeOrderNew.getThirdDetailProportion());
                     insFeeOrderNew.setThirdDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate3())).divide(new BigDecimal("100")));
-                    if(parents != null && parents.size() > 2){
+                    if (parents != null && parents.size() > 2) {
                         insFeeOrderNew.setThreeLevelUserId(parents.get(2).getId());
                     }
                 }
-                if(Integer.parseInt(esmRetail.getRetailtype()) >= 2){
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 2) {
                     insFeeOrderNew.setSecondDetailProportion(new BigDecimal(esmRetail.getDisrate2()));
                     retailRadio.add(insFeeOrderNew.getSecondDetailProportion());
                     insFeeOrderNew.setSecondDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate2())).divide(new BigDecimal("100")));
-                    if(parents != null && parents.size() > 1){
+                    if (parents != null && parents.size() > 1) {
                         insFeeOrderNew.setTwoLevelUserId(parents.get(1).getId());
                     }
                 }
-                if(Integer.parseInt(esmRetail.getRetailtype()) >= 1){
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 1) {
                     insFeeOrderNew.setFirstDetailProportion(new BigDecimal(esmRetail.getDisrate1()));
                     retailRadio.add(insFeeOrderNew.getFirstDetailProportion());
                     insFeeOrderNew.setFirstDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")));
-                    if(parents != null && parents.size() > 0) {
+                    if (parents != null && parents.size() > 0) {
                         insFeeOrderNew.setFirstLevelUserId(parents.get(0).getId());
                     }
                 }
@@ -325,19 +326,18 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //endregion
 
 
-
-
         insFeeOrderNewService.saveOrUpdate(insFeeOrderNew);
     }
 
 
     /**
      * 判断是否包含非车险
+     *
      * @param insAreaCompany
      * @return
      */
-    private boolean isContainNonCar(InsAreaCompany insAreaCompany){
-        if(insAreaCompany.getCrossInsurance() != null && insAreaCompany.getJypremium().equals(BigDecimal.ZERO)){
+    private boolean isContainNonCar(InsAreaCompany insAreaCompany) {
+        if (insAreaCompany.getCrossInsurance() != null && insAreaCompany.getJypremium().equals(BigDecimal.ZERO)) {
             return false;
         }
         return true;
@@ -346,12 +346,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 匹配费用因子
+     *
      * @param agreementProductCosts
      * @param insAreaCompany
      * @param insOrders
      * @return
      */
-    private String verificationCosts(List<AgreementProductCosts> agreementProductCosts,InsAreaCompany insAreaCompany,InsOrders insOrders,StringBuilder logs){
+    private String verificationCosts(List<AgreementProductCosts> agreementProductCosts, InsAreaCompany insAreaCompany, InsOrders insOrders, StringBuilder logs) {
         //匹配费用因子
         //获取所有费用属性
         List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
@@ -403,9 +404,9 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
             log.debug("车牌号:" + insOrders.getLicenseno());
             log.debug("费用因子备注:" + agreementProductCosts.get(i).getCostsDescription());
-            logs.append("费用id:"+agreementProductCosts.get(i).getId() + "\n");
-            logs.append("费用因子描述:"+agreementProductCosts.get(i).getCostsDescription() + "\n");
-            if (judgements(agreementProductCosts.get(i).getCostsAttrLinks(), undwrtRulesAttrList, ruleAttrMappingVoList,logs)) {
+            logs.append("费用id:" + agreementProductCosts.get(i).getId() + "\n");
+            logs.append("费用因子描述:" + agreementProductCosts.get(i).getCostsDescription() + "\n");
+            if (judgements(agreementProductCosts.get(i).getCostsAttrLinks(), undwrtRulesAttrList, ruleAttrMappingVoList, logs)) {
                 //返回 费用id   如果需要匹配非车的情况  将返回值返回list 后赛选
                 return agreementProductCosts.get(i).getId();
             }
@@ -416,14 +417,14 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
     }
 
 
-    private boolean verificationRules(List<PtlAgreementUndwrtRulesNew> ptlAgreementUndwrtRulesNews,InsAreaCompany insAreaCompany,InsOrders insOrders){
+    private boolean verificationRules(List<PtlAgreementUndwrtRulesNew> ptlAgreementUndwrtRulesNews, InsAreaCompany insAreaCompany, InsOrders insOrders) {
 
         StringBuilder logs = new StringBuilder();
         //匹配承保规则
         //获取所有承保规则属性
         List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
         //获取所有费用属性关联
-        List<RuleAttrMappingVo> ruleAttrMappingVoList = RuleAttrMappingVo.getRuleAttrMappingVoList(insAreaCompany, insOrders, undwrtRulesAttrList,getCarJudgeRule(insAreaCompany.getCompanyId()));
+        List<RuleAttrMappingVo> ruleAttrMappingVoList = RuleAttrMappingVo.getRuleAttrMappingVoList(insAreaCompany, insOrders, undwrtRulesAttrList, getCarJudgeRule(insAreaCompany.getCompanyId()));
 
 
         for (int i = 0; i < ptlAgreementUndwrtRulesNews.size(); i++) {
@@ -437,32 +438,33 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 费用因子的对比
-     * @param ptlAgreementProductCostsAttrLinks    费用因子范围规则
-     * @param rulesAttrs            费用因子属性
-     * @param ruleAttrMappingVoList 表单提交的值
+     *
+     * @param ptlAgreementProductCostsAttrLinks 费用因子范围规则
+     * @param rulesAttrs                        费用因子属性
+     * @param ruleAttrMappingVoList             表单提交的值
      * @return
      */
     private boolean judgements(List<PtlAgreementProductCostsAttrLink> ptlAgreementProductCostsAttrLinks,
-                               List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList,StringBuilder logs){
+                               List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList, StringBuilder logs) {
         boolean useFlag = true;
 
-        for(int i=0;i<ptlAgreementProductCostsAttrLinks.size();i++){
+        for (int i = 0; i < ptlAgreementProductCostsAttrLinks.size(); i++) {
             int finalI = i;
 
             //查找规则中的 传值属性
             RuleAttrMappingVo ruleAttrMappingVo = ruleAttrMappingVoList.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode())).findFirst().orElse(null);
 
             //先跳过强制非车的检测
-            if(ptlAgreementProductCostsAttrLinks.get(i).getAttrCode().equals("IsNonMotorInsurance"))
+            if (ptlAgreementProductCostsAttrLinks.get(i).getAttrCode().equals("IsNonMotorInsurance"))
                 continue;
 
             //如果查找不到 传值属性 直接费用对比失败
-            if(ruleAttrMappingVo == null){
+            if (ruleAttrMappingVo == null) {
                 log.debug("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
                 log.debug("传入的值找不到该属性:" + ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode());
                 int finalI1 = i;
                 List<PtlAgreementUndwrtRulesAttr> collect = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI1).getAttrCode())).collect(Collectors.toList());
-                if(collect.size() > 0){
+                if (collect.size() > 0) {
                     logs.append("规则匹配失败:" + collect.get(0).getAttrName() + "\n");
                 }
                 return false;
@@ -472,13 +474,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode())).findFirst().get();
 
             useFlag = attrEqual(ptlAgreementProductCostsAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue());
-            if(!useFlag){
+            if (!useFlag) {
                 log.debug("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
                 log.debug("检验的值:" + ptlAgreementProductCostsAttrLinks.get(i).getMin());
                 log.debug("传入的值:" + ruleAttrMappingVo.getValue());
                 int finalI1 = i;
                 List<PtlAgreementUndwrtRulesAttr> collect = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI1).getAttrCode())).collect(Collectors.toList());
-                if(collect.size() > 0){
+                if (collect.size() > 0) {
                     logs.append("规则匹配失败:" + collect.get(0).getAttrName() + "\n");
                 }
                 logs.append("检验的值:" + ptlAgreementProductCostsAttrLinks.get(i).getMin() + "\n");
@@ -493,6 +495,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 承保规则因子的对比
+     *
      * @param ptlAgreementUndwrtRulesAttrLinks
      * @param rulesAttrs
      * @param ruleAttrMappingVoList
@@ -500,10 +503,10 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
      */
     private boolean judgementsRules(List<PtlAgreementUndwrtRulesAttrLink> ptlAgreementUndwrtRulesAttrLinks,
                                     List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList,
-                                    StringBuilder logs){
+                                    StringBuilder logs) {
         boolean useFlag = true;
 
-        for(int i=0;i<ptlAgreementUndwrtRulesAttrLinks.size();i++){
+        for (int i = 0; i < ptlAgreementUndwrtRulesAttrLinks.size(); i++) {
             int finalI = i;
 
             //查找规则中的 传值属性
@@ -511,31 +514,30 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                     x.getAttrCode().equals(ptlAgreementUndwrtRulesAttrLinks.get(finalI).getAttrCode())).findFirst().orElse(null);
 
             //如果查找不到 传值属性 直接费用对比失败
-            if(ruleAttrMappingVo == null) {
+            if (ruleAttrMappingVo == null) {
                 return true;
             }
             //查找 费用因子规则
             PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementUndwrtRulesAttrLinks.get(finalI).getAttrCode())).findFirst().get();
             //如果是多选 对value进行转换
-            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
+            if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
                 PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
                         x.getName().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
                 ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getName());
             }
             //如果是单选 并且是 性别的话 转换为code
-            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio"))
-            {
-                if("CarOwnersSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) || "ApplicantSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) ||
-                        "InsuredSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode())){
+            if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio")) {
+                if ("CarOwnersSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) || "ApplicantSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) ||
+                        "InsuredSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode())) {
                     PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
                             x.getCode().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
                     ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getCode());
                 }
             }
             useFlag = attrEqual(ptlAgreementUndwrtRulesAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue());
-            if(useFlag){
+            if (useFlag) {
                 return true;
-            }else{
+            } else {
                 logs.append("规则匹配失败:" + ptlAgreementUndwrtRulesAttrLinks.get(i).getAttrCode() + "\n");
                 logs.append("校验的值:" + ptlAgreementUndwrtRulesAttrLinks.get(i).getMin() + "\n");
                 logs.append("传入的值:" + ruleAttrMappingVo.getValue());
@@ -546,45 +548,45 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 费用因子的对比 强制非车险
-     * @param ptlAgreementProductCostsAttrLinks    费用因子范围规则
-     * @param rulesAttrs            费用因子属性
-     * @param ruleAttrMappingVoList 表单提交的值
+     *
+     * @param ptlAgreementProductCostsAttrLinks 费用因子范围规则
+     * @param rulesAttrs                        费用因子属性
+     * @param ruleAttrMappingVoList             表单提交的值
      * @return
      */
     private boolean judgementsIsNoCar(List<PtlAgreementProductCostsAttrLink> ptlAgreementProductCostsAttrLinks,
-                                      List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList){
+                                      List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList) {
         boolean useFlag = true;
 
-        for(int i=0;i<ptlAgreementProductCostsAttrLinks.size();i++){
+        for (int i = 0; i < ptlAgreementProductCostsAttrLinks.size(); i++) {
             int finalI = i;
             //查找规则中的 传值属性
             RuleAttrMappingVo ruleAttrMappingVo = ruleAttrMappingVoList.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode())).findFirst().orElse(null);
             //如果是强制非车险
-            if(ptlAgreementProductCostsAttrLinks.get(i).getAttrCode().equals("IsNonMotorInsurance"))
+            if (ptlAgreementProductCostsAttrLinks.get(i).getAttrCode().equals("IsNonMotorInsurance"))
                 continue;
             //如果查找不到 传值属性 直接费用对比失败
-            if(ruleAttrMappingVo == null)
+            if (ruleAttrMappingVo == null)
                 return false;
             //查找 费用因子规则
             PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode())).findFirst().get();
             //如果是多选 对value进行转换
-            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
+            if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
                 PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
                         x.getCode().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
                 ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getName());
             }
             //如果是单选 并且是 性别的话 转换为code
-            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio"))
-            {
-                if("CarOwnersSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) || "ApplicantSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) ||
-                        "InsuredSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode())){
+            if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio")) {
+                if ("CarOwnersSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) || "ApplicantSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) ||
+                        "InsuredSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode())) {
                     PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
                             x.getName().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
                     ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getCode());
                 }
             }
             useFlag = attrEqual(ptlAgreementProductCostsAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue());
-            if(!useFlag) {
+            if (!useFlag) {
                 System.out.printf("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
                 return false;
             }
@@ -595,69 +597,71 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 属性比较 返回 是否匹配
+     *
      * @param ptlAgreementProductCostsAttrLink
      * @param ptlAgreementUndwrtRulesAttr
      * @param value
      * @return
      */
-    private boolean attrEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink,PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, String value){
-        if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")){
-            return checkBoxEqual(ptlAgreementProductCostsAttrLink,value);
-        }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("inputNumber")){
-            return inputNumberEqual(ptlAgreementProductCostsAttrLink,value);
-        }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("input")){
+    private boolean attrEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, String value) {
+        if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
+            return checkBoxEqual(ptlAgreementProductCostsAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("inputNumber")) {
+            return inputNumberEqual(ptlAgreementProductCostsAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("input")) {
             //截取身份证号码
-            if(ptlAgreementProductCostsAttrLink.getAttrCode().equals("CarOwnersIDNumber") || ptlAgreementProductCostsAttrLink.getAttrCode().equals("ApplicantIDNumber") ||
-                    ptlAgreementProductCostsAttrLink.getAttrCode().equals("InsuredIDNumber")){
-                value = value.substring(0,ptlAgreementProductCostsAttrLink.getMin().length());
+            if (ptlAgreementProductCostsAttrLink.getAttrCode().equals("CarOwnersIDNumber") || ptlAgreementProductCostsAttrLink.getAttrCode().equals("ApplicantIDNumber") ||
+                    ptlAgreementProductCostsAttrLink.getAttrCode().equals("InsuredIDNumber")) {
+                value = value.substring(0, ptlAgreementProductCostsAttrLink.getMin().length());
             }
-            return inputTextEqual(ptlAgreementProductCostsAttrLink,value);
-        }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("select")){
+            return inputTextEqual(ptlAgreementProductCostsAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("select")) {
             //截取车牌
-            if(ptlAgreementUndwrtRulesAttr.getAttrCode().equals("LicenseNo")){
-                value = value.substring(0,2);
+            if (ptlAgreementUndwrtRulesAttr.getAttrCode().equals("LicenseNo")) {
+                value = value.substring(0, 2);
             }
-            return selectEqual(ptlAgreementProductCostsAttrLink,value);
-        }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio")){
-            return radioEqual(ptlAgreementProductCostsAttrLink,value);
+            return selectEqual(ptlAgreementProductCostsAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio")) {
+            return radioEqual(ptlAgreementProductCostsAttrLink, value);
         }
         return false;
     }
 
-    private boolean attrEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink,PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, String value){
-        if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")){
-            return checkBoxEqual(ptlAgreementUndwrtRulesAttrLink,value);
-        }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("inputNumber")){
-            return inputNumberEqual(ptlAgreementUndwrtRulesAttrLink,value);
-        }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("input")){
-            return inputTextEqual(ptlAgreementUndwrtRulesAttrLink,value);
-        }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("select")){
+    private boolean attrEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, String value) {
+        if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
+            return checkBoxEqual(ptlAgreementUndwrtRulesAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("inputNumber")) {
+            return inputNumberEqual(ptlAgreementUndwrtRulesAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("input")) {
+            return inputTextEqual(ptlAgreementUndwrtRulesAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("select")) {
             //截取车牌
-            if(ptlAgreementUndwrtRulesAttr.getAttrCode().equals("LicenseNo")){
-                value = value.substring(0,2);
+            if (ptlAgreementUndwrtRulesAttr.getAttrCode().equals("LicenseNo")) {
+                value = value.substring(0, 2);
             }
-            return selectEqual(ptlAgreementUndwrtRulesAttrLink,value);
-        }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio")){
-            return radioEqual(ptlAgreementUndwrtRulesAttrLink,value);
+            return selectEqual(ptlAgreementUndwrtRulesAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio")) {
+            return radioEqual(ptlAgreementUndwrtRulesAttrLink, value);
         }
         return false;
     }
 
     /**
      * 属性为多选判断
+     *
      * @param ptlAgreementProductCostsAttrLink
      * @param value
      * @return
      */
-    private boolean checkBoxEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value){
-        if(ptlAgreementProductCostsAttrLink.getMin().contains(value)){
+    private boolean checkBoxEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value) {
+        if (ptlAgreementProductCostsAttrLink.getMin().contains(value)) {
             return true;
         }
         return false;
     }
 
-    private boolean checkBoxEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
-        if(!ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
+    private boolean checkBoxEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value) {
+        if (!ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)) {
             return true;
         }
         return false;
@@ -665,60 +669,61 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 属性为数值型判断
+     *
      * @param ptlAgreementProductCostsAttrLink
      * @param value
      * @return
      */
-    private boolean inputNumberEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value){
+    private boolean inputNumberEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value) {
         double v = Double.parseDouble(value);
         //统一处理数值
-        if("1".equals(ptlAgreementProductCostsAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementProductCostsAttrLink.getMin()) <= v &&
-                    Double.parseDouble(ptlAgreementProductCostsAttrLink.getMax()) >= v){
+        if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementProductCostsAttrLink.getMin()) <= v &&
+                    Double.parseDouble(ptlAgreementProductCostsAttrLink.getMax()) >= v) {
                 return true;
             }
-        }else if("2".equals(ptlAgreementProductCostsAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementProductCostsAttrLink.getMin()) > v){
+        } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementProductCostsAttrLink.getMin()) > v) {
                 return true;
             }
-        }else if("3".equals(ptlAgreementProductCostsAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementProductCostsAttrLink.getMin()) >= v){
+        } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementProductCostsAttrLink.getMin()) >= v) {
                 return true;
             }
-        }else if("4".equals(ptlAgreementProductCostsAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementProductCostsAttrLink.getMax()) < v){
+        } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementProductCostsAttrLink.getMax()) < v) {
                 return true;
             }
-        }else if("5".equals(ptlAgreementProductCostsAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementProductCostsAttrLink.getMax()) <= v){
+        } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementProductCostsAttrLink.getMax()) <= v) {
                 return true;
             }
         }
         return false;
     }
 
-    private boolean inputNumberEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
+    private boolean inputNumberEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value) {
         double v = Double.parseDouble(value);
         //统一处理数值
-        if("1".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMin()) <= v &&
-                    Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMax()) >= v){
+        if ("1".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMin()) <= v &&
+                    Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMax()) >= v) {
                 return false;
             }
-        }else if("2".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMin()) > v){
+        } else if ("2".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMin()) > v) {
                 return false;
             }
-        }else if("3".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMin()) >= v){
+        } else if ("3".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMin()) >= v) {
                 return false;
             }
-        }else if("4".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMax()) < v){
+        } else if ("4".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMax()) < v) {
                 return false;
             }
-        }else if("5".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())){
-            if(Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMax()) <= v){
+        } else if ("5".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+            if (Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMax()) <= v) {
                 return false;
             }
         }
@@ -727,28 +732,29 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 属性为输入框判断
+     *
      * @param ptlAgreementProductCostsAttrLink
      * @param value
      * @return
      */
-    private boolean inputTextEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value){
+    private boolean inputTextEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value) {
         //将值进行分割
         String[] split = ptlAgreementProductCostsAttrLink.getMin().split(",");
         AtomicBoolean returnBool = new AtomicBoolean(false);
         Arrays.stream(split).forEach(x -> {
-            if(value.contains(x)){
+            if (value.contains(x)) {
                 returnBool.set(true);
             }
         });
         return returnBool.get();
     }
 
-    private boolean inputTextEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
+    private boolean inputTextEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value) {
         //将值进行分割
         String[] split = ptlAgreementUndwrtRulesAttrLink.getMin().split(",");
         AtomicBoolean returnBool = new AtomicBoolean(true);
         Arrays.stream(split).forEach(x -> {
-            if(!x.equals("") && value.contains(x)){
+            if (!x.equals("") && value.contains(x)) {
                 returnBool.set(false);
             }
         });
@@ -757,12 +763,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 属性为下拉框判断
+     *
      * @param ptlAgreementProductCostsAttrLink
      * @param value
      * @return
      */
-    private boolean selectEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value){
-        if(ptlAgreementProductCostsAttrLink.getMin() != null && ptlAgreementProductCostsAttrLink.getMin().contains(value)){
+    private boolean selectEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value) {
+        if (ptlAgreementProductCostsAttrLink.getMin() != null && ptlAgreementProductCostsAttrLink.getMin().contains(value)) {
             return true;
         }
         return false;
@@ -770,16 +777,16 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 属性为选择框判断
+     *
      * @param ptlAgreementUndwrtRulesAttrLink
      * @param value
      * @return
      */
-    private boolean selectEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
-        if(ptlAgreementUndwrtRulesAttrLink.getMin() == null)
-        {
+    private boolean selectEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value) {
+        if (ptlAgreementUndwrtRulesAttrLink.getMin() == null) {
             return false;
         }
-        if(!ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
+        if (!ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)) {
             return true;
         }
         return false;
@@ -787,40 +794,38 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 属性为单选框判断
+     *
      * @param ptlAgreementProductCostsAttrLink
      * @param value
      * @return
      */
-    private boolean radioEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value){
+    private boolean radioEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value) {
         //新能源判断
-        if("NewEnergy".equals(ptlAgreementProductCostsAttrLink.getAttrCode())){
+        if ("NewEnergy".equals(ptlAgreementProductCostsAttrLink.getAttrCode())) {
             // 是否是新能源车
             boolean newEnergy = EnergyType.isNewEnergy(value);
-            if(newEnergy && ptlAgreementProductCostsAttrLink.getMin().equals("1")){
+            if (newEnergy && ptlAgreementProductCostsAttrLink.getMin().equals("1")) {
                 return true;
-            }else if(!newEnergy && ptlAgreementProductCostsAttrLink.getMin().equals("0"))
-            {
+            } else if (!newEnergy && ptlAgreementProductCostsAttrLink.getMin().equals("0")) {
                 return true;
             }
-        }else
-        if(ptlAgreementProductCostsAttrLink.getMin().contains(value)){
+        } else if (ptlAgreementProductCostsAttrLink.getMin().contains(value)) {
             return true;
         }
         return false;
     }
 
-    private boolean radioEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
+    private boolean radioEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value) {
         //新能源判断
-        if("NewEnergy".equals(ptlAgreementUndwrtRulesAttrLink.getAttrCode())){
+        if ("NewEnergy".equals(ptlAgreementUndwrtRulesAttrLink.getAttrCode())) {
             // 是否是新能源车
             boolean newEnergy = EnergyType.isNewEnergy(value);
-            if(newEnergy && ptlAgreementUndwrtRulesAttrLink.getMin().equals("1")){
+            if (newEnergy && ptlAgreementUndwrtRulesAttrLink.getMin().equals("1")) {
                 return false;
-            }else if(!newEnergy && ptlAgreementUndwrtRulesAttrLink.getMin().equals("0"))
-            {
+            } else if (!newEnergy && ptlAgreementUndwrtRulesAttrLink.getMin().equals("0")) {
                 return false;
             }
-        }else if(ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
+        } else if (ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)) {
             return false;
         }
         return true;
@@ -828,13 +833,14 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     /**
      * 获取车辆新旧车信息
+     *
      * @param companyId
      * @return
      */
-    private PtlNewCarJudgeRules getCarJudgeRule(String companyId){
+    private PtlNewCarJudgeRules getCarJudgeRule(String companyId) {
         //获取车辆新旧车信息
         List<PtlNewCarJudgeRules> list = ptlNewCarJudgeRulesService.list(new LambdaQueryWrapper<PtlNewCarJudgeRules>().eq(PtlNewCarJudgeRules::getCompanyId, companyId));
-        if(list.size()>0){
+        if (list.size() > 0) {
             return list.get(0);
         }
         return null;