修改代码实现

This commit is contained in:
孙小云 2026-03-09 15:20:56 +08:00
parent 7e4994f058
commit 177e096b8e
4 changed files with 62 additions and 28 deletions

View File

@ -53,7 +53,7 @@ public class TaskPlanController extends BaseController
{ {
taskPlanDTO.setPlanType(PlanTypeEnum.TIMED); taskPlanDTO.setPlanType(PlanTypeEnum.TIMED);
setDefaultPlan(taskPlanDTO); setDefaultPlan(taskPlanDTO);
Long planId = taskPlanService.createTimedTaskPlan(TaskPlanControllerConvert.to(taskPlanDTO)); Long planId = taskPlanService.createTimedTaskPlan(TaskPlanControllerConvert.to(taskPlanDTO),true);
return R.ok(planId); return R.ok(planId);
} }
@ -65,7 +65,7 @@ public class TaskPlanController extends BaseController
{ {
taskPlanDTO.setPlanType(PlanTypeEnum.CYCLE); taskPlanDTO.setPlanType(PlanTypeEnum.CYCLE);
setDefaultPlan(taskPlanDTO); setDefaultPlan(taskPlanDTO);
Long planId = taskPlanService.createCycleTaskPlan(TaskPlanControllerConvert.to(taskPlanDTO)); Long planId = taskPlanService.createCycleTaskPlan(TaskPlanControllerConvert.to(taskPlanDTO),true);
return R.ok(planId); return R.ok(planId);
} }

View File

