Jelajahi Sumber

处理能源类型只有包含不包含 这个调整下 别的去掉的问题;增加不包含操作符处理逻辑

lixiaolong 1 Minggu lalu
induk
melakukan
ffa4609888

+ 6 - 30
tenant/costsorrule/src/main/java/com/jzg/costsorrule/service/impl/RuleServiceImpl.java

@@ -186,23 +186,6 @@ public class RuleServiceImpl implements RuleService {
         //商业字符型评分
         equalsMap.add("SyCharacterBasedRating");
 
-
-
-        //equest 等于判断
-//        if(equalsMap.contains(linkVo.getAttrCode())){
-//            boolean b = value.anyMatch(value::equals);
-//            returnBool.set(b);
-//        }else if((ptlAgreementProductCostsAttrLink.getAttrCode().equals("BrandandModel") || ptlAgreementProductCostsAttrLink.getAttrCode().equals("CarOwnerName"))
-//                && ptlAgreementProductCostsAttrLink.getOperator().equals("2")){
-//            //处理品牌型号  不包含的情况
-//            boolean anyMatch = Arrays.stream(split)
-//                    .anyMatch(value::contains);
-//            returnBool.set(!anyMatch);
-//        }else {
-//            boolean anyMatch = Arrays.stream(split)
-//                    .anyMatch(value::contains);
-//            returnBool.set(anyMatch);
-//        }
         return returnBool.get();
     }
 
@@ -215,26 +198,19 @@ public class RuleServiceImpl implements RuleService {
     }
 
     private boolean radioEqual(RuleAttrLinkVo linkVo, String value) {
-        //新能源判断
-//        if ("NewEnergy".equals(linkVo.getAttrCode())) {
-//            // 是否是新能源车
-//            boolean newEnergy = EnergyType.isNewEnergy(value);
-//            if (newEnergy && linkVo.getMin().equals("1")) {
-//                return true;
-//            } else if (!newEnergy && linkVo.getMin().equals("0")) {
-//                return true;
-//            }
-//        } else if (linkVo.getMin().contains(value)) {
-//            return true;
-//        }
         //判断如果value 是 boolean值 则将min进行转换为bool
         boolean minValue = Boolean.valueOf(linkVo.getMin());
+        boolean valueBool = Boolean.valueOf(value);
         if ("NewEnergyMark".equals(linkVo.getAttrCode())) {
             if (linkVo.getMin().equals("5") || linkVo.getMin().equals("6")) {
                 minValue = linkVo.getMin().equals("5") ? false : true;
             }
+            if (linkVo.getOperator().equals(OperatorConstant.InputNumber.EQ.getCode())) {
+                return minValue == valueBool;
+            } else if (linkVo.getOperator().equals(OperatorConstant.InputNumber.NE.getCode())) {
+                return !(minValue == valueBool);
+            }
         }
-        boolean valueBool = Boolean.valueOf(value);
         return minValue == valueBool;
     }
 

+ 7 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/FactorMatch.java

@@ -356,13 +356,15 @@ public class FactorMatch {
     }
 
     private static boolean radioEqual(PtlAgreementCostRule rule, String value) {
+        String min = rule.getMin();
+        if (min == null || value == null) return false;
         if ("NewEnergyMark".equals(rule.getAttrCode())) {
-            boolean newEnergy = EnergyTypeCode.isNewEnergy(value);
-            if (newEnergy && "1".equals(rule.getMin())) return true;
-            if (!newEnergy && "0".equals(rule.getMin())) return true;
-            return false;
+            // min 为 "1" 表示新能源,否则表示非新能源
+            // operator "1"(等于):新能源状态与规则一致即匹配;operator "6"(不包含):相反
+            boolean matched = EnergyTypeCode.isNewEnergy(value) == "1".equals(min);
+            return "6".equals(rule.getOperator()) ? !matched : matched;
         }
-        return rule.getMin().contains(value);
+        return min.contains(value);
     }
 
     private static boolean inputNumberEqual(PtlAgreementCostRule rule, String value) {