update 优化 工作流创建事件 将状态交给业务方处理

This commit is contained in:
疯狂的狮子Li
2025-05-22 17:46:08 +08:00
parent edd372f4e4
commit 5217bd6a1f
4 changed files with 12 additions and 4 deletions

View File

@@ -54,6 +54,11 @@ public class ProcessCreateTaskEvent extends RemoteApplicationEvent {
*/ */
private String businessId; private String businessId;
/**
* 流程状态
*/
private String status;
public ProcessCreateTaskEvent() { public ProcessCreateTaskEvent() {
super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null)); super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null));
} }

View File

@@ -68,6 +68,7 @@ public class FlowProcessEventHandler {
processCreateTaskEvent.setNodeCode(instance.getNodeCode()); processCreateTaskEvent.setNodeCode(instance.getNodeCode());
processCreateTaskEvent.setNodeName(instance.getNodeName()); processCreateTaskEvent.setNodeName(instance.getNodeName());
processCreateTaskEvent.setTaskId(taskId); processCreateTaskEvent.setTaskId(taskId);
processCreateTaskEvent.setStatus(instance.getFlowStatus());
SpringUtils.context().publishEvent(processCreateTaskEvent); SpringUtils.context().publishEvent(processCreateTaskEvent);
} }

View File

@@ -52,7 +52,7 @@ public class WorkflowGlobalListener implements GlobalListener {
Instance instance = listenerVariable.getInstance(); Instance instance = listenerVariable.getInstance();
Definition definition = listenerVariable.getDefinition(); Definition definition = listenerVariable.getDefinition();
Task task = listenerVariable.getTask(); Task task = listenerVariable.getTask();
if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(instance.getFlowStatus())) { if (task != null) {
// 判断流程状态(发布审批中事件) // 判断流程状态(发布审批中事件)
flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), instance, task.getId()); flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), instance, task.getId());
} }

View File

@@ -180,9 +180,11 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) { public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
TenantHelper.dynamic(processCreateTaskEvent.getTenantId(), () -> { TenantHelper.dynamic(processCreateTaskEvent.getTenantId(), () -> {
log.info("当前任务创建了{}", processCreateTaskEvent.toString()); log.info("当前任务创建了{}", processCreateTaskEvent.toString());
TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId())); if (BusinessStatusEnum.WAITING.getStatus().equals(processCreateTaskEvent.getStatus())) {
testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus()); TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId()));
baseMapper.updateById(testLeave); testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus());
baseMapper.updateById(testLeave);
}
}); });
} }