From 722f3d8cfd48e3db2836578b36cff648dee1f72a Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 03 十一月 2026 13:22:09 +0800
Subject: [PATCH] feat: 设备遥测实时采集与报警推送
---
src/main/java/com/ruoyi/unattended/telemetry/controller/DeviceTelemetryController.java | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/unattended/telemetry/controller/DeviceTelemetryController.java b/src/main/java/com/ruoyi/unattended/telemetry/controller/DeviceTelemetryController.java
index 212051b..528ca7a 100644
--- a/src/main/java/com/ruoyi/unattended/telemetry/controller/DeviceTelemetryController.java
+++ b/src/main/java/com/ruoyi/unattended/telemetry/controller/DeviceTelemetryController.java
@@ -6,6 +6,9 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
+import org.springframework.http.MediaType;
+import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
+import com.ruoyi.unattended.telemetry.service.DeviceAlarmPushService;
import javax.annotation.Resource;
import java.util.List;
@@ -21,6 +24,9 @@
@Resource
private DeviceTelemetryService deviceTelemetryService;
+ @Resource
+ private DeviceAlarmPushService alarmPushService;
+
@GetMapping("/list")
@ApiOperation("瀹炴椂鐩戞帶鍒楄〃")
public AjaxResult list() {
@@ -31,6 +37,16 @@
@ApiOperation("瑙﹀彂涓�娆¢噰闆�")
public AjaxResult collect() {
return AjaxResult.success(deviceTelemetryService.collectOnce());
+ }
+
+ @PostMapping("/report")
+ @ApiOperation("PLC/杈圭紭缃戝叧涓婃姤閬ユ祴鏁版嵁")
+ public AjaxResult report(@RequestBody DeviceTelemetry telemetry) {
+ try {
+ return AjaxResult.success(deviceTelemetryService.report(telemetry));
+ } catch (IllegalArgumentException e) {
+ return AjaxResult.error(e.getMessage());
+ }
}
@GetMapping("/history")
@@ -47,6 +63,12 @@
return AjaxResult.success(deviceTelemetryService.alarms());
}
+ @GetMapping(value = "/alarm-stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
+ @ApiOperation("璁㈤槄瀹炴椂鎶ヨ鎺ㄩ��")
+ public SseEmitter alarmStream() {
+ return alarmPushService.subscribe();
+ }
+
@PostMapping("/control")
@ApiOperation("杩滅▼鍚仠")
public AjaxResult control(@RequestBody ControlRequest request) {
--
Gitblit v1.9.3