Procházet zdrojové kódy

试验-公式
1、把==判断条件改为=
2、数据自变公式使用自带公式方法判断

LHB před 1 týdnem
rodič
revize
fc6e045bde

+ 1 - 1
blade-service/blade-manager/src/main/java/com/jfireel/expression/token/Operator.java

@@ -11,7 +11,7 @@ public enum Operator implements TokenType {
     MULTI("*"), //
     DIVISION("/"), //
     QUESTION("?"), //
-    EQ("=="), //
+    EQ("="), //
     GT(">"), //
     LT("<"), //
     PERCENT("%"), //

+ 10 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -1481,7 +1481,15 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                                 }
                                                 //终止判断
                                                 List<ElementData> elementData = collect.get(value.getY());
-                                                long count = elementData.stream().filter(e -> e.getValue().equals(split[8])).count();
+                                                for (ElementData elementDatum : elementData) {
+                                                    String string = elementDatum.getValue() + split[7] + split[8] + "?1:0";
+                                                    Expression parse = Expression.parse(string);
+                                                    Object data = parse.calculate(currentMap);
+                                                    if ("1".equals(String.valueOf(data))) {
+                                                        stop = true;
+                                                        break;
+                                                    }
+                                                }
                                                 if (stop) {
                                                     value.setValue("");
                                                     if (attachData != null) {
@@ -1489,10 +1497,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                                         elementData1.setValue("");
                                                     }
                                                 }
-                                                if (count > 0) {
-                                                    //当前截至行不需要清空数据
-                                                    stop = true;
-                                                }
                                             }
                                             if (attachData != null) {
                                                 Map<String, FormData> formDataMap = tec.getFormDataMap();
@@ -5931,7 +5935,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                     value = action[1];
                                     break;
                                 }
-                                Expression parse = Expression.parse(s.replaceAll("=","==") + "?1:0");
+                                Expression parse = Expression.parse(s + "?1:0");
                                 Object data = parse.calculate(currentMap);
                                 if(Objects.equals("1",String.valueOf(data))){
                                     key = action[0];
@@ -6055,9 +6059,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         if(Objects.equals("≠",s1)){
             s1 = "!=";
         }
-        if(Objects.equals("=",s1)){
-            s1 = "==";
-        }
         if(Objects.equals("<",s1)){
             s1 = "<";
         }