Commit 9c5b1060af4e6c468b2cf95fbb9ec6d0a05fad5c

Authored by 648540858
1 parent 0cd86a79

支持删除在线设备

src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
@@ -204,10 +204,7 @@ public class DeviceQuery { @@ -204,10 +204,7 @@ public class DeviceQuery {
204 if (logger.isDebugEnabled()) { 204 if (logger.isDebugEnabled()) {
205 logger.debug("设备信息删除API调用,deviceId:" + deviceId); 205 logger.debug("设备信息删除API调用,deviceId:" + deviceId);
206 } 206 }
207 -  
208 - if (offLineDetector.isOnline(deviceId)) {  
209 - return new ResponseEntity<String>("不允许删除在线设备!", HttpStatus.NOT_ACCEPTABLE);  
210 - } 207 +
211 // 清除redis记录 208 // 清除redis记录
212 boolean isSuccess = storager.delete(deviceId); 209 boolean isSuccess = storager.delete(deviceId);
213 if (isSuccess) { 210 if (isSuccess) {
@@ -319,20 +316,20 @@ public class DeviceQuery { @@ -319,20 +316,20 @@ public class DeviceQuery {
319 if (!StringUtils.isEmpty(device.getCharset())) deviceInStore.setCharset(device.getCharset()); 316 if (!StringUtils.isEmpty(device.getCharset())) deviceInStore.setCharset(device.getCharset());
320 if (!StringUtils.isEmpty(device.getMediaServerId())) deviceInStore.setMediaServerId(device.getMediaServerId()); 317 if (!StringUtils.isEmpty(device.getMediaServerId())) deviceInStore.setMediaServerId(device.getMediaServerId());
321 318
322 - if ((deviceInStore.getSubscribeCycleForCatalog() <=0 && device.getSubscribeCycleForCatalog() > 0)  
323 - || deviceInStore.getSubscribeCycleForCatalog() != device.getSubscribeCycleForCatalog()) {  
324 - deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog());  
325 - // 开启订阅  
326 - deviceService.addCatalogSubscribe(deviceInStore);  
327 - }  
328 - if (deviceInStore.getSubscribeCycleForCatalog() > 0 && device.getSubscribeCycleForCatalog() <= 0) {  
329 - deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog());  
330 - // 取消订阅  
331 - deviceService.removeCatalogSubscribe(deviceInStore); 319 + if (device.getSubscribeCycleForCatalog() > 0) {
  320 + if (deviceInStore.getSubscribeCycleForCatalog() == 0 || deviceInStore.getSubscribeCycleForCatalog() != device.getSubscribeCycleForCatalog()) {
  321 + // 开启订阅
  322 + deviceService.addCatalogSubscribe(deviceInStore);
  323 + }
  324 + }else if (device.getSubscribeCycleForCatalog() == 0) {
  325 + if (deviceInStore.getSubscribeCycleForCatalog() != 0) {
  326 + // 取消订阅
  327 + deviceService.removeCatalogSubscribe(deviceInStore);
  328 + }
332 } 329 }
333 330
334 - storager.updateDevice(deviceInStore);  
335 - cmder.deviceInfoQuery(deviceInStore); 331 + storager.updateDevice(device);
  332 + cmder.deviceInfoQuery(device);
336 } 333 }
337 WVPResult<String> result = new WVPResult<>(); 334 WVPResult<String> result = new WVPResult<>();
338 result.setCode(0); 335 result.setCode(0);
web_src/src/components/DeviceList.vue
@@ -55,14 +55,14 @@ @@ -55,14 +55,14 @@
55 <el-table-column prop="createTime" label="创建时间" align="center" width="140"> 55 <el-table-column prop="createTime" label="创建时间" align="center" width="140">
56 </el-table-column> 56 </el-table-column>
57 57
58 - <el-table-column label="操作" width="360" align="center" fixed="right"> 58 + <el-table-column label="操作" width="450" align="center" fixed="right">
59 <template slot-scope="scope"> 59 <template slot-scope="scope">
60 <el-button size="mini" :ref="scope.row.deviceId + 'refbtn' " v-if="scope.row.online!=0" icon="el-icon-refresh" @click="refDevice(scope.row)">刷新</el-button> 60 <el-button size="mini" :ref="scope.row.deviceId + 'refbtn' " v-if="scope.row.online!=0" icon="el-icon-refresh" @click="refDevice(scope.row)">刷新</el-button>
61 <el-button-group> 61 <el-button-group>
62 <el-button size="mini" icon="el-icon-video-camera-solid" v-bind:disabled="scope.row.online==0" type="primary" @click="showChannelList(scope.row)">通道</el-button> 62 <el-button size="mini" icon="el-icon-video-camera-solid" v-bind:disabled="scope.row.online==0" type="primary" @click="showChannelList(scope.row)">通道</el-button>
63 <el-button size="mini" icon="el-icon-location" v-bind:disabled="scope.row.online==0" type="primary" @click="showDevicePosition(scope.row)">定位</el-button> 63 <el-button size="mini" icon="el-icon-location" v-bind:disabled="scope.row.online==0" type="primary" @click="showDevicePosition(scope.row)">定位</el-button>
64 <el-button size="mini" icon="el-icon-edit" type="primary" @click="edit(scope.row)">编辑</el-button> 64 <el-button size="mini" icon="el-icon-edit" type="primary" @click="edit(scope.row)">编辑</el-button>
65 - <el-button size="mini" icon="el-icon-delete" type="danger" v-if="scope.row.online==0" @click="deleteDevice(scope.row)">删除</el-button> 65 + <el-button size="mini" icon="el-icon-delete" type="danger" @click="deleteDevice(scope.row)">删除</el-button>
66 </el-button-group> 66 </el-button-group>
67 </template> 67 </template>
68 </el-table-column> 68 </el-table-column>
@@ -165,15 +165,29 @@ @@ -165,15 +165,29 @@
165 165
166 }, 166 },
167 deleteDevice: function(row) { 167 deleteDevice: function(row) {
168 - let that = this;  
169 - this.$axios({  
170 - method: 'delete',  
171 - url:`/api/device/query/devices/${row.deviceId}/delete`  
172 - }).then((res)=>{  
173 - this.getDeviceList();  
174 - }).catch((error) =>{  
175 - console.log(error);  
176 - }); 168 + let msg = "确定删除此设备?"
  169 + if (row.online !== 0) {
  170 + msg = "在线设备删除后仍可通过注册再次上线。<br/>如需彻底删除请先将设备离线。<br/><strong>确定删除此设备?</strong>"
  171 + }
  172 + this.$confirm(msg, '提示', {
  173 + dangerouslyUseHTMLString : true,
  174 + confirmButtonText: '确定',
  175 + cancelButtonText: '取消',
  176 + center: true,
  177 + type: 'warning'
  178 + }).then(() => {
  179 + this.$axios({
  180 + method: 'delete',
  181 + url:`/api/device/query/devices/${row.deviceId}/delete`
  182 + }).then((res)=>{
  183 + this.getDeviceList();
  184 + }).catch((error) =>{
  185 + console.log(error);
  186 + });
  187 + }).catch(() => {
  188 +
  189 + });
  190 +
177 191
178 }, 192 },
179 showChannelList: function(row) { 193 showChannelList: function(row) {