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

This commit is contained in:
疯狂的狮子Li 2025-05-21 15:42:42 +08:00
parent 74a0ec1ec3
commit 1db0bc83b2
4 changed files with 12 additions and 4 deletions

View File

@ -51,4 +51,9 @@ public class ProcessCreateTaskEvent implements Serializable {
*/
private String businessId;
/**
* 流程状态
*/
private String status;
}

View File

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

View File

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

View File

@ -176,9 +176,11 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
@EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('leave')")
public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
log.info("当前任务创建了{}", processCreateTaskEvent.toString());
TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId()));
testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus());
baseMapper.updateById(testLeave);
if (BusinessStatusEnum.WAITING.getStatus().equals(processCreateTaskEvent.getStatus())) {
TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId()));
testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus());
baseMapper.updateById(testLeave);
}
}
/**