From 1f02cb9178befba039ee10f344d7a23fb3864a53 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 13 四月 2023 20:08:25 +0800
Subject: [PATCH] pr #817

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
index 7366f30..4260641 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
@@ -96,6 +96,7 @@
 			logger.error("鏈鐞嗙殑寮傚父 ", e);
 		}
 		boolean runed = !taskQueue.isEmpty();
+		logger.info("[notify] 寰呭鐞嗘秷鎭暟閲忥細 {}", taskQueue.size());
 		taskQueue.offer(new HandlerCatchData(evt, null, null));
 		if (!runed) {
 			taskExecutor.execute(()-> {
@@ -148,26 +149,30 @@
 
 			MobilePosition mobilePosition = new MobilePosition();
 			mobilePosition.setCreateTime(DateUtil.getNow());
+
 			Element deviceIdElement = rootElement.element("DeviceID");
 			String channelId = deviceIdElement.getTextTrim().toString();
 			Device device = redisCatchStorage.getDevice(deviceId);
 
 			if (device == null) {
-				// 鏍规嵁閫氶亾id鏌ヨ璁惧Id
-				List<Device> deviceList = deviceChannelService.getDeviceByChannelId(channelId);
-				if (deviceList.size() > 0) {
-					device = deviceList.get(0);
-				}else {
-					logger.warn("[mobilePosition绉诲姩浣嶇疆Notify] 鏈壘鍒伴�氶亾{}鎵�灞炵殑璁惧", channelId);
-					return;
+				device = redisCatchStorage.getDevice(channelId);
+				if (device == null) {
+					// 鏍规嵁閫氶亾id鏌ヨ璁惧Id
+					List<Device> deviceList = deviceChannelService.getDeviceByChannelId(channelId);
+					if (deviceList.size() > 0) {
+						device = deviceList.get(0);
+					}
 				}
 			}
-			if (device != null) {
-				if (!ObjectUtils.isEmpty(device.getName())) {
-					mobilePosition.setDeviceName(device.getName());
-				}
+			if (device == null) {
+				logger.warn("[mobilePosition绉诲姩浣嶇疆Notify] 鏈壘鍒伴�氶亾{}鎵�灞炵殑璁惧", channelId);
+				return;
 			}
-			mobilePosition.setDeviceId(XmlUtil.getText(rootElement, "DeviceID"));
+			if (!ObjectUtils.isEmpty(device.getName())) {
+				mobilePosition.setDeviceName(device.getName());
+			}
+
+			mobilePosition.setDeviceId(device.getDeviceId());
 			mobilePosition.setChannelId(channelId);
 			String time = XmlUtil.getText(rootElement, "Time");
 			mobilePosition.setTime(time);
@@ -393,12 +398,20 @@
 						case CatalogEvent.OFF :
 							// 绂荤嚎
 							logger.info("[鏀跺埌閫氶亾绂荤嚎閫氱煡] 鏉ヨ嚜璁惧: {}, 閫氶亾 {}", device.getDeviceId(), channel.getChannelId());
-							storager.deviceChannelOffline(deviceId, channel.getChannelId());
+							if (userSetting.getRefuseChannelStatusChannelFormNotify()) {
+								storager.deviceChannelOffline(deviceId, channel.getChannelId());
+							}else {
+								logger.info("[鏀跺埌閫氶亾绂荤嚎閫氱煡] 浣嗘槸骞冲彴宸查厤缃嫆缁濇娑堟伅锛屾潵鑷澶�: {}, 閫氶亾 {}", device.getDeviceId(), channel.getChannelId());
+							}
 							break;
 						case CatalogEvent.VLOST:
 							// 瑙嗛涓㈠け
 							logger.info("[鏀跺埌閫氶亾瑙嗛涓㈠け閫氱煡] 鏉ヨ嚜璁惧: {}, 閫氶亾 {}", device.getDeviceId(), channel.getChannelId());
-							storager.deviceChannelOffline(deviceId, channel.getChannelId());
+							if (userSetting.getRefuseChannelStatusChannelFormNotify()) {
+								storager.deviceChannelOffline(deviceId, channel.getChannelId());
+							}else {
+								logger.info("[鏀跺埌閫氶亾瑙嗛涓㈠け閫氱煡] 浣嗘槸骞冲彴宸查厤缃嫆缁濇娑堟伅锛屾潵鑷澶�: {}, 閫氶亾 {}", device.getDeviceId(), channel.getChannelId());
+							}
 							break;
 						case CatalogEvent.DEFECT:
 							// 鏁呴殰

--
Gitblit v1.8.0