diff --git a/src/main/java/com/ruoyi/task/controller/TaskPlanController.java b/src/main/java/com/ruoyi/task/controller/TaskPlanController.java index a3c59e0..eb8daa9 100644 --- a/src/main/java/com/ruoyi/task/controller/TaskPlanController.java +++ b/src/main/java/com/ruoyi/task/controller/TaskPlanController.java @@ -93,8 +93,23 @@ public class TaskPlanController extends BaseController @PutMapping public R updateTaskPlan(@RequestBody TaskPlanDTO taskPlanDTO) { - boolean result = taskPlanService.updateTaskPlan(TaskPlanControllerConvert.to(taskPlanDTO)); - return R.ok(result); + + taskPlanService.updateTaskPlan(TaskPlanControllerConvert.to(taskPlanDTO)); +// taskPlanService.deleteTaskPlan(taskPlanDTO.getId()); +// if(!Objects.isNull(taskPlanDTO.getPlanType())) { +// if(Objects.equals(taskPlanDTO.getPlanType(), PlanTypeEnum.TIMED)){ +// taskPlanDTO.setPlanType(PlanTypeEnum.TIMED); +// setDefaultPlan(taskPlanDTO); +// taskPlanService.createTimedTaskPlan(TaskPlanControllerConvert.to(taskPlanDTO)); +// return R.ok(true); +// }else if (Objects.equals(taskPlanDTO.getPlanType(), PlanTypeEnum.CYCLE)){ +// taskPlanDTO.setPlanType(PlanTypeEnum.CYCLE); +// setDefaultPlan(taskPlanDTO); +// taskPlanService.createCycleTaskPlan(TaskPlanControllerConvert.to(taskPlanDTO)); +// return R.ok(true); +// } +// } + return R.ok(true); } /** 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 0e5f1de..ded7fe4 100644 --- a/src/main/java/com/ruoyi/task/domain/api/ITaskDomain.java +++ b/src/main/java/com/ruoyi/task/domain/api/ITaskDomain.java @@ -18,7 +18,7 @@ public interface ITaskDomain { * @param task 任务领域模型 * @return 创建后的任务 */ - Task createTaskWithoutPlan(Task task); + Task createTask(Task task); /** * 更新任务 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 3c0d643..3eab967 100644 --- a/src/main/java/com/ruoyi/task/domain/impl/TaskDomainImpl.java +++ b/src/main/java/com/ruoyi/task/domain/impl/TaskDomainImpl.java @@ -24,9 +24,8 @@ public class TaskDomainImpl implements ITaskDomain { private TaskInfoMapper taskInfoMapper; @Override - public Task createTaskWithoutPlan(Task task) { + public Task createTask(Task task) { // 确保planId为null,表示无关联计划 - task.setPlanId(null); // 转换为实体 TaskInfoEntity entity = TaskConvert.toEntity(task); // 插入数据库 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 6577732..c90f19e 100644 --- a/src/main/java/com/ruoyi/task/service/impl/TaskPlanServiceImpl.java +++ b/src/main/java/com/ruoyi/task/service/impl/TaskPlanServiceImpl.java @@ -7,13 +7,13 @@ import com.ruoyi.task.domain.model.Task; import com.ruoyi.task.domain.model.TaskPlan; import com.ruoyi.task.service.api.ITaskPlanService; import com.ruoyi.task.service.convert.TaskPlanDTOConvert; -import com.ruoyi.task.service.convert.TaskDTOConvert; import com.ruoyi.task.service.dto.TaskPlanDTO; import com.ruoyi.task.service.dto.TaskPlanQueryDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; @Service public class TaskPlanServiceImpl implements ITaskPlanService { @@ -37,7 +37,14 @@ public class TaskPlanServiceImpl implements ITaskPlanService { if (taskPlan.getPlanType() == null) { taskPlan.setPlanType(PlanTypeEnum.TIMED); } - + + // 设置结束时间:开始时间 + 执行时长 + if (taskPlan.getExecuteTime() != null && taskPlan.getDuration() != null) { + taskPlan.setStartDate(taskPlan.getExecuteTime()); + taskPlan.setEndDate(taskPlan.getExecuteTime()); + } + + TaskPlan result = taskPlanDomain.createTimedTaskPlan(taskPlan); // 创建对应的任务记录 @@ -107,7 +114,7 @@ public class TaskPlanServiceImpl implements ITaskPlanService { task.setDescription("由任务计划自动创建"); // 创建任务 - taskDomain.createTaskWithoutPlan(task); + taskDomain.createTask(task); } /** @@ -192,7 +199,7 @@ public class TaskPlanServiceImpl implements ITaskPlanService { task.setDescription("由任务计划自动创建"); // 创建任务 - taskDomain.createTaskWithoutPlan(task); + taskDomain.createTask(task); } // 增加一天 @@ -259,7 +266,7 @@ public class TaskPlanServiceImpl implements ITaskPlanService { public boolean updateTaskPlan(TaskPlanDTO taskPlanDTO) { TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO); TaskPlan result = taskPlanDomain.updateTaskPlan(taskPlan); - + if (result != null) { // 先删除该计划下的所有未执行任务 List tasks = taskDomain.getTaskByPlanId(result.getId()); @@ -268,11 +275,16 @@ public class TaskPlanServiceImpl implements ITaskPlanService { taskDomain.deleteTask(task.getId()); } } - - // 重新创建任务 - createTaskFromPlan(result); + + if(Objects.equals(taskPlan.getPlanType(),PlanTypeEnum.TIMED)){ + createTimedTaskPlan(taskPlanDTO); + }else { + createCycleTaskPlan(taskPlanDTO); + } + + } - + return result != null; } 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 e9dfce4..1c2df3f 100644 --- a/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java +++ b/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java @@ -1,8 +1,6 @@ package com.ruoyi.task.service.impl; import com.ruoyi.task.api.enums.StatusEnum; -import com.ruoyi.task.api.enums.TaskCategoryEnum; -import com.ruoyi.task.api.enums.TaskTypeEnum; import com.ruoyi.task.domain.api.ITaskDomain; import com.ruoyi.task.domain.model.Task; import com.ruoyi.task.service.api.ITaskService; @@ -23,7 +21,8 @@ public class TaskServiceImpl implements ITaskService { @Override public Long createTaskWithoutPlan(TaskDTO taskDTO) { Task task = TaskDTOConvert.toDomain(taskDTO); - Task result = taskDomain.createTaskWithoutPlan(task); + task.setPlanId(null); + Task result = taskDomain.createTask(task); return result != null ? result.getId() : null; } diff --git a/src/main/resources/db/migration/V7__Change_status_column_type.sql b/src/main/resources/db/migration/V7__Change_status_column_type.sql new file mode 100644 index 0000000..ca79400 --- /dev/null +++ b/src/main/resources/db/migration/V7__Change_status_column_type.sql @@ -0,0 +1,8 @@ +-- 修改 task_plan 表的 status 字段类型为 VARCHAR(20) +ALTER TABLE task_plan MODIFY COLUMN status VARCHAR(20) COMMENT '计划状态'; + +-- 修改 task_info 表的 status 字段类型为 VARCHAR(20) +ALTER TABLE task_info MODIFY COLUMN status VARCHAR(20) COMMENT '任务状态'; + +-- 修改 task_stat 表的 task_status 字段类型为 VARCHAR(20) +ALTER TABLE task_stat MODIFY COLUMN task_status VARCHAR(20) COMMENT '任务状态'; \ No newline at end of file