From f37c91a84345f925e41cd26bf5d22ed1a2594bdf Mon Sep 17 00:00:00 2001 From: liusuyi <1951119284@qq.com> Date: 星期四, 06 六月 2024 14:37:16 +0800 Subject: [PATCH] 防止录像文件持续生成,增加启动项目清空本地录像临时文件 --- ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java | 115 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 82 insertions(+), 33 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 a6e4edc..e1e3ec5 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 @@ -23,6 +23,10 @@ import org.springframework.web.bind.annotation.*; 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; @@ -44,8 +48,10 @@ private ICameraSdkService cameraSdkService; @Resource private IArdCamerasService ardCamerasService; + @Autowired private IArdCameraNoGuideZoneService ardCameraNoGuideZoneService; + @RequestMapping("/preview") private String preview() { @@ -92,7 +98,7 @@ public @ResponseBody AjaxResult PTZControlWithSpeed(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); - return toAjax(cameraSdkService.pTZControl(cmd)); + return cameraSdkService.pTZControl(cmd); } @ApiOperation("璋冪敤棰勭疆鐐�") @@ -102,7 +108,7 @@ public @ResponseBody AjaxResult gotoPreset(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); - return toAjax(cameraSdkService.gotoPreset(cmd)); + return cameraSdkService.gotoPreset(cmd); } @ApiOperation("璁剧疆棰勭疆鐐�") @@ -112,7 +118,7 @@ public @ResponseBody AjaxResult setPreset(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); - return toAjax(cameraSdkService.setPreset(cmd)); + return cameraSdkService.setPreset(cmd); } @ApiOperation("鑾峰彇鑱氱劍鍊�") @@ -122,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("璁剧疆鑱氱劍鍊�") @@ -133,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") @@ -143,8 +148,7 @@ 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鑼冨洿") @@ -154,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") @@ -165,7 +168,7 @@ public @ResponseBody AjaxResult setPTZ(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); - return toAjax(cameraSdkService.setPtz(cmd)); + return cameraSdkService.setPtz(cmd); } @ApiOperation("鎸囧悜鐩爣") @@ -183,7 +186,7 @@ List<ArdCameraNoGuideZone> ardCameraNoGuideZones = ardCameraNoGuideZoneService.selectArdCameraNoGuideZoneList(ardCameraNoGuideZone); if (ardCameraNoGuideZones.size() > 0) { //鑾峰彇鍒板綋鍓嶇浉鏈虹殑鍧愭爣闆嗗悎 - for(ArdCameraNoGuideZone zone:ardCameraNoGuideZones) { + for (ArdCameraNoGuideZone zone : ardCameraNoGuideZones) { String[] parts = zone.getPoi().split(","); List<Point> pointList = new ArrayList<>(); for (int i = 0; i < parts.length; i += 3) { @@ -197,15 +200,23 @@ Point targetPoint = new Point(lon, lat); //鍒ゆ柇寮曞鐩爣鏄惁鍦ㄥ潗鏍囬泦鍚堢粍鎴愮殑澶氳竟褰㈠唴 boolean inPolygon = GisUtil.isInPolygon(targetPoint, pointList); - if(inPolygon) - { + if (inPolygon) { return AjaxResult.error("寮曞鍧愭爣浣嶄簬绂佸紩鍙鍩熷唴"); } } } - return toAjax(cameraSdkService.guideTargetPosition(cmd)); + 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") @@ -214,7 +225,7 @@ public @ResponseBody AjaxResult setZeroPTZ(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); - return toAjax(cameraSdkService.setZeroPtz(cmd)); + return cameraSdkService.setZeroPtz(cmd); } @ApiOperation("璁剧疆閿佸畾") @@ -224,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攣") @@ -234,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("鑾峰彇浜戝彴閿佸畾淇℃伅") @@ -244,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) { @@ -261,7 +273,7 @@ public @ResponseBody AjaxResult defogcfg(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); - return toAjax(cameraSdkService.controlDefogcfg(cmd)); + return cameraSdkService.controlDefogcfg(cmd); } @ApiOperation("绾㈠寮�鍏�") @@ -271,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鑷姩") @@ -281,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鑷姩") @@ -290,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("浜戝彴鍔犵儹") @@ -301,7 +312,7 @@ public @ResponseBody AjaxResult heateRpwron(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); - return toAjax(cameraSdkService.controlPTHeateRpwron(cmd)); + return cameraSdkService.controlPTHeateRpwron(cmd); } @@ -312,7 +323,7 @@ public @ResponseBody AjaxResult cameraDeicing(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); - return toAjax(cameraSdkService.controlCameraDeicing(cmd)); + return cameraSdkService.controlCameraDeicing(cmd); } @ApiOperation("鐩告満鎶撳浘") @@ -326,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) @@ -333,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()); @@ -347,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()); @@ -358,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", "cmd.recordId"}) + 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