Explorar o código

公式相关:bug

yangyj %!s(int64=2) %!d(string=hai) anos
pai
achega
136650ee20

+ 3 - 2
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -11,6 +11,7 @@ import com.jfireel.expression.node.impl.VariableNode;
 import com.jfireel.expression.token.Token;
 import org.apache.commons.collections4.MapUtils;
 import org.springblade.core.tool.utils.*;
+import org.springblade.manager.dto.ParamElements;
 
 import java.math.BigDecimal;
 import java.text.ParseException;
@@ -1448,7 +1449,7 @@ public class CustomFunction {
     }
 
     public static Object tree(List<String> treeNodes, String param) {
-        if (CollectionUtil.isNotEmpty(treeNodes) && Func.isNotBlank(param)) {
+        if (CollectionUtil.isNotEmpty(treeNodes) && Func.isNotBlank(param)&&RegexUtil.match(ParamElements.LEVEL_REG, param.trim())) {
             List<String> nodes = new ArrayList<>(treeNodes);
             //Collections.reverse(nodes);
             List<String> result = new ArrayList<>();
@@ -1462,7 +1463,7 @@ public class CustomFunction {
             }
             return String.join("", result);
         }
-        return "";
+        return param;
     }
 
     public static Object tableNames(List<String> treeNodes) {

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

@@ -752,7 +752,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                         Object value=se.getValue().getValue();
                                         if(CustomFunction.isNumber(value)){
                                             if(StringUtils.isDouble(value)||f.contains("/")){
-                                                em.put(se.getKey(), new BigDecimal(value.toString()));
+                                                em.put(se.getKey(),Double.parseDouble(value.toString()));
                                             }else{
                                                 em.put(se.getKey(),StringUtils.handleObj2Integer(value));
                                             }