From 972557b32c7c17204561dbb8a9f156c9046bcd69 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Fri, 5 Sep 2025 17:51:37 +0800 Subject: [PATCH] =?UTF-8?q?fix=20-=20=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=91=8A=E8=AD=A6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/core/conf/SupportRefreshProperties.java | 10 ++++++++++ .../InternalBpmnActivityEventListener_lo_Listener.java | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/conf/SupportRefreshProperties.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/conf/SupportRefreshProperties.java index cfac43c61..e7b9974ef 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/conf/SupportRefreshProperties.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/conf/SupportRefreshProperties.java @@ -41,6 +41,16 @@ public class SupportRefreshProperties { @Value(value = "${workflow.alter.enable:false}") private Boolean alterEnable; + /** + * 是否全量业务 ID 都开启告警功能 + */ + @Value(value = "${workflow.alter.allDefinitionKey:false}") + private Boolean alterAllDefinitionKey; + /** + * 需要开启告警功能的业务 ID 列表 + */ + @Value(value = "${workflow.alter.definitionKeys:}") + private List alterDefinitionKeys; /** * 节点卡住多久才告警,单位分钟 */ diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/impl/InternalBpmnActivityEventListener_lo_Listener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/impl/InternalBpmnActivityEventListener_lo_Listener.java index 346e7198a..77ce5a30d 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/impl/InternalBpmnActivityEventListener_lo_Listener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/impl/InternalBpmnActivityEventListener_lo_Listener.java @@ -11,6 +11,7 @@ import cn.axzo.workflow.core.listener.AbstractBpmnEventListener; import cn.axzo.workflow.core.listener.BpmnActivityEventListener; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.FlowElement; import org.flowable.common.engine.impl.cfg.TransactionState; @@ -60,11 +61,16 @@ public class InternalBpmnActivityEventListener_lo_Listener extends AbstractBpmnE if (!Boolean.TRUE.equals(refreshProperties.getAlterEnable())) { return; } + BpmnModel bpmnModel = ProcessDefinitionUtil.getBpmnModel(execution.getProcessDefinitionId()); + if (!refreshProperties.getAlterAllDefinitionKey()) { + if (!ListUtils.emptyIfNull(refreshProperties.getAlterDefinitionKeys()).contains(bpmnModel.getMainProcess().getId())) { + return; + } + } ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(); RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); TermNodePausingDTO dto = new TermNodePausingDTO(execution.getProcessInstanceId(), execution.getCurrentActivityId(), 0); runtimeService.setVariable(execution.getProcessInstanceId(), BIZ_NODE_ALTER + execution.getCurrentActivityId(), dto); - BpmnModel bpmnModel = ProcessDefinitionUtil.getBpmnModel(execution.getProcessDefinitionId()); FlowElement flowElement = bpmnModel.getFlowElement(execution.getCurrentActivityId()); BpmnMetaParserHelper.getNodeType(flowElement).ifPresent(e -> { if (Objects.equals(BpmnFlowNodeType.NODE_BUSINESS, e)) {