update - 流程实例的通过或驳回,都去完成待办消息

This commit is contained in:
wangli 2023-12-06 20:34:49 +08:00
parent 3c0d4c94a7
commit 96b6f32d3c
2 changed files with 17 additions and 0 deletions

View File

@ -88,4 +88,9 @@ public class ProcessInstanceDTO implements Serializable {
* 取消流程实例的特殊字段
*/
private String cancelReason;
/**
* 待办消息的 ID
*/
private String pendingMessageId;
}

View File

@ -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));
}