2026-03-06 14:34:29 +08:00
|
|
|
package com.ruoyi.task.controller;
|
|
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.domain.R;
|
|
|
|
|
import com.ruoyi.common.core.web.controller.BaseController;
|
2026-03-09 16:36:47 +08:00
|
|
|
import com.ruoyi.task.api.domain.TaskStatQueryVO;
|
2026-03-06 14:34:29 +08:00
|
|
|
import com.ruoyi.task.service.dto.TaskQueryDTO;
|
|
|
|
|
import com.ruoyi.task.api.enums.StatusEnum;
|
|
|
|
|
import com.ruoyi.task.service.api.ITaskService;
|
2026-03-09 09:30:28 +08:00
|
|
|
import com.ruoyi.task.controller.convert.TaskControllerConvert;
|
2026-03-09 16:36:47 +08:00
|
|
|
import com.ruoyi.task.controller.convert.TaskStatControllerConvert;
|
2026-03-06 14:34:29 +08:00
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 任务Controller
|
|
|
|
|
*
|
|
|
|
|
* @author ruoyi
|
|
|
|
|
* @date 2026-01-17
|
|
|
|
|
*/
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/task")
|
|
|
|
|
public class TaskController extends BaseController
|
|
|
|
|
{
|
|
|
|
|
@Autowired
|
|
|
|
|
private ITaskService taskService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 创建无关联计划的任务
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping
|
2026-03-09 09:30:28 +08:00
|
|
|
public R<Long> createTaskWithoutPlan(@RequestBody com.ruoyi.task.api.domain.TaskDTO taskDTO)
|
2026-03-06 14:34:29 +08:00
|
|
|
{
|
2026-03-09 09:30:28 +08:00
|
|
|
Long taskId = taskService.createTaskWithoutPlan(TaskControllerConvert.to(taskDTO));
|
|
|
|
|
return R.ok(taskId);
|
2026-03-06 14:34:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取任务详细信息
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping(value = "/{taskId}")
|
2026-03-09 09:30:28 +08:00
|
|
|
public R<com.ruoyi.task.api.domain.TaskDTO> getTaskById(@PathVariable("taskId") Long taskId)
|
2026-03-06 14:34:29 +08:00
|
|
|
{
|
2026-03-09 09:30:28 +08:00
|
|
|
return R.ok(TaskControllerConvert.from(taskService.getTaskById(taskId)));
|
2026-03-06 14:34:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 复杂条件查询任务列表
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping("/list")
|
2026-03-09 09:30:28 +08:00
|
|
|
public R<List<com.ruoyi.task.api.domain.TaskDTO>> list(@RequestBody TaskQueryDTO queryDTO)
|
2026-03-06 14:34:29 +08:00
|
|
|
{
|
2026-03-09 09:30:28 +08:00
|
|
|
return R.ok(TaskControllerConvert.fromList(taskService.getTaskList(queryDTO)));
|
2026-03-06 14:34:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新任务
|
|
|
|
|
*/
|
|
|
|
|
@PutMapping
|
2026-03-09 09:30:28 +08:00
|
|
|
public R<Boolean> updateTask(@RequestBody com.ruoyi.task.api.domain.TaskDTO taskDTO)
|
2026-03-06 14:34:29 +08:00
|
|
|
{
|
2026-03-09 09:30:28 +08:00
|
|
|
boolean result = taskService.updateTask(TaskControllerConvert.to(taskDTO));
|
|
|
|
|
return R.ok(result);
|
2026-03-06 14:34:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除任务
|
|
|
|
|
*/
|
|
|
|
|
@DeleteMapping("/{taskId}")
|
2026-03-09 09:30:28 +08:00
|
|
|
public R<Boolean> deleteTask(@PathVariable("taskId") Long taskId)
|
2026-03-06 14:34:29 +08:00
|
|
|
{
|
|
|
|
|
boolean result = taskService.deleteTask(taskId);
|
2026-03-09 09:30:28 +08:00
|
|
|
return R.ok(result);
|
2026-03-06 14:34:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据无人机ID查询任务列表
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/uav/{uavId}")
|
2026-03-09 09:58:40 +08:00
|
|
|
public R<List<com.ruoyi.task.api.domain.TaskDTO>> getTaskByUavId(@PathVariable("uavId") String uavId)
|
2026-03-06 14:34:29 +08:00
|
|
|
{
|
2026-03-09 09:30:28 +08:00
|
|
|
return R.ok(TaskControllerConvert.fromList(taskService.getTaskByUavId(uavId)));
|
2026-03-06 14:34:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据无人机ID获取最新的一条任务
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/uav/current/{uavId}")
|
2026-03-09 09:58:40 +08:00
|
|
|
public R<com.ruoyi.task.api.domain.TaskDTO> getCurrentTaskByUavId(@PathVariable("uavId") String uavId)
|
2026-03-06 14:34:29 +08:00
|
|
|
{
|
2026-03-09 09:30:28 +08:00
|
|
|
return R.ok(TaskControllerConvert.from(taskService.getCurrentTaskByUavId(uavId)));
|
2026-03-06 14:34:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改执行状态
|
|
|
|
|
*/
|
|
|
|
|
@PutMapping("/status/{taskId}")
|
2026-03-09 09:30:28 +08:00
|
|
|
public R<Boolean> updateTaskStatus(@PathVariable("taskId") Long taskId, @RequestParam("status") StatusEnum status)
|
2026-03-06 14:34:29 +08:00
|
|
|
{
|
|
|
|
|
boolean result = taskService.updateTaskStatus(taskId, status);
|
2026-03-09 09:30:28 +08:00
|
|
|
return R.ok(result);
|
2026-03-06 14:34:29 +08:00
|
|
|
}
|
|
|
|
|
|
2026-03-09 16:36:47 +08:00
|
|
|
/**
|
|
|
|
|
* 按年统计任务
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping("/stat/year")
|
|
|
|
|
public R<com.ruoyi.task.api.domain.TaskStatByYearDTO> getTaskStatByYear(@RequestBody TaskStatQueryVO queryDTO)
|
|
|
|
|
{
|
|
|
|
|
return R.ok(TaskStatControllerConvert.fromYear(taskService.getTaskStatByYear(TaskStatControllerConvert.toQuery(queryDTO))));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 按年月统计任务
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping("/stat/month")
|
|
|
|
|
public R<com.ruoyi.task.api.domain.TaskStatByMonthDTO> getTaskStatByMonth(@RequestBody TaskStatQueryVO queryDTO)
|
|
|
|
|
{
|
|
|
|
|
return R.ok(TaskStatControllerConvert.fromMonth(taskService.getTaskStatByMonth(TaskStatControllerConvert.toQuery(queryDTO))));
|
|
|
|
|
}
|
2026-03-06 14:34:29 +08:00
|
|
|
|
|
|
|
|
}
|