| | |
| | | deviceChannel.setCivilCode(XmlUtil.getText(itemDevice, "CivilCode"));
|
| | | deviceChannel.setBlock(XmlUtil.getText(itemDevice, "Block"));
|
| | | deviceChannel.setAddress(XmlUtil.getText(itemDevice, "Address"));
|
| | | String businessGroupID = XmlUtil.getText(itemDevice, "BusinessGroupID");
|
| | | if (XmlUtil.getText(itemDevice, "Parental") == null
|
| | | || XmlUtil.getText(itemDevice, "Parental") == "") {
|
| | | deviceChannel.setParental(0);
|
| | |
| | | }
|
| | | deviceChannel.setParentId(XmlUtil.getText(itemDevice, "ParentID"));
|
| | | String parentId = XmlUtil.getText(itemDevice, "ParentID");
|
| | | if (parentId != null && parentId.contains("/")) {
|
| | | String lastParentId = parentId.substring(parentId.lastIndexOf("/") + 1);
|
| | | deviceChannel.setParentId(lastParentId);
|
| | | if (parentId != null) {
|
| | | if (parentId.contains("/")) {
|
| | | String lastParentId = parentId.substring(parentId.lastIndexOf("/") + 1);
|
| | | deviceChannel.setParentId(lastParentId);
|
| | | }else {
|
| | | deviceChannel.setParentId(parentId);
|
| | | }
|
| | | }else {
|
| | | deviceChannel.setParentId(parentId);
|
| | | if (deviceChannel.getChannelId().length() <= 10) { // 此时为行政区划, 上下级行政区划使用DeviceId关联
|
| | | deviceChannel.setParentId(deviceChannel.getChannelId().substring(0, deviceChannel.getChannelId().length() - 2));
|
| | | }else if (deviceChannel.getChannelId().length() == 20) {
|
| | | if (Integer.parseInt(deviceChannel.getChannelId().substring(10, 13)) == 216) { // 虚拟组织
|
| | | deviceChannel.setParentId(businessGroupID);
|
| | | }else if (deviceChannel.getCivilCode() != null) {
|
| | | // 设备, 无parentId的20位是使用CivilCode表示上级的设备,
|
| | | // 注:215 业务分组是需要有parentId的
|
| | | deviceChannel.setParentId(deviceChannel.getCivilCode());
|
| | | }
|
| | | }else {
|
| | | deviceChannel.setParentId(deviceChannel.getDeviceId());
|
| | | }
|
| | | }
|
| | |
|
| | | if (XmlUtil.getText(itemDevice, "SafetyWay") == null
|
| | |
| | | deviceChannel.setHasAudio(true); // 默认含有音频,播放时再检查是否有音频及是否AAC
|
| | | return deviceChannel;
|
| | | }
|
| | | }
|
| | | } |
| | |
| | | * @param count 每页数量 |
| | | * @return |
| | | */ |
| | | public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count); |
| | | public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, Boolean catalogUnderDevice, int page, int count); |
| | | |
| | | public List<DeviceChannel> queryChannelsByDeviceIdWithStartAndLimit(String deviceId, String query, Boolean hasSubChannel, Boolean online, int start, int limit); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count) { |
| | | public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, Boolean catalogUnderDevice, int page, int count) { |
| | | // 获取到所有正在播放的流 |
| | | PageHelper.startPage(page, count); |
| | | List<DeviceChannel> all = deviceChannelMapper.queryChannels(deviceId, null, query, hasSubChannel, online); |
| | | List<DeviceChannel> all; |
| | | if (catalogUnderDevice != null && catalogUnderDevice) { |
| | | all = deviceChannelMapper.queryChannels(deviceId, deviceId, query, hasSubChannel, online); |
| | | }else { |
| | | all = deviceChannelMapper.queryChannels(deviceId, null, query, hasSubChannel, online); |
| | | } |
| | | return new PageInfo<>(all); |
| | | } |
| | | |
| | |
| | | @ApiImplicitParam(name="query", value = "查询内容" ,dataTypeClass = String.class), |
| | | @ApiImplicitParam(name="online", value = "是否在线" ,dataTypeClass = Boolean.class), |
| | | @ApiImplicitParam(name="channelType", value = "设备/子目录-> false/true" ,dataTypeClass = Boolean.class), |
| | | @ApiImplicitParam(name="catalogUnderDevice", value = "是否直属与设备的目录" ,dataTypeClass = Boolean.class), |
| | | }) |
| | | public ResponseEntity<PageInfo> channels(@PathVariable String deviceId, |
| | | int page, int count, |
| | | @RequestParam(required = false) String query, |
| | | @RequestParam(required = false) Boolean online, |
| | | @RequestParam(required = false) Boolean channelType) { |
| | | @RequestParam(required = false) Boolean channelType, |
| | | @RequestParam(required = false) Boolean catalogUnderDevice) { |
| | | // if (logger.isDebugEnabled()) { |
| | | // logger.debug("查询视频设备通道API调用"); |
| | | // } |
| | |
| | | query = null; |
| | | } |
| | | |
| | | PageInfo pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, page, count); |
| | | PageInfo pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, catalogUnderDevice, page, count); |
| | | return new ResponseEntity<>(pageResult,HttpStatus.OK); |
| | | } |
| | | |
| | |
| | | }) |
| | | } |
| | | if (node.level === 1) { |
| | | this.deviceService.getAllChannel(true, node.data.id, (catalogData) => { |
| | | this.deviceService.getAllChannel(false, node.data.id, (channelData) => { |
| | | this.deviceService.getAllChannel(true, true, node.data.id, (catalogData) => { |
| | | this.deviceService.getAllChannel(false, true, node.data.id, (channelData) => { |
| | | let data = catalogData.concat(channelData) |
| | | this.channelDataHandler(data, resolve) |
| | | }) |
| | |
| | | <div ref="infobox" v-if="channel != null " > |
| | | <div v-if="channel != null" class="infobox-content"> |
| | | <el-descriptions class="margin-top" :title="channel.name" :column="1" :colon="true" size="mini" :labelStyle="labelStyle" > |
| | | <el-descriptions-item label="生产厂商">{{channel.manufacture}}</el-descriptions-item> |
| | | <el-descriptions-item label="编号" >{{channel.channelId}}</el-descriptions-item> |
| | | <el-descriptions-item label="型号">{{channel.model}}</el-descriptions-item> |
| | | <el-descriptions-item label="设备归属" >{{channel.owner}}</el-descriptions-item> |
| | | <el-descriptions-item label="经纬度" >{{channel.longitude}},{{channel.latitude}}</el-descriptions-item> |
| | | <el-descriptions-item label="生产厂商">{{channel.manufacture}}</el-descriptions-item> |
| | | <el-descriptions-item label="行政区域" >{{channel.civilCode}}</el-descriptions-item> |
| | | <el-descriptions-item label="设备归属" >{{channel.owner}}</el-descriptions-item> |
| | | <el-descriptions-item label="安装地址" >{{channel.address == null?'未知': channel.address}}</el-descriptions-item> |
| | | <el-descriptions-item label="云台类型" >{{channel.ptztypeText}}</el-descriptions-item> |
| | | <el-descriptions-item label="经纬度" >{{channel.longitude}},{{channel.latitude}}</el-descriptions-item> |
| | | <el-descriptions-item label="状态"> |
| | | <el-tag size="small" v-if="channel.status === 1">在线</el-tag> |
| | | <el-tag size="small" type="info" v-if="channel.status === 0">离线</el-tag> |
| | |
| | | console.log(this.$route.query.deviceId) |
| | | // this.$refs.deviceTree.openByDeivceId(this.$route.query.deivceId) |
| | | setTimeout(()=>{ // 延迟以等待地图加载完成 TODO 后续修改为通过是实际这;状态加回调完成 |
| | | this.deviceService.getAllChannel(false, this.$route.query.deviceId, this.channelsHandler) |
| | | this.deviceService.getAllChannel(false, false, this.$route.query.deviceId, this.channelsHandler) |
| | | }, 1000) |
| | | |
| | | } |
| | |
| | | zIndex: 3000, // 菜单样式 z-index |
| | | }); |
| | | } else { |
| | | this.deviceOrSubChannelMenu(event, data) |
| | | if (typeof data.channelId === "undefined") { |
| | | this.deviceOrSubChannelMenu(event, data) |
| | | }else { |
| | | // TODO 子目录暂时不支持查询他下面所有设备, 支持支持查询直属于这个目录的设备 |
| | | this.deviceOrSubChannelMenu(event, data) |
| | | } |
| | | |
| | | } |
| | | |
| | | }, |
| | |
| | | disabled: false, |
| | | onClick: () => { |
| | | if (!data.channelId) { |
| | | this.deviceService.getAllChannel(false, data.deviceId, this.channelsHandler) |
| | | this.deviceService.getAllChannel(false, false, data.deviceId, this.channelsHandler) |
| | | } |
| | | if (data.channelId && data.subCount > 0) { |
| | | // 点击子目录 |
| | |
| | | } |
| | | |
| | | |
| | | getAllChannel(isCatalog, deviceId, callback, errorCallback) { |
| | | getAllChannel(isCatalog, catalogUnderDevice, deviceId, callback, errorCallback) { |
| | | let currentPage = 1; |
| | | let count = 100; |
| | | let catalogList = [] |
| | | this.getAllChannelIteration(isCatalog, deviceId, catalogList, currentPage, count, callback, errorCallback) |
| | | this.getAllChannelIteration(isCatalog, catalogUnderDevice, deviceId, catalogList, currentPage, count, callback, errorCallback) |
| | | } |
| | | |
| | | getAllChannelIteration(isCatalog, deviceId, catalogList, currentPage, count, callback, errorCallback) { |
| | | this.getChanel(isCatalog, deviceId, currentPage, count, (data) => { |
| | | getAllChannelIteration(isCatalog, catalogUnderDevice, deviceId, catalogList, currentPage, count, callback, errorCallback) { |
| | | this.getChanel(isCatalog, catalogUnderDevice, deviceId, currentPage, count, (data) => { |
| | | if (data.list) { |
| | | catalogList = catalogList.concat(data.list); |
| | | if (catalogList.length < data.total) { |
| | | currentPage ++ |
| | | this.getAllChannelIteration(isCatalog, deviceId, catalogList, currentPage, count, callback, errorCallback) |
| | | this.getAllChannelIteration(isCatalog,catalogUnderDevice, deviceId, catalogList, currentPage, count, callback, errorCallback) |
| | | }else { |
| | | console.log(1) |
| | | if (typeof (callback) == "function") callback(catalogList) |
| | |
| | | } |
| | | }, errorCallback) |
| | | } |
| | | getChanel(isCatalog, deviceId, currentPage, count, callback, errorCallback) { |
| | | getChanel(isCatalog, catalogUnderDevice, deviceId, currentPage, count, callback, errorCallback) { |
| | | this.$axios({ |
| | | method: 'get', |
| | | url: `/api/device/query/devices/${deviceId}/channels`, |
| | |
| | | count: count, |
| | | query: "", |
| | | online: "", |
| | | channelType: isCatalog |
| | | channelType: isCatalog, |
| | | catalogUnderDevice: catalogUnderDevice |
| | | } |
| | | }).then((res) =>{ |
| | | if (typeof (callback) == "function") callback(res.data) |