From 2c89fae49a7655105b4e9e0138155485e6ba83b2 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 23 五月 2024 17:32:15 +0800
Subject: [PATCH] Merge branch 'refs/heads/2.7.1'

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

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java
index a8c4af8..52fc7a3 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java
@@ -11,6 +11,7 @@
 import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
 import com.genersoft.iot.vmp.service.IDeviceChannelService;
+import com.genersoft.iot.vmp.service.IMobilePositionService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import org.dom4j.DocumentException;
@@ -20,15 +21,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import javax.sip.RequestEvent;
 import javax.sip.header.FromHeader;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
 /**
@@ -54,6 +51,9 @@
 	@Autowired
 	private IDeviceChannelService deviceChannelService;
 
+	@Autowired
+	private IMobilePositionService mobilePositionService;
+
 	public void process(RequestEvent evt) {
 
 		if (taskQueue.size() >= userSetting.getMaxNotifyCountQueue()) {
@@ -64,13 +64,10 @@
 	}
 
 	@Scheduled(fixedRate = 200) //姣�200姣鎵ц涓�娆�
-	@Transactional
 	public void executeTaskQueue() {
 		if (taskQueue.isEmpty()) {
 			return;
 		}
-		Map<String, DeviceChannel> updateChannelMap = new ConcurrentHashMap<>();
-		List<MobilePosition> addMobilePositionList = new ArrayList<>();
 		for (HandlerCatchData take : taskQueue) {
 			if (take == null) {
 				continue;
@@ -146,20 +143,11 @@
 					}
 				}
 
-//			logger.info("[鏀跺埌绉诲姩浣嶇疆璁㈤槄閫氱煡]锛歿}/{}->{}.{}, 鏃堕棿锛� {}", mobilePosition.getDeviceId(), mobilePosition.getChannelId(),
-//					mobilePosition.getLongitude(), mobilePosition.getLatitude(), System.currentTimeMillis() - startTime);
+			logger.debug("[鏀跺埌绉诲姩浣嶇疆璁㈤槄閫氱煡]锛歿}/{}->{}.{}, 鏃堕棿锛� {}", mobilePosition.getDeviceId(), mobilePosition.getChannelId(),
+					mobilePosition.getLongitude(), mobilePosition.getLatitude(), System.currentTimeMillis() - startTime);
 				mobilePosition.setReportSource("Mobile Position");
 
-				// 鏇存柊device channel 鐨勭粡绾害
-				DeviceChannel deviceChannel = new DeviceChannel();
-				deviceChannel.setDeviceId(device.getDeviceId());
-				deviceChannel.setLongitude(mobilePosition.getLongitude());
-				deviceChannel.setLatitude(mobilePosition.getLatitude());
-				deviceChannel.setGpsTime(mobilePosition.getTime());
-				updateChannelMap.put(deviceId + mobilePosition.getChannelId(), deviceChannel);
-				addMobilePositionList.add(mobilePosition);
-
-
+				mobilePositionService.add(mobilePosition);
 				// 鍚戝叧鑱斾簡璇ラ�氶亾骞朵笖寮�鍚Щ鍔ㄤ綅缃闃呯殑涓婄骇骞冲彴鍙戦�佺Щ鍔ㄤ綅缃闃呮秷鎭�
 				try {
 					eventPublisher.mobilePositionEventPublish(mobilePosition);
@@ -199,21 +187,6 @@
 			}
 		}
 		taskQueue.clear();
-		if(!updateChannelMap.isEmpty()) {
-			List<DeviceChannel>  channels = new ArrayList<>(updateChannelMap.values());
-			logger.info("[绉诲姩浣嶇疆璁㈤槄]鏇存柊閫氶亾浣嶇疆锛� {}", channels.size());
-			deviceChannelService.batchUpdateChannel(channels);
-			updateChannelMap.clear();
-		}
-		if (userSetting.isSavePositionHistory() && !addMobilePositionList.isEmpty()) {
-			try {
-				logger.info("[绉诲姩浣嶇疆璁㈤槄] 娣诲姞閫氶亾杞ㄨ抗鐐逛綅锛� {}", addMobilePositionList.size());
-				deviceChannelService.batchAddMobilePosition(addMobilePositionList);
-			}catch (Exception e) {
-				logger.info("[绉诲姩浣嶇疆璁㈤槄] b娣诲姞閫氶亾杞ㄨ抗鐐逛綅淇濆瓨澶辫触锛� {}", addMobilePositionList.size());
-			}
-			addMobilePositionList.clear();
-		}
 	}
 	@Scheduled(fixedRate = 10000)
 	public void execute(){

--
Gitblit v1.8.0