update 优化判断流程是否已结束
This commit is contained in:
parent
c41add355f
commit
6b0b7382a6
@ -17,7 +17,6 @@ import org.dromara.warm.flow.core.listener.GlobalListener;
|
||||
import org.dromara.warm.flow.core.listener.ListenerVariable;
|
||||
import org.dromara.warm.flow.core.service.InsService;
|
||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
||||
import org.dromara.warm.flow.orm.entity.FlowTask;
|
||||
import org.dromara.workflow.common.ConditionalOnEnable;
|
||||
import org.dromara.workflow.common.constant.FlowConstant;
|
||||
import org.dromara.workflow.common.enums.TaskStatusEnum;
|
||||
@ -183,8 +182,7 @@ public class WorkflowGlobalListener implements GlobalListener {
|
||||
return flowStatus;
|
||||
} else {
|
||||
Long instanceId = instance.getId();
|
||||
List<FlowTask> flowTasks = flwTaskService.selectByInstId(instanceId);
|
||||
if (CollUtil.isEmpty(flowTasks)) {
|
||||
if (flwTaskService.isTaskEnd(instanceId)) {
|
||||
String status = BusinessStatusEnum.FINISH.getStatus();
|
||||
// 更新流程状态为已完成
|
||||
instanceService.updateStatus(instanceId, status);
|
||||
|
@ -165,6 +165,14 @@ public interface IFlwTaskService {
|
||||
*/
|
||||
List<FlowTask> selectByInstId(Long instanceId);
|
||||
|
||||
/**
|
||||
* 判断流程是否已结束(即该流程实例下是否还有未完成的任务)
|
||||
*
|
||||
* @param instanceId 流程实例ID
|
||||
* @return true 表示任务已全部结束;false 表示仍有任务存在
|
||||
*/
|
||||
boolean isTaskEnd(Long instanceId);
|
||||
|
||||
/**
|
||||
* 任务操作
|
||||
*
|
||||
|
@ -574,6 +574,19 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
.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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务操作
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user