Просмотр исходного кода

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

lixiaolong 1 неделя назад
Родитель
Сommit
d2a3d898f0

+ 3 - 1
tenant/costsorrule/src/main/java/com/jzg/costsorrule/constants/OperatorConstant.java

@@ -20,7 +20,9 @@ public class OperatorConstant {
         //选择框
         GT("4","大于"),
         //单选框
-        GE("5","大于等于");
+        GE("5","大于等于"),
+        //不等于
+        NE("6","不等于");
 
         private final String code;
         private final String name;

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

@@ -141,26 +141,31 @@ public class RuleServiceImpl implements RuleService {
 
     private boolean inputNumberEqual(RuleAttrLinkVo linkVo, String value) {
         double v = Double.parseDouble(value);
+        double min = linkVo.getMin() != null ? Double.parseDouble(linkVo.getMin()) : Double.MIN_VALUE;
+        double max = linkVo.getMax() != null ? Double.parseDouble(linkVo.getMax()) : Double.MAX_VALUE;
         //统一处理数值
         if (OperatorConstant.InputNumber.EQ.getCode().equals(linkVo.getOperator())) {
-            if (Double.parseDouble(linkVo.getMin()) <= v &&
-                    Double.parseDouble(linkVo.getMax()) >= v) {
+            if (min <= v && max >= v) {
                 return true;
             }
         } else if (OperatorConstant.InputNumber.LT.getCode().equals(linkVo.getOperator())) {
-            if (Double.parseDouble(linkVo.getMin()) > v) {
+            if (min > v) {
                 return true;
             }
         } else if (OperatorConstant.InputNumber.LE.getCode().equals(linkVo.getOperator())) {
-            if (Double.parseDouble(linkVo.getMin()) >= v) {
+            if (min >= v) {
                 return true;
             }
         } else if (OperatorConstant.InputNumber.GT.getCode().equals(linkVo.getOperator())) {
-            if (Double.parseDouble(linkVo.getMax()) < v) {
+            if (max < v) {
                 return true;
             }
         } else if (OperatorConstant.InputNumber.GE.getCode().equals(linkVo.getOperator())) {
-            if (Double.parseDouble(linkVo.getMax()) <= v) {
+            if (max <= v) {
+                return true;
+            }
+        } else if (OperatorConstant.InputNumber.NE.getCode().equals(linkVo.getOperator())) {// 不包含:不在 [min, max] 区间内
+            if (min > v && max < v) {
                 return true;
             }
         }

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/FactorMatch.java

@@ -376,6 +376,8 @@ public class FactorMatch {
             case "3": return min >= v;
             case "4": return max < v;
             case "5": return max <= v;
+            // 不包含:不在 [min, max] 区间内
+            case "6": return v < min || v > max;
             default:  return false;
         }
     }