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 ded7fe4..5b80088 100644 --- a/src/main/java/com/ruoyi/task/domain/api/ITaskDomain.java +++ b/src/main/java/com/ruoyi/task/domain/api/ITaskDomain.java @@ -59,4 +59,12 @@ public interface ITaskDomain { * @return 任务列表 */ List getTaskByPlanId(Long planId); + + /** + * 查询指定无人机 actualStartTime 离现在最近的任务 + * + * @param uavId 无人机ID + * @return 任务领域模型 + */ + Task getCurrentTaskByUavId(String uavId); } \ 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 3eab967..b30db79 100644 --- a/src/main/java/com/ruoyi/task/domain/impl/TaskDomainImpl.java +++ b/src/main/java/com/ruoyi/task/domain/impl/TaskDomainImpl.java @@ -86,4 +86,10 @@ public class TaskDomainImpl implements ITaskDomain { .map(TaskConvert::toModel) .collect(Collectors.toList()); } + + @Override + public Task getCurrentTaskByUavId(String uavId) { + TaskInfoEntity entity = taskInfoMapper.selectCurrentTaskByUavId(uavId); + return TaskConvert.toModel(entity); + } } \ 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 79b0a74..20177be 100644 --- a/src/main/java/com/ruoyi/task/mapper/TaskInfoMapper.java +++ b/src/main/java/com/ruoyi/task/mapper/TaskInfoMapper.java @@ -57,4 +57,12 @@ public interface TaskInfoMapper { * @return 影响行数 */ int deleteTaskInfoByIds(Long[] ids); + + /** + * 查询指定无人机 actualStartTime 离现在最近的任务 + * + * @param uavId 无人机ID + * @return 任务信息 + */ + TaskInfoEntity selectCurrentTaskByUavId(String uavId); } \ No newline at end of file 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 10e86ea..939bddb 100644 --- a/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java +++ b/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java @@ -117,34 +117,8 @@ public class TaskServiceImpl implements ITaskService { @Override public TaskDTO getCurrentTaskByUavId(String uavId) { - // 创建Task对象作为查询条件 - Task task = new Task(); - task.setUavId(uavId); - - List tasks = taskDomain.getTaskList(task); - - // 只取状态为RUNNING的任务 - tasks = tasks.stream() - .filter(t -> t.getStatus() == StatusEnum.RUNNING) - .collect(java.util.stream.Collectors.toList()); - - // 按照实际执行时间降序排序,取最新的一条 - if (!tasks.isEmpty()) { - tasks.sort((t1, t2) -> { - if (t1.getActualStartTime() == null && t2.getActualStartTime() == null) { - return 0; - } else if (t1.getActualStartTime() == null) { - return 1; - } else if (t2.getActualStartTime() == null) { - return -1; - } else { - return t2.getActualStartTime().compareTo(t1.getActualStartTime()); - } - }); - return TaskDTOConvert.toDTO(tasks.get(0)); - } - - return null; + Task task = taskDomain.getCurrentTaskByUavId(uavId); + return TaskDTOConvert.toDTO(task); } // // @Override diff --git a/src/main/resources/mapper/task/TaskInfoMapper.xml b/src/main/resources/mapper/task/TaskInfoMapper.xml index 5369d40..9f44542 100644 --- a/src/main/resources/mapper/task/TaskInfoMapper.xml +++ b/src/main/resources/mapper/task/TaskInfoMapper.xml @@ -146,4 +146,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + \ No newline at end of file