diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/mq/ProcessInstanceDTO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/mq/ProcessInstanceDTO.java index d65b6a1d3..6eef5203a 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/mq/ProcessInstanceDTO.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/mq/ProcessInstanceDTO.java @@ -88,4 +88,9 @@ public class ProcessInstanceDTO implements Serializable { * 取消流程实例的特殊字段 */ private String cancelReason; + + /** + * 待办消息的 ID + */ + private String pendingMessageId; } diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/RocketMqBpmnProcessEventListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/RocketMqBpmnProcessEventListener.java index 72ff9aaa2..e2551c09c 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/RocketMqBpmnProcessEventListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/RocketMqBpmnProcessEventListener.java @@ -5,9 +5,11 @@ import cn.axzo.framework.rocketmq.EventProducer; import cn.axzo.workflow.common.enums.ProcessInstanceEventEnum; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.axzo.workflow.common.model.response.mq.ProcessInstanceDTO; +import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper; import cn.axzo.workflow.core.listener.BpmnProcessEventListener; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; +import org.flowable.bpmn.model.BpmnModel; import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent; import org.flowable.engine.RepositoryService; import org.flowable.engine.delegate.event.FlowableCancelledEvent; @@ -164,6 +166,11 @@ public class RocketMqBpmnProcessEventListener implements BpmnProcessEventListene .setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey()) .setBusinessProcessInstanceName(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getName()) .setCancelReason(String.valueOf(event.getCause())); + BpmnModel bpmnModel = repositoryService.getBpmnModel(event.getProcessDefinitionId()); + BpmnMetaParserHelper.getNoticeConfig(bpmnModel.getMainProcess()) + .ifPresent(i -> { + dto.setPendingMessageId(i.getPending().getPendingMessageId()); + }); if (log.isDebugEnabled()) { log.debug("RocketMqBpmProcessEventListener#onRejected MQ.Data: {}", JSON.toJSONString(dto)); } @@ -194,6 +201,11 @@ public class RocketMqBpmnProcessEventListener implements BpmnProcessEventListene .setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId()) .setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getProcessInstanceBusinessKey()) .setBusinessProcessInstanceName(((ExecutionEntityImpl) event.getEntity()).getName()); + BpmnModel bpmnModel = repositoryService.getBpmnModel(event.getProcessDefinitionId()); + BpmnMetaParserHelper.getNoticeConfig(bpmnModel.getMainProcess()) + .ifPresent(i -> { + dto.setPendingMessageId(i.getPending().getPendingMessageId()); + }); if (log.isDebugEnabled()) { log.debug("RocketMqBpmProcessEventListener#onCompleted MQ.Data: {}", JSON.toJSONString(dto)); }