From c422623743896020d819972e20895aea1896f823 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 29 六月 2023 11:37:24 +0800
Subject: [PATCH] 井管理增加关联相机字段

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java |  201 +++++++++++++++++++--------------
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GuideTask.java              |   22 +++
 ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java            |    3 
 ard-work/src/main/java/com/ruoyi/constant/CamPriority.java                                  |    4 
 ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml                 |    7 +
 ruoyi-admin/src/main/resources/application-ard.yml                                          |    2 
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java           |   33 +++++
 ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/ArdAlarmRadar.java                 |    6 
 ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/RadarAlarmData.java                |   27 ++++
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/PriorityQueueExample.java   |   42 +++++++
 10 files changed, 259 insertions(+), 88 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
new file mode 100644
index 0000000..937237d
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
@@ -0,0 +1,33 @@
+package com.ruoyi.alarm.globalAlarm.domain;
+
+import com.ruoyi.alarm.globalAlarm.service.impl.GuideTask;
+
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @ClassName: PriorityQueue
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�29鏃�11:18
+ * @Version: 1.0
+ **/
+public class GuidePriorityQueue {
+    /**
+     * 鐩告満闃熷垪锛屾瘡涓浉鏈轰竴涓紭鍏堢骇闃熷垪
+     */
+    public static Map<String, java.util.PriorityQueue<GuideTask>> cameraQueueMap = new HashMap<>();
+
+    /**
+     * 鍒涘缓涓�涓嚜瀹氫箟鐨勬瘮杈冨櫒锛屾牴鎹紭鍏堢骇灞炴�ц繘琛屾瘮杈�
+     */
+    public static Comparator<GuideTask> getComparator() {
+        Comparator<GuideTask> PriorityDescCom = Comparator.comparingInt(GuideTask::getPriority).reversed();
+        Comparator<GuideTask> NumDescCom = Comparator.comparingInt(GuideTask::getNum).reversed();
+        Comparator<GuideTask> alarmTimeAscCom = Comparator.comparing(GuideTask::getAlarmTime);
+        Comparator<GuideTask> Comparator = PriorityDescCom.thenComparing(NumDescCom).thenComparing(alarmTimeAscCom);
+        return Comparator;
+    }
+
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
index 5d24727..90cbeb2 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -7,6 +7,7 @@
 import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData;
 import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService;
 import com.ruoyi.alarm.radarAlarm.domain.ArdAlarmRadar;
+import com.ruoyi.alarm.radarAlarm.domain.RadarAlarmData;
 import com.ruoyi.alarm.radarAlarm.mapper.ArdAlarmRadarMapper;
 import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec;
 import com.ruoyi.alarm.stealAlarm.mapper.ArdAlarmStealelecMapper;
@@ -119,7 +120,7 @@
                         })
                         .collect(Collectors.toList());
             case 1003:
-                List<ArdAlarmRadar> ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime,"杩愬姩鐩爣妫�娴�");
+                List<ArdAlarmRadar> ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "杩愬姩鐩爣妫�娴�");
                 return ardAlarmRadars.stream()
                         .map(ardAlarmRadar -> {
                             GlobalAlarmData globalAlarmData = new GlobalAlarmData()
@@ -134,7 +135,7 @@
                         })
                         .collect(Collectors.toList());
             case 1004:
