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 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; } } }