yeg
2026-08-30 c2eefadb8239df552ef43d7ba55d5735bb603ed1
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
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.domain.TTestReceptionInterval;
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:query')")
    @GetMapping("/{testId}/reception/intervals")
    public AjaxResult receptionIntervals(@PathVariable Long testId)
    {
        List<TTestReceptionInterval> intervals = testService.selectReceptionIntervals(testId);
        return success(intervals);
    }
 
    @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));
    }
}