@ -1,5 +1,6 @@
package com.ruoyi.task.domain.impl; package com.ruoyi.task.domain.impl;
import com.ruoyi.task.api.enums.ExecuteTypeEnum;
import com.ruoyi.task.api.enums.PlanTypeEnum; import com.ruoyi.task.api.enums.PlanTypeEnum;
import com.ruoyi.task.domain.api.ITaskPlanDomain; import com.ruoyi.task.domain.api.ITaskPlanDomain;
import com.ruoyi.task.domain.convert.TaskPlanConvert; import com.ruoyi.task.domain.convert.TaskPlanConvert;
@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -50,6 +52,9 @@ public class TaskPlanDomainImpl implements ITaskPlanDomain {
@Override @Override
public TaskPlan updateTaskPlan(TaskPlan taskPlan) { public TaskPlan updateTaskPlan(TaskPlan taskPlan) {
// 转换为实体 // 转换为实体
TaskPlanEntity entity = TaskPlanConvert.toEntity(taskPlan); TaskPlanEntity entity = TaskPlanConvert.toEntity(taskPlan);
// 更新数据库 // 更新数据库

View File

@ -12,14 +12,14 @@ public interface ITaskPlanService {
* @param taskPlanDTO 任务计划DTO * @param taskPlanDTO 任务计划DTO
* @return 任务计划ID * @return 任务计划ID
*/ */
Long createTimedTaskPlan(TaskPlanDTO taskPlanDTO); Long createTimedTaskPlan(TaskPlanDTO taskPlanDTO,boolean create);
/** /**
* 创建周期任务计划 * 创建周期任务计划
* @param taskPlanDTO 任务计划DTO * @param taskPlanDTO 任务计划DTO
* @return 任务计划ID * @return 任务计划ID
*/ */
Long createCycleTaskPlan(TaskPlanDTO taskPlanDTO); Long createCycleTaskPlan(TaskPlanDTO taskPlanDTO,boolean create);
/** /**
* 根据ID获取任务计划 * 根据ID获取任务计划

View File

@ -25,7 +25,7 @@ public class TaskPlanServiceImpl implements ITaskPlanService {
private ITaskDomain taskDomain; private ITaskDomain taskDomain;
@Override @Override
public Long createTimedTaskPlan(TaskPlanDTO taskPlanDTO) { public Long createTimedTaskPlan(TaskPlanDTO taskPlanDTO,boolean create) {
TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO); TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO);
// 校验PlanTypeEnum // 校验PlanTypeEnum
@ -44,16 +44,22 @@ public class TaskPlanServiceImpl implements ITaskPlanService {
taskPlan.setEndDate(taskPlan.getExecuteTime()); taskPlan.setEndDate(taskPlan.getExecuteTime());
} }
if(create){
TaskPlan result = taskPlanDomain.createTimedTaskPlan(taskPlan);
// 创建对应的任务记录
createTaskFromPlan(result);
return result.getId();
}else {
taskPlanDomain.updateTaskPlan(taskPlan);
createTaskFromPlan(taskPlan);
return taskPlan.getId();
}
TaskPlan result = taskPlanDomain.createTimedTaskPlan(taskPlan);
// 创建对应的任务记录
createTaskFromPlan(result);
return result.getId();
} }
@Override @Override
public Long createCycleTaskPlan(TaskPlanDTO taskPlanDTO) { public Long createCycleTaskPlan(TaskPlanDTO taskPlanDTO,boolean create) {
TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO); TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO);
// 校验PlanTypeEnum // 校验PlanTypeEnum
@ -65,13 +71,19 @@ public class TaskPlanServiceImpl implements ITaskPlanService {
if (taskPlan.getPlanType() == null) { if (taskPlan.getPlanType() == null) {
taskPlan.setPlanType(PlanTypeEnum.CYCLE); taskPlan.setPlanType(PlanTypeEnum.CYCLE);
} }
TaskPlan result = taskPlanDomain.createCycleTaskPlan(taskPlan);
if(create){
// 创建对应的任务记录 TaskPlan result = taskPlanDomain.createCycleTaskPlan(taskPlan);
createTaskFromPlan(result); // 创建对应的任务记录
createTaskFromPlan(result);
return result.getId(); return result.getId();
}else {
taskPlanDomain.updateTaskPlan(taskPlan);
createTaskFromPlan(taskPlan);
return taskPlan.getId();
}
} }
/** /**
@ -264,8 +276,31 @@ public class TaskPlanServiceImpl implements ITaskPlanService {
@Override @Override
public boolean updateTaskPlan(TaskPlanDTO taskPlanDTO) { public boolean updateTaskPlan(TaskPlanDTO taskPlanDTO) {
TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO); // 先查询原始数据
TaskPlan result = taskPlanDomain.updateTaskPlan(taskPlan); TaskPlan existingTaskPlan = taskPlanDomain.getTaskPlanById(taskPlanDTO.getId());
if (existingTaskPlan == null) {
throw new IllegalArgumentException("任务计划不存在");
}
// 将传入的非空字段覆盖到原始数据
TaskPlan updateTaskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO);
if (updateTaskPlan.getPlanName() != null) existingTaskPlan.setPlanName(updateTaskPlan.getPlanName());
if (updateTaskPlan.getPlanType() != null) existingTaskPlan.setPlanType(updateTaskPlan.getPlanType());
if (updateTaskPlan.getCycleType() != null) existingTaskPlan.setCycleType(updateTaskPlan.getCycleType());
if (updateTaskPlan.getCycleValue() != null) existingTaskPlan.setCycleValue(updateTaskPlan.getCycleValue());
if (updateTaskPlan.getExecuteType() != null) existingTaskPlan.setExecuteType(updateTaskPlan.getExecuteType());
if (updateTaskPlan.getExecuteTime() != null) existingTaskPlan.setExecuteTime(updateTaskPlan.getExecuteTime());
if (updateTaskPlan.getDuration() != null) existingTaskPlan.setDuration(updateTaskPlan.getDuration());
if (updateTaskPlan.getStartDate() != null) existingTaskPlan.setStartDate(updateTaskPlan.getStartDate());
if (updateTaskPlan.getEndDate() != null) existingTaskPlan.setEndDate(updateTaskPlan.getEndDate());
if (updateTaskPlan.getRouteId() != null) existingTaskPlan.setRouteId(updateTaskPlan.getRouteId());
if (updateTaskPlan.getUavId() != null) existingTaskPlan.setUavId(updateTaskPlan.getUavId());
if (updateTaskPlan.getStatus() != null) existingTaskPlan.setStatus(updateTaskPlan.getStatus());
if (updateTaskPlan.getDescription() != null) existingTaskPlan.setDescription(updateTaskPlan.getDescription());
if (updateTaskPlan.getRouteUrl() != null) existingTaskPlan.setRouteUrl(updateTaskPlan.getRouteUrl());
if (updateTaskPlan.getRemark() != null) existingTaskPlan.setRemark(updateTaskPlan.getRemark());
TaskPlan result = taskPlanDomain.updateTaskPlan(existingTaskPlan);
if (result != null) { if (result != null) {
// 先删除该计划下的所有未执行任务 // 先删除该计划下的所有未执行任务
@ -275,16 +310,10 @@ public class TaskPlanServiceImpl implements ITaskPlanService {
taskDomain.deleteTask(task.getId()); taskDomain.deleteTask(task.getId());
} }
} }
if(Objects.equals(taskPlan.getPlanType(),PlanTypeEnum.TIMED)){
createTimedTaskPlan(taskPlanDTO);
}else {
createCycleTaskPlan(taskPlanDTO);
}
} }
createTaskFromPlan(existingTaskPlan);
return result != null; return result != null;
} }