yeg
2026-08-30 20b346ef9d4fcbbbe05abfe08e4f4f0303b0812e
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package com.ruoyi.web.controller.system;
 
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.TTest;
import com.ruoyi.system.domain.TTestResult;
import com.ruoyi.system.service.ITTestService;
 
/** 测试管理 Controller。 */
@RestController
@RequestMapping("/system/test")
public class TTestController extends BaseController
{
    @Autowired
    private ITTestService testService;
 
    @PreAuthorize("@ss.hasAnyPermi('system:test:add,system:test:edit')")
    @GetMapping("/options")
    public AjaxResult options()
    {
        return success(testService.selectConfigurationOptions());
    }
 
    @PreAuthorize("@ss.hasPermi('system:test:list')")
    @GetMapping("/list")
    public TableDataInfo list(TTest test)
    {
        startPage();
        List<TTest> list = testService.selectTestList(test);
        return getDataTable(list);
    }
 
    @PreAuthorize("@ss.hasPermi('system:test:query')")
    @GetMapping("/{testId}")
    public AjaxResult getInfo(@PathVariable Long testId)
    {
        return success(testService.selectTestById(testId));
    }
 
    @PreAuthorize("@ss.hasPermi('system:test:add')")
    @Log(title = "测试管理", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@Validated @RequestBody TTest test)
    {
        test.setOperatorId(getUserId());
        test.setCreatorId(getUserId());
        test.setCreateBy(getUsername());
        Long testId = testService.createTest(test);
        return success(testService.selectTestById(testId));
    }
 
    @PreAuthorize("@ss.hasPermi('system:test:edit')")
    @Log(title = "测试管理", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody TTest test)
    {
        test.setOperatorId(getUserId());
        test.setUpdateBy(getUsername());
        testService.updateTest(test);
        return success(testService.selectTestById(test.getTestId()));
    }
 
    @PreAuthorize("@ss.hasPermi('system:test:start')")
    @Log(title = "测试管理", businessType = BusinessType.UPDATE)
    @PutMapping("/start")
    public AjaxResult start(@RequestParam Long testId)
    {
        testService.startReception(testId, getUserId(), getUsername());
        return success(testService.selectTestById(testId));
    }
 
    /** 独立的开始接收动作;只改变系统数据归属,不向设备发送控制命令。 */
    @PreAuthorize("@ss.hasPermi('system:test:start')")
    @Log(title = "测试数据接收", businessType = BusinessType.UPDATE)
    @PostMapping("/{testId}/reception/start")
    public AjaxResult startReception(@PathVariable Long testId)
    {
        testService.startReception(testId, getUserId(), getUsername());
        return success(testService.selectTestById(testId));
    }
 
    /** 独立暂停接收动作;停止该测试数据请求,不向设备发送控制命令。 */
    @PreAuthorize("@ss.hasPermi('system:test:pause')")
    @Log(title = "测试数据接收", businessType = BusinessType.UPDATE)
    @PostMapping("/{testId}/reception/pause")
    public AjaxResult pauseReception(@PathVariable Long testId)
    {
        testService.pauseReception(testId, getUserId(), getUsername());
        return success(testService.selectTestById(testId));
    }
 
    /** 独立继续接收动作;恢复该测试数据请求,不向设备发送控制命令。 */
    @PreAuthorize("@ss.hasPermi('system:test:resume')")
    @Log(title = "测试数据接收", businessType = BusinessType.UPDATE)
    @PostMapping("/{testId}/reception/resume")
    public AjaxResult resumeReception(@PathVariable Long testId)
    {
        testService.resumeReception(testId, getUserId(), getUsername());
        return success(testService.selectTestById(testId));
    }
 
    /** 独立停止测试动作;进入不可恢复终态且不向设备发送控制命令。 */
    @PreAuthorize("@ss.hasPermi('system:test:stop')")
    @Log(title = "停止测试", businessType = BusinessType.UPDATE)
    @PostMapping("/{testId}/stop")
    public AjaxResult stopTest(@PathVariable Long testId)
    {
        testService.stopTest(testId, getUserId(), getUsername());
        return success(testService.selectTestById(testId));
    }
 
    /** 人工结束接收动作别名;与停止测试共用原子关闭区间和释放租约事务。 */
    @PreAuthorize("@ss.hasPermi('system:test:stop')")
    @Log(title = "人工结束接收", businessType = BusinessType.UPDATE)
    @PostMapping("/{testId}/reception/end")
    public AjaxResult endReception(@PathVariable Long testId)
    {
        testService.stopTest(testId, getUserId(), getUsername());
        return success(testService.selectTestById(testId));
    }
 
    @PreAuthorize("@ss.hasPermi('system:test:remove')")
    @Log(title = "测试管理", businessType = BusinessType.DELETE)
    @DeleteMapping("/{testIds}")
    public AjaxResult remove(@PathVariable Long[] testIds)
    {
        return toAjax(testService.deleteTestByIds(testIds, getUserId(), getUsername()));
    }
 
    @PreAuthorize("@ss.hasPermi('system:test:query')")
    @GetMapping("/{testId}/results")
    public TableDataInfo results(@PathVariable Long testId, TTestResult result)
    {
        result.setTestId(testId);
        startPage();
        return getDataTable(testService.selectTestResults(result));
    }
}