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 +++++++++++++++++++++++++++++---------------------
 1 files changed, 117 insertions(+), 84 deletions(-)

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 + ")");
     }
 
 }

--
Gitblit v1.9.3