update 优化 工作流任务创建监听器 传递流程参数

dev
疯狂的狮子Li 5 months ago
parent 4244567d2e
commit 5d2156cb5e

@ -6,6 +6,7 @@ import org.dromara.common.core.utils.SpringUtils;
import org.springframework.cloud.bus.event.RemoteApplicationEvent; import org.springframework.cloud.bus.event.RemoteApplicationEvent;
import java.io.Serial; import java.io.Serial;
import java.util.Map;
/** /**
* *
@ -59,6 +60,11 @@ public class ProcessTaskEvent extends RemoteApplicationEvent {
*/ */
private String status; private String status;
/**
*
*/
private Map<String, Object> params;
public ProcessTaskEvent() { public ProcessTaskEvent() {
super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null)); super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null));
} }

@ -56,7 +56,7 @@ public class FlowProcessEventHandler {
* @param instance * @param instance
* @param taskId id * @param taskId id
*/ */
public void processTaskHandler(String flowCode, Instance instance, Long taskId) { public void processTaskHandler(String flowCode, Instance instance, Long taskId, Map<String, Object> params) {
String tenantId = TenantHelper.getTenantId(); String tenantId = TenantHelper.getTenantId();
log.info("【流程任务事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 任务ID: {}", log.info("【流程任务事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 任务ID: {}",
tenantId, flowCode, instance.getBusinessId(), instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), taskId); tenantId, flowCode, instance.getBusinessId(), instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), taskId);
@ -69,6 +69,7 @@ public class FlowProcessEventHandler {
processTaskEvent.setNodeName(instance.getNodeName()); processTaskEvent.setNodeName(instance.getNodeName());
processTaskEvent.setTaskId(taskId); processTaskEvent.setTaskId(taskId);
processTaskEvent.setStatus(instance.getFlowStatus()); processTaskEvent.setStatus(instance.getFlowStatus());
processTaskEvent.setParams(params);
SpringUtils.context().publishEvent(processTaskEvent); SpringUtils.context().publishEvent(processTaskEvent);
} }

@ -130,7 +130,7 @@ public class WorkflowGlobalListener implements GlobalListener {
} }
//发布任务事件 //发布任务事件
if (task != null) { if (task != null) {
flowProcessEventHandler.processTaskHandler(definition.getFlowCode(), instance, task.getId()); flowProcessEventHandler.processTaskHandler(definition.getFlowCode(), instance, task.getId(), params);
} }
if (ObjectUtil.isNull(flowParams)) { if (ObjectUtil.isNull(flowParams)) {
return; return;

@ -137,7 +137,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
} }
/** /**
* (: 稿退) * (: 稿退)
* 使#processEvent.flowCode=='leave1' * 使#processEvent.flowCode=='leave1'
* 便使startsWithkey * 便使startsWithkey
* *
@ -167,7 +167,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
} }
/** /**
* * ()
* @EventListener(condition = "#processTaskEvent.flowCode=='leave1'") * @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")
* key * key
* if ("xxx".equals(processTaskEvent.getNodeCode())) { * if ("xxx".equals(processTaskEvent.getNodeCode())) {

Loading…
Cancel
Save