mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	update 优化 工作流创建事件 将状态交给业务方处理
This commit is contained in:
		@@ -51,4 +51,9 @@ public class ProcessCreateTaskEvent implements Serializable {
 | 
			
		||||
     */
 | 
			
		||||
    private String businessId;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 流程状态
 | 
			
		||||
     */
 | 
			
		||||
    private String status;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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());
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user