From 5826c5028d061efb0c2c8c7eeaf31a9bca535d7a Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期三, 28 五月 2025 17:05:06 +0800
Subject: [PATCH] 消防机器人websocket

---
 src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java |   70 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java b/src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java
index 37f3bc3..9e5b13d 100644
--- a/src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java
+++ b/src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java
@@ -1,17 +1,40 @@
 package com.whyc.webSocket.receiver;
 
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.whyc.dto.FireRobotData;
+import com.whyc.pojo.db_fire_robot.*;
+import com.whyc.service.*;
+import com.whyc.util.JsonUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.socket.CloseStatus;
 import org.springframework.web.socket.TextMessage;
-import org.springframework.web.socket.WebSocketHttpHeaders;
 import org.springframework.web.socket.WebSocketSession;
 import org.springframework.web.socket.handler.TextWebSocketHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Date;
+
 public class ThirdPartyWebSocketHandler extends TextWebSocketHandler {
 
     private static final Logger log = LoggerFactory.getLogger(ThirdPartyWebSocketHandler.class);
     private WebSocketSession session;
+
+    @Autowired
+    private EnvironmentService environmentService;
+
+    @Autowired
+    private EnvironmentThresholdService environmentThresholdService;
+
+    @Autowired
+    private RobotAlarmService  robotAlarmService;
+
+    @Autowired
+    private RobotStatusService robotStatusService;
+
+    @Autowired
+    private IdentifyAlarmService  identifyAlarmService;
 
     @Override
     public void afterConnectionEstablished(WebSocketSession session) {
@@ -24,6 +47,51 @@
         log.info("Received message: {}", message.getPayload());
         // 鍙互鍦ㄨ繖閲屽仛涓氬姟澶勭悊锛屾瘮濡傚彂甯冧簨浠躲�佸瓨鍏ラ槦鍒楃瓑
         String jsonStr = message.getPayload();
+        Gson gson = JsonUtil.getGson();
+        FireRobotData fireRobotData = gson.fromJson(jsonStr, FireRobotData.class);
+        Date now = new Date();
+        switch (fireRobotData.getType()){
+            case "environment": {
+                FireRobotData<Environment> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<Environment>>() {
+                }.getType());
+                Environment env = data.getData();
+                env.setRecordTime(now);
+                //瀛樺叆鏁版嵁搴�
+                environmentService.add(env);
+            }break;
+            case "status": {
+                FireRobotData<RobotStatus> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<RobotStatus>>() {
+                }.getType());
+                RobotStatus status = data.getData();
+                status.setRecordTime(now);
+                //瀛樺叆鏁版嵁搴�
+                robotStatusService.add(status);
+            }break;
+            case "alarm": {
+                FireRobotData<RobotAlarm> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<RobotAlarm>>() {
+                }.getType());
+                RobotAlarm alarm = data.getData();
+                //瀛樺叆鏁版嵁搴�
+                robotAlarmService.add(alarm);
+            }break;
+            case "threshold": {
+                FireRobotData<EnvironmentThreshold> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<EnvironmentThreshold>>() {
+                }.getType());
+                EnvironmentThreshold threshold = data.getData();
+                threshold.setRecordTime(now);
+                //瀛樺叆鏁版嵁搴�
+                environmentThresholdService.add(threshold);
+            }break;
+            case "identifyAlarm": {
+                FireRobotData<IdentifyAlarm> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<IdentifyAlarm>>() {
+                }.getType());
+                IdentifyAlarm alarm = data.getData();
+                //瀛樺叆鏁版嵁搴�
+                identifyAlarmService.add(alarm);
+            }break;
+            default:
+                break;
+        }
 
     }
 

--
Gitblit v1.9.1