From 63a661a78e1999423ea7d94277a645ed4b9e7e6d Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 25 八月 2023 15:22:23 +0800
Subject: [PATCH] 优化minio工具类和其他工具类位置 优化派警管理列表分页问题

---
 ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java |   93 ++++++++++++++++++++++++++--------------------
 1 files changed, 53 insertions(+), 40 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 a5935ee..4cefccd 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;
@@ -45,11 +45,13 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
+
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
+
 
 /**
  * @Description: 鍏ㄥ眬鎶ヨ涓氬姟
@@ -499,6 +501,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);
@@ -507,8 +510,6 @@
                     break;
                 case "radar":
                     //region 澶勭悊闆疯揪鎶ヨ
-                    // 寮�濮嬫椂闂�
-                    long stime = System.currentTimeMillis();
                     RadarAlarmData radarAlarmData = JSONObject.parseObject(message, RadarAlarmData.class);
                     List<ArdAlarmRadar> ardAlarmRadars = radarAlarmData.getArdAlarmRadars();
                     for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) {
@@ -519,10 +520,9 @@
                         ardAlarmRadar.setName(ardAlarmRadar.getName() + "(" + radarAlarmData.getRadarName() + ")");//鎶ヨ鐐瑰悕绉�
                         ardAlarmRadar.setCreateTime(new Date());//鎺ユ敹鏃堕棿
 
-                        String alarmType = "";
                         switch (ardAlarmRadar.getAlarmType()) {
                             case "杩愬姩鐩爣妫�娴�":
-                                alarmType = "sys_radar_move";
+                                String alarmType = "sys_radar_move";
                                 break;
                             case "鐑簮妫�娴�":
                                 alarmType = "sys_radar_fire";
@@ -536,11 +536,21 @@
                                 }
                                 break;
                         }
+                        //鍏ュ簱
+                        ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
+
+                    }
+                    //鎸夊叴瓒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)
+                    {
+                        //閬嶅巻鎶ヨ鏁版嵁杩涜寮曞
                         if (StringUtils.isNull(ardAlarmRadar.getLongitude()) || StringUtils.isNull(ardAlarmRadar.getLatitude())) {
+                            //鍧愭爣涓虹┖涓嶅紩瀵�
                             continue;
                         }
                         double[] coordinate = new double[]{ardAlarmRadar.getLongitude(), ardAlarmRadar.getLatitude()};//鎶ヨ鍧愭爣
-
                         //浠巖edis涓彇鍑哄綋鍓嶆姤璀︾偣鐨�5鍒嗛挓鍐呮槸鍚︽湁寮曞
                         ArdAlarmRadar AlarmRadar = redisCache.getCacheObject("global_alarm:" + ardAlarmRadar.getName());//浠巖edis涓彇鍑烘渶鏂板紩瀵肩殑鎶ヨ鏁版嵁
                         if (AlarmRadar == null) {
@@ -550,7 +560,7 @@
                             redisCache.setCacheObject("global_alarm:" + ardAlarmRadar.getName(), ardAlarmRadar, 5, TimeUnit.MINUTES);//寮曞鏁版嵁鍐欏叆redis
                             unGuideCountMap.put(ardAlarmRadar.getName(), 0);
                             //寮曞鍏ラ槦
-                            radarGuide(radarAlarmData.getRadarId(), alarmpointName, alarmType, ardAlarmRadar.getCreateTime(), coordinate);
+                            radarGuide(radarAlarmData.getRadarId(), ardAlarmRadar.getName(), ardAlarmRadar.getAlarmType(), ardAlarmRadar.getCreateTime(), coordinate);
 
                         } else {
                             //5鍒嗛挓鍐卹edis涓湁鏁版嵁锛岃鏄�5鍒嗛挓鍐呮湁寮曞鏁版嵁,鑾峰彇褰撳墠鎶ヨ鐐圭殑鏈紩瀵兼鏁�
@@ -563,7 +573,7 @@
                                     redisCache.setCacheObject("global_alarm:" + ardAlarmRadar.getName(), ardAlarmRadar, 5, TimeUnit.MINUTES);
                                     count = 0;
                                     //寮曞鍏ラ槦
-                                    radarGuide(radarAlarmData.getRadarId(), alarmpointName, alarmType, ardAlarmRadar.getCreateTime(), coordinate);
+                                    radarGuide(radarAlarmData.getRadarId(), ardAlarmRadar.getName(), ardAlarmRadar.getAlarmType(), ardAlarmRadar.getCreateTime(), coordinate);
                                 } else {
                                     ardAlarmRadar.setGuideFlag(0);
                                     count++;
@@ -573,15 +583,10 @@
                                 count = 0;
                             }
                             unGuideCountMap.put(ardAlarmRadar.getName(), count);
+                            //鏇存柊
+                            ardAlarmRadarMapper.updateArdAlarmRadar(ardAlarmRadar);
                         }
-                        //鍏ュ簱
-                        ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
-                        // 缁撴潫鏃堕棿
-                        long etime = System.currentTimeMillis();
-                        // 璁$畻鎵ц鏃堕棿
-                        log.debug("闆疯揪鎶ヨ澶勭悊鏃堕暱锛�" + (etime - stime) + "姣");
                     }
-
                     //endregion
                     break;
                 case "external":
@@ -674,7 +679,6 @@
                 log.info("鐩告満:" + cameraId + "鏈紑鍚姤璀﹀紩瀵煎姛鑳�");
                 return;
             }
-
             SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
             GuideTask guideTask = new GuideTask();
             //鐩告満ID
@@ -691,8 +695,7 @@
             guideTask.setReceiveTime(fmt.format(receiveTime));
             //鎶ヨ浼樺厛绾�(閫氳繃浼樺厛绾у瓧鍏�)
             String priority = DictUtils.getDictValue("cameras_priority", alarmType);
-            if(StringUtils.isEmpty(priority))
-            {
+            if (StringUtils.isEmpty(priority)) {
                 log.debug("鏈尮閰嶅埌浼樺厛绾�,璇锋鏌ヤ紭鍏堢骇瀛楀吀閰嶇疆");
                 return;
             }
@@ -733,35 +736,45 @@
      */
     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