huang
5 天以前 9571229a2013472dc701ecf5767f2873b36d8f90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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));
    }
}