From f5ac06fc753005807d42f3db3baede096160afb8 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Thu, 12 Sep 2024 13:37:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-2924)=20-=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=BC=80=E5=85=B3=E6=8E=A7=E5=88=B6=E6=98=AF=E5=90=A6=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E9=92=88=E5=AF=B9=E4=B8=9A=E5=8A=A1=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/core/conf/SupportRefreshProperties.java | 11 +++++------ ...InternalBpmnActivityEventListener_lo_Listener.java | 9 ++++++--- 2 files changed, 11 insertions(+), 9 deletions(-) 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 e8bff4380..df2fc358b 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 @@ -1,13 +1,10 @@ package cn.axzo.workflow.core.conf; -import com.google.common.collect.Lists; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.List; import java.util.concurrent.TimeUnit; /** @@ -30,21 +27,23 @@ public class SupportRefreshProperties { @Value("${workflow.apiLog.filterApiType:}") private String filterApiType; + @Value("${workflow.alter.enable:false}") + private Boolean alterEnable = false; /** * 业务节点暂停告警的次数 */ @Value("${workflow.alter.retries:3}") - private Integer retries; + private Integer alterRetries; /** * 业务节点暂停告警次数间的间隔 */ @Value("${workflow.alter.interval:10}") - private Integer interval; + private Integer alterInterval; /** * 业务节点暂停告警次数间隔的时间单位 */ @Value("${workflow.alter.intervalUnit:minutes}") - private TimeUnit intervalUnit; + private TimeUnit alterIntervalUnit; } 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 50dc371f0..ce56e3f16 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 @@ -59,6 +59,9 @@ public class InternalBpmnActivityEventListener_lo_Listener extends AbstractBpmnE */ @Override public void onStart(DelegateExecution execution) { + if(!Boolean.TRUE.equals(refreshProperties.getAlterEnable())) { + return; + } BpmnModel bpmnModel = ProcessDefinitionUtil.getBpmnModel(execution.getProcessDefinitionId()); FlowElement flowElement = bpmnModel.getFlowElement(execution.getCurrentActivityId()); BpmnMetaParserHelper.getNodeType(flowElement).ifPresent(e -> { @@ -70,7 +73,7 @@ public class InternalBpmnActivityEventListener_lo_Listener extends AbstractBpmnE // FIXME 业务指定审批人,需要在业务设置了人后,清除定时 TimerEventDefinition timerEventDefinition = new TimerEventDefinition(); String timeUnit; - switch (refreshProperties.getIntervalUnit()) { + switch (refreshProperties.getAlterIntervalUnit()) { case SECONDS: timeUnit = "S"; break; @@ -85,13 +88,13 @@ public class InternalBpmnActivityEventListener_lo_Listener extends AbstractBpmnE timeUnit = "M"; break; } - timerEventDefinition.setTimeCycle("R" + refreshProperties.getInterval() + "/PT" + refreshProperties.getInterval() + timeUnit); + timerEventDefinition.setTimeCycle("R" + refreshProperties.getAlterInterval() + "/PT" + refreshProperties.getAlterInterval() + timeUnit); TimerJobEntity timerJob = TimerUtil.createTimerEntityForTimerEventDefinition(timerEventDefinition, execution.getCurrentFlowElement(), false, (ExecutionEntity) execution, AsyncTermNodeAlterJobHandler.TYPE, TimerEventHandler.createConfiguration(execution.getCurrentActivityId(), null, timerEventDefinition.getCalendarName())); if (timerJob != null) { - timerJob.setCustomValues(JSON.toJSONString(new TermNodePausingDTO(execution.getProcessInstanceId(), execution.getCurrentActivityId(), refreshProperties.getRetries()))); + timerJob.setCustomValues(JSON.toJSONString(new TermNodePausingDTO(execution.getProcessInstanceId(), execution.getCurrentActivityId(), refreshProperties.getAlterRetries()))); CommandContextUtil.getTimerJobService().scheduleTimerJob(timerJob); } break;