Merge pull request #645 from IKangXu/wvp-28181-2.0
优化 国标设备中通道内查看的逻辑,保证与分屏与电子地图中树结构的数据一致pull/647/head
commit
1af77ab5f7
|
@ -362,10 +362,10 @@ public class DeviceServiceImpl implements IDeviceService {
|
|||
return null;
|
||||
}
|
||||
// 使用行政区划展示树
|
||||
if (parentId.length() > 10) {
|
||||
// TODO 可能是行政区划与业务分组混杂的情形
|
||||
return null;
|
||||
}
|
||||
// if (parentId.length() > 10) {
|
||||
// // TODO 可能是行政区划与业务分组混杂的情形
|
||||
// return null;
|
||||
// }
|
||||
|
||||
if (parentId.length() == 10 ) {
|
||||
if (onlyCatalog) {
|
||||
|
@ -380,7 +380,18 @@ public class DeviceServiceImpl implements IDeviceService {
|
|||
List<DeviceChannel> channelsForCivilCode = deviceChannelMapper.getChannelsWithCivilCodeAndLength(deviceId, parentId, parentId.length() + 2);
|
||||
if (!onlyCatalog) {
|
||||
List<DeviceChannel> channels = deviceChannelMapper.getChannelsByCivilCode(deviceId, parentId);
|
||||
channelsForCivilCode.addAll(channels);
|
||||
|
||||
for(DeviceChannel channel : channels) {
|
||||
boolean flag = false;
|
||||
for(DeviceChannel deviceChannel : channelsForCivilCode) {
|
||||
if(channel.getChannelId().equals(deviceChannel.getChannelId())) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if(!flag) {
|
||||
channelsForCivilCode.add(channel);
|
||||
}
|
||||
}
|
||||
}
|
||||
List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(channelsForCivilCode, parentId);
|
||||
return trees;
|
||||
|
|
|
@ -71,7 +71,7 @@ public interface DeviceChannelMapper {
|
|||
"WHERE " +
|
||||
"dc.deviceId = #{deviceId} " +
|
||||
" <if test='query != null'> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
|
||||
" <if test='parentChannelId != null'> AND dc.parentId=#{parentChannelId} </if> " +
|
||||
" <if test='parentChannelId != null'> AND (dc.parentId=#{parentChannelId} OR dc.civilCode = #{parentChannelId}) </if> " +
|
||||
" <if test='online == true' > AND dc.status=1</if>" +
|
||||
" <if test='online == false' > AND dc.status=0</if>" +
|
||||
" <if test='hasSubChannel == true' > AND dc.subCount > 0 </if>" +
|
||||
|
@ -309,8 +309,10 @@ public interface DeviceChannelMapper {
|
|||
"select * " +
|
||||
"from device_channel " +
|
||||
"where deviceId=#{deviceId}" +
|
||||
" <if test='parentId != null' > and left(channelId, ${parentId.length()}) = #{parentId}</if>" +
|
||||
" <if test='length != null' > and length(channelId)=${length}</if>" +
|
||||
" <if test='parentId != null and length != null' > and parentId = #{parentId} or left(channelId, ${parentId.length()}) = #{parentId} and length(channelId)=${length} </if>" +
|
||||
" <if test='parentId == null and length != null' > and parentId = #{parentId} or length(channelId)=${length} </if>" +
|
||||
" <if test='parentId == null and length == null' > and parentId = #{parentId} </if>" +
|
||||
" <if test='parentId != null and length == null' > and parentId = #{parentId} or left(channelId, ${parentId.length()}) = #{parentId} </if>" +
|
||||
" </script>"})
|
||||
List<DeviceChannel> getChannelsWithCivilCodeAndLength(String deviceId, String parentId, Integer length);
|
||||
|
||||
|
|
Loading…
Reference in New Issue