From 2c5f8c149a3cb024c7cc5967f7b2fe71cadfed9c Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Wed, 7 Jan 2026 15:33:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=BD=E6=A0=87=E7=BA=A7?= =?UTF-8?q?=E8=81=94=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2=20#2040?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmd/DeviceStatusQueryMessageHandler.java | 19 ++++++++++++++----- .../DeviceStatusResponseMessageHandler.java | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java index 2b3b8fccd..bbef28b88 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java @@ -50,9 +50,9 @@ public class DeviceStatusQueryMessageHandler extends SIPRequestProcessorParent i } @Override - public void handForPlatform(RequestEvent evt, Platform parentPlatform, Element rootElement) { + public void handForPlatform(RequestEvent evt, Platform platform, Element rootElement) { - log.info("接收到DeviceStatus查询消息"); + log.info("[DeviceStatus Query] \n {}", rootElement.asXML()); FromHeader fromHeader = (FromHeader) evt.getRequest().getHeader(FromHeader.NAME); // 回复200 OK try { @@ -62,13 +62,22 @@ public class DeviceStatusQueryMessageHandler extends SIPRequestProcessorParent i } String sn = rootElement.element("SN").getText(); String channelId = getText(rootElement, "DeviceID"); - CommonGBChannel channel= channelService.queryOneWithPlatform(parentPlatform.getId(), channelId); + if (platform.getDeviceGBId().equals(channelId)) { + // 上级平台查询本平台状态 + try { + cmderFroPlatform.deviceStatusResponse(platform, channelId, sn, fromHeader.getTag(), true); + } catch (SipException | InvalidArgumentException | ParseException e) { + log.error("[命令发送失败] 国标级联 DeviceStatus查询回复: {}", e.getMessage()); + } + return; + } + CommonGBChannel channel= channelService.queryOneWithPlatform(platform.getId(), channelId); if (channel ==null){ - log.error("[平台没有该通道的使用权限]:platformId"+parentPlatform.getServerGBId()+" deviceID:"+channelId); + log.error("[平台没有该通道的使用权限]:platformId"+platform.getServerGBId()+" deviceID:"+channelId); return; } try { - cmderFroPlatform.deviceStatusResponse(parentPlatform, channelId, sn, fromHeader.getTag(), "ON".equalsIgnoreCase(channel.getGbStatus())); + cmderFroPlatform.deviceStatusResponse(platform, channelId, sn, fromHeader.getTag(), "ON".equalsIgnoreCase(channel.getGbStatus())); } catch (SipException | InvalidArgumentException | ParseException e) { log.error("[命令发送失败] 国标级联 DeviceStatus查询回复: {}", e.getMessage()); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java index affd22f55..a4dc8aef5 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceStatusResponseMessageHandler.java @@ -40,7 +40,7 @@ public class DeviceStatusResponseMessageHandler extends SIPRequestProcessorParen @Override public void handForDevice(RequestEvent evt, Device device, Element element) { - log.info("接收到DeviceStatus应答消息"); + log.info("[DeviceStatus Response] \n {}", element.asXML()); // 检查设备是否存在, 不存在则不回复 if (device == null) { return;