From da1432df263aa1aa4390f54b2635bb70e7f5207b Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 22 八月 2023 11:24:16 +0800
Subject: [PATCH] 优化实体
---
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 54 insertions(+), 1 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 e14f950..fd602a2 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
@@ -1,5 +1,6 @@
package com.ruoyi.device.camera.service.impl;
+import java.awt.geom.Point2D;
import java.time.LocalTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -25,6 +26,7 @@
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.utils.tools.GisTool;
+import com.ruoyi.utils.tools.Point;
import com.sun.org.apache.bcel.internal.generic.NEW;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -329,7 +331,58 @@
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));
+ /*鑾峰彇閫氶亾鍒楄〃*/
+ ArdChannel ardChannel=new ArdChannel();
+ ardChannel.setDeviceId(camera.getId());
+ List<ArdChannel> ardChannels = ardChannelMapper.selectArdChannelList(ardChannel);
+ camera.setChannelList(ardChannels);
+ 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;
+ }
+ /**
+ * 鑾峰彇鐩戞帶鍦堝唴鎵�鏈夊湪绾垮厜鐢�
+ * 鍒樿嫃涔�
+ * 2023/8/17 13:57:21
+ */
+ @Override
+ public List<ArdCameras> getNearCamerasWithPolygon(SchedulingParam param) {
+ try {
+ Long deptId=SecurityUtils.getLoginUser().getUser().getDeptId();
+ List<Point> partitionLocation = param.getPartitionLocation();
+ if(partitionLocation==null)
+ {
+ log.debug("澶氳竟褰㈠潗鏍囬泦鍚堜负绌�");
+ return null;
+ }
+ String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime");
+ //鑾峰彇鎵�鏈夊厜鐢�(鎸夐儴闂�)
+ ArdCameras cameras= new ArdCameras();
+ cameras.setDeptId(deptId);
+ List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(cameras);
+ List<ArdCameras> ardCameras = new ArrayList<>();
+ for (ArdCameras camera : ardCamerasList) {
+ if (camera.getLongitude() == null && camera.getLatitude() == null) {
+ continue;
+ }
+ /*鍒ゆ柇鍧愭爣鏄惁鍦ㄥ杈瑰舰鑼冨洿鍐�*/
+ Point camPosition=new Point(camera.getLongitude(),camera.getLatitude());
+ boolean inPolygon = GisTool.isInPolygon(camPosition, partitionLocation);
+ if (inPolygon) {
+ /*鑾峰彇閫氶亾鍒楄〃*/
+ ArdChannel ardChannel=new ArdChannel();
+ ardChannel.setDeviceId(camera.getId());
+ List<ArdChannel> ardChannels = ardChannelMapper.selectArdChannelList(ardChannel);
+ camera.setChannelList(ardChannels);
ardCameras.add(camera);
}
}
--
Gitblit v1.9.3