From e7f62ce3976b1c042dcf35cabcb59bb49ba65b79 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Wed, 3 Dec 2025 16:36:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=A6=E5=BE=B7=E5=AE=89=E5=85=A8=E5=B8=BD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9Aserver=5Fpush=5Fca=5Fsip=5Fsos?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhgd/xmgl/config/SafetyHatWSClient.java | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/config/SafetyHatWSClient.java b/src/main/java/com/zhgd/xmgl/config/SafetyHatWSClient.java index 2996dfa26..b39fd707c 100644 --- a/src/main/java/com/zhgd/xmgl/config/SafetyHatWSClient.java +++ b/src/main/java/com/zhgd/xmgl/config/SafetyHatWSClient.java @@ -38,6 +38,13 @@ public class SafetyHatWSClient { private Session session; private String id; + public SafetyHatWSClient(String id) { + this.id = id; + } + + public SafetyHatWSClient() { + } + @OnOpen public void open(Session session) { log.info("SafetyHatWSClient连接客户端:" + id + ",连接服务端..."); @@ -184,10 +191,41 @@ public class SafetyHatWSClient { } } } + } else if (Objects.equals(cmd, "server_push_ca_sip_sos")) { + log.info("SafetyHatWSClient接收报警数据:server_push_ca_sip_sos"); + addSafetyHatAlarm(jo); } } } + private void addSafetyHatAlarm(JSONObject jo) { + JSONObject caInfo = jo.getJSONObject("ca_info"); + if (caInfo == null) { + return; + } + String deviceId = caInfo.getString("device_id"); + SafetyHatDev dev = SpringContextUtils.getBean(SafetyHatDevMapper.class).selectOne(new LambdaQueryWrapper().eq(SafetyHatDev::getDevSn, deviceId)); + if (dev == null) { + return; + } + //纬度(坐标系:高德地图 GCJ-02) + SafetyHatAlarm alarm = new SafetyHatAlarm(); + alarm.setWorkerInfoId(dev.getWorkerInfoId()); + alarm.setDevSn(dev.getDevSn()); + alarm.setAlarmTime(new Date(jo.getLong("time") * 1000L)); + alarm.setProjectSn(dev.getProjectSn()); + alarm.setAlarmType(7); + alarm.setLatitude(jo.getDouble("x_point")); + alarm.setLongitude(jo.getDouble("y_point")); + alarm.setFenceId(dev.getFenceId()); + alarm.setType(dev.getType()); + alarm.setWorkerInfoName(dev.getWorkerInfoName()); + try { + SpringContextUtils.getBean(ISafetyHatAlarmService.class).add(alarm); + } catch (Exception e) { + log.error("error:", e); + } + } @OnClose public void onClose() { @@ -213,11 +251,4 @@ public class SafetyHatWSClient { this.session.getAsyncRemote().sendText(message); } - public SafetyHatWSClient(String id) { - this.id = id; - } - - public SafetyHatWSClient() { - } - }