From e26a95b504db82da77b5b574bc109489e43b4248 Mon Sep 17 00:00:00 2001 From: yaxin Date: Tue, 3 Dec 2024 17:45:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=98=AF=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E7=9A=84=E6=AF=94=E8=BE=83=EF=BC=8C=E9=9C=80=E8=A6=81=E5=81=9A?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/supervision/utils/CalculationUtil.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/supervision/utils/CalculationUtil.java b/src/main/java/com/supervision/utils/CalculationUtil.java index 79ebd98..bbd88ce 100644 --- a/src/main/java/com/supervision/utils/CalculationUtil.java +++ b/src/main/java/com/supervision/utils/CalculationUtil.java @@ -52,11 +52,14 @@ public class CalculationUtil { // 初始化SpEL解析器 ExpressionParser parser = new SpelExpressionParser(); StandardEvaluationContext context = new StandardEvaluationContext(); - // 判断并转换变量类型 - Object leftValue = parseOperand(leftOperand); - Object rightValue = parseOperand(rightOperand); - context.setVariable("leftOperand", leftValue); - context.setVariable("rightOperand", rightValue); + // 如果是数字的比较,需要做类型转换 + if (leftOperand.equals(IndexRuleConstants.OPERATOR_EARLY) || leftOperand.equals(IndexRuleConstants.OPERATOR_LATE) || leftOperand.equals(IndexRuleConstants.OPERATOR_CONTAIN)) { + context.setVariable("leftOperand", leftOperand); + context.setVariable("rightOperand", rightOperand); + } else { + context.setVariable("leftOperand", parseOperand(leftOperand)); + context.setVariable("rightOperand", parseOperand(rightOperand)); + } // 计算结果 return Boolean.TRUE.equals(parser.parseExpression(expression).getValue(context, Boolean.class));