From 6fd982807d55f8fcc3da4afb7a4e82888a06ce42 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 24 六月 2023 15:43:14 +0800
Subject: [PATCH] 优化ptz的websocket推送
---
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 88 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 83 insertions(+), 5 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..175017b 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;
@@ -53,6 +55,8 @@
@Resource
ArdAlarmTubeMapper ardAlarmTubeMapper;
@Resource
+ ArdAlarmCameraMapper ardAlarmCameraMapper;
+ @Resource
ArdTubesMapper ardTubesMapper;
@Resource
ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
@@ -66,6 +70,7 @@
private IHikClientService hikClientService;
@Resource
private RedisCache redisCache;
+
/**
* @鎻忚堪 鎸夋潯浠舵煡璇㈡姤璀�
* @鍙傛暟 [condition]
@@ -94,6 +99,21 @@
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 1014:
List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime);
return ardAlarmTubes.stream()
@@ -114,6 +134,7 @@
return null;
}
}
+
/**
* @鎻忚堪 鎸夋潯浠舵洿鏂版煡鐪嬫椂闂�
* @鍙傛暟 [condition]
@@ -146,6 +167,7 @@
return null;
}
}
+
/**
* @鎻忚堪 寮傛澶勭悊鎺ユ敹鐨勬姤璀�
* @鍙傛暟 [topic, message]
@@ -232,6 +254,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());
@@ -260,16 +305,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 "";
}
@@ -317,7 +364,38 @@
int count1001 = ardAlarmStealelecMapper.selectCountByStartTime(refreshTime);
countMap.put("1001", count1001);
int count1014 = ardAlarmTubeMapper.selectCountByStartTime(refreshTime);
- countMap.put("1014 ", count1014);
+ countMap.put("1014", count1014);
return countMap;
}
+
+ @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 1014:
+ ArdAlarmTube aat = new ArdAlarmTube();
+ aat.setParams(params);
+ aat.setPageNum(pageNum);
+ aat.setPageSize(pageSize);
+ List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectArdAlarmTubeList(aat);
+ return ardAlarmTubes;
+ }
+ return null;
+ }
}
--
Gitblit v1.9.3