From d0f5d684a93db3a0c9a6f2373657b8f596cc47ca Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期五, 26 二月 2021 11:10:22 +0800
Subject: [PATCH] 同步主线
---
src/main/resources/wvp.sqlite | 0
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java | 161 ++++++++++++++++++++++++++++-------------------------
2 files changed, 84 insertions(+), 77 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
index 968d01d..7e3bb43 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -11,9 +11,15 @@
import javax.sip.message.Request;
import javax.sip.message.Response;
+import com.alibaba.fastjson.JSONObject;
+import com.genersoft.iot.vmp.conf.UserSetup;
import com.genersoft.iot.vmp.gb28181.bean.*;
+import com.genersoft.iot.vmp.gb28181.transmit.callback.CheckForAllRecordsThread;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform;
+import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
+import com.genersoft.iot.vmp.utils.GpsUtil;
+import com.genersoft.iot.vmp.utils.SpringBeanFactory;
import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce;
import gov.nist.javax.sip.address.AddressImpl;
import gov.nist.javax.sip.address.SipUri;
@@ -48,6 +54,10 @@
* @date: 2020骞�5鏈�3鏃� 涓嬪崍5:32:41
*/
public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
+
+ public static volatile List<String> threadNameList = new ArrayList();
+
+ private UserSetup userSetup = (UserSetup) SpringBeanFactory.getBean("userSetup");
private final static Logger logger = LoggerFactory.getLogger(MessageRequestProcessor.class);
@@ -412,12 +422,12 @@
String platformId = uri.getUser();
// if (deviceListElement == null) { // 瀛樺湪DeviceList鍒欎负鍝嶅簲 catalog锛� 涓嶅瓨鍦―eviceList鍒欎负鏌ヨ璇锋眰
if (name.equalsIgnoreCase("Query")) { // 鍖哄垎鏄疪esponse鈥斺�旀煡璇㈠搷搴旓紝杩樻槸Query鈥斺�旀煡璇㈣姹�
- // TODO 鍚庣画灏嗕唬鐮佹媶鍒�
+ // TODO 鍚庣画灏嗕唬鐮佹媶鍒�
ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
if (parentPlatform == null) {
response404Ack(evt);
return;
- }else {
+ } else {
// 鍥炲200 OK
responseAck(evt);
@@ -425,7 +435,7 @@
String sn = snElement.getText();
// 鍑嗗鍥炲閫氶亾淇℃伅
List<ChannelReduce> channelReduces = storager.queryChannelListInParentPlatform(parentPlatform.getServerGBId());
- if (channelReduces.size() >0 ) {
+ if (channelReduces.size() > 0) {
for (ChannelReduce channelReduce : channelReduces) {
DeviceChannel deviceChannel = storager.queryChannel(channelReduce.getDeviceId(), channelReduce.getChannelId());
cmderFroPlatform.catalogQuery(deviceChannel, parentPlatform, sn, fromHeader.getTag(), channelReduces.size());
@@ -435,7 +445,7 @@
}
- }else {
+ } else {
Iterator<Element> deviceListIterator = deviceListElement.elementIterator();
if (deviceListIterator != null) {
Device device = storager.queryVideoDevice(deviceId);
@@ -465,76 +475,77 @@
deviceChannel.setStatus(0);
}
- deviceChannel.setManufacture(XmlUtil.getText(itemDevice, "Manufacturer"));
- deviceChannel.setModel(XmlUtil.getText(itemDevice, "Model"));
- deviceChannel.setOwner(XmlUtil.getText(itemDevice, "Owner"));
- deviceChannel.setCivilCode(XmlUtil.getText(itemDevice, "CivilCode"));
- deviceChannel.setBlock(XmlUtil.getText(itemDevice, "Block"));
- deviceChannel.setAddress(XmlUtil.getText(itemDevice, "Address"));
- if (XmlUtil.getText(itemDevice, "Parental") == null || XmlUtil.getText(itemDevice, "Parental") == "") {
- deviceChannel.setParental(0);
- } else {
- deviceChannel.setParental(Integer.parseInt(XmlUtil.getText(itemDevice, "Parental")));
- }
- deviceChannel.setParentId(XmlUtil.getText(itemDevice, "ParentID"));
- if (XmlUtil.getText(itemDevice, "SafetyWay") == null || XmlUtil.getText(itemDevice, "SafetyWay")== "") {
- deviceChannel.setSafetyWay(0);
- } else {
- deviceChannel.setSafetyWay(Integer.parseInt(XmlUtil.getText(itemDevice, "SafetyWay")));
+ deviceChannel.setManufacture(XmlUtil.getText(itemDevice, "Manufacturer"));
+ deviceChannel.setModel(XmlUtil.getText(itemDevice, "Model"));
+ deviceChannel.setOwner(XmlUtil.getText(itemDevice, "Owner"));
+ deviceChannel.setCivilCode(XmlUtil.getText(itemDevice, "CivilCode"));
+ deviceChannel.setBlock(XmlUtil.getText(itemDevice, "Block"));
+ deviceChannel.setAddress(XmlUtil.getText(itemDevice, "Address"));
+ if (XmlUtil.getText(itemDevice, "Parental") == null || XmlUtil.getText(itemDevice, "Parental") == "") {
+ deviceChannel.setParental(0);
+ } else {
+ deviceChannel.setParental(Integer.parseInt(XmlUtil.getText(itemDevice, "Parental")));
+ }
+ deviceChannel.setParentId(XmlUtil.getText(itemDevice, "ParentID"));
+ if (XmlUtil.getText(itemDevice, "SafetyWay") == null || XmlUtil.getText(itemDevice, "SafetyWay") == "") {
+ deviceChannel.setSafetyWay(0);
+ } else {
+ deviceChannel.setSafetyWay(Integer.parseInt(XmlUtil.getText(itemDevice, "SafetyWay")));
+ }
+ if (XmlUtil.getText(itemDevice, "RegisterWay") == null || XmlUtil.getText(itemDevice, "RegisterWay") == "") {
+ deviceChannel.setRegisterWay(1);
+ } else {
+ deviceChannel.setRegisterWay(Integer.parseInt(XmlUtil.getText(itemDevice, "RegisterWay")));
+ }
+ deviceChannel.setCertNum(XmlUtil.getText(itemDevice, "CertNum"));
+ if (XmlUtil.getText(itemDevice, "Certifiable") == null || XmlUtil.getText(itemDevice, "Certifiable") == "") {
+ deviceChannel.setCertifiable(0);
+ } else {
+ deviceChannel.setCertifiable(Integer.parseInt(XmlUtil.getText(itemDevice, "Certifiable")));
+ }
+ if (XmlUtil.getText(itemDevice, "ErrCode") == null || XmlUtil.getText(itemDevice, "ErrCode") == "") {
+ deviceChannel.setErrCode(0);
+ } else {
+ deviceChannel.setErrCode(Integer.parseInt(XmlUtil.getText(itemDevice, "ErrCode")));
+ }
+ deviceChannel.setEndTime(XmlUtil.getText(itemDevice, "EndTime"));
+ deviceChannel.setSecrecy(XmlUtil.getText(itemDevice, "Secrecy"));
+ deviceChannel.setIpAddress(XmlUtil.getText(itemDevice, "IPAddress"));
+ if (XmlUtil.getText(itemDevice, "Port") == null || XmlUtil.getText(itemDevice, "Port") == "") {
+ deviceChannel.setPort(0);
+ } else {
+ deviceChannel.setPort(Integer.parseInt(XmlUtil.getText(itemDevice, "Port")));
+ }
+ deviceChannel.setPassword(XmlUtil.getText(itemDevice, "Password"));
+ if (XmlUtil.getText(itemDevice, "Longitude") == null || XmlUtil.getText(itemDevice, "Longitude") == "") {
+ deviceChannel.setLongitude(0.00);
+ } else {
+ deviceChannel.setLongitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Longitude")));
+ }
+ if (XmlUtil.getText(itemDevice, "Latitude") == null || XmlUtil.getText(itemDevice, "Latitude") == "") {
+ deviceChannel.setLatitude(0.00);
+ } else {
+ deviceChannel.setLatitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Latitude")));
+ }
+ if (XmlUtil.getText(itemDevice, "PTZType") == null || XmlUtil.getText(itemDevice, "PTZType") == "") {
+ deviceChannel.setPTZType(0);
+ } else {
+ deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType")));
+ }
+ deviceChannel.setHasAudio(true); // 榛樿鍚湁闊抽锛屾挱鏀炬椂鍐嶆鏌ユ槸鍚︽湁闊抽鍙婃槸鍚AC
+ storager.updateChannel(device.getDeviceId(), deviceChannel);
}
- if (XmlUtil.getText(itemDevice, "RegisterWay") == null || XmlUtil.getText(itemDevice, "RegisterWay") =="") {
- deviceChannel.setRegisterWay(1);
- } else {
- deviceChannel.setRegisterWay(Integer.parseInt(XmlUtil.getText(itemDevice, "RegisterWay")));
- }
- deviceChannel.setCertNum(XmlUtil.getText(itemDevice, "CertNum"));
- if (XmlUtil.getText(itemDevice, "Certifiable") == null || XmlUtil.getText(itemDevice, "Certifiable") == "") {
- deviceChannel.setCertifiable(0);
- } else {
- deviceChannel.setCertifiable(Integer.parseInt(XmlUtil.getText(itemDevice, "Certifiable")));
- }
- if (XmlUtil.getText(itemDevice, "ErrCode") == null || XmlUtil.getText(itemDevice, "ErrCode") == "") {
- deviceChannel.setErrCode(0);
- } else {
- deviceChannel.setErrCode(Integer.parseInt(XmlUtil.getText(itemDevice, "ErrCode")));
- }
- deviceChannel.setEndTime(XmlUtil.getText(itemDevice, "EndTime"));
- deviceChannel.setSecrecy(XmlUtil.getText(itemDevice, "Secrecy"));
- deviceChannel.setIpAddress(XmlUtil.getText(itemDevice, "IPAddress"));
- if (XmlUtil.getText(itemDevice, "Port") == null || XmlUtil.getText(itemDevice, "Port") =="") {
- deviceChannel.setPort(0);
- } else {
- deviceChannel.setPort(Integer.parseInt(XmlUtil.getText(itemDevice, "Port")));
- }
- deviceChannel.setPassword(XmlUtil.getText(itemDevice, "Password"));
- if (XmlUtil.getText(itemDevice, "Longitude") == null || XmlUtil.getText(itemDevice, "Longitude") == "") {
- deviceChannel.setLongitude(0.00);
- } else {
- deviceChannel.setLongitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Longitude")));
- }
- if (XmlUtil.getText(itemDevice, "Latitude") == null || XmlUtil.getText(itemDevice, "Latitude") =="") {
- deviceChannel.setLatitude(0.00);
- } else {
- deviceChannel.setLatitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Latitude")));
- }
- if (XmlUtil.getText(itemDevice, "PTZType") == null || XmlUtil.getText(itemDevice, "PTZType") == "") {
- deviceChannel.setPTZType(0);
- } else {
- deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType")));
- }
- deviceChannel.setHasAudio(true); // 榛樿鍚湁闊抽锛屾挱鏀炬椂鍐嶆鏌ユ槸鍚︽湁闊抽鍙婃槸鍚AC
- storager.updateChannel(device.getDeviceId(), deviceChannel);
- }
- RequestMessage msg = new RequestMessage();
- msg.setDeviceId(deviceId);
- msg.setType(DeferredResultHolder.CALLBACK_CMD_CATALOG);
- msg.setData(device);
- deferredResultHolder.invokeResult(msg);
- // 鍥炲200 OK
- responseAck(evt);
- if (offLineDetector.isOnline(deviceId)) {
- publisher.onlineEventPublish(deviceId, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE);
+ RequestMessage msg = new RequestMessage();
+ msg.setDeviceId(deviceId);
+ msg.setType(DeferredResultHolder.CALLBACK_CMD_CATALOG);
+ msg.setData(device);
+ deferredResultHolder.invokeResult(msg);
+ // 鍥炲200 OK
+ responseAck(evt);
+ if (offLineDetector.isOnline(deviceId)) {
+ publisher.onlineEventPublish(deviceId, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE);
+ }
}
}
} catch (DocumentException | SipException | InvalidArgumentException | ParseException e) {
@@ -723,11 +734,7 @@
}
}
- /**
- * 鏀跺埌MediaStatus娑堟伅澶勭悊
- *
- * @param evt
- */
+
private void processMessageMediaStatus(RequestEvent evt){
try {
// 鍥炲200 OK
diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite
index efb382c..d50f18c 100644
--- a/src/main/resources/wvp.sqlite
+++ b/src/main/resources/wvp.sqlite
Binary files differ
--
Gitblit v1.8.0