Commit 91dc4566a26862abef9aa2352d2ddf2279e5e8e8
1 parent
8ee7211b
修复级联无通道时更新停止在等待更新的问题
Showing
5 changed files
with
48 additions
and
20 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java
| @@ -3,8 +3,14 @@ package com.genersoft.iot.vmp.gb28181.bean; | @@ -3,8 +3,14 @@ package com.genersoft.iot.vmp.gb28181.bean; | ||
| 3 | import java.time.Instant; | 3 | import java.time.Instant; |
| 4 | import java.util.List; | 4 | import java.util.List; |
| 5 | 5 | ||
| 6 | +/** | ||
| 7 | + * @author lin | ||
| 8 | + */ | ||
| 6 | public class CatalogData { | 9 | public class CatalogData { |
| 7 | - private int sn; // 命令序列号 | 10 | + /** |
| 11 | + * 命令序列号 | ||
| 12 | + */ | ||
| 13 | + private int sn; | ||
| 8 | private int total; | 14 | private int total; |
| 9 | private List<DeviceChannel> channelList; | 15 | private List<DeviceChannel> channelList; |
| 10 | private Instant lastTime; | 16 | private Instant lastTime; |
src/main/java/com/genersoft/iot/vmp/gb28181/bean/SyncStatus.java
| @@ -2,12 +2,15 @@ package com.genersoft.iot.vmp.gb28181.bean; | @@ -2,12 +2,15 @@ package com.genersoft.iot.vmp.gb28181.bean; | ||
| 2 | 2 | ||
| 3 | /** | 3 | /** |
| 4 | * 摄像机同步状态 | 4 | * 摄像机同步状态 |
| 5 | + * @author lin | ||
| 5 | */ | 6 | */ |
| 6 | public class SyncStatus { | 7 | public class SyncStatus { |
| 7 | private int total; | 8 | private int total; |
| 8 | private int current; | 9 | private int current; |
| 9 | private String errorMsg; | 10 | private String errorMsg; |
| 10 | 11 | ||
| 12 | + private boolean syncIng; | ||
| 13 | + | ||
| 11 | public int getTotal() { | 14 | public int getTotal() { |
| 12 | return total; | 15 | return total; |
| 13 | } | 16 | } |
| @@ -31,4 +34,12 @@ public class SyncStatus { | @@ -31,4 +34,12 @@ public class SyncStatus { | ||
| 31 | public void setErrorMsg(String errorMsg) { | 34 | public void setErrorMsg(String errorMsg) { |
| 32 | this.errorMsg = errorMsg; | 35 | this.errorMsg = errorMsg; |
| 33 | } | 36 | } |
| 37 | + | ||
| 38 | + public boolean isSyncIng() { | ||
| 39 | + return syncIng; | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + public void setSyncIng(boolean syncIng) { | ||
| 43 | + this.syncIng = syncIng; | ||
| 44 | + } | ||
| 34 | } | 45 | } |
src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java
| @@ -84,6 +84,11 @@ public class CatalogDataCatch { | @@ -84,6 +84,11 @@ public class CatalogDataCatch { | ||
| 84 | syncStatus.setCurrent(catalogData.getChannelList().size()); | 84 | syncStatus.setCurrent(catalogData.getChannelList().size()); |
| 85 | syncStatus.setTotal(catalogData.getTotal()); | 85 | syncStatus.setTotal(catalogData.getTotal()); |
| 86 | syncStatus.setErrorMsg(catalogData.getErrorMsg()); | 86 | syncStatus.setErrorMsg(catalogData.getErrorMsg()); |
| 87 | + if (catalogData.getStatus().equals(CatalogData.CatalogDataStatus.end)) { | ||
| 88 | + syncStatus.setSyncIng(false); | ||
| 89 | + }else { | ||
| 90 | + syncStatus.setSyncIng(true); | ||
| 91 | + } | ||
| 87 | return syncStatus; | 92 | return syncStatus; |
| 88 | } | 93 | } |
| 89 | 94 |
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 | @@ -111,6 +111,7 @@ public class CatalogResponseMessageHandler extends SIPRequestProcessorParent imp | ||
| 111 | int sumNum = Integer.parseInt(sumNumElement.getText()); | 111 | int sumNum = Integer.parseInt(sumNumElement.getText()); |
| 112 | 112 | ||
| 113 | if (sumNum == 0) { | 113 | if (sumNum == 0) { |
| 114 | + logger.info("收到来自设备【{}】的通道: 0个", take.getDevice().getDeviceId()); | ||
| 114 | // 数据已经完整接收 | 115 | // 数据已经完整接收 |
| 115 | storager.cleanChannelsForDevice(take.getDevice().getDeviceId()); | 116 | storager.cleanChannelsForDevice(take.getDevice().getDeviceId()); |
| 116 | catalogDataCatch.setChannelSyncEnd(take.getDevice().getDeviceId(), null); | 117 | catalogDataCatch.setChannelSyncEnd(take.getDevice().getDeviceId(), null); |
web_src/src/components/dialog/SyncChannelProgress.vue
| @@ -63,34 +63,39 @@ export default { | @@ -63,34 +63,39 @@ export default { | ||
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | if (res.data.data != null) { | 65 | if (res.data.data != null) { |
| 66 | - if (res.data.data.total == 0) { | ||
| 67 | - if (res.data.data.errorMsg !== null ){ | ||
| 68 | - this.msg = res.data.data.errorMsg; | ||
| 69 | - this.syncStatus = "exception" | ||
| 70 | - }else { | ||
| 71 | - this.msg = `等待同步中`; | ||
| 72 | - this.timmer = setTimeout(this.getProgress, 300) | ||
| 73 | - } | ||
| 74 | - }else { | ||
| 75 | - if (res.data.data.total == res.data.data.current) { | ||
| 76 | - this.syncStatus = "success" | ||
| 77 | - this.percentage = 100; | ||
| 78 | - this.msg = '同步成功'; | ||
| 79 | - }else { | 66 | + if (res.data.syncIng) { |
| 67 | + if (res.data.data.total == 0) { | ||
| 80 | if (res.data.data.errorMsg !== null ){ | 68 | if (res.data.data.errorMsg !== null ){ |
| 81 | this.msg = res.data.data.errorMsg; | 69 | this.msg = res.data.data.errorMsg; |
| 82 | this.syncStatus = "exception" | 70 | this.syncStatus = "exception" |
| 83 | }else { | 71 | }else { |
| 84 | - this.total = res.data.data.total; | ||
| 85 | - this.current = res.data.data.current; | ||
| 86 | - this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100; | ||
| 87 | - this.msg = `同步中...[${res.data.data.current}/${res.data.data.total}]`; | 72 | + this.msg = `等待同步中`; |
| 88 | this.timmer = setTimeout(this.getProgress, 300) | 73 | this.timmer = setTimeout(this.getProgress, 300) |
| 89 | } | 74 | } |
| 75 | + }else { | ||
| 76 | + if (res.data.data.total == res.data.data.current) { | ||
| 77 | + this.syncStatus = "success" | ||
| 78 | + this.percentage = 100; | ||
| 79 | + this.msg = '同步成功'; | ||
| 80 | + }else { | ||
| 81 | + if (res.data.data.errorMsg !== null ){ | ||
| 82 | + this.msg = res.data.data.errorMsg; | ||
| 83 | + this.syncStatus = "exception" | ||
| 84 | + }else { | ||
| 85 | + this.total = res.data.data.total; | ||
| 86 | + this.current = res.data.data.current; | ||
| 87 | + this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100; | ||
| 88 | + this.msg = `同步中...[${res.data.data.current}/${res.data.data.total}]`; | ||
| 89 | + this.timmer = setTimeout(this.getProgress, 300) | ||
| 90 | + } | ||
| 91 | + } | ||
| 90 | } | 92 | } |
| 93 | + }else { | ||
| 94 | + this.syncStatus = "success" | ||
| 95 | + this.percentage = 100; | ||
| 96 | + this.msg = '同步成功'; | ||
| 91 | } | 97 | } |
| 92 | } | 98 | } |
| 93 | - | ||
| 94 | }else { | 99 | }else { |
| 95 | if (this.syncFlag) { | 100 | if (this.syncFlag) { |
| 96 | this.syncStatus = "success" | 101 | this.syncStatus = "success" |