From 55a4112533c958492078a5a94c90667e6cf5969c Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 13 四月 2024 10:39:22 +0800
Subject: [PATCH] 修改获取附近车辆bug 修改默认所有相机启动引导队列
---
ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java | 173 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 117 insertions(+), 56 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java b/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java
index 6165144..1568ce7 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java
@@ -11,42 +11,28 @@
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.device.camera.service.ICameraSdkService;
-import com.ruoyi.device.dhsdk.service.IDhClientService;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
+
+import com.ruoyi.device.noguidezone.domain.ArdCameraNoGuideZone;
+import com.ruoyi.device.noguidezone.service.IArdCameraNoGuideZoneService;
+import com.ruoyi.utils.gis.GisUtil;
+import com.ruoyi.utils.gis.Point;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
-import javax.annotation.PostConstruct;
import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
-
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.device.camera.domain.ArdCameras;
-import com.ruoyi.device.camera.domain.CameraCmd;
-import com.ruoyi.device.camera.service.IArdCamerasService;
-import com.ruoyi.device.dhsdk.service.IDhClientService;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
-import com.ruoyi.common.annotation.Anonymous;
-import com.ruoyi.common.core.domain.AjaxResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
- * @Description:
+ * @Description: 鐩告満閫氱敤SDK鎺ュ彛
* @ClassName: CameraSdkController
* @Author: 鍒樿嫃涔�
* @Date: 2023骞�10鏈�14鏃�17:02:56
@@ -62,6 +48,9 @@
private ICameraSdkService cameraSdkService;
@Resource
private IArdCamerasService ardCamerasService;
+
+ @Autowired
+ private IArdCameraNoGuideZoneService ardCameraNoGuideZoneService;
@RequestMapping("/preview")
@@ -109,7 +98,7 @@
public @ResponseBody
AjaxResult PTZControlWithSpeed(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.pTZControl(cmd));
+ return cameraSdkService.pTZControl(cmd);
}
@ApiOperation("璋冪敤棰勭疆鐐�")
@@ -119,7 +108,7 @@
public @ResponseBody
AjaxResult gotoPreset(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.gotoPreset(cmd));
+ return cameraSdkService.gotoPreset(cmd);
}
@ApiOperation("璁剧疆棰勭疆鐐�")
@@ -129,7 +118,7 @@
public @ResponseBody
AjaxResult setPreset(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.setPreset(cmd));
+ return cameraSdkService.setPreset(cmd);
}
@ApiOperation("鑾峰彇鑱氱劍鍊�")
@@ -139,8 +128,7 @@
public @ResponseBody
AjaxResult getFocusPos(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- int focus = cameraSdkService.getFocusPos(cmd);
- return AjaxResult.success("鑾峰彇鑱氱劍鍊�", focus);
+ return cameraSdkService.getFocusPos(cmd);
}
@ApiOperation("璁剧疆鑱氱劍鍊�")
@@ -150,7 +138,7 @@
public @ResponseBody
AjaxResult setFocusPos(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.setFocusPos(cmd));
+ return cameraSdkService.setFocusPos(cmd);
}
@ApiOperation("鑾峰彇PTZ")
@@ -160,9 +148,9 @@
public @ResponseBody
AjaxResult getPTZ(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- Map<String, Object> ptzMap = cameraSdkService.getPtz(cmd);
- return AjaxResult.success("鑾峰彇ptz", ptzMap);
+ return cameraSdkService.getPtz(cmd);
}
+
@ApiOperation("鑾峰彇PTZ鑼冨洿")
@PostMapping("/getPTZScope")
@Log(title = "鑾峰彇PTZ鑼冨洿", businessType = BusinessType.CONTROL)
@@ -170,8 +158,7 @@
public @ResponseBody
AjaxResult getPTZScope(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- Map<String, Object> ptzMap = cameraSdkService.getPtzScope(cmd);
- return AjaxResult.success("鑾峰彇ptz鑼冨洿", ptzMap);
+ return cameraSdkService.getPtzScope(cmd);
}
@ApiOperation("璁剧疆PTZ")
@@ -181,7 +168,7 @@
public @ResponseBody
AjaxResult setPTZ(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.setPtz(cmd));
+ return cameraSdkService.setPtz(cmd);
}
@ApiOperation("鎸囧悜鐩爣")
@@ -191,9 +178,45 @@
public @ResponseBody
AjaxResult setTargetPosition(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.guideTargetPosition(cmd));
+ //鎷︽埅鎵嬪姩寮曞
+ ArdCameraNoGuideZone ardCameraNoGuideZone = new ArdCameraNoGuideZone();
+ ardCameraNoGuideZone.setCameraId(cmd.getCameraId());
+ ardCameraNoGuideZone.setEnabled("1");
+ //鑾峰彇褰撳墠鐩告満鐨勭寮曞彲瑙嗗煙鍒楄〃
+ List<ArdCameraNoGuideZone> ardCameraNoGuideZones = ardCameraNoGuideZoneService.selectArdCameraNoGuideZoneList(ardCameraNoGuideZone);
+ if (ardCameraNoGuideZones.size() > 0) {
+ //鑾峰彇鍒板綋鍓嶇浉鏈虹殑鍧愭爣闆嗗悎
+ for (ArdCameraNoGuideZone zone : ardCameraNoGuideZones) {
+ String[] parts = zone.getPoi().split(",");
+ List<Point> pointList = new ArrayList<>();
+ for (int i = 0; i < parts.length; i += 3) {
+ Point point = new Point();
+ point.setLongitude(Double.valueOf(parts[i]));
+ point.setLatitude(Double.valueOf(parts[i + 1]));
+ pointList.add(point);
+ }
+ double lon = cmd.getTargetPosition()[0];
+ double lat = cmd.getTargetPosition()[1];
+ Point targetPoint = new Point(lon, lat);
+ //鍒ゆ柇寮曞鐩爣鏄惁鍦ㄥ潗鏍囬泦鍚堢粍鎴愮殑澶氳竟褰㈠唴
+ boolean inPolygon = GisUtil.isInPolygon(targetPoint, pointList);
+ if (inPolygon) {
+ return AjaxResult.error("寮曞鍧愭爣浣嶄簬绂佸紩鍙鍩熷唴");
+ }
+ }
+ }
+ return cameraSdkService.guideTargetPosition(cmd);
}
+ @ApiOperation("鎸囧悜鐩爣浜�")
+ @PostMapping("/setTargetWell")
+ @Log(title = "鎸囧悜鐩爣浜�", businessType = BusinessType.CONTROL)
+ @ApiOperationSupport(includeParameters = {"cmd.wellId"})
+ public @ResponseBody
+ AjaxResult setTargetWell(@RequestBody CameraCmd cmd) {
+ cmd.setOperator(SecurityUtils.getUserId());
+ return cameraSdkService.guideTargetWell(cmd);
+ }
@ApiOperation("璁剧疆闆舵柟浣嶈")
@PostMapping("/setZeroPTZ")
@@ -202,7 +225,7 @@
public @ResponseBody
AjaxResult setZeroPTZ(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.setZeroPtz(cmd));
+ return cameraSdkService.setZeroPtz(cmd);
}
@ApiOperation("璁剧疆閿佸畾")
@@ -212,7 +235,7 @@
public @ResponseBody
AjaxResult setPTZLock(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return AjaxResult.success(cameraSdkService.controlLock(cmd));
+ return cameraSdkService.controlLock(cmd);
}
@ApiOperation("璁剧疆瑙i攣")
@@ -222,7 +245,7 @@
public @ResponseBody
AjaxResult setPTZUnLock(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return AjaxResult.success(cameraSdkService.controlUnLock(cmd));
+ return cameraSdkService.controlUnLock(cmd);
}
@ApiOperation("鑾峰彇浜戝彴閿佸畾淇℃伅")
@@ -232,7 +255,8 @@
public @ResponseBody
AjaxResult getPTZLockInfo(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- int byWorkMode = cameraSdkService.getPTZLockInfo(cmd);
+ AjaxResult ajaxResult = cameraSdkService.getPTZLockInfo(cmd);
+ Integer byWorkMode = (Integer) ajaxResult.get("msg");
if (byWorkMode == 0) {
return AjaxResult.success("浜戝彴閿佸畾鐘舵�侊細瑙i攣");
} else if (byWorkMode == 1) {
@@ -249,7 +273,7 @@
public @ResponseBody
AjaxResult defogcfg(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.controlDefogcfg(cmd));
+ return cameraSdkService.controlDefogcfg(cmd);
}
@ApiOperation("绾㈠寮�鍏�")
@@ -259,7 +283,7 @@
public @ResponseBody
AjaxResult infrarecfg(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.controlInfrarecfg(cmd));
+ return cameraSdkService.controlInfrarecfg(cmd);
}
@ApiOperation(value = "鎵嬪姩/鑷姩鑱氱劍", notes = "true鎵嬪姩flase鑷姩")
@@ -269,7 +293,7 @@
public @ResponseBody
AjaxResult enableFocusMode(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.controlFocusMode(cmd));
+ return cameraSdkService.controlFocusMode(cmd);
}
@ApiOperation(value = "鑾峰彇鑱氱劍妯″紡", notes = "1鎵嬪姩2鑷姩")
@@ -278,8 +302,7 @@
public @ResponseBody
AjaxResult getFocusMode(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- String focusMode = cameraSdkService.getFocusMode(cmd);
- return AjaxResult.success(focusMode);
+ return cameraSdkService.getFocusMode(cmd);
}
@ApiOperation("浜戝彴鍔犵儹")
@@ -289,7 +312,7 @@
public @ResponseBody
AjaxResult heateRpwron(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.controlPTHeateRpwron(cmd));
+ return cameraSdkService.controlPTHeateRpwron(cmd);
}
@@ -300,7 +323,7 @@
public @ResponseBody
AjaxResult cameraDeicing(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return toAjax(cameraSdkService.controlCameraDeicing(cmd));
+ return cameraSdkService.controlCameraDeicing(cmd);
}
@ApiOperation("鐩告満鎶撳浘")
@@ -314,6 +337,20 @@
return toAjaxString(path, "鐩告満鎶撳浘");
}
+ @ApiOperation("鏈湴鎶撳浘")
+ @PostMapping("/localCapture")
+ @Log(title = "鐩告満鎶撳浘", businessType = BusinessType.CONTROL)
+ @ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.chanNo"})
+ public @ResponseBody
+ void localCapture(@RequestBody CameraCmd cmd, HttpServletResponse response) throws IOException {
+ cmd.setOperator(SecurityUtils.getUserId());
+ response.setContentType("image/jpeg");
+ AjaxResult result = cameraSdkService.localCapture(cmd);
+ OutputStream outputStream = response.getOutputStream();
+ byte[] data = (byte[]) result.get("data");
+ outputStream.write(data);
+ }
+
@ApiOperation("鑾峰彇鐩告満鏋惰鍙傛暟")
@PostMapping("/getGisInfo")
@Log(title = "鑾峰彇鐩告満鏋惰鍙傛暟", businessType = BusinessType.CONTROL)
@@ -321,13 +358,13 @@
public @ResponseBody
AjaxResult getGisInfo(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
- return AjaxResult.success(cameraSdkService.getGisInfo(cmd));
+ return cameraSdkService.getGisInfo(cmd);
}
- @ApiOperation("褰曞儚")
+ //@ApiOperation("褰曞儚")
@PostMapping("/record")
@Log(title = "鎵嬪姩褰曞儚寮�濮�", businessType = BusinessType.CONTROL)
- @ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.chanNo", "cmd.enable"})
+ //@ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.chanNo", "cmd.enable"})
public @ResponseBody
AjaxResult record(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
@@ -335,10 +372,10 @@
return AjaxResult.success(url);
}
- @ApiOperation("鎵嬪姩褰曞儚寮�濮�")
+ //@ApiOperation("鎵嬪姩褰曞儚寮�濮�")
@PostMapping("/recordStart")
@Log(title = "鎵嬪姩褰曞儚寮�濮�", businessType = BusinessType.CONTROL)
- @ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.chanNo"})
+ //@ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.chanNo"})
public @ResponseBody
AjaxResult recordStart(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
@@ -346,14 +383,38 @@
return toAjax(b);
}
- @ApiOperation("鎵嬪姩褰曞儚鍋滄")
+ //@ApiOperation("鎵嬪姩褰曞儚鍋滄")
@PostMapping("/recordStop")
@Log(title = "鎵嬪姩褰曞儚鍋滄", businessType = BusinessType.CONTROL)
- @ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.recordBucketName", "cmd.recordObjectName"})
+ //@ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.recordBucketName", "cmd.recordObjectName"})
public @ResponseBody
AjaxResult recordStop(@RequestBody CameraCmd cmd) {
cmd.setOperator(SecurityUtils.getUserId());
String url = cameraSdkService.recordStopToMinio(cmd);
return AjaxResult.success(url);
}
+
+ @ApiOperation("鏈湴褰曞儚寮�濮�")
+ @PostMapping("/localRecordStart")
+ @Log(title = "鏈湴褰曞儚寮�濮�", businessType = BusinessType.CONTROL)
+ @ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.chanNo"})
+ public @ResponseBody
+ AjaxResult localRecordStart(@RequestBody CameraCmd cmd) {
+ cmd.setOperator(SecurityUtils.getUserId());
+ return cameraSdkService.localRecordStart(cmd);
+ }
+
+ @ApiOperation("鏈湴褰曞儚鍋滄")
+ @PostMapping("/localRecordStop")
+ @Log(title = "鏈湴褰曞儚鍋滄", businessType = BusinessType.CONTROL)
+ @ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.chanNo"})
+ public @ResponseBody
+ void localRecordStop(@RequestBody CameraCmd cmd, HttpServletResponse response) throws IOException {
+ cmd.setOperator(SecurityUtils.getUserId());
+ response.setContentType("video/mp4");
+ AjaxResult result = cameraSdkService.localRecordStop(cmd);
+ byte[] recordBytes = (byte[]) result.get("data");
+ OutputStream outputStream = response.getOutputStream();
+ outputStream.write(recordBytes);
+ }
}
--
Gitblit v1.9.3