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<MultiDeviceTask> startTask(@Valid @RequestBody MultiDeviceTaskRequest request) {
|
return Result.success(multiDeviceTaskService.startTask(request));
|
}
|
|
@PostMapping("/list")
|
@ApiOperation("分页查询任务列表")
|
public Result<Page<MultiDeviceTask>> listTasks(@RequestBody(required = false) MultiDeviceTaskQuery query) {
|
MultiDeviceTaskQuery finalQuery = query != null ? query : new MultiDeviceTaskQuery();
|
return Result.success(multiDeviceTaskService.queryTasks(finalQuery));
|
}
|
|
@GetMapping("/{taskId}")
|
@ApiOperation("查询任务详情")
|
public Result<MultiDeviceTask> getTask(@PathVariable String taskId) {
|
return Result.success(multiDeviceTaskService.getTaskByTaskId(taskId));
|
}
|
|
@GetMapping("/{taskId}/steps")
|
@ApiOperation("查询任务步骤详情")
|
public Result<List<TaskStepDetail>> getTaskSteps(@PathVariable String taskId) {
|
return Result.success(multiDeviceTaskService.getTaskSteps(taskId));
|
}
|
|
@PostMapping("/{taskId}/cancel")
|
@ApiOperation("取消正在运行的任务")
|
public Result<Boolean> cancelTask(@PathVariable String taskId) {
|
return Result.success(multiDeviceTaskService.cancelTask(taskId));
|
}
|
}
|