From d7135965daacda48bec685dd993e02fb8d913818 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Mon, 25 Jul 2022 09:44:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BA=A7=E8=81=94=E6=97=A0?= =?UTF-8?q?=E9=80=9A=E9=81=93=E6=97=B6=E6=9B=B4=E6=96=B0=E5=81=9C=E6=AD=A2?= =?UTF-8?q?=E5=9C=A8=E7=AD=89=E5=BE=85=E6=9B=B4=E6=96=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/gb28181/bean/CatalogData.java | 8 +++- .../iot/vmp/gb28181/bean/SyncStatus.java | 11 +++++ .../vmp/gb28181/session/CatalogDataCatch.java | 5 +++ .../cmd/CatalogResponseMessageHandler.java | 1 + .../components/dialog/SyncChannelProgress.vue | 43 +++++++++++-------- 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 8a96d356..965d7f2a 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 @@ package com.genersoft.iot.vmp.gb28181.bean; import java.time.Instant; import java.util.List; +/** + * @author lin + */ public class CatalogData { - private int sn; // 命令序列号 + /** + * 命令序列号 + */ + private int sn; private int total; private List 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 2ae50e69..f3a197ca 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,12 +2,15 @@ package com.genersoft.iot.vmp.gb28181.bean; /** * 摄像机同步状态 + * @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 class SyncStatus { 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 7ed3c116..732a87a3 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 @@ public class CatalogDataCatch { 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 66e92c52..f66d4f8b 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 @@ public class CatalogResponseMessageHandler extends SIPRequestProcessorParent imp 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 246f1ae7..5506d83f 100644 --- a/web_src/src/components/dialog/SyncChannelProgress.vue +++ b/web_src/src/components/dialog/SyncChannelProgress.vue @@ -63,34 +63,39 @@ export default { } 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"