From 7991d16832df3d9f5c293d543ff8da40c36ef08d Mon Sep 17 00:00:00 2001
From: Administrator <1144154118@qq.com>
Date: 星期六, 19 八月 2023 16:13:34 +0800
Subject: [PATCH] 巡检循环
---
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 88 ++++++++++++++++++++++++++++++++++++++++---
1 files changed, 81 insertions(+), 7 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
index 7a1a5be..88b4637 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
@@ -2,6 +2,7 @@
import java.time.LocalTime;
import java.util.*;
+import java.util.stream.Collectors;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.domain.entity.SysDept;
@@ -10,7 +11,12 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.camera.domain.CameraCmd;
+import com.ruoyi.device.channel.domain.ArdChannel;
+import com.ruoyi.device.channel.mapper.ArdChannelMapper;
+import com.ruoyi.device.channel.service.IArdChannelService;
import com.ruoyi.device.hiksdk.common.GlobalVariable;
+import com.ruoyi.device.hiksdk.service.IHikClientService;
+import com.ruoyi.scheduling.domian.SchedulingParam;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.utils.tools.ArdTool;
import com.ruoyi.device.camera.domain.ArdCameras;
@@ -19,6 +25,7 @@
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.utils.tools.GisTool;
+import com.sun.org.apache.bcel.internal.generic.NEW;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -40,6 +47,10 @@
private SysDeptMapper sysDeptMapper;
@Resource
private RedisCache redisCache;
+ @Resource
+ private IHikClientService hikClientService;
+ @Resource
+ private ArdChannelMapper ardChannelMapper;
@PostConstruct
@@ -108,7 +119,20 @@
ardCameras.setCreateTime(DateUtils.getNowDate());
ardCameras.setUserId(SecurityUtils.getUserId());
redisCache.setCacheObject(getCacheKey(ardCameras.getId()), ardCameras);
- return ardCamerasMapper.insertArdCameras(ardCameras);
+ int i = ardCamerasMapper.insertArdCameras(ardCameras);
+ if (i > 0) {
+// //鍒犻櫎褰撳墠鐩告満鐨勬墍鏈夐�氶亾
+// ardChannelMapper.deleteArdChannelByDeviceId(ardCameras.getId());
+// //鑾峰彇鐩告満閫氶亾
+// List<ArdChannel> ipChannelList = hikClientService.getCameraChannelList(ardCameras);
+// if (ipChannelList.size() > 0) {
+// for (ArdChannel channel : ipChannelList) {
+// channel.setId(IdUtils.simpleUUID());
+// ardChannelMapper.insertArdChannel(channel);
+// }
+// }
+ }
+ return i;
}
/**
@@ -137,11 +161,11 @@
@Override
public int deleteArdCamerasByIds(String[] ids) {
int res = ardCamerasMapper.deleteArdCamerasByIds(ids);
- if(res>0)
- {
- for(String id:ids)
- {
+ if (res > 0) {
+ for (String id : ids) {
redisCache.deleteObject(getCacheKey(id));
+ //鍒犻櫎褰撳墠鐩告満鐨勬墍鏈夐�氶亾
+ ardChannelMapper.deleteArdChannelByDeviceId(id);
}
}
return res;
@@ -155,7 +179,12 @@
*/
@Override
public int deleteArdCamerasById(String id) {
- return ardCamerasMapper.deleteArdCamerasById(id);
+ int i = ardCamerasMapper.deleteArdCamerasById(id);
+ if (i > 0) {
+ //鍒犻櫎褰撳墠鐩告満鐨勬墍鏈夐�氶亾
+ ardChannelMapper.deleteArdChannelByDeviceId(id);
+ }
+ return i;
}
public List findOptions(ArdCameras ardCameras) {
@@ -248,7 +277,7 @@
}
if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) {
distanceMap.put(camera.getId(), distance);
- camera.setChannel(ArdTool.getChannelBydayNightTime(dayNightTime));
+ camera.setChanNo(ArdTool.getChannelBydayNightTime(dayNightTime));
ardCameras.put(distance, camera);
}
@@ -260,5 +289,50 @@
return null;
}
+ /**
+ * 鑾峰彇鐩戞帶鍦堝唴鎵�鏈夊湪绾垮厜鐢�
+ * 鍒樿嫃涔�
+ * 2023/8/17 13:57:21
+ */
+ @Override
+ public List<ArdCameras> getNearCameras(SchedulingParam param) {
+ try {
+ Double longitude = param.getLongitude();
+ Double latitude = param.getLatitude();
+ if (longitude == null && latitude == null) {
+ log.debug("鍘熺偣鍧愭爣涓虹┖");
+ return null;
+ }
+ Integer radius = param.getMonitoringRadius();
+ if (radius == null) {
+ log.debug("鐩戞帶鍦堝崐寰勮窛绂讳负绌�");
+ return null;
+ }
+ String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime");
+ //鑾峰彇鎵�鏈夊厜鐢�
+ List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras());
+ //缁熻鎵�鏈夊厜鐢靛彲瑙嗚寖鍥村唴涓庢姤璀︾偣鐨勮窛绂�
+ List<ArdCameras> ardCameras = new ArrayList<>();
+ for (ArdCameras camera : ardCamerasList) {
+ if (camera.getLongitude() == null && camera.getLatitude() == null) {
+ continue;
+ }
+ double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()};
+ double distance = GisTool.getDistance(new double[]{longitude, latitude}, camPosition);
+ if (distance <= radius) {
+ camera.setChanNo(ArdTool.getChannelBydayNightTime(dayNightTime));
+ ardCameras.add(camera);
+ }
+ }
+ //杩囨护鍦ㄧ嚎鐩告満
+ List<ArdCameras> onlineList = ardCameras.stream()
+ .filter(ardCamera -> (!ardCamera.getLoginId().equals(-1)))
+ .collect(Collectors.toList());
+ return onlineList;
+ } catch (Exception ex) {
+ log.error("鑾峰彇闄勮繎鐩告満寮傚父:" + ex.getMessage());
+ }
+ return null;
+ }
}
--
Gitblit v1.9.3