mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 08:13:44 +08:00 
			
		
		
		
	update 优化 支持在监听器设置流程变量
This commit is contained in:
		@@ -47,6 +47,11 @@ public class ProcessTaskEvent implements Serializable {
 | 
			
		||||
     */
 | 
			
		||||
    private Long taskId;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 实例id
 | 
			
		||||
     */
 | 
			
		||||
    private Long instanceId;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 业务id
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -64,6 +64,7 @@ public class FlowProcessEventHandler {
 | 
			
		||||
        ProcessTaskEvent processTaskEvent = new ProcessTaskEvent();
 | 
			
		||||
        processTaskEvent.setTenantId(tenantId);
 | 
			
		||||
        processTaskEvent.setFlowCode(flowCode);
 | 
			
		||||
        processTaskEvent.setInstanceId(instance.getId());
 | 
			
		||||
        processTaskEvent.setBusinessId(instance.getBusinessId());
 | 
			
		||||
        processTaskEvent.setNodeType(instance.getNodeType());
 | 
			
		||||
        processTaskEvent.setNodeCode(instance.getNodeCode());
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,6 @@ import lombok.RequiredArgsConstructor;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.dromara.common.core.enums.BusinessStatusEnum;
 | 
			
		||||
import org.dromara.common.core.utils.StringUtils;
 | 
			
		||||
import org.dromara.warm.flow.core.FlowEngine;
 | 
			
		||||
import org.dromara.warm.flow.core.dto.FlowParams;
 | 
			
		||||
import org.dromara.warm.flow.core.entity.Definition;
 | 
			
		||||
import org.dromara.warm.flow.core.entity.Instance;
 | 
			
		||||
@@ -16,7 +15,6 @@ import org.dromara.warm.flow.core.entity.Task;
 | 
			
		||||
import org.dromara.warm.flow.core.listener.GlobalListener;
 | 
			
		||||
import org.dromara.warm.flow.core.listener.ListenerVariable;
 | 
			
		||||
import org.dromara.warm.flow.core.service.InsService;
 | 
			
		||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
 | 
			
		||||
import org.dromara.workflow.common.ConditionalOnEnable;
 | 
			
		||||
import org.dromara.workflow.common.constant.FlowConstant;
 | 
			
		||||
import org.dromara.workflow.common.enums.TaskStatusEnum;
 | 
			
		||||
@@ -165,15 +163,12 @@ public class WorkflowGlobalListener implements GlobalListener {
 | 
			
		||||
                flwCommonService.sendMessage(definition.getFlowName(), instance.getId(), messageType, notice);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        FlowInstance ins = new FlowInstance();
 | 
			
		||||
        Map<String, Object> variableMap = instance.getVariableMap();
 | 
			
		||||
        variableMap.remove(FlowConstant.FLOW_COPY_LIST);
 | 
			
		||||
        variableMap.remove(FlowConstant.MESSAGE_TYPE);
 | 
			
		||||
        variableMap.remove(FlowConstant.MESSAGE_NOTICE);
 | 
			
		||||
        variableMap.remove(FlowConstant.SUBMIT);
 | 
			
		||||
        ins.setId(instance.getId());
 | 
			
		||||
        ins.setVariable(FlowEngine.jsonConvert.objToStr(variableMap));
 | 
			
		||||
        insService.updateById(ins);
 | 
			
		||||
        insService.removeVariables(instance.getId(),
 | 
			
		||||
            FlowConstant.FLOW_COPY_LIST,
 | 
			
		||||
            FlowConstant.MESSAGE_TYPE,
 | 
			
		||||
            FlowConstant.MESSAGE_NOTICE,
 | 
			
		||||
            FlowConstant.SUBMIT
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user