From c28dacecf24bf577fe4e431b3200a7dadc8755df Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Tue, 24 Sep 2024 15:24:54 +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=87=AA=E5=AE=9A=E7=BC=96=E5=8F=B7=E5=90=8E=E5=BD=95=E5=83=8F?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmd/RecordInfoQueryMessageHandler.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java index a279147b..78fa7e67 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java @@ -2,8 +2,10 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query. import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel; import com.genersoft.iot.vmp.gb28181.bean.Device; +import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.bean.Platform; import com.genersoft.iot.vmp.gb28181.event.record.RecordEndEventListener; +import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService; import com.genersoft.iot.vmp.gb28181.service.IDeviceService; import com.genersoft.iot.vmp.gb28181.service.IGbChannelService; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; @@ -40,6 +42,9 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp @Autowired private IDeviceService deviceService; + @Autowired + private IDeviceChannelService deviceChannelService; + @Autowired private SIPCommanderFroPlatform cmderFroPlatform; @@ -60,7 +65,7 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp } @Override - public void handForPlatform(RequestEvent evt, Platform parentPlatform, Element rootElement) { + public void handForPlatform(RequestEvent evt, Platform platform, Element rootElement) { SIPRequest request = (SIPRequest) evt.getRequest(); Element snElement = rootElement.element("SN"); @@ -89,9 +94,9 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp } // 向国标设备请求录像数据 - CommonGBChannel channel = channelService.queryOneWithPlatform(parentPlatform.getId(), channelId); + CommonGBChannel channel = channelService.queryOneWithPlatform(platform.getId(), channelId); if (channel == null) { - log.info("[平台查询录像记录] 未找到通道 {}/{}", parentPlatform.getName(), channelId ); + log.info("[平台查询录像记录] 未找到通道 {}/{}", platform.getName(), channelId ); try { responseAck(request, Response.BAD_REQUEST); } catch (SipException | InvalidArgumentException | ParseException e) { @@ -99,8 +104,8 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp } return; } - if (channel.getStreamProxyId() != null || channel.getStreamPushId() != null ) { - log.info("[平台查询录像记录] 不支持查询推流和拉流代理的录像数据 {}/{}", parentPlatform.getName(), channelId ); + if (channel.getGbId() == 0 ) { + log.info("[平台查询录像记录] 不支持查询推流和拉流代理的录像数据 {}/{}", platform.getName(), channelId ); try { responseAck(request, Response.NOT_IMPLEMENTED); // 回复未实现 } catch (SipException | InvalidArgumentException | ParseException e) { @@ -110,7 +115,7 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp } Device device = deviceService.getDevice(channel.getGbDeviceDbId()); if (device == null) { - log.warn("[平台查询录像记录] 未找到通道对应的设备 {}/{}", parentPlatform.getName(), channelId ); + log.warn("[平台查询录像记录] 未找到通道对应的设备 {}/{}", platform.getName(), channelId ); try { responseAck(request, Response.BAD_REQUEST); } catch (SipException | InvalidArgumentException | ParseException e) { @@ -118,17 +123,19 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp } return; } + // 获取通道的原始信息 + DeviceChannel deviceChannel = deviceChannelService.getOneById(channel.getGbId()); // 接收录像数据 - recordEndEventListener.addEndEventHandler(device.getDeviceId(), channelId, (recordInfo)->{ + recordEndEventListener.addEndEventHandler(device.getDeviceId(), deviceChannel.getDeviceId(), (recordInfo)->{ try { log.info("[国标级联] 录像查询收到数据, 通道: {},准备转发===", channelId); - cmderFroPlatform.recordInfo(channel, parentPlatform, request.getFromTag(), recordInfo); + cmderFroPlatform.recordInfo(channel, platform, request.getFromTag(), recordInfo); } catch (SipException | InvalidArgumentException | ParseException e) { log.error("[命令发送失败] 国标级联 回复录像数据: {}", e.getMessage()); } }); try { - commander.recordInfoQuery(device, channelId, DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(startTime), + commander.recordInfoQuery(device, deviceChannel.getDeviceId(), DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(startTime), DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(endTime), sn, secrecy, type, (eventResult -> { // 回复200 OK try {