2 Commits

Author SHA1 Message Date
疯狂的狮子Li
45edee4e63 update 优化 支持在监听器设置流程变量 2025-07-15 16:57:44 +08:00
疯狂的狮子Li
868bc492a2 update 优化 支持在监听器设置流程变量 2025-07-15 16:56:57 +08:00
4 changed files with 18 additions and 11 deletions

View File

@@ -27,6 +27,11 @@ public class ProcessEvent implements Serializable {
*/ */
private String flowCode; private String flowCode;
/**
* 实例id
*/
private Long instanceId;
/** /**
* 业务id * 业务id
*/ */

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

@@ -39,6 +39,7 @@ public class FlowProcessEventHandler {
ProcessEvent processEvent = new ProcessEvent(); ProcessEvent processEvent = new ProcessEvent();
processEvent.setTenantId(tenantId); processEvent.setTenantId(tenantId);
processEvent.setFlowCode(flowCode); processEvent.setFlowCode(flowCode);
processEvent.setInstanceId(instance.getId());
processEvent.setBusinessId(instance.getBusinessId()); processEvent.setBusinessId(instance.getBusinessId());
processEvent.setNodeType(instance.getNodeType()); processEvent.setNodeType(instance.getNodeType());
processEvent.setNodeCode(instance.getNodeCode()); processEvent.setNodeCode(instance.getNodeCode());
@@ -64,6 +65,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);
} }
/** /**