|
|
@ -28,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.ConcurrentHashMap; |
|
|
|
|
|
|
|
/** |
|
|
|
* 视频设备数据存储-jdbc实现 |
|
|
@ -197,17 +198,27 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { |
|
|
|
if (deviceChannelList == null) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
List<DeviceChannel> allChannelInPlay = deviceChannelMapper.getAllChannelInPlay(); |
|
|
|
Map<String,DeviceChannel> allChannelMapInPlay = new ConcurrentHashMap<>(); |
|
|
|
if (allChannelInPlay.size() > 0) { |
|
|
|
for (DeviceChannel deviceChannel : allChannelInPlay) { |
|
|
|
allChannelMapInPlay.put(deviceChannel.getChannelId(), deviceChannel); |
|
|
|
} |
|
|
|
} |
|
|
|
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); |
|
|
|
// 数据去重
|
|
|
|
List<DeviceChannel> channels = new ArrayList<>(); |
|
|
|
StringBuilder stringBuilder = new StringBuilder(); |
|
|
|
Map<String, Integer> subContMap = new HashMap<>(); |
|
|
|
if (deviceChannelList != null && deviceChannelList.size() > 1) { |
|
|
|
if (deviceChannelList.size() > 1) { |
|
|
|
// 数据去重
|
|
|
|
Set<String> gbIdSet = new HashSet<>(); |
|
|
|
for (DeviceChannel deviceChannel : deviceChannelList) { |
|
|
|
if (!gbIdSet.contains(deviceChannel.getChannelId())) { |
|
|
|
gbIdSet.add(deviceChannel.getChannelId()); |
|
|
|
if (allChannelMapInPlay.containsKey(deviceChannel.getChannelId())) { |
|
|
|
deviceChannel.setStreamId(allChannelMapInPlay.get(deviceChannel.getChannelId()).getStreamId()); |
|
|
|
} |
|
|
|
channels.add(deviceChannel); |
|
|
|
if (!StringUtils.isEmpty(deviceChannel.getParentId())) { |
|
|
|
if (subContMap.get(deviceChannel.getParentId()) == null) { |
|
|
|