| | |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.device.external.domain.ArdEquipExternal; |
| | | import com.ruoyi.device.external.mapper.ArdEquipExternalMapper; |
| | | import com.ruoyi.utils.gis.GisUtil; |
| | | import com.ruoyi.utils.tools.ArdTool; |
| | | import com.ruoyi.utils.tools.GisTool; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.device.camera.domain.ArdCameras; |
| | | import com.ruoyi.device.camera.mapper.ArdCamerasMapper; |
| | |
| | | import javax.annotation.Resource; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.concurrent.ExecutionException; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<GlobalAlarmData> selectAlarmLogsAll() { |
| | | List<GlobalAlarmData> GlobalAlarmDataList = new ArrayList<>(); |
| | | String refreshTime = configService.selectConfigByKey("refreshTime"); |
| | | List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectListAllByCommand(refreshTime); |
| | | List<GlobalAlarmData> alarmData1001 = ardAlarmStealelecs.stream() |
| | | .map(ardAlarmStealelec -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmStealelec.getId()) |
| | | .setName(ardAlarmStealelec.getDescribe()) |
| | | .setAlarmTime(ardAlarmStealelec.getStartTime()) |
| | | .setLongitude(ardAlarmStealelec.getLongitude()) |
| | | .setLatitude(ardAlarmStealelec.getLatitude()) |
| | | .setAltitude(ardAlarmStealelec.getAltitude()) |
| | | .setCount(ardAlarmStealelec.getCount()) |
| | | .setTotal(ardAlarmStealelec.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1001.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1001); |
| | | } |
| | | |
| | | List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectListAllByCommand(refreshTime); |
| | | List<GlobalAlarmData> alarmData1002= ardAlarmCameras.stream() |
| | | .map(ardAlarmCamera -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmCamera.getId()) |
| | | .setName(ardAlarmCamera.getCameraName()) |
| | | .setAlarmTime(ardAlarmCamera.getAlarmTime()) |
| | | .setLongitude(ardAlarmCamera.getLongitude()) |
| | | .setLatitude(ardAlarmCamera.getLatitude()) |
| | | .setCount(ardAlarmCamera.getCount()) |
| | | .setTotal(ardAlarmCamera.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1002.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1002); |
| | | } |
| | | |
| | | List<ArdAlarmRadar> ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "运动目标检测"); |
| | | List<GlobalAlarmData> alarmData1003= ardAlarmRadars.stream() |
| | | .map(ardAlarmRadar -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmRadar.getId()) |
| | | .setName(ardAlarmRadar.getName()) |
| | | .setAlarmTime(ardAlarmRadar.getAlarmTime()) |
| | | .setLongitude(ardAlarmRadar.getLongitude()) |
| | | .setLatitude(ardAlarmRadar.getLatitude()) |
| | | .setCount(ardAlarmRadar.getCount()) |
| | | .setTotal(ardAlarmRadar.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1003.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1003); |
| | | } |
| | | |
| | | ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "热源检测"); |
| | | List<GlobalAlarmData> alarmData1004= ardAlarmRadars.stream() |
| | | .map(ardAlarmRadar -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmRadar.getId()) |
| | | .setName(ardAlarmRadar.getName()) |
| | | .setAlarmTime(ardAlarmRadar.getAlarmTime()) |
| | | .setLongitude(ardAlarmRadar.getLongitude()) |
| | | .setLatitude(ardAlarmRadar.getLatitude()) |
| | | .setCount(ardAlarmRadar.getCount()) |
| | | .setTotal(ardAlarmRadar.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1004.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1004); |
| | | } |
| | | |
| | | List<ArdAlarmExternal> ardAlarmExternals = ardAlarmExternalMapper.selectListAllByCommand(refreshTime, "防区报警"); |
| | | List<GlobalAlarmData> alarmData1005= ardAlarmExternals.stream() |
| | | .map(ardAlarmExternal -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmExternal.getId()) |
| | | .setName(ardAlarmExternal.getAlarmName()) |
| | | .setAlarmTime(ardAlarmExternal.getAlarmTime()) |
| | | .setLongitude(ardAlarmExternal.getLongitude()) |
| | | .setLatitude(ardAlarmExternal.getLatitude()) |
| | | .setCount(ardAlarmExternal.getCount()) |
| | | .setTotal(ardAlarmExternal.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1005.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1005); |
| | | } |
| | | |
| | | List<ArdAlarmAccess> ardAlarmAccesses = ardAlarmAccessMapper.selectListAllByCommand(refreshTime); |
| | | List<GlobalAlarmData> alarmData1006= ardAlarmAccesses.stream() |
| | | .map(ardAlarmAccess -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmAccess.getId()) |
| | | .setName(ardAlarmAccess.getAcsName()) |
| | | .setAlarmTime(ardAlarmAccess.getAlarmTime()) |
| | | .setLongitude(ardAlarmAccess.getLongitude()) |
| | | .setLatitude(ardAlarmAccess.getLatitude()) |
| | | .setCount(ardAlarmAccess.getCount()) |
| | | .setTotal(ardAlarmAccess.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1006.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1006); |
| | | } |
| | | |
| | | ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "雷达抽油机停机"); |
| | | List<GlobalAlarmData> alarmData1007= ardAlarmRadars.stream() |
| | | .map(ardAlarmRadar -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmRadar.getId()) |
| | | .setName(ardAlarmRadar.getName()) |
| | | .setAlarmTime(ardAlarmRadar.getAlarmTime()) |
| | | .setLongitude(ardAlarmRadar.getLongitude()) |
| | | .setLatitude(ardAlarmRadar.getLatitude()) |
| | | .setCount(ardAlarmRadar.getCount()) |
| | | .setTotal(ardAlarmRadar.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1007.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1007); |
| | | } |
| | | |
| | | List<ArdAlarmApponekey> ardAlarmApponekeys = ardAlarmApponekeyMapper.selectListAllByCommand(refreshTime); |
| | | List<GlobalAlarmData> alarmData1009= ardAlarmApponekeys.stream() |
| | | .map(ardAlarmApponekey -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmApponekey.getId()) |
| | | .setName(ardAlarmApponekey.getName()) |
| | | .setAlarmTime(ardAlarmApponekey.getCreateTime()) |
| | | .setLongitude(ardAlarmApponekey.getLongitude()) |
| | | .setLatitude(ardAlarmApponekey.getLatitude()) |
| | | .setCount(ardAlarmApponekey.getCount()) |
| | | .setTotal(ardAlarmApponekey.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1009.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1009); |
| | | } |
| | | |
| | | List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime); |
| | | List<GlobalAlarmData> alarmData1014= ardAlarmTubes.stream() |
| | | .map(ardAlarmTube -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmTube.getId()) |
| | | .setName(ardAlarmTube.getTubeName()) |
| | | .setAlarmTime(ardAlarmTube.getAlarmTime()) |
| | | .setLongitude(ardAlarmTube.getLongitude()) |
| | | .setLatitude(ardAlarmTube.getLatitude()) |
| | | .setAltitude(ardAlarmTube.getAltitude()) |
| | | .setCount(ardAlarmTube.getCount()) |
| | | .setTotal(ardAlarmTube.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | if(alarmData1014.size()>0) { |
| | | GlobalAlarmDataList.addAll(alarmData1014); |
| | | } |
| | | return GlobalAlarmDataList; |
| | | } |
| | | |
| | | /** |
| | | * @描述 历史报警查询 |
| | |
| | | } |
| | | //按兴趣点去重,然后按引导逻辑进行引导入队 |
| | | ardAlarmRadars = ardAlarmRadars.stream() |
| | | .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadar::getName))), ArrayList::new)); |
| | | for(ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) |
| | | { |
| | | .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadar::getName))), ArrayList::new)); |
| | | for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) { |
| | | //遍历报警数据进行引导 |
| | | if (StringUtils.isNull(ardAlarmRadar.getLongitude()) || StringUtils.isNull(ardAlarmRadar.getLatitude())) { |
| | | //坐标为空不引导 |
| | |
| | | continue; |
| | | } |
| | | double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; |
| | | double distance = GisTool.getDistance(targetPosition, camPosition); |
| | | double distance = GisUtil.getDistance(targetPosition, camPosition); |
| | | if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { |
| | | distanceMap.put(camera.getId(), distance); |
| | | if (StringUtils.isNull(camera.getCamAlarmGuideEnable())) { |
| | |
| | | return " "; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.error("获取附近开启报警引导功能光电异常:"+ex.getMessage()); |
| | | } catch (Exception ex) { |
| | | log.error("获取附近开启报警引导功能光电异常:" + ex.getMessage()); |
| | | } |
| | | return minDistanceCameraId; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 雷达引导入队 |
| | | */ |