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