From 91dc4566a26862abef9aa2352d2ddf2279e5e8e8 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 25 七月 2022 09:44:43 +0800
Subject: [PATCH] 修复级联无通道时更新停止在等待更新的问题
---
src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java | 5 ++
web_src/src/components/dialog/SyncChannelProgress.vue | 43 ++++++++++++---------
src/main/java/com/genersoft/iot/vmp/gb28181/bean/SyncStatus.java | 11 +++++
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java | 1
src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java | 8 +++
5 files changed, 48 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java
index 8a96d35..965d7f2 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java
@@ -3,8 +3,14 @@
import java.time.Instant;
import java.util.List;
+/**
+ * @author lin
+ */
public class CatalogData {
- private int sn; // 鍛戒护搴忓垪鍙�
+ /**
+ * 鍛戒护搴忓垪鍙�
+ */
+ private int sn;
private int total;
private List<DeviceChannel> channelList;
private Instant lastTime;
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SyncStatus.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SyncStatus.java
index 2ae50e6..f3a197c 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SyncStatus.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SyncStatus.java
@@ -2,11 +2,14 @@
/**
* 鎽勫儚鏈哄悓姝ョ姸鎬�
+ * @author lin
*/
public class SyncStatus {
private int total;
private int current;
private String errorMsg;
+
+ private boolean syncIng;
public int getTotal() {
return total;
@@ -31,4 +34,12 @@
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
+
+ public boolean isSyncIng() {
+ return syncIng;
+ }
+
+ public void setSyncIng(boolean syncIng) {
+ this.syncIng = syncIng;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java
index 7ed3c11..732a87a 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java
@@ -84,6 +84,11 @@
syncStatus.setCurrent(catalogData.getChannelList().size());
syncStatus.setTotal(catalogData.getTotal());
syncStatus.setErrorMsg(catalogData.getErrorMsg());
+ if (catalogData.getStatus().equals(CatalogData.CatalogDataStatus.end)) {
+ syncStatus.setSyncIng(false);
+ }else {
+ syncStatus.setSyncIng(true);
+ }
return syncStatus;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
index 66e92c5..f66d4f8 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
@@ -111,6 +111,7 @@
int sumNum = Integer.parseInt(sumNumElement.getText());
if (sumNum == 0) {
+ logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑閫氶亾: 0涓�", take.getDevice().getDeviceId());
// 鏁版嵁宸茬粡瀹屾暣鎺ユ敹
storager.cleanChannelsForDevice(take.getDevice().getDeviceId());
catalogDataCatch.setChannelSyncEnd(take.getDevice().getDeviceId(), null);
diff --git a/web_src/src/components/dialog/SyncChannelProgress.vue b/web_src/src/components/dialog/SyncChannelProgress.vue
index 246f1ae..5506d83 100644
--- a/web_src/src/components/dialog/SyncChannelProgress.vue
+++ b/web_src/src/components/dialog/SyncChannelProgress.vue
@@ -63,34 +63,39 @@
}
if (res.data.data != null) {
- if (res.data.data.total == 0) {
- if (res.data.data.errorMsg !== null ){
- this.msg = res.data.data.errorMsg;
- this.syncStatus = "exception"
- }else {
- this.msg = `绛夊緟鍚屾涓璥;
- this.timmer = setTimeout(this.getProgress, 300)
- }
- }else {
- if (res.data.data.total == res.data.data.current) {
- this.syncStatus = "success"
- this.percentage = 100;
- this.msg = '鍚屾鎴愬姛';
- }else {
+ if (res.data.syncIng) {
+ if (res.data.data.total == 0) {
if (res.data.data.errorMsg !== null ){
this.msg = res.data.data.errorMsg;
this.syncStatus = "exception"
}else {
- this.total = res.data.data.total;
- this.current = res.data.data.current;
- this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100;
- this.msg = `鍚屾涓�...[${res.data.data.current}/${res.data.data.total}]`;
+ this.msg = `绛夊緟鍚屾涓璥;
this.timmer = setTimeout(this.getProgress, 300)
}
+ }else {
+ if (res.data.data.total == res.data.data.current) {
+ this.syncStatus = "success"
+ this.percentage = 100;
+ this.msg = '鍚屾鎴愬姛';
+ }else {
+ if (res.data.data.errorMsg !== null ){
+ this.msg = res.data.data.errorMsg;
+ this.syncStatus = "exception"
+ }else {
+ this.total = res.data.data.total;
+ this.current = res.data.data.current;
+ this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100;
+ this.msg = `鍚屾涓�...[${res.data.data.current}/${res.data.data.total}]`;
+ this.timmer = setTimeout(this.getProgress, 300)
+ }
+ }
}
+ }else {
+ this.syncStatus = "success"
+ this.percentage = 100;
+ this.msg = '鍚屾鎴愬姛';
}
}
-
}else {
if (this.syncFlag) {
this.syncStatus = "success"
--
Gitblit v1.8.0