package com.mes.task.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mes.task.dto.MultiDeviceTaskQuery; import com.mes.task.dto.MultiDeviceTaskRequest; import com.mes.task.entity.MultiDeviceTask; import com.mes.task.entity.TaskStepDetail; import com.mes.task.service.MultiDeviceTaskService; import com.mes.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /** * 多设备任务控制器 */ @RestController @RequestMapping("device/task") @Api(tags = "多设备任务管理") @Validated @RequiredArgsConstructor public class MultiDeviceTaskController { private final MultiDeviceTaskService multiDeviceTaskService; @PostMapping("/start") @ApiOperation("启动多设备联合测试任务") public Result startTask(@Valid @RequestBody MultiDeviceTaskRequest request) { return Result.success(multiDeviceTaskService.startTask(request)); } @PostMapping("/list") @ApiOperation("分页查询任务列表") public Result> listTasks(@RequestBody(required = false) MultiDeviceTaskQuery query) { MultiDeviceTaskQuery finalQuery = query != null ? query : new MultiDeviceTaskQuery(); return Result.success(multiDeviceTaskService.queryTasks(finalQuery)); } @GetMapping("/{taskId}") @ApiOperation("查询任务详情") public Result getTask(@PathVariable String taskId) { return Result.success(multiDeviceTaskService.getTaskByTaskId(taskId)); } @GetMapping("/{taskId}/steps") @ApiOperation("查询任务步骤详情") public Result> getTaskSteps(@PathVariable String taskId) { return Result.success(multiDeviceTaskService.getTaskSteps(taskId)); } @PostMapping("/{taskId}/cancel") @ApiOperation("取消正在运行的任务") public Result cancelTask(@PathVariable String taskId) { return Result.success(multiDeviceTaskService.cancelTask(taskId)); } }