update 优化 ProcessTaskEvent 改名为 ProcessCreateTaskEvent 避免错误理解

This commit is contained in:
疯狂的狮子Li
2025-02-19 09:45:58 +08:00
parent 0dc0e64caa
commit 09ed003ea4
4 changed files with 25 additions and 25 deletions

View File

@@ -8,13 +8,13 @@ import org.springframework.cloud.bus.event.RemoteApplicationEvent;
import java.io.Serial; import java.io.Serial;
/** /**
* 流程办理监听 * 流程创建任务监听
* *
* @author may * @author may
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class ProcessTaskEvent extends RemoteApplicationEvent { public class ProcessCreateTaskEvent extends RemoteApplicationEvent {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -44,7 +44,7 @@ public class ProcessTaskEvent extends RemoteApplicationEvent {
*/ */
private String businessId; private String businessId;
public ProcessTaskEvent() { public ProcessCreateTaskEvent() {
super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null)); super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null));
} }
} }

View File

@@ -3,9 +3,9 @@ package org.dromara.workflow.handler;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.workflow.api.event.ProcessCreateTaskEvent;
import org.dromara.workflow.api.event.ProcessDeleteEvent; import org.dromara.workflow.api.event.ProcessDeleteEvent;
import org.dromara.workflow.api.event.ProcessEvent; import org.dromara.workflow.api.event.ProcessEvent;
import org.dromara.workflow.api.event.ProcessTaskEvent;
import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.ConditionalOnEnable;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -23,7 +23,7 @@ import java.util.Map;
public class FlowProcessEventHandler { public class FlowProcessEventHandler {
/** /**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等) * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* *
* @param flowCode 流程定义编码 * @param flowCode 流程定义编码
* @param businessId 业务id * @param businessId 业务id
@@ -44,23 +44,23 @@ public class FlowProcessEventHandler {
} }
/** /**
* 执行办理任务监听 * 执行创建任务监听
* *
* @param flowCode 流程定义编码 * @param flowCode 流程定义编码
* @param nodeCode 审批节点编码 * @param nodeCode 审批节点编码
* @param taskId 任务id * @param taskId 任务id
* @param businessId 业务id * @param businessId 业务id
*/ */
public void processTaskHandler(String flowCode, String nodeCode, Long taskId, String businessId) { public void processCreateTaskHandler(String flowCode, String nodeCode, Long taskId, String businessId) {
String tenantId = TenantHelper.getTenantId(); String tenantId = TenantHelper.getTenantId();
log.info("发布流程任务事件, 租户ID: {}, 流程编码: {}, 节点编码: {}, 任务ID: {}, 业务ID: {}", tenantId, flowCode, nodeCode, taskId, businessId); log.info("发布流程任务事件, 租户ID: {}, 流程编码: {}, 节点编码: {}, 任务ID: {}, 业务ID: {}", tenantId, flowCode, nodeCode, taskId, businessId);
ProcessTaskEvent processTaskEvent = new ProcessTaskEvent(); ProcessCreateTaskEvent processCreateTaskEvent = new ProcessCreateTaskEvent();
processTaskEvent.setTenantId(tenantId); processCreateTaskEvent.setTenantId(tenantId);
processTaskEvent.setFlowCode(flowCode); processCreateTaskEvent.setFlowCode(flowCode);
processTaskEvent.setNodeCode(nodeCode); processCreateTaskEvent.setNodeCode(nodeCode);
processTaskEvent.setTaskId(taskId); processCreateTaskEvent.setTaskId(taskId);
processTaskEvent.setBusinessId(businessId); processCreateTaskEvent.setBusinessId(businessId);
SpringUtils.context().publishEvent(processTaskEvent); SpringUtils.context().publishEvent(processCreateTaskEvent);
} }
/** /**

View File

@@ -52,7 +52,7 @@ public class WorkflowGlobalListener implements GlobalListener {
Task task = listenerVariable.getTask(); Task task = listenerVariable.getTask();
if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(flowStatus)) { if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(flowStatus)) {
// 判断流程状态(发布审批中事件) // 判断流程状态(发布审批中事件)
flowProcessEventHandler.processTaskHandler(definition.getFlowCode(), task.getNodeCode(), task.getId(), businessId); flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), task.getNodeCode(), task.getId(), businessId);
} }
} }

View File

@@ -15,9 +15,9 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.workflow.api.event.ProcessCreateTaskEvent;
import org.dromara.workflow.api.event.ProcessDeleteEvent; import org.dromara.workflow.api.event.ProcessDeleteEvent;
import org.dromara.workflow.api.event.ProcessEvent; import org.dromara.workflow.api.event.ProcessEvent;
import org.dromara.workflow.api.event.ProcessTaskEvent;
import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.domain.TestLeave; import org.dromara.workflow.domain.TestLeave;
import org.dromara.workflow.domain.bo.TestLeaveBo; import org.dromara.workflow.domain.bo.TestLeaveBo;
@@ -123,7 +123,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
} }
/** /**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等) * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1' * 正常使用只需#processEvent.flowCode=='leave1'
* 示例为了方便则使用startsWith匹配了全部示例key * 示例为了方便则使用startsWith匹配了全部示例key
* *
@@ -151,19 +151,19 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
} }
/** /**
* 执行办理任务监听 * 执行任务创建监听
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断 * 示例:也可通过 @EventListener(condition = "#processCreateTaskEvent.flowCode=='leave1'")进行判断
* 在方法中判断流程节点key * 在方法中判断流程节点key
* if ("xxx".equals(processTaskEvent.getNodeCode())) { * if ("xxx".equals(processCreateTaskEvent.getNodeCode())) {
* //执行业务逻辑 * //执行业务逻辑
* } * }
* *
* @param processTaskEvent 参数 * @param processCreateTaskEvent 参数
*/ */
@EventListener(condition = "#processTaskEvent.flowCode.startsWith('leave')") @EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('leave')")
public void processTaskHandler(ProcessTaskEvent processTaskEvent) { public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
log.info("当前任务执行了{}", processTaskEvent.toString()); log.info("当前任务创建了{}", processCreateTaskEvent.toString());
TestLeave testLeave = baseMapper.selectById(Long.valueOf(processTaskEvent.getBusinessId())); TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId()));
testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus()); testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus());
baseMapper.updateById(testLeave); baseMapper.updateById(testLeave);
} }