diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java index 18ad2b01..e03020a5 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.conf.UserSetting; import com.genersoft.iot.vmp.gb28181.bean.*; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; import com.genersoft.iot.vmp.service.IGbStreamService; +import com.genersoft.iot.vmp.service.IPlatformChannelService; import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,6 +44,9 @@ public class CatalogEventLister implements ApplicationListener { @Autowired private UserSetting userSetting; + @Autowired + private IPlatformChannelService platformChannelService; + @Override public void onApplicationEvent(CatalogEvent event) { SubscribeInfo subscribe = null; @@ -177,6 +181,13 @@ public class CatalogEventLister implements ApplicationListener { logger.info("[Catalog事件: {}]平台:{},影响通道{}", event.getType(), platform.getServerGBId(), gbId); List deviceChannelList = new ArrayList<>(); DeviceChannel deviceChannel = channelMap.get(gbId); + // 查询通道的关联信息 + DeviceChannel deviceChannelInDb = platformChannelService.queryChannel(platform.getServerGBId(), deviceChannel.getDeviceId(), deviceChannel.getChannelId()); + if (deviceChannelInDb != null) { + deviceChannel.setCivilCode(deviceChannelInDb.getCivilCode()); + deviceChannel.setParentId(deviceChannelInDb.getParentId()); + deviceChannel.setBusinessGroupId(deviceChannelInDb.getBusinessGroupId()); + } deviceChannelList.add(deviceChannel); GbStream gbStream = storager.queryStreamInParentPlatform(platform.getServerGBId(), gbId); if(gbStream != null){ diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java index 25c11c44..4383b84b 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java @@ -663,8 +663,6 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { .append(" " + channel.getOwner()+ "\r\n"); if (channel.getCivilCode() != null) { catalogXml.append("" + channel.getCivilCode() + "\r\n"); - }else { - catalogXml.append("" + parentPlatform.getAdministrativeDivision() + "\r\n"); } catalogXml.append("
" + channel.getAddress() + "
\r\n"); diff --git a/src/main/java/com/genersoft/iot/vmp/service/IPlatformChannelService.java b/src/main/java/com/genersoft/iot/vmp/service/IPlatformChannelService.java index 49d74282..dcacf68a 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/IPlatformChannelService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IPlatformChannelService.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.service; +import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; import java.util.List; @@ -26,4 +27,6 @@ public interface IPlatformChannelService { * @return */ int delAllChannelForGB(String platformId, String catalogId); + + DeviceChannel queryChannel(String serverGBId, String deviceId, String channelId); } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java index 21a53748..6d2910d3 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java @@ -172,4 +172,9 @@ public class PlatformChannelServiceImpl implements IPlatformChannelService { return platformChannelMapper.delChannelForGBByCatalogId(platformId, catalogId); } + + @Override + public DeviceChannel queryChannel(String serverGBId, String deviceId, String channelId) { + return platformChannelMapper.queryChannel(serverGBId, deviceId, channelId); + } } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java index fc555088..c9c9fd22 100755 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java @@ -486,10 +486,10 @@ public interface DeviceChannelMapper { @Select("select * from wvp_device_channel where device_id=#{deviceId} and SUBSTRING(channel_id, 11, 3)=#{typeCode}") List getBusinessGroups(@Param("deviceId") String deviceId, @Param("typeCode") String typeCode); - @Select("select dc.id, dc.channel_id, dc.device_id, COALESCE(dc.custom_name, dc.name) AS name, dc.manufacture,dc.model,dc.owner, pc.civil_code_for_channel as civil_code,dc.block, " + + @Select("select dc.id, dc.channel_id, dc.device_id, COALESCE(dc.custom_name, dc.name) AS name, dc.manufacture,dc.model,dc.owner, pc.civil_code_for_channel as civil_code, dc.block, " + " dc.address, '0' as parental,'0' as channel_type, pc.id as parent_id, dc.safety_way, dc.register_way,dc.cert_num, dc.certifiable, " + " dc.err_code,dc.end_time, dc.secrecy, dc.ip_address, dc.port, COALESCE(dc.custom_ptz_type, dc.ptz_type) AS ptz_type, dc.password, dc.status, " + - " COALESCE(dc.custom_longitude, dc.longitude) A S longitude, COALESCE(dc.custom_latitude, dc.latitude) AS latitude, pc.business_group_id " + + " COALESCE(dc.custom_longitude, dc.longitude) AS longitude, COALESCE(dc.custom_latitude, dc.latitude) AS latitude, pc.business_group_id " + " from wvp_device_channel dc" + " LEFT JOIN wvp_platform_gb_channel pgc on dc.id = pgc.device_channel_id" + " LEFT JOIN wvp_platform_catalog pc on pgc.catalog_id = pc.id and pgc.platform_id = pc.platform_id" + diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java index 84b471d3..9307f224 100755 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java @@ -27,9 +27,9 @@ public interface PlatformCatalogMapper { value = {" "}) + "WHERE pc.parent_id=#{parentId} AND pc.platform_id=#{platformId} " + + "group by pc.id, pc.name, pc.platform_id, pc.business_group_id, pc.civil_code, pc.parent_id, pc.civil_code_for_channel" + + ""}) List selectByParentId(@Param("platformId") String platformId, @Param("parentId") String parentId); @Update(value = {"