a-tuoheng-task/src/main/java/com/ruoyi/task/service/impl/TaskPlanServiceImpl.java

102 lines
3.6 KiB
Java
Raw Normal View History

2026-03-05 17:14:10 +08:00
package com.ruoyi.task.service.impl;
2026-03-06 09:19:18 +08:00
import com.ruoyi.task.api.enums.ExecuteTypeEnum;
import com.ruoyi.task.api.enums.PlanTypeEnum;
import com.ruoyi.task.api.enums.StatusEnum;
import com.ruoyi.task.domain.api.ITaskDomain;
2026-03-05 17:14:10 +08:00
import com.ruoyi.task.domain.api.ITaskPlanDomain;
2026-03-06 09:19:18 +08:00
import com.ruoyi.task.domain.model.Task;
2026-03-05 17:14:10 +08:00
import com.ruoyi.task.domain.model.TaskPlan;
2026-03-05 17:15:01 +08:00
import com.ruoyi.task.service.api.ITaskPlanService;
2026-03-05 17:14:10 +08:00
import com.ruoyi.task.service.convert.TaskPlanDTOConvert;
2026-03-06 09:19:18 +08:00
import com.ruoyi.task.service.convert.TaskDTOConvert;
2026-03-05 17:14:10 +08:00
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;
@Service
public class TaskPlanServiceImpl implements ITaskPlanService {
@Autowired
private ITaskPlanDomain taskPlanDomain;
2026-03-06 09:19:18 +08:00
@Autowired
private ITaskDomain taskDomain;
2026-03-05 17:14:10 +08:00
@Override
public Long createTimedTaskPlan(TaskPlanDTO taskPlanDTO) {
TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO);
TaskPlan result = taskPlanDomain.createTimedTaskPlan(taskPlan);
2026-03-06 09:19:18 +08:00
// 创建对应的任务记录
createTaskFromPlan(result);
2026-03-05 17:14:10 +08:00
return result != null ? result.getId() : null;
}
@Override
public Long createCycleTaskPlan(TaskPlanDTO taskPlanDTO) {
TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO);
TaskPlan result = taskPlanDomain.createCycleTaskPlan(taskPlan);
2026-03-06 09:19:18 +08:00
// 创建对应的任务记录
createTaskFromPlan(result);
2026-03-05 17:14:10 +08:00
return result != null ? result.getId() : null;
}
2026-03-06 09:19:18 +08:00
/**
* 根据任务计划创建任务记录
*/
private void createTaskFromPlan(TaskPlan taskPlan) {
Task task = new Task();
task.setTaskName(taskPlan.getPlanName() + "_任务");
task.setPlanId(taskPlan.getId());
task.setTaskCategory("计划任务");
task.setTaskType(taskPlan.getPlanType() != null ? taskPlan.getPlanType().getCode() : null);
task.setExecuteType(taskPlan.getExecuteType());
task.setRouteId(taskPlan.getRouteId());
task.setUavId(taskPlan.getUavId());
task.setStartTime(taskPlan.getStartDate());
task.setEndTime(taskPlan.getEndDate());
task.setStatus(StatusEnum.PENDING); // 待执行
task.setDescription("由任务计划自动创建");
// 创建任务
taskDomain.createTaskWithoutPlan(task);
}
2026-03-05 17:14:10 +08:00
@Override
public TaskPlanDTO getTaskPlanById(Long planId) {
TaskPlan taskPlan = taskPlanDomain.getTaskPlanById(planId);
return TaskPlanDTOConvert.toDTO(taskPlan);
}
@Override
public List<TaskPlanDTO> getTaskPlanList(TaskPlanQueryDTO queryDTO) {
// 创建TaskPlan对象作为查询条件
TaskPlan taskPlan = new TaskPlan();
taskPlan.setRouteId(queryDTO.getRouteId());
2026-03-06 09:19:18 +08:00
taskPlan.setStatus(StatusEnum.getByCode(queryDTO.getStatus()));
taskPlan.setPlanType(PlanTypeEnum.getByCode(queryDTO.getPlanType()));
2026-03-05 17:14:10 +08:00
List<TaskPlan> taskPlans = taskPlanDomain.getTaskPlanList(taskPlan);
return TaskPlanDTOConvert.toDTOList(taskPlans);
}
@Override
public boolean updateTaskPlan(TaskPlanDTO taskPlanDTO) {
TaskPlan taskPlan = TaskPlanDTOConvert.toDomain(taskPlanDTO);
TaskPlan result = taskPlanDomain.updateTaskPlan(taskPlan);
return result != null;
}
@Override
public boolean deleteTaskPlan(Long planId) {
return taskPlanDomain.deleteTaskPlan(planId);
}
}