-                ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime,"鐑簮妫�娴�");
+                ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "鐑簮妫�娴�");
                 return ardAlarmRadars.stream()
                         .map(ardAlarmRadar -> {
                             GlobalAlarmData globalAlarmData = new GlobalAlarmData()
@@ -214,17 +215,11 @@
     @Async("alarmExecutor")
     public void receiveAlarm(String topic, String message) {
         try {
-            String simpleUUID = IdUtils.simpleUUID();
             switch (topic) {
                 case "stealelec":
                     //region 澶勭悊鐩楃數鎶ヨ
                     ArdAlarmStealelec ardAlarmStealelec = JSONObject.parseObject(message, ArdAlarmStealelec.class);
-                    ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(ardAlarmStealelec.getDescribe());
-                    if (well != null) {
-                        ardAlarmStealelec.setLongitude(well.getLongitude());
-                        ardAlarmStealelec.setLatitude(well.getLatitude());
-                        ardAlarmStealelec.setAltitude(well.getAltitude());
-                    }
+
                     ArdAlarmStealelec existe = ardAlarmStealelecMapper.selectByPrimaryKey(ardAlarmStealelec.getId());
                     if (StringUtils.isNotNull(existe)) {
                         return;
@@ -232,18 +227,27 @@
                     int aas = ardAlarmStealelecMapper.insertArdAlarmStealelec(ardAlarmStealelec);
                     if (aas > 0) {
                         log.info("stealelec鍏ュ簱鎴愬姛锛�" + ardAlarmStealelec);
-                        //寮曞褰曞儚
-                        CameraCmd cmd = new CameraCmd();
-                        cmd.setRecordBucketName("record");
-                        cmd.setRecordObjectName("stealelec");
-                        cmd.setOperator("sys_steal_elec");
-                        cmd.setExpired(30);
-                        cmd.setTargetPosition(new double[]{well.getLongitude(), well.getLatitude(), well.getAltitude()});
-                        String url = guideCamera(cmd);
-                        if (StringUtils.isNotEmpty(url)) {
-                            //鏇存柊褰曞儚
-                            ardAlarmStealelec.setRecordUrl(url);
-                            ardAlarmStealelecMapper.updateArdAlarmStealelec(ardAlarmStealelec);
+                        ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(ardAlarmStealelec.getDescribe());
+                        if (well != null) {
+                            ardAlarmStealelec.setLongitude(well.getLongitude());
+                            ardAlarmStealelec.setLatitude(well.getLatitude());
+                            ardAlarmStealelec.setAltitude(well.getAltitude());
+                            //寮曞褰曞儚
+                            CameraCmd cmd = new CameraCmd();
+                            cmd.setRecordBucketName("record");
+                            cmd.setRecordObjectName("stealelec");
+                            cmd.setOperator("sys_steal_elec");
+                            cmd.setExpired(30);
+                            cmd.setTargetPosition(new double[]{well.getLongitude(), well.getLatitude(), well.getAltitude()});
+                            boolean res = guideCamera(cmd);
+                            if (res) {
+                                String url = alarmToRecord(cmd);
+                                if (StringUtils.isNotEmpty(url)) {
+                                    //鏇存柊褰曞儚
+                                    ardAlarmStealelec.setRecordUrl(url);
+                                    ardAlarmStealelecMapper.updateArdAlarmStealelec(ardAlarmStealelec);
+                                }
+                            }
                         }
                     }
                     //endregion
@@ -251,7 +255,7 @@
                 case "tube":
                     //region 澶勭悊绠$嚎娉勯湶鎶ヨ
                     ArdAlarmTube ardAlarmTube = JSONObject.parseObject(message, ArdAlarmTube.class);
-                    ardAlarmTube.setId(simpleUUID);
+                    ardAlarmTube.setId(IdUtils.simpleUUID());
                     ArdTubesDetails atd = new ArdTubesDetails();
                     atd.setReelNumber(ardAlarmTube.getTubeId());
                     List<ArdTubesDetails> ardTubesDetails = ardTubesDetailsMapper.selectArdTubesDetailsList(atd);
@@ -279,11 +283,14 @@
                         cmd.setOperator("sys_tube_leak");
                         cmd.setExpired(30);
                         cmd.setTargetPosition(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude(), ardAlarmTube.getAltitude()});
-                        String url = guideCamera(cmd);
-                        //鏇存柊褰曞儚
-                        if (StringUtils.isNotEmpty(url)) {
-                            ardAlarmTube.setRecordUrl(url);
-                            ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube);
+                        boolean res = guideCamera(cmd);
+                        if (res) {
+                            String url = alarmToRecord(cmd);
+                            if (StringUtils.isNotEmpty(url)) {
+                                //鏇存柊褰曞儚
+                                ardAlarmTube.setRecordUrl(url);
+                                ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube);
+                            }
                         }
                     }
                     //endregion
@@ -291,7 +298,7 @@
                 case "camera":
                     //region 澶勭悊閫氱敤鍏夌數鎶ヨ
                     ArdAlarmCamera ardAlarmCamera = JSONObject.parseObject(message, ArdAlarmCamera.class);
-                    ardAlarmCamera.setId(simpleUUID);
+                    ardAlarmCamera.setId(IdUtils.simpleUUID());
                     int aac = ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera);
                     if (aac > 0) {
                         log.debug("camera鍏ュ簱鎴愬姛锛�" + ardAlarmCamera);
@@ -302,23 +309,45 @@
                         cmd.setOperator("sys_camera");
                         cmd.setExpired(30);
                         cmd.setTargetPosition(new double[]{ardAlarmCamera.getLongitude(), ardAlarmCamera.getLatitude()});
-                        String url = guideCamera(cmd);
-                        //鏇存柊褰曞儚
-                        if (StringUtils.isNotEmpty(url)) {
-                            ardAlarmCamera.setRecordUrl(url);
-                            ardAlarmCameraMapper.updateArdAlarmCamera(ardAlarmCamera);
+                        boolean res = guideCamera(cmd);
+                        if (res) {
+                            String url = alarmToRecord(cmd);
+                            if (StringUtils.isNotEmpty(url)) {
+                                //鏇存柊褰曞儚
+                                ardAlarmCamera.setRecordUrl(url);
+                                ardAlarmCameraMapper.updateArdAlarmCamera(ardAlarmCamera);
+                            }
                         }
                     }
                     //endregion
                     break;
                 case "radar":
                     //region 澶勭悊闆疯揪鎶ヨ
-                    ArdAlarmRadar ardAlarmRadar = JSONObject.parseObject(message, ArdAlarmRadar.class);
-                    ardAlarmRadar.setId(simpleUUID);
-                    int aar = ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
-                    if (aar > 0) {
-                        log.debug("radar鍏ュ簱鎴愬姛锛�" + ardAlarmRadar);
+                    RadarAlarmData radarAlarmData = JSONObject.parseObject(message, RadarAlarmData.class);
+                    List<ArdAlarmRadar> ardAlarmRadars = radarAlarmData.getArdAlarmRadars();
+                    Map<String, Object> readyGuide = new HashMap<>();
+                    for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) {
+                        ardAlarmRadar.setId(IdUtils.simpleUUID());
+                        ardAlarmRadar.setAlarmTime(radarAlarmData.getAlarmTime());
+                        int aar = ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
+                        if (aar > 0) {
+                            log.debug("radar鍏ュ簱鎴愬姛锛�" + ardAlarmRadar);
+                        }
+                        readyGuide.put(ardAlarmRadar.getName(), ardAlarmRadar);//姣忎釜鎶ヨ鐐瑰彇鍑轰竴鏉℃姤璀�
                     }
+                    //鑾峰彇姣忎釜鎶ヨ鐐瑰叧鑱旂殑鐩告満
+
+                    //鍏堟壘鎶ヨ闆疯揪濉斾笂鐨勭浉鏈�
+                    CameraCmd cmd = new CameraCmd();
+                    cmd.setCameraId("1");
+                    cmd.setChannelNum(1);
+                    boolean b = guideCamera(cmd);
+
+                    //鍐嶆壘鎶ヨ鐐瑰叧鑱旂殑鐩告満
+                    cmd.setCameraId("2");
+                    cmd.setChannelNum(1);
+                    boolean b1 = guideCamera(cmd);
+
                     //endregion
                     break;
             }
@@ -329,14 +358,13 @@
 
     /**
      * @鎻忚堪 寮曞鏈�杩戠殑澶у厜鐢垫寚鍚戠洰鏍�
-     * @鍙傛暟 [targetPosition]
-     * @杩斿洖鍊� java.lang.String
+     * @鍙傛暟 [cmd]
+     * @杩斿洖鍊� boolean
      * @鍒涘缓浜� 鍒樿嫃涔�
-     * @鍒涘缓鏃堕棿 2023/6/15 11:55
+     * @鍒涘缓鏃堕棿 2023/6/28 16:34
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
-    private String guideCamera(CameraCmd cmd) {
-        String url = "";
+    private boolean guideCamera(CameraCmd cmd) {
         try {
             String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime");
             //鑾峰彇鎵�鏈夊ぇ鍏夌數
@@ -362,33 +390,52 @@
                 log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId + "锛屽皾璇曞紩瀵�");
                 if (guideMap.get(minDistanceCameraId).equals(0)) {
                     log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�");
-                    return "";
+                    return false;
                 }
                 //寮曞鍏夌數
                 cmd.setCameraId(minDistanceCameraId);
                 cmd.setChannelNum(ArdTool.getChannelBydayNightTime(dayNightTime));
                 boolean guideRes = hikClientService.guideTargetPosition(cmd);
-                if (guideRes) {
-                    log.debug("寮曞鎴愬姛锛屽皾璇曞綍鍍�");
-                    hikClientService.controlLock(cmd);//涓婇攣
-                    cmd.setEnable(true);//寮�濮嬪綍鍍�
-                    hikClientService.recordToMinio(cmd);//寮�濮嬪綍鍍�
-                    GlobalVariable.threadMap.put(minDistanceCameraId, Thread.currentThread().getName());//灏嗙浉鏈篿d涓庡綋鍓嶅鐞嗙嚎绋嬪悕绉扮粦瀹�
-                    Thread.sleep(cmd.getExpired() * 1000);//褰曞儚鏃堕暱
-                    String thread = GlobalVariable.threadMap.get(minDistanceCameraId);
-                    String currentThread = Thread.currentThread().getName();
-                    //鍒ゆ柇鐩告満缁戝畾绾跨▼鏄惁鏄綋鍓嶇嚎绋嬶紝濡傛灉鏄紝鍋滄褰曞儚锛屽鏋滀笉鏄紝璇存槑鐩告満琚叾浠栫嚎绋嬫姠鍗狅紝涓嶅仠姝㈠綍鍍�
-                    if (thread.equals(currentThread)) {
-                        cmd.setEnable(false);//鍋滄褰曞儚
-                        cmd.setUploadMinio(true);//涓婁紶minio
-                        url = hikClientService.recordToMinio(cmd);//鍋滄褰曞儚杩斿洖url
-                    }
-                }
+                return guideRes;
+
             } else {
                 log.debug("鏈煡鎵惧埌鏈�杩戝厜鐢�");
+                return false;
             }
         } catch (Exception ex) {
             log.error("寮曞寮傚父:" + ex.getMessage());
+            return false;
+        }
+    }
+
+    /**
+     * @鎻忚堪 鎶ヨ褰曞儚
+     * @鍙傛暟 [cmd]
+     * @杩斿洖鍊� java.lang.String
+     * @鍒涘缓浜� 鍒樿嫃涔�
+     * @鍒涘缓鏃堕棿 2023/6/28 16:33
+     * @淇敼浜哄拰鍏跺畠淇℃伅
+     */
+    public String alarmToRecord(CameraCmd cmd) {
+        String url = "";
+        try {
+            log.debug("寮曞鎴愬姛锛屽皾璇曞綍鍍�");
+            String cameraId = cmd.getCameraId();
+            hikClientService.controlLock(cmd);//涓婇攣
+            cmd.setEnable(true);//寮�濮嬪綍鍍�
+            hikClientService.recordToMinio(cmd);//寮�濮嬪綍鍍�
+            GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName());//灏嗙浉鏈篿d涓庡綋鍓嶅鐞嗙嚎绋嬪悕绉扮粦瀹�
+            Thread.sleep(cmd.getExpired() * 1000);//褰曞儚鏃堕暱
+            String thread = GlobalVariable.threadMap.get(cameraId);
+            String currentThread = Thread.currentThread().getName();
+            //鍒ゆ柇鐩告満缁戝畾绾跨▼鏄惁鏄綋鍓嶇嚎绋嬶紝濡傛灉鏄紝鍋滄褰曞儚锛屽鏋滀笉鏄紝璇存槑鐩告満琚叾浠栫嚎绋嬫姠鍗狅紝涓嶅仠姝㈠綍鍍�
+            if (thread.equals(currentThread)) {
+                cmd.setEnable(false);//鍋滄褰曞儚
+                cmd.setUploadMinio(true);//涓婁紶minio
+                url = hikClientService.recordToMinio(cmd);//鍋滄褰曞儚杩斿洖url
+            }
+        } catch (Exception ex) {
+            log.error("褰曞儚寮傚父:" + ex.getMessage());
         }
         return url;
     }
@@ -410,9 +457,9 @@
         countMap.put("1001", count1001);
         int count1002 = ardAlarmCameraMapper.selectCountByAlarmTime(refreshTime);
         countMap.put("1002", count1002);
-        int count1003 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime,"杩愬姩鐩爣妫�娴�");
+        int count1003 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime, "杩愬姩鐩爣妫�娴�");
         countMap.put("1003", count1003);
