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