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