diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java index 4a3e4a0..776e08f 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java @@ -408,6 +408,18 @@ public class PatrolTaskStatusController extends BaseController { } log.info("[TASK_STATUS_DELETE] remove taskStatus, taskPatrolledIds: {}", ids); + // 正在执行的任务不允许删除 + List blockedIds = this.patrolTaskStatusService.selectPatrolTaskStatusListByTaskPatrolledIds(ids).stream() + .filter(status -> TaskStatus.RUNNING.getCode().equals(status.getTaskState())) + .map(PatrolTaskStatus::getTaskPatrolledId) + .filter(StringUtils::isNotEmpty) + .distinct() + .collect(Collectors.toList()); + if (!blockedIds.isEmpty()) { + log.warn("[TASK_STATUS_DELETE] 任务正在执行,禁止删除, taskPatrolledIds: {}", blockedIds); + return AjaxResult.error("任务正在执行,无法删除:" + String.join(",", blockedIds)); + } + // 删除任务状态数据 int deleteCount = this.patrolTaskStatusService.deletePatrolTaskStatusByTaskPatrolledIds(ids); // 同步删除巡视结果(patrol_result)和结果分析(result_analysis)数据 diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/IPatrolTaskStatusService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/IPatrolTaskStatusService.java index 0a37781..8be2667 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/IPatrolTaskStatusService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/IPatrolTaskStatusService.java @@ -42,6 +42,14 @@ public interface IPatrolTaskStatusService { */ int deletePatrolTaskStatusByTaskPatrolledIds(List taskPatrolledIds); + /** + * 按巡视任务执行ID(task_patrolled_id)批量查询任务状态 + * + * @param taskPatrolledIds 执行任务ID集合 + * @return 任务状态列表 + */ + List selectPatrolTaskStatusListByTaskPatrolledIds(List taskPatrolledIds); + int insertIgnorePatrolTaskStatus(PatrolTaskStatus patrolTaskStatusMain); void updateTaskProgress(Long lineId, String taskProgress, String taskEstimatedTime, String taskState); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/impl/PatrolTaskStatusServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/impl/PatrolTaskStatusServiceImpl.java index 2bc6ccb..90b051b 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/impl/PatrolTaskStatusServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/impl/PatrolTaskStatusServiceImpl.java @@ -128,6 +128,14 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService { return this.patrolTaskStatusMapper.deletePatrolTaskStatusByTaskPatrolledIds(taskPatrolledIds); } + @Override + public List selectPatrolTaskStatusListByTaskPatrolledIds(List taskPatrolledIds) { + if (taskPatrolledIds == null || taskPatrolledIds.isEmpty()) { + return new ArrayList<>(); + } + return this.patrolTaskStatusMapper.selectPatrolTaskStatusListByTaskPatrolledIds(taskPatrolledIds); + } + @Override @TaskStatusChange(targetState = "1", async = true) // "1"表示已完成状态 public int insertIgnorePatrolTaskStatus(PatrolTaskStatus patrolTaskStatusMain) {