From 418a8806dba90a2463f194da759ed6338018d7d2 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期一, 28 八月 2023 16:02:28 +0800 Subject: [PATCH] 增加实时报警聚合接口all --- ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java | 222 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 195 insertions(+), 27 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java index c7d9fb5..1572fae 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java @@ -34,8 +34,8 @@ 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; @@ -278,6 +278,167 @@ } } + @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; +} + /** * @鎻忚堪 鍘嗗彶鎶ヨ鏌ヨ * @鍙傛暟 [command, beginTime, endTime, pageNum, pageSize] @@ -501,6 +662,7 @@ //region 澶勭悊閫氱敤鍏夌數鎶ヨ ArdAlarmCamera ardAlarmCamera = JSONObject.parseObject(message, ArdAlarmCamera.class); ardAlarmCamera.setId(IdUtils.simpleUUID()); + ardAlarmCamera.setCreateTime(new Date()); int aac = ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera); if (aac > 0) { log.debug("camera鍏ュ簱鎴愬姛锛�" + ardAlarmCamera); @@ -541,9 +703,8 @@ } //鎸夊叴瓒g偣鍘婚噸,鐒跺悗鎸夊紩瀵奸�昏緫杩涜寮曞鍏ラ槦 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())) { //鍧愭爣涓虹┖涓嶅紩瀵� @@ -678,7 +839,6 @@ log.info("鐩告満:" + cameraId + "鏈紑鍚姤璀﹀紩瀵煎姛鑳�"); return; } - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); GuideTask guideTask = new GuideTask(); //鐩告満ID @@ -736,35 +896,43 @@ */ private String getNearbyCamera(double[] targetPosition) { String minDistanceCameraId = ""; - //鑾峰彇鎵�鏈夊ぇ鍏夌數 - List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras("1")); - //缁熻鎵�鏈夊ぇ鍏夌數鍙鑼冨洿鍐呬笌鎶ヨ鐐圭殑璺濈 - Map<String, Double> distanceMap = new HashMap<>(); - Map<String, Integer> guideMap = new HashMap<>(); - for (ArdCameras camera : ardCamerasList) { - double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; - double distance = GisTool.getDistance(targetPosition, camPosition); - if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { - distanceMap.put(camera.getId(), distance); - if (StringUtils.isNull(camera.getCamAlarmGuideEnable())) { - camera.setCamAlarmGuideEnable(0); + try { + //鑾峰彇鎵�鏈夊ぇ鍏夌數 + List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras("1")); + //缁熻鎵�鏈夊ぇ鍏夌數鍙鑼冨洿鍐呬笌鎶ヨ鐐圭殑璺濈 + Map<String, Double> distanceMap = new HashMap<>(); + Map<String, Integer> guideMap = new HashMap<>(); + for (ArdCameras camera : ardCamerasList) { + if (camera.getCamMaxVisibleDistance() == null) { + continue; } - guideMap.put(camera.getId(), camera.getCamAlarmGuideEnable()); + double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; + double distance = GisUtil.getDistance(targetPosition, camPosition); + if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { + distanceMap.put(camera.getId(), distance); + if (StringUtils.isNull(camera.getCamAlarmGuideEnable())) { + camera.setCamAlarmGuideEnable(0); + } + guideMap.put(camera.getId(), camera.getCamAlarmGuideEnable()); + } } - } - if (distanceMap.size() > 0) { - log.debug("灏濊瘯鏌ユ壘鏈�杩戝厜鐢�"); - //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D - minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap); - log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId); - if (guideMap.get(minDistanceCameraId).equals(0)) { - log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�"); - return " "; + if (distanceMap.size() > 0) { + log.debug("灏濊瘯鏌ユ壘鏈�杩戝厜鐢�"); + //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D + minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap); + log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId); + if (guideMap.get(minDistanceCameraId).equals(0)) { + log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�"); + return " "; + } } + } catch (Exception ex) { + log.error("鑾峰彇闄勮繎寮�鍚姤璀﹀紩瀵煎姛鑳藉厜鐢靛紓甯�:" + ex.getMessage()); } return minDistanceCameraId; } + /** * 闆疯揪寮曞鍏ラ槦 */ -- Gitblit v1.9.3