diff --git a/src/main/java/com/ruoyi/task/controller/TaskController.java b/src/main/java/com/ruoyi/task/controller/TaskController.java index 0d6f28e..a3058bf 100644 --- a/src/main/java/com/ruoyi/task/controller/TaskController.java +++ b/src/main/java/com/ruoyi/task/controller/TaskController.java @@ -156,6 +156,16 @@ public class TaskController extends BaseController return R.ok(result); } + /** + * 查询待自动执行的任务 + * @return 待执行任务列表 + */ + @GetMapping("/pending-auto") + public R> getPendingTasksForAutoExecute() + { + return R.ok(TaskControllerConvert.fromList(taskService.getPendingTasksForAutoExecute())); + } + /** * 按年统计任务 */ diff --git a/src/main/java/com/ruoyi/task/domain/api/ITaskDomain.java b/src/main/java/com/ruoyi/task/domain/api/ITaskDomain.java index 5b80088..0ac9eb8 100644 --- a/src/main/java/com/ruoyi/task/domain/api/ITaskDomain.java +++ b/src/main/java/com/ruoyi/task/domain/api/ITaskDomain.java @@ -67,4 +67,11 @@ public interface ITaskDomain { * @return 任务领域模型 */ Task getCurrentTaskByUavId(String uavId); + + /** + * 查询待自动执行的任务(最近5分钟内) + * + * @return 任务列表 + */ + List getPendingTasksForAutoExecute(); } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/task/domain/impl/TaskDomainImpl.java b/src/main/java/com/ruoyi/task/domain/impl/TaskDomainImpl.java index b30db79..2db334e 100644 --- a/src/main/java/com/ruoyi/task/domain/impl/TaskDomainImpl.java +++ b/src/main/java/com/ruoyi/task/domain/impl/TaskDomainImpl.java @@ -92,4 +92,12 @@ public class TaskDomainImpl implements ITaskDomain { TaskInfoEntity entity = taskInfoMapper.selectCurrentTaskByUavId(uavId); return TaskConvert.toModel(entity); } + + @Override + public List getPendingTasksForAutoExecute() { + List entityList = taskInfoMapper.selectPendingTasksForAutoExecute(); + return entityList.stream() + .map(TaskConvert::toModel) + .collect(Collectors.toList()); + } } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/task/mapper/TaskInfoMapper.java b/src/main/java/com/ruoyi/task/mapper/TaskInfoMapper.java index 20177be..f571f48 100644 --- a/src/main/java/com/ruoyi/task/mapper/TaskInfoMapper.java +++ b/src/main/java/com/ruoyi/task/mapper/TaskInfoMapper.java @@ -65,4 +65,11 @@ public interface TaskInfoMapper { * @return 任务信息 */ TaskInfoEntity selectCurrentTaskByUavId(String uavId); + + /** + * 查询待自动执行的任务(最近5分钟内) + * + * @return 待执行任务信息集合 + */ + List selectPendingTasksForAutoExecute(); } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/task/service/api/ITaskService.java b/src/main/java/com/ruoyi/task/service/api/ITaskService.java index 0152390..a99d54c 100644 --- a/src/main/java/com/ruoyi/task/service/api/ITaskService.java +++ b/src/main/java/com/ruoyi/task/service/api/ITaskService.java @@ -90,6 +90,12 @@ public interface ITaskService { */ boolean updateTaskRecovery(Long taskId); + /** + * 查询待自动执行的任务 + * @return 待执行任务列表 + */ + List getPendingTasksForAutoExecute(); + /** * 按年统计任务 * @param queryDTO 查询条件 diff --git a/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java b/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java index 7fa17c2..d482451 100644 --- a/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java +++ b/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.device.api.RemoteAircraftService; import com.ruoyi.task.api.domain.TaskResultVO; import com.ruoyi.task.api.enums.StatusEnum; +import com.ruoyi.task.api.enums.TaskTypeEnum; import com.ruoyi.task.domain.api.ITaskDomain; import com.ruoyi.task.domain.api.ITaskPlanDomain; import com.ruoyi.task.domain.model.Task; @@ -368,4 +369,10 @@ public class TaskServiceImpl implements ITaskService { result.setDays(days); return result; } + + @Override + public List getPendingTasksForAutoExecute() { + List tasks = taskDomain.getPendingTasksForAutoExecute(); + return TaskDTOConvert.toDTOList(tasks); + } } diff --git a/src/main/resources/db/migration/V9__Add_task_auto_execute_job.sql b/src/main/resources/db/migration/V9__Add_task_auto_execute_job.sql new file mode 100644 index 0000000..8cb0fd6 --- /dev/null +++ b/src/main/resources/db/migration/V9__Add_task_auto_execute_job.sql @@ -0,0 +1,25 @@ +-- 添加飞行任务自动执行定时任务 +INSERT INTO sys_job ( + job_id, + job_name, + job_group, + invoke_target, + cron_expression, + misfire_policy, + concurrent, + status, + create_by, + create_time, + remark +) VALUES ( + (SELECT COALESCE(MAX(job_id), 0) + 1 FROM sys_job), + '飞行任务自动执行', + 'DEFAULT', + 'taskAutoExecuteJob.execute()', + '0 */1 * * * ?', + '1', + '1', + 'admin', + NOW(), + '自动扫描并执行待执行的飞行任务(定时任务和周期任务)' +); diff --git a/src/main/resources/mapper/task/TaskInfoMapper.xml b/src/main/resources/mapper/task/TaskInfoMapper.xml index cd0998d..f9550b3 100644 --- a/src/main/resources/mapper/task/TaskInfoMapper.xml +++ b/src/main/resources/mapper/task/TaskInfoMapper.xml @@ -156,4 +156,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" limit 1 + \ No newline at end of file