| | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.concurrent.CopyOnWriteArrayList; |
| | | |
| | | /** |
| | | * @author lin |
| | |
| | | if (device == null) { |
| | | device = deviceMapper.getDeviceByDeviceId(deviceChannel.getDeviceId()); |
| | | } |
| | | |
| | | |
| | | |
| | | if ("WGS84".equals(device.getGeoCoordSys())) { |
| | | deviceChannel.setLongitudeWgs84(deviceChannel.getLongitude()); |
| | |
| | | return channelMapper.queryChannelListInAll(null, null, null, platformId, null); |
| | | } |
| | | |
| | | @Override |
| | | public boolean updateAllGps(Device device) { |
| | | List<DeviceChannel> deviceChannels = channelMapper.getChannelsWithoutTransform(device.getDeviceId()); |
| | | List<DeviceChannel> result = new CopyOnWriteArrayList<>(); |
| | | if (deviceChannels.size() == 0) { |
| | | return true; |
| | | } |
| | | String now = DateUtil.getNow(); |
| | | deviceChannels.parallelStream().forEach(deviceChannel -> { |
| | | deviceChannel.setUpdateTime(now); |
| | | result.add(updateGps(deviceChannel, device)); |
| | | }); |
| | | int limitCount = 300; |
| | | if (result.size() > limitCount) { |
| | | for (int i = 0; i < result.size(); i += limitCount) { |
| | | int toIndex = i + limitCount; |
| | | if (i + limitCount > result.size()) { |
| | | toIndex = result.size(); |
| | | } |
| | | channelMapper.batchUpdate(result.subList(i, toIndex)); |
| | | } |
| | | }else { |
| | | channelMapper.batchUpdate(result); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public List<Device> getDeviceByChannelId(String channelId) { |
| | | |
| | | return channelMapper.getDeviceByChannelId(channelId); |
| | | } |
| | | |
| | | @Override |
| | | public int deleteChannels(List<DeviceChannel> deleteChannelList) { |
| | | return channelMapper.batchDel(deleteChannelList); |
| | | } |
| | | |
| | | @Override |
| | | public int channelsOnline(List<DeviceChannel> channels) { |
| | | return channelMapper.batchOnline(channels); |
| | | } |
| | | |
| | | @Override |
| | | public int channelsOffline(List<DeviceChannel> channels) { |
| | | return channelMapper.batchOffline(channels); |
| | | } |
| | | |
| | | @Override |
| | | public DeviceChannel getOne(String deviceId, String channelId){ |
| | | return channelMapper.queryChannel(deviceId, channelId); |
| | | } |
| | | |
| | | @Override |
| | | public void batchUpdateChannel(List<DeviceChannel> channels) { |
| | | channelMapper.batchUpdate(channels); |
| | | for (DeviceChannel channel : channels) { |
| | | if (channel.getParentId() != null) { |
| | | channelMapper.updateChannelSubCount(channel.getDeviceId(), channel.getParentId()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void batchAddChannel(List<DeviceChannel> channels) { |
| | | channelMapper.batchAdd(channels); |
| | | for (DeviceChannel channel : channels) { |
| | | if (channel.getParentId() != null) { |
| | | channelMapper.updateChannelSubCount(channel.getDeviceId(), channel.getParentId()); |
| | | } |
| | | } |
| | | } |
| | | } |