修改代码
This commit is contained in:
parent
df6487f4fa
commit
711e19f527
|
|
@ -59,4 +59,12 @@ public interface ITaskDomain {
|
|||
* @return 任务列表
|
||||
*/
|
||||
List<Task> getTaskByPlanId(Long planId);
|
||||
|
||||
/**
|
||||
* 查询指定无人机 actualStartTime 离现在最近的任务
|
||||
*
|
||||
* @param uavId 无人机ID
|
||||
* @return 任务领域模型
|
||||
*/
|
||||
Task getCurrentTaskByUavId(String uavId);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -57,4 +57,12 @@ public interface TaskInfoMapper {
|
|||
* @return 影响行数
|
||||
*/
|
||||
int deleteTaskInfoByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 查询指定无人机 actualStartTime 离现在最近的任务
|
||||
*
|
||||
* @param uavId 无人机ID
|
||||
* @return 任务信息
|
||||
*/
|
||||
TaskInfoEntity selectCurrentTaskByUavId(String uavId);
|
||||
}
|
||||
|
|
@ -117,34 +117,8 @@ public class TaskServiceImpl implements ITaskService {
|
|||
|
||||
@Override
|
||||
public TaskDTO getCurrentTaskByUavId(String uavId) {
|
||||
// 创建Task对象作为查询条件
|
||||
Task task = new Task();
|
||||
task.setUavId(uavId);
|
||||
|
||||
List<Task> 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
|
||||
|
|
|
|||
|
|
@ -146,4 +146,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectCurrentTaskByUavId" parameterType="String" resultMap="TaskInfoResult">
|
||||
<include refid="selectTaskInfoVo"/>
|
||||
where uav_id = #{uavId}
|
||||
and actual_start_time is not null
|
||||
order by abs(timestampdiff(second, actual_start_time, now()))
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue