From 152b8712dfaf320cce8e0260179982e9f81281ff Mon Sep 17 00:00:00 2001 From: chenchuchuan <13554600537@163.com> Date: Fri, 14 Aug 2026 17:10:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(rule):=20=E6=B7=BB=E5=8A=A0=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E8=A7=84=E5=88=99=E5=BC=95=E6=93=8E=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=B9=B6=E6=9B=B4=E6=96=B0=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=99=A8=E6=9D=83=E9=99=90=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增executeAction方法支持通过JSON字符串和规则类型执行规则 - 新增executeAction方法支持直接传入规则对象执行 - 修改原有executeAction方法移除表达式构建逻辑优化参数传递 - 为syncFieldToHistory接口添加@NoAuthInterface注解移除权限验证 --- .../online/controller/OnlineFormController.java | 1 + .../apelet/common/online/rule/FormRuleEngine.java | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java b/common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java index 0d7d29d..18e915d 100644 --- a/common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java +++ b/common/common-online/src/main/java/apelet/common/online/controller/OnlineFormController.java @@ -120,6 +120,7 @@ public class OnlineFormController { * @param tableType 表类型(0 附表 / 1 主表 / 2 单表,不传则全部) */ @GetMapping(value = "/syncFieldToHistory") + @NoAuthInterface public ResponseResult syncFieldToHistory(@RequestParam String fieldName, @RequestParam String type, @RequestParam(required = false) Integer length, diff --git a/common/common-online/src/main/java/apelet/common/online/rule/FormRuleEngine.java b/common/common-online/src/main/java/apelet/common/online/rule/FormRuleEngine.java index d73318e..5fcaed2 100644 --- a/common/common-online/src/main/java/apelet/common/online/rule/FormRuleEngine.java +++ b/common/common-online/src/main/java/apelet/common/online/rule/FormRuleEngine.java @@ -62,12 +62,30 @@ public class FormRuleEngine { if (rule == null) { return null; } + return executeAction(rule, buildObjectValue(rule.getCondition().getExpression(), values)); + } + + public List executeAction(String ruleJson, ObjectValue values, RuleTypeEnum ruleType) { + if (StringUtils.isBlank(ruleJson)) { + return null; + } + FormRule rule = parser.parseSingle(JSONObject.parseObject(ruleJson), ruleType); + if (rule == null) { + return null; + } + return executeAction(rule, values); + } + + public List executeAction(FormRule rule, ObjectValue values) { + if (rule == null) { + return null; + } List result = new ArrayList<>(); - executeRule(rule, null, buildObjectValue(rule.getCondition().getExpression(), values), null, - new OnlineEventPluginExecuteDto(), result); + executeRule(rule, null, values, null, new OnlineEventPluginExecuteDto(), result); return result; } + private void executeRule(FormRule rule, OnlineForm form, ObjectValue ov, String eventCode, OnlineEventPluginExecuteDto dto, List result) { if (!rule.isEnable()) {