| | |
| | | /** |
| | | * 点位在线PING检测 |
| | | */ |
| | | //TODO:点位在线(修改逻辑只针对工单) |
| | | public void pointOnline() throws ExecutionException, InterruptedException { |
| | | log.info("开始检测点位在线"); |
| | | Integer times = 2; |
| | |
| | | .map(CompletableFuture::join) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toList()); |
| | | //筛选出ping离线的设备,更改数据库为离线 |
| | | //筛选出ping离线的设备,更改数据库为离线,并且更新纯车辆或纯人脸的设备的在线状态(这部分设备不会拉流检测) |
| | | Date now = new Date(); |
| | | List<UpdateOnlineVO> willUpdateList = dataList.stream().filter(result->!result.getPingOnline()).map(item -> { |
| | | List<UpdateOnlineVO> onlineUpdateList = dataList.stream().map(item -> { |
| | | UpdateOnlineVO vo = new UpdateOnlineVO(); |
| | | vo.setOnline(ApiConstants.UY_OnlineSite_Offline); |
| | | if(item.getPingOnline()) { |
| | | vo.setOnline(ApiConstants.UY_OnlineSite_Online); |
| | | }else if(!item.getPingOnline()){ |
| | | vo.setOnline(ApiConstants.UY_OnlineSite_Offline); |
| | | } |
| | | vo.setIp(item.getIp()); |
| | | vo.setUpdateTime(now); |
| | | return vo; |
| | | }).collect(Collectors.toList()); |
| | | monitorMapper.updateOnline(willUpdateList); |
| | | monitorMapper.updateOnline(onlineUpdateList); |
| | | //存放到mongo |
| | | if (!CollectionUtils.isEmpty(dataList)) { |
| | | //如果存在之前的数据先删除 |