From 1398da7559f288b021ca00df330e2a5894886285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 6 Mar 2026 13:54:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/task/service/api/ITaskService.java | 23 +++++++++++ .../task/service/convert/TaskDTOConvert.java | 4 ++ .../com/ruoyi/task/service/dto/TaskDTO.java | 24 ++++++++++++ .../task/service/impl/TaskServiceImpl.java | 39 +++++++++++++++++++ 4 files changed, 90 insertions(+) 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 3b2716e..845a4ca 100644 --- a/src/main/java/com/ruoyi/task/service/api/ITaskService.java +++ b/src/main/java/com/ruoyi/task/service/api/ITaskService.java @@ -1,5 +1,6 @@ package com.ruoyi.task.service.api; +import com.ruoyi.task.api.enums.StatusEnum; import com.ruoyi.task.service.dto.TaskDTO; import com.ruoyi.task.service.dto.TaskQueryDTO; @@ -55,4 +56,26 @@ public interface ITaskService { * @return 最新的任务DTO */ TaskDTO getCurrentTaskByUavId(Long 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, StatusEnum status); } diff --git a/src/main/java/com/ruoyi/task/service/convert/TaskDTOConvert.java b/src/main/java/com/ruoyi/task/service/convert/TaskDTOConvert.java index f5c46a7..7dbf74a 100644 --- a/src/main/java/com/ruoyi/task/service/convert/TaskDTOConvert.java +++ b/src/main/java/com/ruoyi/task/service/convert/TaskDTOConvert.java @@ -27,6 +27,8 @@ public class TaskDTOConvert { dto.setStatus(task.getStatus()); dto.setStartTime(task.getStartTime()); dto.setEndTime(task.getEndTime()); + dto.setActualStartTime(task.getActualStartTime()); + dto.setActualEndTime(task.getActualEndTime()); dto.setDescription(task.getDescription()); dto.setRemark(task.getRemark()); @@ -50,6 +52,8 @@ public class TaskDTOConvert { task.setStatus(dto.getStatus()); task.setStartTime(dto.getStartTime()); task.setEndTime(dto.getEndTime()); + task.setActualStartTime(dto.getActualStartTime()); + task.setActualEndTime(dto.getActualEndTime()); task.setDescription(dto.getDescription()); task.setRemark(dto.getRemark()); diff --git a/src/main/java/com/ruoyi/task/service/dto/TaskDTO.java b/src/main/java/com/ruoyi/task/service/dto/TaskDTO.java index d42d291..b95b094 100644 --- a/src/main/java/com/ruoyi/task/service/dto/TaskDTO.java +++ b/src/main/java/com/ruoyi/task/service/dto/TaskDTO.java @@ -48,6 +48,12 @@ public class TaskDTO { /** 结束时间 */ private Date endTime; + /** 实际开始时间 */ + private Date actualStartTime; + + /** 实际结束时间 */ + private Date actualEndTime; + /** 描述 */ private String description; @@ -143,6 +149,22 @@ public class TaskDTO { this.endTime = endTime; } + public Date getActualStartTime() { + return actualStartTime; + } + + public void setActualStartTime(Date actualStartTime) { + this.actualStartTime = actualStartTime; + } + + public Date getActualEndTime() { + return actualEndTime; + } + + public void setActualEndTime(Date actualEndTime) { + this.actualEndTime = actualEndTime; + } + public String getDescription() { return description; } @@ -173,6 +195,8 @@ public class TaskDTO { ", status=" + status + ", startTime=" + startTime + ", endTime=" + endTime + + ", actualStartTime=" + actualStartTime + + ", actualEndTime=" + actualEndTime + ", description='" + description + '\'' + '}'; } 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 5572715..ad1a429 100644 --- a/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java +++ b/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java @@ -121,4 +121,43 @@ public class TaskServiceImpl implements ITaskService { return null; } + + @Override + public boolean updateActualStartTime(Long taskId) { + Task task = taskDomain.getTaskById(taskId); + if (task != null) { + task.setActualStartTime(new java.util.Date()); + Task result = taskDomain.updateTask(task); + return result != null; + } + return false; + } + + @Override + public boolean updateActualEndTime(Long taskId) { + Task task = taskDomain.getTaskById(taskId); + if (task != null) { + task.setActualEndTime(new java.util.Date()); + Task result = taskDomain.updateTask(task); + return result != null; + } + return false; + } + + @Override + public boolean updateTaskStatus(Long taskId, StatusEnum status) { + Task task = taskDomain.getTaskById(taskId); + if (task != null) { + task.setStatus(status); + // 如果状态变为执行中,设置实际开始时间 + if (status == StatusEnum.RUNNING) { + task.setActualStartTime(new java.util.Date()); + }else { + task.setActualEndTime(new java.util.Date()); + } + Task result = taskDomain.updateTask(task); + return result != null; + } + return false; + } }