From bfc38cacac67f1bf2a5e857865d64cd49dc8175e Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 21 六月 2023 15:53:44 +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