update 优化 支持在监听器设置流程变量

This commit is contained in:
疯狂的狮子Li 2025-07-15 16:56:57 +08:00
parent 90fef1bb17
commit 868bc492a2
3 changed files with 12 additions and 11 deletions

View File

@ -47,6 +47,11 @@ public class ProcessTaskEvent implements Serializable {
*/ */
private Long taskId; private Long taskId;
/**
* 实例id
*/
private Long instanceId;
/** /**
* 业务id * 业务id
*/ */

View File

@ -64,6 +64,7 @@ public class FlowProcessEventHandler {
ProcessTaskEvent processTaskEvent = new ProcessTaskEvent(); ProcessTaskEvent processTaskEvent = new ProcessTaskEvent();
processTaskEvent.setTenantId(tenantId); processTaskEvent.setTenantId(tenantId);
processTaskEvent.setFlowCode(flowCode); processTaskEvent.setFlowCode(flowCode);
processTaskEvent.setInstanceId(instance.getId());
processTaskEvent.setBusinessId(instance.getBusinessId()); processTaskEvent.setBusinessId(instance.getBusinessId());
processTaskEvent.setNodeType(instance.getNodeType()); processTaskEvent.setNodeType(instance.getNodeType());
processTaskEvent.setNodeCode(instance.getNodeCode()); processTaskEvent.setNodeCode(instance.getNodeCode());

View File

@ -8,7 +8,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.utils.StringUtils; 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.dto.FlowParams;
import org.dromara.warm.flow.core.entity.Definition; import org.dromara.warm.flow.core.entity.Definition;
import org.dromara.warm.flow.core.entity.Instance; 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.GlobalListener;
import org.dromara.warm.flow.core.listener.ListenerVariable; import org.dromara.warm.flow.core.listener.ListenerVariable;
import org.dromara.warm.flow.core.service.InsService; 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.ConditionalOnEnable;
import org.dromara.workflow.common.constant.FlowConstant; import org.dromara.workflow.common.constant.FlowConstant;
import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.common.enums.TaskStatusEnum;
@ -165,15 +163,12 @@ public class WorkflowGlobalListener implements GlobalListener {
flwCommonService.sendMessage(definition.getFlowName(), instance.getId(), messageType, notice); flwCommonService.sendMessage(definition.getFlowName(), instance.getId(), messageType, notice);
} }
} }
FlowInstance ins = new FlowInstance(); insService.removeVariables(instance.getId(),
Map<String, Object> variableMap = instance.getVariableMap(); FlowConstant.FLOW_COPY_LIST,
variableMap.remove(FlowConstant.FLOW_COPY_LIST); FlowConstant.MESSAGE_TYPE,
variableMap.remove(FlowConstant.MESSAGE_TYPE); FlowConstant.MESSAGE_NOTICE,
variableMap.remove(FlowConstant.MESSAGE_NOTICE); FlowConstant.SUBMIT
variableMap.remove(FlowConstant.SUBMIT); );
ins.setId(instance.getId());
ins.setVariable(FlowEngine.jsonConvert.objToStr(variableMap));
insService.updateById(ins);
} }
/** /**