From 1ca9656140c41165459dfb6f6b7606b3aa6a8747 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: Wed, 24 Jul 2024 15:05:13 +0800
Subject: [PATCH] 三一车辆查询加入关联后bug修改提交
---
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 42 insertions(+), 6 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
index f379d10..0209056 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -18,19 +18,22 @@
import com.ruoyi.device.camera.factory.CameraSDKFactory;
import com.ruoyi.device.noguidezone.domain.ArdCameraNoGuideZone;
import com.ruoyi.device.noguidezone.service.IArdCameraNoGuideZoneService;
+import com.ruoyi.device.terrain.domain.ArdTerrainMark;
+import com.ruoyi.device.terrain.service.IArdTerrainMarkService;
import com.ruoyi.utils.gis.GisUtil;
import com.ruoyi.utils.gis.Point;
import com.ruoyi.utils.sdk.common.GlobalVariable;
import com.ruoyi.utils.tools.ArdTool;
-import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
+import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
import java.util.*;
+import java.util.stream.Collectors;
/**
@@ -40,7 +43,7 @@
* @Date: 2023年10月16日15:21:01
**/
@Service
-@Slf4j(topic = "SDK")
+@Slf4j(topic = "sdk")
public class CameraSdkServiceImpl implements ICameraSdkService, ApplicationRunner {
@Resource
private IArdCamerasService ardCamerasService;
@@ -52,6 +55,8 @@
private IArdAlarmpointsWellService ardAlarmpointsWellService;
@Resource
private IArdCameraNoGuideZoneService ardCameraNoGuideZoneService;
+ @Resource
+ private IArdTerrainMarkService ardTerrainMarkService;
/**
* 启动线程方法,用于执行初始化登录相机的逻辑
@@ -61,10 +66,10 @@
@Override
public void run(ApplicationArguments args) {
try {
+ log.info("初始化登录相机开始");
+ ardCamerasService.resetCameraLoginId();
List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
- for (ArdCameras camera : ardCameras) {
- asyncLogin(camera);
- }
+ ardCameras.stream().forEach(ardCamera -> asyncLogin(ardCamera));
} catch (Exception ex) {
log.error("初始化登录相机异常:" + ex.getMessage());
}
@@ -508,6 +513,37 @@
}
}
+ /**
+ * @return
+ * @Author 刘苏义
+ * @Description 修正俯仰值(根据相机ID获取500米范围内的地形参数集合,计算平均值加上T值)
+ * @Date 2024/6/22 11:16
+ * @Param
+ */
+ @Override
+ public Double correctPitch(CameraCmd cmd) {
+ Double pitchAngle = 0.0;
+ try {
+ double[] targetPositions = cmd.getTargetPosition();
+ ArdTerrainMark ardTerrainMark = new ArdTerrainMark();
+ ardTerrainMark.setCameraId(cmd.getCameraId());
+ List<ArdTerrainMark> ardTerrainMarks = ardTerrainMarkService.selectArdTerrainMarkList(ardTerrainMark);
+ //过滤500米范围内的集合
+ ardTerrainMarks = ardTerrainMarks.stream().filter(n -> GisUtil.getDistance(targetPositions, new double[]{n.getLongitude(), n.getLatitude(), n.getAltitude()}) <= 500).collect(Collectors.toList());
+ //计算T平均值
+ OptionalDouble averageT = ardTerrainMarks.stream().mapToDouble(ArdTerrainMark::getT).average();
+ // 输出
+ if (averageT.isPresent()) {
+ pitchAngle = averageT.getAsDouble();
+ log.debug("修正俯仰值:" + pitchAngle);
+ }
+ } catch (Exception ex) {
+ log.error("修正俯仰值异常:" + ex.getMessage());
+
+ }
+ return pitchAngle;
+ }
+
//引导指向井
@Override
public AjaxResult guideTargetWell(CameraCmd cmd) {
--
Gitblit v1.9.3