Commit 58b9dab89fef80076e79e43c8eafe811a644415c

Authored by IKangXu
1 parent 22441ad5

优化 分屏设备与电子地图中树结构展示信息

优化 国标设备中通道内查看的逻辑,保证与分屏与电子地图中树结构的数据一致
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -398,10 +398,10 @@ public class DeviceServiceImpl implements IDeviceService { @@ -398,10 +398,10 @@ public class DeviceServiceImpl implements IDeviceService {
398 return null; 398 return null;
399 } 399 }
400 // 使用行政区划展示树 400 // 使用行政区划展示树
401 - if (parentId.length() > 10) {  
402 - // TODO 可能是行政区划与业务分组混杂的情形  
403 - return null;  
404 - } 401 +// if (parentId.length() > 10) {
  402 +// // TODO 可能是行政区划与业务分组混杂的情形
  403 +// return null;
  404 +// }
405 405
406 if (parentId.length() == 10 ) { 406 if (parentId.length() == 10 ) {
407 if (onlyCatalog) { 407 if (onlyCatalog) {
@@ -416,7 +416,18 @@ public class DeviceServiceImpl implements IDeviceService { @@ -416,7 +416,18 @@ public class DeviceServiceImpl implements IDeviceService {
416 List<DeviceChannel> channelsForCivilCode = deviceChannelMapper.getChannelsWithCivilCodeAndLength(deviceId, parentId, parentId.length() + 2); 416 List<DeviceChannel> channelsForCivilCode = deviceChannelMapper.getChannelsWithCivilCodeAndLength(deviceId, parentId, parentId.length() + 2);
417 if (!onlyCatalog) { 417 if (!onlyCatalog) {
418 List<DeviceChannel> channels = deviceChannelMapper.getChannelsByCivilCode(deviceId, parentId); 418 List<DeviceChannel> channels = deviceChannelMapper.getChannelsByCivilCode(deviceId, parentId);
419 - channelsForCivilCode.addAll(channels); 419 +
  420 + for(DeviceChannel channel : channels) {
  421 + boolean flag = false;
  422 + for(DeviceChannel deviceChannel : channelsForCivilCode) {
  423 + if(channel.getChannelId().equals(deviceChannel.getChannelId())) {
  424 + flag = true;
  425 + }
  426 + }
  427 + if(!flag) {
  428 + channelsForCivilCode.add(channel);
  429 + }
  430 + }
420 } 431 }
421 List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(channelsForCivilCode, parentId); 432 List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(channelsForCivilCode, parentId);
422 return trees; 433 return trees;
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
@@ -71,7 +71,7 @@ public interface DeviceChannelMapper { @@ -71,7 +71,7 @@ public interface DeviceChannelMapper {
71 "WHERE " + 71 "WHERE " +
72 "dc.deviceId = #{deviceId} " + 72 "dc.deviceId = #{deviceId} " +
73 " <if test='query != null'> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " + 73 " <if test='query != null'> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
74 - " <if test='parentChannelId != null'> AND dc.parentId=#{parentChannelId} </if> " + 74 + " <if test='parentChannelId != null'> AND (dc.parentId=#{parentChannelId} OR dc.civilCode = #{parentChannelId}) </if> " +
75 " <if test='online == true' > AND dc.status=1</if>" + 75 " <if test='online == true' > AND dc.status=1</if>" +
76 " <if test='online == false' > AND dc.status=0</if>" + 76 " <if test='online == false' > AND dc.status=0</if>" +
77 " <if test='hasSubChannel == true' > AND dc.subCount > 0 </if>" + 77 " <if test='hasSubChannel == true' > AND dc.subCount > 0 </if>" +
@@ -309,8 +309,10 @@ public interface DeviceChannelMapper { @@ -309,8 +309,10 @@ public interface DeviceChannelMapper {
309 "select * " + 309 "select * " +
310 "from device_channel " + 310 "from device_channel " +
311 "where deviceId=#{deviceId}" + 311 "where deviceId=#{deviceId}" +
312 - " <if test='parentId != null' > and left(channelId, ${parentId.length()}) = #{parentId}</if>" +  
313 - " <if test='length != null' > and length(channelId)=${length}</if>" + 312 + " <if test='parentId != null and length != null' > and parentId = #{parentId} or left(channelId, ${parentId.length()}) = #{parentId} and length(channelId)=${length} </if>" +
  313 + " <if test='parentId == null and length != null' > and parentId = #{parentId} or length(channelId)=${length} </if>" +
  314 + " <if test='parentId == null and length == null' > and parentId = #{parentId} </if>" +
  315 + " <if test='parentId != null and length == null' > and parentId = #{parentId} or left(channelId, ${parentId.length()}) = #{parentId} </if>" +
314 " </script>"}) 316 " </script>"})
315 List<DeviceChannel> getChannelsWithCivilCodeAndLength(String deviceId, String parentId, Integer length); 317 List<DeviceChannel> getChannelsWithCivilCodeAndLength(String deviceId, String parentId, Integer length);
316 318