From e2ea7986cf5e27e448a25c48c8c4cc771c067b0e Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期三, 21 六月 2023 16:41:42 +0800 Subject: [PATCH] 优化报警类型配置 --- ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 58 insertions(+), 1 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 26b741a..71b98b5 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,6 +1,8 @@ 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; @@ -14,6 +16,7 @@ import com.ruoyi.alarmpoints.tube.mapper.ArdTubesMapper; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; +import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.utils.tools.ArdTool; @@ -52,6 +55,8 @@ @Resource ArdAlarmTubeMapper ardAlarmTubeMapper; @Resource + ArdAlarmCameraMapper ardAlarmCameraMapper; + @Resource ArdTubesMapper ardTubesMapper; @Resource ArdAlarmpointsWellMapper ardAlarmpointsWellMapper; @@ -63,6 +68,8 @@ private ArdCamerasMapper ardCamerasMapper; @Resource private IHikClientService hikClientService; + @Resource + private RedisCache redisCache; /** * @鎻忚堪 鎸夋潯浠舵煡璇㈡姤璀� * @鍙傛暟 [condition] @@ -88,6 +95,21 @@ .setAltitude(ardAlarmStealelec.getAltitude()) .setCount(ardAlarmStealelec.getCount()) .setTotal(ardAlarmStealelec.getTotal()); + 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()); @@ -229,6 +251,29 @@ } //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; } } catch (Exception ex) { log.error("鎺ユ敹鎶ヨ寮傚父:" + ex.getMessage()); @@ -246,15 +291,22 @@ private String guideCamera(CameraCmd cmd) { String url = ""; try { + String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime"); //鑾峰彇鎵�鏈夊ぇ鍏夌數 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(cmd.getTargetPosition(), 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) { @@ -262,9 +314,14 @@ //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D String minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap); log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:"+minDistanceCameraId+"锛屽皾璇曞紩瀵�"); + if(guideMap.get(minDistanceCameraId).equals(0)) + { + log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�"); + return ""; + } //寮曞鍏夌數 cmd.setCameraId(minDistanceCameraId); - cmd.setChannelNum(1); + cmd.setChannelNum(ArdTool.getChannelBydayNightTime(dayNightTime)); boolean guideRes = hikClientService.guideTargetPosition(cmd); if (guideRes) { log.debug("寮曞鎴愬姛锛屽皾璇曞綍鍍�"); -- Gitblit v1.9.3