liu
10 天以前 dd1a51612fcd3c839d31dfa0df83b3d3071c8145
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
package com.ruoyi.unattended.telemetry.controller;
 
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.unattended.telemetry.pojo.DeviceTelemetry;
import com.ruoyi.unattended.telemetry.service.DeviceTelemetryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.List;
 
/**
 * 设备远程监控
 */
@RestController
@RequestMapping("/environmentAccess/deviceMonitor")
@Api(tags = "设备远程监控")
public class DeviceTelemetryController {
 
    @Resource
    private DeviceTelemetryService deviceTelemetryService;
 
    @GetMapping("/list")
    @ApiOperation("实时监控列表")
    public AjaxResult list() {
        return AjaxResult.success(deviceTelemetryService.monitorList());
    }
 
    @PostMapping("/collect")
    @ApiOperation("触发一次采集")
    public AjaxResult collect() {
        return AjaxResult.success(deviceTelemetryService.collectOnce());
    }
 
    @GetMapping("/history")
    @ApiOperation("历史曲线")
    public AjaxResult history(@RequestParam(required = false) Long deviceId,
                              @RequestParam(required = false) Integer limit) {
        List<DeviceTelemetry> list = deviceTelemetryService.history(deviceId, limit);
        return AjaxResult.success(list);
    }
 
    @GetMapping("/alarms")
    @ApiOperation("实时报警")
    public AjaxResult alarms() {
        return AjaxResult.success(deviceTelemetryService.alarms());
    }
 
    @PostMapping("/control")
    @ApiOperation("远程启停")
    public AjaxResult control(@RequestBody ControlRequest request) {
        if (request == null || request.getDeviceId() == null) {
            return AjaxResult.error("设备id不能为空");
        }
        try {
            return AjaxResult.success(deviceTelemetryService.control(request.getDeviceId(), request.getAction()));
        } catch (IllegalArgumentException e) {
            return AjaxResult.error(e.getMessage());
        }
    }
 
    public static class ControlRequest {
        private Long deviceId;
        private String action;
 
        public Long getDeviceId() {
            return deviceId;
        }
 
        public void setDeviceId(Long deviceId) {
            this.deviceId = deviceId;
        }
 
        public String getAction() {
            return action;
        }
 
        public void setAction(String action) {
            this.action = action;
        }
    }
}