From ec9986a6c9d13e97a4ff8f54d2473772c8e51481 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Thu, 21 Dec 2023 17:34:37 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81=E7=9A=84=20Activity=20=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E7=9A=84=E5=AE=9E=E7=8E=B0=E9=80=BB=E8=BE=91?= =?UTF-8?q?,=E7=94=B1=E4=BA=8E=E5=A4=9A=E5=AE=9E=E4=BE=8B=E6=98=AF?= =?UTF-8?q?=E5=A4=9A=E4=BA=BA=E5=AE=A1=E6=89=B9,=E4=BC=9A=E6=84=8F?= =?UTF-8?q?=E5=A4=96=E7=9A=84=E5=8F=91=E9=80=81=E5=A4=9A=E6=AC=A1=20Activi?= =?UTF-8?q?ty=5Fstart=20=E5=8F=8A=E5=85=B6=E4=BB=96=E7=9A=84Activity=20?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6,=E4=B8=8D=E7=AC=A6=E5=90=88=E9=A2=84?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../json/ReceiveTaskJsonConverter.java | 33 ++++++ .../json/ServiceTaskJsonConverter.java | 34 ++++++ .../converter/json/UserTaskJsonConverter.java | 14 ++- .../CustomForecastUserTaskAssigneeCmd.java | 10 +- .../EngineActivityEndEventListener.java | 41 +++++++ .../listener/EngineActivityEventListener.java | 109 ------------------ .../EngineActivityStartEventListener.java | 41 +++++++ ...EngineAssigneeExecutionStartListener.java} | 2 +- .../listener/BpmnActivityEventListener.java | 10 +- .../impl/BpmnProcessInstanceServiceImpl.java | 7 +- .../RocketMqBpmActivityEventListener.java | 6 +- 11 files changed, 180 insertions(+), 127 deletions(-) create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityEndEventListener.java delete mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityEventListener.java create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityStartEventListener.java rename workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/{EngineExecutionStartListener.java => EngineAssigneeExecutionStartListener.java} (99%) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ReceiveTaskJsonConverter.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ReceiveTaskJsonConverter.java index 8034e3281..3df3eea13 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ReceiveTaskJsonConverter.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ReceiveTaskJsonConverter.java @@ -1,8 +1,15 @@ package cn.axzo.workflow.core.converter.json; import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonNode; +import org.flowable.bpmn.model.FlowableListener; import org.flowable.bpmn.model.Process; import org.flowable.bpmn.model.ReceiveTask; +import org.flowable.engine.delegate.BaseExecutionListener; + +import java.util.ArrayList; +import java.util.List; + +import static org.flowable.bpmn.model.ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION; /** * 接收任务节点 @@ -19,6 +26,32 @@ public class ReceiveTaskJsonConverter extends AbstractBpmnJsonConverter executionListeners = new ArrayList<>(); + // 设置执行监听 + FlowableListener executionListener = new FlowableListener(); + executionListener.setEvent(BaseExecutionListener.EVENTNAME_START); + executionListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); + executionListener.setImplementation("${engineAssigneeExecutionStartListener}"); + executionListeners.add(executionListener); + + FlowableListener activityStartListener = new FlowableListener(); + activityStartListener.setEvent(BaseExecutionListener.EVENTNAME_START); + activityStartListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); + activityStartListener.setImplementation("${engineActivityStartEventListener}"); + executionListeners.add(activityStartListener); + + FlowableListener activityEndListener = new FlowableListener(); + activityEndListener.setEvent(BaseExecutionListener.EVENTNAME_END); + activityEndListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); + activityEndListener.setImplementation("${engineActivityEndEventListener}"); + executionListeners.add(activityEndListener); + + receiveTask.setExecutionListeners(executionListeners); + } } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ServiceTaskJsonConverter.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ServiceTaskJsonConverter.java index 4ca68035b..5e2591969 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ServiceTaskJsonConverter.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ServiceTaskJsonConverter.java @@ -1,8 +1,15 @@ package cn.axzo.workflow.core.converter.json; import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonNode; +import org.flowable.bpmn.model.FlowableListener; import org.flowable.bpmn.model.Process; import org.flowable.bpmn.model.ServiceTask; +import org.flowable.engine.delegate.BaseExecutionListener; + +import java.util.ArrayList; +import java.util.List; + +import static org.flowable.bpmn.model.ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION; /** * 服务任务节点 @@ -16,6 +23,33 @@ public class ServiceTaskJsonConverter extends AbstractBpmnJsonConverter executionListeners = new ArrayList<>(); + // 设置执行监听 + FlowableListener executionListener = new FlowableListener(); + executionListener.setEvent(BaseExecutionListener.EVENTNAME_START); + executionListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); + executionListener.setImplementation("${engineAssigneeExecutionStartListener}"); + executionListeners.add(executionListener); + + FlowableListener activityStartListener = new FlowableListener(); + activityStartListener.setEvent(BaseExecutionListener.EVENTNAME_START); + activityStartListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); + activityStartListener.setImplementation("${engineActivityStartEventListener}"); + executionListeners.add(activityStartListener); + + FlowableListener activityEndListener = new FlowableListener(); + activityEndListener.setEvent(BaseExecutionListener.EVENTNAME_END); + activityEndListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); + activityEndListener.setImplementation("${engineActivityEndEventListener}"); + executionListeners.add(activityEndListener); + + serviceTask.setExecutionListeners(executionListeners); + } } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/UserTaskJsonConverter.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/UserTaskJsonConverter.java index 8accc560c..daeb7f7ff 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/UserTaskJsonConverter.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/UserTaskJsonConverter.java @@ -241,9 +241,21 @@ public class UserTaskJsonConverter extends AbstractBpmnJsonConverter { FlowableListener executionListener = new FlowableListener(); executionListener.setEvent(BaseExecutionListener.EVENTNAME_START); executionListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); - executionListener.setImplementation("${engineExecutionStartListener}"); + executionListener.setImplementation("${engineAssigneeExecutionStartListener}"); executionListeners.add(executionListener); + FlowableListener activityStartListener = new FlowableListener(); + activityStartListener.setEvent(BaseExecutionListener.EVENTNAME_START); + activityStartListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); + activityStartListener.setImplementation("${engineActivityStartEventListener}"); + executionListeners.add(activityStartListener); + + FlowableListener activityEndListener = new FlowableListener(); + activityEndListener.setEvent(BaseExecutionListener.EVENTNAME_END); + activityEndListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); + activityEndListener.setImplementation("${engineActivityEndEventListener}"); + executionListeners.add(activityEndListener); + userTask.setExecutionListeners(executionListeners); } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomForecastUserTaskAssigneeCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomForecastUserTaskAssigneeCmd.java index 0be53c2b6..0bc73d797 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomForecastUserTaskAssigneeCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomForecastUserTaskAssigneeCmd.java @@ -1,7 +1,7 @@ package cn.axzo.workflow.core.engine.cmd; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; -import cn.axzo.workflow.core.engine.listener.EngineExecutionStartListener; +import cn.axzo.workflow.core.engine.listener.EngineAssigneeExecutionStartListener; import org.flowable.bpmn.model.UserTask; import org.flowable.common.engine.impl.interceptor.Command; import org.flowable.common.engine.impl.interceptor.CommandContext; @@ -25,13 +25,13 @@ import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getApprove public class CustomForecastUserTaskAssigneeCmd implements Command>, Serializable { private final String processInstanceId; private final UserTask userTask; - private final EngineExecutionStartListener engineExecutionStartListener; + private final EngineAssigneeExecutionStartListener engineAssigneeExecutionStartListener; public CustomForecastUserTaskAssigneeCmd(String processInstanceId, UserTask userTask, - EngineExecutionStartListener engineExecutionStartListener) { + EngineAssigneeExecutionStartListener engineAssigneeExecutionStartListener) { this.processInstanceId = processInstanceId; this.userTask = userTask; - this.engineExecutionStartListener = engineExecutionStartListener; + this.engineAssigneeExecutionStartListener = engineAssigneeExecutionStartListener; } @Override @@ -42,7 +42,7 @@ public class CustomForecastUserTaskAssigneeCmd implements Command forecastAssigners = new ArrayList<>(); getApproverSpecify(userTask).ifPresent(specify -> { - forecastAssigners.addAll(engineExecutionStartListener.approverSelect(specify.getType(), userTask, + forecastAssigners.addAll(engineAssigneeExecutionStartListener.approverSelect(specify.getType(), userTask, (DelegateExecution) list.get(0), false)); }); return forecastAssigners; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityEndEventListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityEndEventListener.java new file mode 100644 index 000000000..e694373c3 --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityEndEventListener.java @@ -0,0 +1,41 @@ +package cn.axzo.workflow.core.engine.listener; + +import cn.axzo.framework.jackson.utility.JSON; +import cn.axzo.workflow.core.listener.BpmnActivityEventListener; +import lombok.extern.slf4j.Slf4j; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.delegate.ExecutionListener; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 活动节点结束事件监听器 + * + * @author wangli + * @since 2023/12/21 16:55 + */ +@Component +@Slf4j +public class EngineActivityEndEventListener implements ExecutionListener { + + @Resource + ObjectProvider> activityListeners; + + @Override + public void notify(DelegateExecution execution) { + String currentActivityId = execution.getCurrentActivityId(); + } + + private List getOrderedListeners() { + List orderListeners = new ArrayList<>(); + activityListeners.ifAvailable(orderListeners::addAll); + if (log.isDebugEnabled()) { + log.debug("Order Lists: {}", JSON.toJSONString(orderListeners)); + } + return orderListeners; + } +} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityEventListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityEventListener.java deleted file mode 100644 index 4939fa1e3..000000000 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityEventListener.java +++ /dev/null @@ -1,109 +0,0 @@ -package cn.axzo.workflow.core.engine.listener; - -import cn.axzo.framework.jackson.utility.JSON; -import cn.axzo.workflow.core.listener.BpmnActivityEventListener; -import com.google.common.collect.ImmutableSet; -import lombok.extern.slf4j.Slf4j; -import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType; -import org.flowable.engine.delegate.event.AbstractFlowableEngineEventListener; -import org.flowable.engine.delegate.event.FlowableActivityCancelledEvent; -import org.flowable.engine.delegate.event.FlowableActivityEvent; -import org.flowable.engine.delegate.event.FlowableMultiInstanceActivityCancelledEvent; -import org.flowable.engine.delegate.event.FlowableMultiInstanceActivityCompletedEvent; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import static org.flowable.common.engine.api.delegate.event.FlowableEngineEventType.ACTIVITY_CANCELLED; -import static org.flowable.common.engine.api.delegate.event.FlowableEngineEventType.ACTIVITY_COMPLETED; -import static org.flowable.common.engine.api.delegate.event.FlowableEngineEventType.ACTIVITY_STARTED; -import static org.flowable.common.engine.api.delegate.event.FlowableEngineEventType.MULTI_INSTANCE_ACTIVITY_CANCELLED; -import static org.flowable.common.engine.api.delegate.event.FlowableEngineEventType.MULTI_INSTANCE_ACTIVITY_COMPLETED; -import static org.flowable.common.engine.api.delegate.event.FlowableEngineEventType.MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION; - -/** - * 活动节点完成事件 - * - * @author wangli - * @since 2023/7/24 17:36 - */ -@Slf4j -@Component -public class EngineActivityEventListener extends AbstractFlowableEngineEventListener { - - @Resource - ObjectProvider> activityListeners; - - public static final Set PROCESS_INSTANCE_EVENTS = - ImmutableSet.builder() - .add(ACTIVITY_STARTED) - .add(ACTIVITY_COMPLETED) - .add(MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION) - .add(MULTI_INSTANCE_ACTIVITY_COMPLETED) - .add(MULTI_INSTANCE_ACTIVITY_CANCELLED) - .add(ACTIVITY_CANCELLED) - .build(); - - public EngineActivityEventListener() { - super(PROCESS_INSTANCE_EVENTS); - } - - @Override - protected void activityStarted(FlowableActivityEvent event) { - log.info("activityStarted: activityId: {} activityName: {}", event.getActivityId(), event.getActivityName()); - getOrderedListeners().forEach(i -> i.onStarted(event)); - } - - /** - * 通过? - * - * @param event - */ - @Override - protected void activityCompleted(FlowableActivityEvent event) { - log.info("activityCompleted: activityId: {} activityName: {}", event.getActivityId(), event.getActivityName()); - getOrderedListeners().forEach(i -> i.onCompleted(event)); - } - - /** - * 多实例 UserTask 条件通过 - * - * @param event - */ - @Override - protected void multiInstanceActivityCompletedWithCondition(FlowableMultiInstanceActivityCompletedEvent event) { - log.info("multiInstanceActivityCompletedWithCondition: activityId: {} activityName: {}", event.getActivityId(), event.getActivityName()); - getOrderedListeners().forEach(i -> i.onCompleted(event)); - } - - @Override - protected void multiInstanceActivityCompleted(FlowableMultiInstanceActivityCompletedEvent event) { - log.info("multiInstanceActivityCompleted: activityId: {} activityName: {}", event.getActivityId(), event.getActivityName()); - getOrderedListeners().forEach(i -> i.onCompleted(event)); - } - - @Override - protected void activityCancelled(FlowableActivityCancelledEvent event) { - log.info("activityCancelled: activityId: {} activityName: {}", event.getActivityId(), event.getActivityName()); - getOrderedListeners().forEach(i -> i.onCancelled(event)); - } - - @Override - protected void multiInstanceActivityCancelled(FlowableMultiInstanceActivityCancelledEvent event) { - log.info("multiInstanceActivityCancelled: activityId: {} activityName: {}", event.getActivityId(), event.getActivityName()); - getOrderedListeners().forEach(i -> i.onCancelled(event)); - } - - private List getOrderedListeners() { - List orderListeners = new ArrayList<>(); - activityListeners.ifAvailable(orderListeners::addAll); - if (log.isDebugEnabled()) { - log.debug("Order Lists: {}", JSON.toJSONString(orderListeners)); - } - return orderListeners; - } -} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityStartEventListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityStartEventListener.java new file mode 100644 index 000000000..66b13f100 --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineActivityStartEventListener.java @@ -0,0 +1,41 @@ +package cn.axzo.workflow.core.engine.listener; + +import cn.axzo.framework.jackson.utility.JSON; +import cn.axzo.workflow.core.listener.BpmnActivityEventListener; +import lombok.extern.slf4j.Slf4j; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.delegate.ExecutionListener; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 活动节点开始事件监听器 + * + * @author wangli + * @since 2023/12/21 16:55 + */ +@Component +@Slf4j +public class EngineActivityStartEventListener implements ExecutionListener { + + @Resource + ObjectProvider> activityListeners; + + @Override + public void notify(DelegateExecution execution) { + + } + + private List getOrderedListeners() { + List orderListeners = new ArrayList<>(); + activityListeners.ifAvailable(orderListeners::addAll); + if (log.isDebugEnabled()) { + log.debug("Order Lists: {}", JSON.toJSONString(orderListeners)); + } + return orderListeners; + } +} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineAssigneeExecutionStartListener.java similarity index 99% rename from workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java rename to workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineAssigneeExecutionStartListener.java index 70d3cb8ff..652a3557f 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineAssigneeExecutionStartListener.java @@ -53,7 +53,7 @@ import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getProcess @Component @RefreshScope @Slf4j -public class EngineExecutionStartListener implements ExecutionListener { +public class EngineAssigneeExecutionStartListener implements ExecutionListener { @Resource private ObjectProvider bpmTaskDelegate; @Resource diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/BpmnActivityEventListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/BpmnActivityEventListener.java index 5f5078861..ab908726b 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/BpmnActivityEventListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/BpmnActivityEventListener.java @@ -4,7 +4,7 @@ import org.flowable.common.engine.api.delegate.event.FlowableEngineEvent; import org.springframework.core.Ordered; /** - * 用户审批任务节点完成事件, 供外部引入 jar 包方式使用的钩子 + * 用户活动节点的事件, 供外部引入 jar 包方式使用的钩子 *

* 与 BpmTaskEventListener 的区别: 一个 Activity 可以有多个 Task, Task 有多个实例; 而本接口是针对这个节点的, 就算该审批节点是多人审批, 只有一次该节点的生命周期事件 *

@@ -16,23 +16,23 @@ import org.springframework.core.Ordered; public interface BpmnActivityEventListener extends Ordered { /** - * 节点已启动 + * 节点已 TODO * * @param event */ - default void onStarted(FlowableEngineEvent event) {} + default void onStart(FlowableEngineEvent event) {} /** * 节点已完成 * * @param event */ - default void onCompleted(FlowableEngineEvent event) {} + default void onTake(FlowableEngineEvent event) {} /** * 节点已取消 * * @param event */ - default void onCancelled(FlowableEngineEvent event) {} + default void onEnd(FlowableEngineEvent event) {} } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java index e89ae59ca..76181dbd0 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java @@ -20,7 +20,7 @@ import cn.axzo.workflow.core.common.exception.WorkflowEngineException; import cn.axzo.workflow.core.common.utils.BpmnCollectionUtils; import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper; import cn.axzo.workflow.core.engine.cmd.CustomForecastUserTaskAssigneeCmd; -import cn.axzo.workflow.core.engine.listener.EngineExecutionStartListener; +import cn.axzo.workflow.core.engine.listener.EngineAssigneeExecutionStartListener; import cn.axzo.workflow.core.service.BpmnProcessDefinitionService; import cn.axzo.workflow.core.service.BpmnProcessInstanceService; import cn.axzo.workflow.core.service.converter.BpmnHistoricProcessInstanceConverter; @@ -118,7 +118,7 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic @Resource private FlowNodeForecastService forecastService; @Resource - private EngineExecutionStartListener engineExecutionStartListener; + private EngineAssigneeExecutionStartListener engineAssigneeExecutionStartListener; @Resource private SpringProcessEngineConfiguration springProcessEngineConfiguration; @@ -598,7 +598,8 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic } // 推测当前节点的审批人 List forecastAssigners = springProcessEngineConfiguration.getCommandExecutor() - .execute(new CustomForecastUserTaskAssigneeCmd(processInstanceId, userTask, engineExecutionStartListener)); + .execute(new CustomForecastUserTaskAssigneeCmd(processInstanceId, userTask, + engineAssigneeExecutionStartListener)); node.setForecastAssigners(forecastAssigners); } else if (i instanceof ReceiveTask) { ReceiveTask receiveTask = (ReceiveTask) i; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/activity/RocketMqBpmActivityEventListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/activity/RocketMqBpmActivityEventListener.java index 7eedbb484..54be60672 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/activity/RocketMqBpmActivityEventListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/activity/RocketMqBpmActivityEventListener.java @@ -58,7 +58,7 @@ public class RocketMqBpmActivityEventListener implements BpmnActivityEventListen private Boolean sendMQ; @Override - public void onStarted(FlowableEngineEvent event) { + public void onStart(FlowableEngineEvent event) { if (log.isDebugEnabled()) { log.debug("RocketMqBpmActivityEventListener#onStarted...activityId: {}", ((FlowableActivityEvent) event).getActivityId()); } @@ -87,7 +87,7 @@ public class RocketMqBpmActivityEventListener implements BpmnActivityEventListen } @Override - public void onCompleted(FlowableEngineEvent event) { + public void onTake(FlowableEngineEvent event) { if (log.isDebugEnabled()) { log.debug("RocketMqBpmActivityEventListener#onCompleted...activityId: {}", ((FlowableActivityEvent) event).getActivityId()); } @@ -119,7 +119,7 @@ public class RocketMqBpmActivityEventListener implements BpmnActivityEventListen } @Override - public void onCancelled(FlowableEngineEvent event) { + public void onEnd(FlowableEngineEvent event) { if (log.isDebugEnabled()) { log.debug("RocketMqMessagePushEventListener#onCancelled...activityId: {}", ((FlowableActivityEvent) event).getActivityId()); }