From bca77f79cc9f5969a61861347182d64aea03fa4a Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Tue, 13 Jan 2026 16:25:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B3=A8=E9=94=80=E5=88=A4?= =?UTF-8?q?=E5=AE=9A=EF=BC=8C=E4=B8=BB=E5=8A=A8=E6=B3=A8=E9=94=80=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E7=A1=AE=E5=AE=9A=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/gb28181/service/IDeviceService.java | 2 +- .../vmp/gb28181/service/impl/DeviceServiceImpl.java | 10 +++++----- .../event/request/impl/RegisterRequestProcessor.java | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceService.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceService.java index 2930c4fd4..2be56a046 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceService.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/IDeviceService.java @@ -26,7 +26,7 @@ public interface IDeviceService { * 设备下线 * @param deviceId 设备编号 */ - void offline(String deviceId, String reason); + void offline(String deviceId, String reason, boolean check); /** * 添加目录订阅 diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java index f20d9a282..eb0f64318 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java @@ -274,7 +274,7 @@ public class DeviceServiceImpl implements IDeviceService, CommandLineRunner { private void deviceStatusExpire(String deviceId, SipTransactionInfo transactionInfo) { log.info("[设备状态] 到期, 编号: {}", deviceId); - offline(deviceId, "保活到期"); + offline(deviceId, "保活到期", true); } @Override @@ -383,7 +383,7 @@ public class DeviceServiceImpl implements IDeviceService, CommandLineRunner { @Override @Transactional - public void offline(String deviceId, String reason) { + public void offline(String deviceId, String reason, boolean check) { Device device = getDeviceByDeviceIdFromDb(deviceId); if (device == null) { log.warn("[设备不存在] device:{}", deviceId); @@ -391,7 +391,7 @@ public class DeviceServiceImpl implements IDeviceService, CommandLineRunner { } // 主动查询设备状态, 没有HostAddress无法发送请求,可能是手动添加的设备 - if (device.getHostAddress() != null) { + if (check && device.getHostAddress() != null) { Boolean deviceStatus = getDeviceStatus(device); if (deviceStatus != null && deviceStatus) { log.info("[设备离线] 主动探测发现设备在线,暂不处理 device:{}", deviceId); @@ -471,7 +471,7 @@ public class DeviceServiceImpl implements IDeviceService, CommandLineRunner { } if (!deviceStatusTaskRunner.containsKey(device.getDeviceId())) { log.debug("[状态丢失] 执行设备离线, 编号: {},", device.getDeviceId()); - offline(device.getDeviceId(), ""); + offline(device.getDeviceId(), "", true); } } } @@ -1202,7 +1202,7 @@ public class DeviceServiceImpl implements IDeviceService, CommandLineRunner { if ("ONLINE".equalsIgnoreCase(data.trim())) { online(device, null); }else { - offline(device.getDeviceId(), "设备状态查询结果:" + data.trim()); + offline(device.getDeviceId(), "设备状态查询结果:" + data.trim(), true); } if (callback != null) { callback.run(code, msg, data); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java index 3d9cc7a05..2653c3bd3 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java @@ -117,7 +117,7 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen device.setRegisterTime(DateUtil.getNow()); deviceService.online(device, null); } else { - deviceService.offline(deviceId, "主动注销"); + deviceService.offline(deviceId, "主动注销", false); } return; }else { @@ -228,7 +228,7 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen deviceService.online(device, sipTransactionInfo); } else { log.info("[注销成功] deviceId: {}->{}", deviceId, requestAddress); - deviceService.offline(deviceId, "主动注销"); + deviceService.offline(deviceId, "主动注销", false); } } catch (SipException | NoSuchAlgorithmException | ParseException e) { log.error("未处理的异常 ", e);