| 
					
				 | 
			
			
				@@ -4,11 +4,14 @@ import com.genersoft.iot.vmp.conf.SipConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.gb28181.bean.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.gb28181.event.EventPublisher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.QueryMessageHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.utils.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.storager.IVideoManagerStorager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.storager.dao.dto.ChannelSourceInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.dom4j.Element; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.Logger; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -40,6 +43,9 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private SIPCommanderFroPlatform cmderFroPlatform; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SIPCommander commander; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private SipConfig config; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -65,19 +71,36 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 回复200 OK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             responseAck(evt, Response.OK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Element snElement = rootElement.element("SN"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String sn = snElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int sn = Integer.parseInt(snElement.getText()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Element deviceIDElement = rootElement.element("DeviceID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String channelId = deviceIDElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Element startTimeElement = rootElement.element("StartTime"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String startTime = startTimeElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Element endTimeElement = rootElement.element("EndTime"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String endTime = endTimeElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            Element secrecyElement = rootElement.element("Secrecy"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            int secrecy = Integer.parseInt(secrecyElement.getText()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            Element typeElement = rootElement.element("Type"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            String type = typeElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Element secrecyElement = rootElement.element("Secrecy"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int secrecy = Integer.parseInt(secrecyElement.getText()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Element typeElement = rootElement.element("Type"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String type = typeElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 确认是直播还是国标, 国标直接请求下级,直播请求录像管理服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<ChannelSourceInfo> channelSources = storager.getChannelSource(parentPlatform.getServerGBId(), channelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (channelSources.get(0).getCount() > 0) { // 国标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 向国标设备请求录像数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Device device = storager.queryVideoDeviceByPlatformIdAndChannelId(parentPlatform.getServerGBId(), channelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                commander.recordInfoQuery(device, channelId, DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(startTime), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(endTime), sn, secrecy, type, (eventResult -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // 查询成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }),(eventResult -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // 查询失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else if (channelSources.get(0).getCount() > 0) { // 直播流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // TODO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { // 错误的请求 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (SipException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (InvalidArgumentException e) { 
			 |