package com.ruoyi.task.service.api; import com.ruoyi.task.api.domain.TaskResultVO; import com.ruoyi.task.api.enums.StatusEnum; import com.ruoyi.task.service.dto.TaskDTO; import com.ruoyi.task.service.dto.TaskQueryDTO; import com.ruoyi.task.service.dto.TaskStatQueryServiceDTO; import com.ruoyi.task.service.dto.TaskStatByYearServiceDTO; import com.ruoyi.task.service.dto.TaskStatByMonthServiceDTO; import java.util.List; public interface ITaskService { /** * 创建无关联计划的任务 * @param taskDTO 任务DTO * @return 任务ID */ Long createTaskWithoutPlan(TaskDTO taskDTO); /** * 根据ID获取任务 * @param taskId 任务ID * @return 任务DTO */ TaskDTO getTaskById(Long taskId); /** * 复杂条件查询任务列表 * @param queryDTO 查询条件DTO * @return 任务列表 */ List getTaskList(TaskQueryDTO queryDTO); /** * 更新任务 * @param taskDTO 任务DTO * @return 是否成功 */ boolean updateTask(TaskDTO taskDTO); /** * 删除任务 * @param taskId 任务ID * @return 是否成功 */ boolean deleteTask(Long taskId); /** * 根据无人机ID查询任务列表 * @param uavId 无人机ID * @return 任务列表 */ List getTaskByUavId(String uavId); /** * 根据无人机ID获取最新的一条任务 * @param uavId 无人机ID * @return 任务DTO */ TaskDTO getCurrentTaskByUavId(String uavId); // /** // * 修改实际开始执行时间 // * @param taskId 任务ID // * @return 是否成功 // */ // boolean updateActualStartTime(Long taskId); // // /** // * 修改实际执行结束时间 // * @param taskId 任务ID // * @return 是否成功 // */ // boolean updateActualEndTime(Long taskId); /** * 修改执行状态 * @param taskId 任务ID * @param status 任务状态 * @return 是否成功 */ boolean updateTaskStatus(Long taskId, TaskResultVO status); /** * 设置 recovery 为 true * @param taskId 任务ID * @return 是否成功 */ boolean updateTaskRecovery(Long taskId); /** * 查询待自动执行的任务 * @return 待执行任务列表 */ List getPendingTasksForAutoExecute(); /** * 按年统计任务 * @param queryDTO 查询条件 * @return 按年统计结果 */ TaskStatByYearServiceDTO getTaskStatByYear(TaskStatQueryServiceDTO queryDTO); /** * 按年月统计任务 * @param queryDTO 查询条件 * @return 按年月统计结果 */ TaskStatByMonthServiceDTO getTaskStatByMonth(TaskStatQueryServiceDTO queryDTO); }