update 优化 判断流程是否已结束

This commit is contained in:
疯狂的狮子Li
2025-07-10 17:40:25 +08:00
parent 33bd7c11a1
commit 304fa68276
3 changed files with 22 additions and 1 deletions
@@ -184,7 +184,7 @@ public class WorkflowGlobalListener implements GlobalListener {
} else { } else {
Long instanceId = instance.getId(); Long instanceId = instance.getId();
List<FlowTask> flowTasks = flwTaskService.selectByInstId(instanceId); List<FlowTask> flowTasks = flwTaskService.selectByInstId(instanceId);
if (CollUtil.isEmpty(flowTasks)) { if (flwTaskService.isTaskEnd(instanceId)) {
String status = BusinessStatusEnum.FINISH.getStatus(); String status = BusinessStatusEnum.FINISH.getStatus();
// 更新流程状态为已完成 // 更新流程状态为已完成
instanceService.updateStatus(instanceId, status); instanceService.updateStatus(instanceId, status);
@@ -165,6 +165,14 @@ public interface IFlwTaskService {
*/ */
List<FlowTask> selectByInstId(Long instanceId); List<FlowTask> selectByInstId(Long instanceId);
/**
* 判断流程是否已结束(即该流程实例下是否还有未完成的任务)
*
* @param instanceId 流程实例ID
* @return true 表示任务已全部结束;false 表示仍有任务存在
*/
boolean isTaskEnd(Long instanceId);
/** /**
* 任务操作 * 任务操作
* *
@@ -578,6 +578,19 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
.eq(FlowTask::getInstanceId, instanceId)); .eq(FlowTask::getInstanceId, instanceId));
} }
/**
* 判断流程是否已结束(即该流程实例下是否还有未完成的任务)
*
* @param instanceId 流程实例ID
* @return true 表示任务已全部结束;false 表示仍有任务存在
*/
@Override
public boolean isTaskEnd(Long instanceId) {
boolean exists = flowTaskMapper.exists(new LambdaQueryWrapper<FlowTask>()
.eq(FlowTask::getInstanceId, instanceId));
return !exists;
}
/** /**
* 任务操作 * 任务操作
* *