-        int count1004 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime,"鐑簮妫�娴�");
+        int count1004 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime, "鐑簮妫�娴�");
         countMap.put("1004", count1004);
         int count1014 = ardAlarmTubeMapper.selectCountByAlarmTime(refreshTime);
         countMap.put("1014", count1014);
@@ -420,6 +467,14 @@
         return map;
     }
 
+    /**
+     * @鎻忚堪 鍘嗗彶鎶ヨ鏌ヨ
+     * @鍙傛暟 [command, beginTime, endTime, pageNum, pageSize]
+     * @杩斿洖鍊� java.lang.Object
+     * @鍒涘缓浜� 鍒樿嫃涔�
+     * @鍒涘缓鏃堕棿 2023/6/28 13:30
+     * @淇敼浜哄拰鍏跺畠淇℃伅
+     */
     @Override
     public Object selectAlarmList(Integer command, String beginTime, String endTime, Integer pageNum, Integer pageSize) {
         Map<String, Object> params = new HashMap<>();
@@ -465,28 +520,6 @@
                 return ardAlarmTubes;
         }
         return null;
-    }
-
-    public static void main(String[] args) {
-        // 缁欏畾鍧愭爣 A
-        double Ax = 0;
-        double Ay = 0;
-
-        // 缁欏畾瑙掑害锛堜互搴︿负鍗曚綅锛�
-        double angle = 45;
-
-        // 缁欏畾璺濈
-        double distance = 1.414;
-
-        // 灏嗚搴﹁浆鎹负寮у害
-        double radians = Math.toRadians(angle);
-
-        // 璁$畻 B 鍧愭爣
-        double Bx = Ax + distance * Math.cos(radians);
-        double By = Ay + distance * Math.sin(radians);
-
-        // 杈撳嚭缁撴灉
-        System.out.println("鍧愭爣 B: (" + Bx + ", " + By + ")");
     }
 
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GuideTask.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GuideTask.java
new file mode 100644
index 0000000..56ea080
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GuideTask.java
@@ -0,0 +1,22 @@
+package com.ruoyi.alarm.globalAlarm.service.impl;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @Description: 寮曞浠诲姟
+ * @ClassName: GuideTask
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�29鏃�11:05
+ * @Version: 1.0
+ **/
+@Data
+@AllArgsConstructor
+public class GuideTask {
+
+    String alarmId;
+    String alarmType;
+    Integer priority;
+    String alarmTime;
+    Integer num;
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/PriorityQueueExample.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/PriorityQueueExample.java
new file mode 100644
index 0000000..fa468d4
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/PriorityQueueExample.java
@@ -0,0 +1,42 @@
+package com.ruoyi.alarm.globalAlarm.service.impl;
+import com.ruoyi.alarm.globalAlarm.domain.GuidePriorityQueue;
+import java.util.Comparator;
+import java.util.PriorityQueue;
+/**
+ * @Description:
+ * @ClassName: PriorityQueueExample
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�29鏃�10:41
+ * @Version: 1.0
+ **/
+
+public class PriorityQueueExample {
+    public static void main(String[] args) {
+
+        Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
+        // 鍒涘缓鐩告満1鐨勪紭鍏堢骇闃熷垪锛屽苟浼犲叆鑷畾涔夌殑姣旇緝鍣�
+        PriorityQueue<GuideTask> queue1 = new PriorityQueue<>(comparator);
+        // 娣诲姞瀵硅薄鍒伴槦鍒椾腑
+        GuideTask task1 = new GuideTask("task1", "radar", 999, "2023-06-29 11:10:00", 1);
+        GuideTask task2 = new GuideTask("task2", "radar", 999, "2023-06-29 11:11:00", 2);
+        GuideTask task3 = new GuideTask("task3", "radar", 999, "2023-06-29 11:12:00", 1);
+        GuideTask task4 = new GuideTask("task4", "radar", 888, "2023-06-29 11:13:00", 3);
+        queue1.add(task1);
+        queue1.add(task2);
+        queue1.add(task3);
+        queue1.add(task4);
+
+
+        GuidePriorityQueue.cameraQueueMap.put("鐩告満1", queue1);
+
+        for (String camera :  GuidePriorityQueue.cameraQueueMap.keySet()) {
+            PriorityQueue<GuideTask> queue =  GuidePriorityQueue.cameraQueueMap.get(camera);
+
+            // 渚濇鍙栧嚭闃熷垪涓殑瀵硅薄骞舵墦鍗�
+            while (!queue.isEmpty()) {
+                GuideTask obj = queue.poll();
+                System.out.println(obj.getAlarmId() + " - Priority: " + obj.getPriority() + "- Num:" + obj.getNum() + "- time-" + obj.getAlarmTime());
+            }
+        }
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/ArdAlarmRadar.java b/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/ArdAlarmRadar.java
index 9229d29..c41e78d 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/ArdAlarmRadar.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/ArdAlarmRadar.java
@@ -1,10 +1,10 @@
 package com.ruoyi.alarm.radarAlarm.domain;
 
 import java.util.Date;
+import java.util.List;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
@@ -70,4 +70,6 @@
      */
     private Integer count;
 
+
+
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/RadarAlarmData.java b/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/RadarAlarmData.java
new file mode 100644
index 0000000..2d8da84
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/domain/RadarAlarmData.java
@@ -0,0 +1,27 @@
+package com.ruoyi.alarm.radarAlarm.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @ClassName: radarAlarmInfos
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�28鏃�13:48
+ * @Version: 1.0
+ **/
+@Data
+public class RadarAlarmData {
+
+    /** 鎶ヨ鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鎶ヨ鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date alarmTime;
+
+    private List<ArdAlarmRadar> ardAlarmRadars;
+
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java
index 514a55c..84b69d2 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java
@@ -93,4 +93,7 @@
 
     /** 鐢ㄦ埛id */
     private String userId;
+
+    /** 鍏宠仈鐩告満ID */
+    private String cameraId;
 }
diff --git a/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
index 9c96fb2..6ccff29 100644
--- a/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
+++ b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
@@ -1,7 +1,10 @@
 package com.ruoyi.constant;
 
+import com.ruoyi.alarm.globalAlarm.service.impl.GuideTask;
+
 import java.util.HashMap;
 import java.util.Map;
+import java.util.PriorityQueue;
 
 /**
  * @Description: 鐩告満鎺у埗浼樺厛绾�
@@ -11,6 +14,7 @@
  * @Version: 1.0
  **/
 public class CamPriority {
+
     public static Map<String,Object> priorityMap=new HashMap<>();
     static {
         priorityMap.put("sys_radar_fire",999);//闆疯揪闃茬伀鎶ヨ
diff --git a/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml b/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml
index a471902..5bbf963 100644
--- a/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml
@@ -28,6 +28,7 @@
         <result property="createTime" column="create_time"/>
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
+        <result property="cameraId" column="camera_id"/>
     </resultMap>
 
     <sql id="selectArdAlarmpointsWellVo">
@@ -53,7 +54,8 @@
                c.create_by,
                c.create_time,
                c.update_by,
-               c.update_time
+               c.update_time,
+               c.camera_id
         from ard_alarmpoints_well c
                  left join sys_dept d on d.dept_id = c.dept_id
                  left join sys_user u on u.user_id = c.user_id
@@ -115,6 +117,7 @@
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
+            <if test="cameraId != null">camera_id,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -140,6 +143,7 @@
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="cameraId != null">#{cameraId},</if>
         </trim>
     </insert>
 
@@ -168,6 +172,7 @@
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="cameraId != null">camera_id = #{cameraId},</if>
         </trim>
          where well_id = #{wellId}
     </update>
diff --git a/ruoyi-admin/src/main/resources/application-ard.yml b/ruoyi-admin/src/main/resources/application-ard.yml
index 009f450..aa1d61b 100644
--- a/ruoyi-admin/src/main/resources/application-ard.yml
+++ b/ruoyi-admin/src/main/resources/application-ard.yml
@@ -20,7 +20,7 @@
   clientId: m3
   username: admin
   password: xzx12345
-  topic: tube,stealelec
+  topic: tube,stealelec,radar
   timeout: 100
   keepalive: 60
   enabled: true

--
Gitblit v1.9.3