From d7e18fe5f9962b2fc6d8fd7da7692a9aabe50bdf Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 28 六月 2023 10:10:12 +0800
Subject: [PATCH] 报警业务增加雷达报警

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java |  185 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 177 insertions(+), 8 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 ad84498..5d24727 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
@@ -1,9 +1,13 @@
 package com.ruoyi.alarm.globalAlarm.service.impl;
 
 import com.alibaba.fastjson2.JSONObject;
+import com.ruoyi.alarm.cameraAlarm.domain.ArdAlarmCamera;
+import com.ruoyi.alarm.cameraAlarm.mapper.ArdAlarmCameraMapper;
 import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition;
 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.mapper.ArdAlarmRadarMapper;
 import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec;
 import com.ruoyi.alarm.stealAlarm.mapper.ArdAlarmStealelecMapper;
 import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube;
@@ -49,9 +53,13 @@
 @Slf4j(topic = "mqtt")
 public class GlobalAlarmServiceImpl implements IGlobalAlarmService {
     @Resource
+    ArdAlarmRadarMapper ardAlarmRadarMapper;
+    @Resource
     ArdAlarmStealelecMapper ardAlarmStealelecMapper;
     @Resource
     ArdAlarmTubeMapper ardAlarmTubeMapper;
+    @Resource
+    ArdAlarmCameraMapper ardAlarmCameraMapper;
     @Resource
     ArdTubesMapper ardTubesMapper;
     @Resource
@@ -66,6 +74,7 @@
     private IHikClientService hikClientService;
     @Resource
     private RedisCache redisCache;
+
     /**
      * @鎻忚堪 鎸夋潯浠舵煡璇㈡姤璀�
      * @鍙傛暟 [condition]
@@ -94,6 +103,51 @@
                             return globalAlarmData;
                         })
                         .collect(Collectors.toList());
+            case 1002:
+                List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectListAllByCommand(refreshTime);
+                return 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());
+            case 1003:
+                List<ArdAlarmRadar> ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime,"杩愬姩鐩爣妫�娴�");
+                return 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());
+            case 1004:
+                ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime,"鐑簮妫�娴�");
+                return 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());
             case 1014:
                 List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime);
                 return ardAlarmTubes.stream()
@@ -114,6 +168,7 @@
                 return null;
         }
     }
+
     /**
      * @鎻忚堪 鎸夋潯浠舵洿鏂版煡鐪嬫椂闂�
      * @鍙傛暟 [condition]
@@ -146,6 +201,7 @@
                 return null;
         }
     }
+
     /**
      * @鎻忚堪 寮傛澶勭悊鎺ユ敹鐨勬姤璀�
      * @鍙傛暟 [topic, message]
@@ -232,6 +288,39 @@
                     }
                     //endregion
                     break;
+                case "camera":
+                    //region 澶勭悊閫氱敤鍏夌數鎶ヨ
+                    ArdAlarmCamera ardAlarmCamera = JSONObject.parseObject(message, ArdAlarmCamera.class);
+                    ardAlarmCamera.setId(simpleUUID);
+                    int aac = ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera);
+                    if (aac > 0) {
+                        log.debug("camera鍏ュ簱鎴愬姛锛�" + ardAlarmCamera);
+                        //寮曞褰曞儚
+                        CameraCmd cmd = new CameraCmd();
+                        cmd.setRecordBucketName("record");
+                        cmd.setRecordObjectName("camera");
+                        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);
+                        }
+                    }
+                    //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);
+                    }
+                    //endregion
+                    break;
             }
         } catch (Exception ex) {
             log.error("鎺ユ敹鎶ヨ寮傚父:" + ex.getMessage());
@@ -260,16 +349,18 @@
                 double distance = GisTool.getDistance(cmd.getTargetPosition(), camPosition);
                 if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) {
                     distanceMap.put(camera.getId(), distance);
-                    guideMap.put(camera.getId(),camera.getCamAlarmGuideEnable());
+                    if (StringUtils.isNull(camera.getCamAlarmGuideEnable())) {
+                        camera.setCamAlarmGuideEnable(0);
+                    }
+                    guideMap.put(camera.getId(), camera.getCamAlarmGuideEnable());
                 }
             }
             if (distanceMap.size() > 0) {
                 log.debug("灏濊瘯鏌ユ壘鏈�杩戝厜鐢�");
                 //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D
                 String minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap);
-                log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:"+minDistanceCameraId+"锛屽皾璇曞紩瀵�");
-                if(guideMap.get(minDistanceCameraId).equals(0))
-                {
+                log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId + "锛屽皾璇曞紩瀵�");
+                if (guideMap.get(minDistanceCameraId).equals(0)) {
                     log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�");
                     return "";
                 }
@@ -311,13 +402,91 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public Map<String, Integer> selectAlarmLogsCount() {
+    public Map<String, Object> selectAlarmLogsCount() {
+        Map<String, Object> map = new HashMap<>();
         Map<String, Integer> countMap = new HashMap<>();
         String refreshTime = configService.selectConfigByKey("refreshTime");
         int count1001 = ardAlarmStealelecMapper.selectCountByStartTime(refreshTime);
         countMap.put("1001", count1001);
-        int count1014 = ardAlarmTubeMapper.selectCountByStartTime(refreshTime);
-        countMap.put("1014 ", count1014);
-        return countMap;
+        int count1002 = ardAlarmCameraMapper.selectCountByAlarmTime(refreshTime);
+        countMap.put("1002", count1002);
+        int count1003 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime,"杩愬姩鐩爣妫�娴�");
+        countMap.put("1003", count1003);
+        int count1004 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime,"鐑簮妫�娴�");
+        countMap.put("1004", count1004);
+        int count1014 = ardAlarmTubeMapper.selectCountByAlarmTime(refreshTime);
+        countMap.put("1014", count1014);
+        map.put("20000", countMap);
+        return map;
     }
+
+    @Override
+    public Object selectAlarmList(Integer command, String beginTime, String endTime, Integer pageNum, Integer pageSize) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("beginTime", beginTime);
+        params.put("endTime", endTime);
+        switch (command) {
+            case 1001:
+                ArdAlarmStealelec aas = new ArdAlarmStealelec();
+                aas.setParams(params);
+                aas.setPageNum(pageNum);
+                aas.setPageSize(pageSize);
+                List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectArdAlarmStealelecList(aas);
+                return ardAlarmStealelecs;
+            case 1002:
+                ArdAlarmCamera aac = new ArdAlarmCamera();
+                aac.setParams(params);
+                aac.setPageNum(pageNum);
+                aac.setPageSize(pageSize);
+                List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectArdAlarmCameraList(aac);
+                return ardAlarmCameras;
+            case 1003:
+                ArdAlarmRadar aar = new ArdAlarmRadar();
+                aar.setParams(params);
+                aar.setPageNum(pageNum);
+                aar.setPageSize(pageSize);
+                aar.setAlarmType("杩愬姩鐩爣妫�娴�");
+                List<ArdAlarmRadar> ardAlarmRadar = ardAlarmRadarMapper.selectArdAlarmRadarList(aar);
+                return ardAlarmRadar;
+            case 1004:
+                ArdAlarmRadar aarr = new ArdAlarmRadar();
+                aarr.setParams(params);
+                aarr.setPageNum(pageNum);
+                aarr.setPageSize(pageSize);
+                aarr.setAlarmType("鐑簮妫�娴�");
+                List<ArdAlarmRadar> ardAlarmRadarr = ardAlarmRadarMapper.selectArdAlarmRadarList(aarr);
+                return ardAlarmRadarr;
+            case 1014:
+                ArdAlarmTube aat = new ArdAlarmTube();
+                aat.setParams(params);
+                aat.setPageNum(pageNum);
+                aat.setPageSize(pageSize);
+                List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectArdAlarmTubeList(aat);
+                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