From 622d72b3f0f1b3103518ef15931f160d639198a5 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 08 五月 2024 12:16:18 +0800
Subject: [PATCH] 解决刷新通道异常
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java | 63 +++++++------------------------
1 files changed, 15 insertions(+), 48 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 435f35f..84f44b5 100755
--- 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
@@ -1,7 +1,5 @@
package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl;
-import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.conf.CivilCodeFileConf;
import com.genersoft.iot.vmp.conf.SipConfig;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.*;
@@ -78,9 +76,6 @@
@Autowired
private NotifyRequestForCatalogProcessor notifyRequestForCatalogProcessor;
- @Autowired
- private CivilCodeFileConf civilCodeFileConf;
-
private ConcurrentLinkedQueue<HandlerCatchData> taskQueue = new ConcurrentLinkedQueue<>();
@Qualifier("taskExecutor")
@@ -98,7 +93,6 @@
@Override
public void process(RequestEvent evt) {
try {
-
if (taskQueue.size() >= userSetting.getMaxNotifyCountQueue()) {
responseAck((SIPRequest) evt.getRequest(), Response.BUSY_HERE, null, null);
logger.error("[notify] 寰呭鐞嗘秷鎭槦鍒楀凡婊� {}锛岃繑鍥�486 BUSY_HERE锛屾秷鎭笉鍋氬鐞�", userSetting.getMaxNotifyCountQueue());
@@ -186,6 +180,13 @@
logger.warn("[mobilePosition绉诲姩浣嶇疆Notify] 鏈壘鍒伴�氶亾{}鎵�灞炵殑璁惧", channelId);
return;
}
+ // 鍏煎璁惧閮ㄥ垎璁惧涓婃姤鏄�氶亾缂栧彿涓庤澶囩紪鍙蜂竴鑷寸殑鎯呭喌
+ if(deviceId.equals(channelId)) {
+ List<DeviceChannel> deviceChannels = deviceChannelService.queryChaneListByDeviceId(deviceId);
+ if (deviceChannels.size() == 1) {
+ channelId = deviceChannels.get(0).getChannelId();
+ }
+ }
if (!ObjectUtils.isEmpty(device.getName())) {
mobilePosition.setDeviceName(device.getName());
}
@@ -227,32 +228,15 @@
deviceChannel.setLongitude(mobilePosition.getLongitude());
deviceChannel.setLatitude(mobilePosition.getLatitude());
deviceChannel.setGpsTime(mobilePosition.getTime());
- deviceChannel = deviceChannelService.updateGps(deviceChannel, device);
+// deviceChannel = deviceChannelService.updateGps(deviceChannel, device);
+//
+// mobilePosition.setLongitudeWgs84(deviceChannel.getLongitudeWgs84());
+// mobilePosition.setLatitudeWgs84(deviceChannel.getLatitudeWgs84());
+// mobilePosition.setLongitudeGcj02(deviceChannel.getLongitudeGcj02());
+// mobilePosition.setLatitudeGcj02(deviceChannel.getLatitudeGcj02());
- mobilePosition.setLongitudeWgs84(deviceChannel.getLongitudeWgs84());
- mobilePosition.setLatitudeWgs84(deviceChannel.getLatitudeWgs84());
- mobilePosition.setLongitudeGcj02(deviceChannel.getLongitudeGcj02());
- mobilePosition.setLatitudeGcj02(deviceChannel.getLatitudeGcj02());
+ deviceChannelService.updateChannelGPS(device, deviceChannel, mobilePosition);
- if (userSetting.getSavePositionHistory()) {
- storager.insertMobilePosition(mobilePosition);
- }
-
- storager.updateChannelPosition(deviceChannel);
- // 鍚戝叧鑱斾簡璇ラ�氶亾骞朵笖寮�鍚Щ鍔ㄤ綅缃闃呯殑涓婄骇骞冲彴鍙戦�佺Щ鍔ㄤ綅缃闃呮秷鎭�
-
-
- // 鍙戦�乺edis娑堟伅銆� 閫氱煡浣嶇疆淇℃伅鐨勫彉鍖�
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("time", DateUtil.yyyy_MM_dd_HH_mm_ssToISO8601(mobilePosition.getTime()));
- jsonObject.put("serial", deviceId);
- jsonObject.put("code", channelId);
- jsonObject.put("longitude", mobilePosition.getLongitude());
- jsonObject.put("latitude", mobilePosition.getLatitude());
- jsonObject.put("altitude", mobilePosition.getAltitude());
- jsonObject.put("direction", mobilePosition.getDirection());
- jsonObject.put("speed", mobilePosition.getSpeed());
- redisCatchStorage.sendMobilePositionMsg(jsonObject);
} catch (DocumentException e) {
logger.error("鏈鐞嗙殑寮傚父 ", e);
}
@@ -340,25 +324,8 @@
mobilePosition.setLongitudeGcj02(deviceChannel.getLongitudeGcj02());
mobilePosition.setLatitudeGcj02(deviceChannel.getLatitudeGcj02());
- if (userSetting.getSavePositionHistory()) {
- storager.insertMobilePosition(mobilePosition);
- }
-
- storager.updateChannelPosition(deviceChannel);
- // 鍙戦�乺edis娑堟伅銆� 閫氱煡浣嶇疆淇℃伅鐨勫彉鍖�
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("time", DateUtil.yyyy_MM_dd_HH_mm_ssToISO8601(mobilePosition.getTime()));
- jsonObject.put("serial", deviceChannel.getDeviceId());
- jsonObject.put("code", deviceChannel.getChannelId());
- jsonObject.put("longitude", mobilePosition.getLongitude());
- jsonObject.put("latitude", mobilePosition.getLatitude());
- jsonObject.put("altitude", mobilePosition.getAltitude());
- jsonObject.put("direction", mobilePosition.getDirection());
- jsonObject.put("speed", mobilePosition.getSpeed());
- redisCatchStorage.sendMobilePositionMsg(jsonObject);
-
+ deviceChannelService.updateChannelGPS(device, deviceChannel, mobilePosition);
}
- // TODO: 闇�瑕佸疄鐜板瓨鍌ㄦ姤璀︿俊鎭�佹姤璀﹀垎绫�
// 鍥炲200 OK
if (redisCatchStorage.deviceIsOnline(deviceId)) {
--
Gitblit v1.8.0