diff --git a/src/main/java/com/ruoyi/task/domain/model/TaskPlan.java b/src/main/java/com/ruoyi/task/domain/model/TaskPlan.java index 4f8d785..cb784a9 100644 --- a/src/main/java/com/ruoyi/task/domain/model/TaskPlan.java +++ b/src/main/java/com/ruoyi/task/domain/model/TaskPlan.java @@ -39,7 +39,7 @@ public class TaskPlan { /** 结束日期 */ private Date endDate; - /** 执行时间(仅在定义任务时有效) */ + /** 执行时间 */ private Date executeTime; /** 航线ID */ diff --git a/src/main/java/com/ruoyi/task/service/impl/TaskPlanServiceImpl.java b/src/main/java/com/ruoyi/task/service/impl/TaskPlanServiceImpl.java index 8d0ee0b..1c83f2c 100644 --- a/src/main/java/com/ruoyi/task/service/impl/TaskPlanServiceImpl.java +++ b/src/main/java/com/ruoyi/task/service/impl/TaskPlanServiceImpl.java @@ -152,8 +152,28 @@ public class TaskPlanServiceImpl implements ITaskPlanService { task.setExecuteType(taskPlan.getExecuteType()); task.setRouteId(taskPlan.getRouteId()); task.setUavId(taskPlan.getUavId()); - task.setStartTime(calendar.getTime()); - task.setEndTime(calendar.getTime()); + + // 设置任务开始时间:使用日历日期 + 计划的执行时间 + if (taskPlan.getExecuteTime() != null) { + java.util.Calendar taskCalendar = java.util.Calendar.getInstance(); + taskCalendar.setTime(calendar.getTime()); + java.util.Calendar executeTimeCalendar = java.util.Calendar.getInstance(); + executeTimeCalendar.setTime(taskPlan.getExecuteTime()); + taskCalendar.set(java.util.Calendar.HOUR_OF_DAY, executeTimeCalendar.get(java.util.Calendar.HOUR_OF_DAY)); + taskCalendar.set(java.util.Calendar.MINUTE, executeTimeCalendar.get(java.util.Calendar.MINUTE)); + taskCalendar.set(java.util.Calendar.SECOND, executeTimeCalendar.get(java.util.Calendar.SECOND)); + task.setStartTime(taskCalendar.getTime()); + + // 简单设置结束时间为开始时间后1小时(可根据实际需求调整) +// java.util.Calendar endTaskCalendar = (java.util.Calendar) taskCalendar.clone(); +// endTaskCalendar.add(java.util.Calendar.HOUR_OF_DAY, 1); +// task.setEndTime(endTaskCalendar.getTime()); + } else { + // 如果没有设置执行时间,使用日历时间作为开始和结束时间 + task.setStartTime(calendar.getTime()); + task.setEndTime(calendar.getTime()); + } + task.setStatus(StatusEnum.PENDING); // 待执行 task.setDescription("由任务计划自动创建");