From acd767b47a4f78e905a3cbe89a4c82ffe88d73d9 Mon Sep 17 00:00:00 2001
From: hotcoffie <35990065+hotcoffie@users.noreply.github.com>
Date: 星期四, 21 四月 2022 10:04:50 +0800
Subject: [PATCH] Merge branch '648540858:wvp-28181-2.0' into wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeHandlerTask.java | 68 ++++++++++++++++++---------------
1 files changed, 37 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeHandlerTask.java b/src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeHandlerTask.java
index fcac3e9..c495403 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeHandlerTask.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeHandlerTask.java
@@ -1,16 +1,16 @@
package com.genersoft.iot.vmp.gb28181.task.impl;
-import com.genersoft.iot.vmp.gb28181.bean.GbStream;
-import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
-import com.genersoft.iot.vmp.gb28181.bean.SubscribeHolder;
-import com.genersoft.iot.vmp.gb28181.bean.SubscribeInfo;
+import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.task.ISubscribeTask;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.annotation.Async;
-import java.text.SimpleDateFormat;
+import javax.sip.DialogState;
import java.util.List;
/**
@@ -18,20 +18,20 @@
*/
public class MobilePositionSubscribeHandlerTask implements ISubscribeTask {
+ private Logger logger = LoggerFactory.getLogger(MobilePositionSubscribeHandlerTask.class);
+
private IRedisCatchStorage redisCatchStorage;
private IVideoManagerStorage storager;
private ISIPCommanderForPlatform sipCommanderForPlatform;
private SubscribeHolder subscribeHolder;
- private String platformId;
+ private ParentPlatform platform;
private String sn;
private String key;
-
- private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public MobilePositionSubscribeHandlerTask(IRedisCatchStorage redisCatchStorage, ISIPCommanderForPlatform sipCommanderForPlatform, IVideoManagerStorage storager, String platformId, String sn, String key, SubscribeHolder subscribeInfo) {
this.redisCatchStorage = redisCatchStorage;
this.storager = storager;
- this.platformId = platformId;
+ this.platform = storager.queryParentPlatByServerGBId(platformId);
this.sn = sn;
this.key = key;
this.sipCommanderForPlatform = sipCommanderForPlatform;
@@ -41,30 +41,31 @@
@Override
public void run() {
- SubscribeInfo subscribe = subscribeHolder.getMobilePositionSubscribe(platformId);
-
+ if (platform == null) return;
+ SubscribeInfo subscribe = subscribeHolder.getMobilePositionSubscribe(platform.getServerGBId());
if (subscribe != null) {
- ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(platformId);
- if (parentPlatform == null || parentPlatform.isStatus()) {
- // TODO 鏆傛椂鍙鐞嗚棰戞祦鐨勫洖澶�,鍚庣画澧炲姞瀵瑰浗鏍囪澶囩殑鏀寔
- List<GbStream> gbStreams = storager.queryGbStreamListInPlatform(platformId);
- if (gbStreams.size() > 0) {
- for (GbStream gbStream : gbStreams) {
- String gbId = gbStream.getGbId();
- GPSMsgInfo gpsMsgInfo = redisCatchStorage.getGpsMsgInfo(gbId);
- if (gpsMsgInfo != null) {
- // 鍙戦�丟PS娑堟伅
- sipCommanderForPlatform.sendNotifyMobilePosition(parentPlatform, gpsMsgInfo, subscribe);
- }else {
- // 娌℃湁鍦╮edis鎵惧埌鏂扮殑娑堟伅灏变娇鐢ㄦ暟鎹簱鐨勬秷鎭�
- gpsMsgInfo = new GPSMsgInfo();
- gpsMsgInfo.setId(gbId);
- gpsMsgInfo.setLat(gbStream.getLongitude());
- gpsMsgInfo.setLng(gbStream.getLongitude());
- // 鍙戦�丟PS娑堟伅
- sipCommanderForPlatform.sendNotifyMobilePosition(parentPlatform, gpsMsgInfo, subscribe);
- }
+
+// if (!parentPlatform.isStatus()) {
+// logger.info("鍙戦�佽闃呮椂鍙戠幇骞冲彴宸茬粡绂荤嚎锛歿}", platformId);
+// return;
+// }
+ // TODO 鏆傛椂鍙鐞嗚棰戞祦鐨勫洖澶�,鍚庣画澧炲姞瀵瑰浗鏍囪澶囩殑鏀寔
+ List<GbStream> gbStreams = storager.queryGbStreamListInPlatform(platform.getServerGBId());
+ if (gbStreams.size() == 0) {
+ logger.info("鍙戦�佽闃呮椂鍙戠幇骞冲彴宸茬粡娌℃湁鍏宠仈鐨勭洿鎾祦锛歿}", platform.getServerGBId());
+ return;
+ }
+ for (GbStream gbStream : gbStreams) {
+ String gbId = gbStream.getGbId();
+ GPSMsgInfo gpsMsgInfo = redisCatchStorage.getGpsMsgInfo(gbId);
+ if (gpsMsgInfo != null) { // 鏃犳渶鏂颁綅缃笉鍙戦��
+ logger.info("鏃犳渶鏂颁綅缃笉鍙戦��");
+ // 缁忕含搴﹂兘涓�0涓嶅彂閫�
+ if (gpsMsgInfo.getLng() == 0 && gpsMsgInfo.getLat() == 0) {
+ continue;
}
+ // 鍙戦�丟PS娑堟伅
+ sipCommanderForPlatform.sendNotifyMobilePosition(platform, gpsMsgInfo, subscribe);
}
}
}
@@ -74,4 +75,9 @@
public void stop() {
}
+
+ @Override
+ public DialogState getDialogState() {
+ return null;
+ }
}
--
Gitblit v1.8.0