From 35a1c88cc80ca675f6173648968ab5394b49e31e Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期三, 28 五月 2025 17:14:50 +0800 Subject: [PATCH] 消防机器人websocket逻辑更新 --- src/main/java/com/whyc/service/EnvironmentService.java | 14 +++++++ src/main/java/com/whyc/service/EnvironmentThresholdService.java | 14 +++++++ src/main/java/com/whyc/service/RobotAlarmService.java | 14 +++++++ src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java | 10 ++-- src/main/java/com/whyc/service/RobotStatusService.java | 15 +++++++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/whyc/service/EnvironmentService.java b/src/main/java/com/whyc/service/EnvironmentService.java index 78d1887..bd7835c 100644 --- a/src/main/java/com/whyc/service/EnvironmentService.java +++ b/src/main/java/com/whyc/service/EnvironmentService.java @@ -1,5 +1,7 @@ package com.whyc.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.mapper.EnvironmentMapper; import com.whyc.pojo.db_fire_robot.Environment; import org.springframework.stereotype.Service; @@ -15,4 +17,16 @@ public void add(Environment env) { mapper.insert(env); } + + public void addOrUpdate(Environment env) { + QueryWrapper<Environment> query = Wrappers.query(); + query.last(" limit 1"); + Environment envInDB = mapper.selectOne(query); + if (envInDB ==null) { + mapper.insert(env); + }else{ + env.setId(envInDB.getId()); + mapper.updateById(env); + } + } } diff --git a/src/main/java/com/whyc/service/EnvironmentThresholdService.java b/src/main/java/com/whyc/service/EnvironmentThresholdService.java index af0647f..60d9640 100644 --- a/src/main/java/com/whyc/service/EnvironmentThresholdService.java +++ b/src/main/java/com/whyc/service/EnvironmentThresholdService.java @@ -1,5 +1,7 @@ package com.whyc.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.mapper.EnvironmentThresholdMapper; import com.whyc.pojo.db_fire_robot.EnvironmentThreshold; import org.springframework.stereotype.Service; @@ -15,4 +17,16 @@ public void add(EnvironmentThreshold threshold) { mapper.insert(threshold); } + + public void addOrUpdate(EnvironmentThreshold threshold) { + QueryWrapper<EnvironmentThreshold> query = Wrappers.query(); + query.last(" limit 1"); + EnvironmentThreshold thresholdInDB = mapper.selectOne(query); + if (thresholdInDB ==null) { + mapper.insert(threshold); + }else{ + threshold.setId(thresholdInDB.getId()); + mapper.updateById(threshold); + } + } } diff --git a/src/main/java/com/whyc/service/RobotAlarmService.java b/src/main/java/com/whyc/service/RobotAlarmService.java index f542634..e310658 100644 --- a/src/main/java/com/whyc/service/RobotAlarmService.java +++ b/src/main/java/com/whyc/service/RobotAlarmService.java @@ -1,5 +1,7 @@ package com.whyc.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.mapper.EnvironmentMapper; import com.whyc.mapper.RobotAlarmMapper; import com.whyc.pojo.db_fire_robot.RobotAlarm; @@ -16,4 +18,16 @@ public void add(RobotAlarm alarm) { mapper.insert(alarm); } + + public void addOrUpdate(RobotAlarm alarm) { + QueryWrapper<RobotAlarm> query = Wrappers.query(); + query.last(" limit 1"); + RobotAlarm alarmInDB = mapper.selectOne(query); + if (alarmInDB ==null) { + mapper.insert(alarm); + }else{ + alarm.setId(alarmInDB.getId()); + mapper.updateById(alarm); + } + } } diff --git a/src/main/java/com/whyc/service/RobotStatusService.java b/src/main/java/com/whyc/service/RobotStatusService.java index fdaadcf..03f43fa 100644 --- a/src/main/java/com/whyc/service/RobotStatusService.java +++ b/src/main/java/com/whyc/service/RobotStatusService.java @@ -1,6 +1,9 @@ package com.whyc.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.mapper.RobotStatusMapper; +import com.whyc.pojo.db_fire_robot.Environment; import com.whyc.pojo.db_fire_robot.RobotStatus; import org.springframework.stereotype.Service; @@ -15,4 +18,16 @@ public void add(RobotStatus status) { mapper.insert(status); } + + public void addOrUpdate(RobotStatus status) { + QueryWrapper<RobotStatus> query = Wrappers.query(); + query.last(" limit 1"); + RobotStatus statusInDB = mapper.selectOne(query); + if (statusInDB ==null) { + mapper.insert(status); + }else{ + status.setId(statusInDB.getId()); + mapper.updateById(status); + } + } } diff --git a/src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java b/src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java index 9e5b13d..5d2c597 100644 --- a/src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java +++ b/src/main/java/com/whyc/webSocket/receiver/ThirdPartyWebSocketHandler.java @@ -56,8 +56,8 @@ }.getType()); Environment env = data.getData(); env.setRecordTime(now); - //瀛樺叆鏁版嵁搴� - environmentService.add(env); + //瀛樺叆鏁版嵁搴�,鎻掑叆鎴栨洿鏂� + environmentService.addOrUpdate(env); }break; case "status": { FireRobotData<RobotStatus> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<RobotStatus>>() { @@ -65,14 +65,14 @@ RobotStatus status = data.getData(); status.setRecordTime(now); //瀛樺叆鏁版嵁搴� - robotStatusService.add(status); + robotStatusService.addOrUpdate(status); }break; case "alarm": { FireRobotData<RobotAlarm> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<RobotAlarm>>() { }.getType()); RobotAlarm alarm = data.getData(); //瀛樺叆鏁版嵁搴� - robotAlarmService.add(alarm); + robotAlarmService.addOrUpdate(alarm); }break; case "threshold": { FireRobotData<EnvironmentThreshold> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<EnvironmentThreshold>>() { @@ -80,7 +80,7 @@ EnvironmentThreshold threshold = data.getData(); threshold.setRecordTime(now); //瀛樺叆鏁版嵁搴� - environmentThresholdService.add(threshold); + environmentThresholdService.addOrUpdate(threshold); }break; case "identifyAlarm": { FireRobotData<IdentifyAlarm> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<IdentifyAlarm>>() { -- Gitblit v1.9.1