zhangnaisong
2024-04-28 686c587744cf0933b4022a1b741f8f50658e2632
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/controller/HikSdkController.java
@@ -1,6 +1,7 @@
package com.ruoyi.utils.sdk.hiksdk.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.enums.BusinessType;
@@ -10,13 +11,14 @@
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.utils.sdk.hiksdk.service.impl.HikSdkStrategy;
import com.ruoyi.utils.sdk.hiksdk.service.impl.HikvisionSDK;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@@ -35,9 +37,11 @@
public class HikSdkController extends BaseController {
    @Resource
    private HikSdkStrategy sdk;
    private HikvisionSDK sdk;
    @Resource
    private IArdCamerasService ardCamerasService;
    @Resource
    private IArdAlarmpointsWellService ardAlarmpointsWellService;
    @RequestMapping("/preview")
@@ -85,7 +89,7 @@
    public @ResponseBody
    AjaxResult PTZControlWithSpeed(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.pTZControl(cmd));
        return sdk.pTZControl(cmd);
    }
    @ApiOperation("调用预置点")
@@ -95,7 +99,7 @@
    public @ResponseBody
    AjaxResult gotoPreset(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.gotoPreset(cmd));
        return sdk.gotoPreset(cmd);
    }
    @ApiOperation("设置预置点")
@@ -105,7 +109,7 @@
    public @ResponseBody
    AjaxResult setPreset(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setPreset(cmd));
        return sdk.setPreset(cmd);
    }
    @ApiOperation("获取聚焦值")
@@ -115,8 +119,7 @@
    public @ResponseBody
    AjaxResult getFocusPos(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        int focus = sdk.getFocusPos(cmd);
        return AjaxResult.success("获取聚焦值", focus);
        return sdk.getFocusPos(cmd);
    }
    @ApiOperation("设置聚焦值")
@@ -126,7 +129,7 @@
    public @ResponseBody
    AjaxResult setFocusPos(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setFocusPos(cmd));
        return sdk.setFocusPos(cmd);
    }
    @ApiOperation("获取PTZ")
@@ -158,7 +161,7 @@
    public @ResponseBody
    AjaxResult setPTZ(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setPtz(cmd));
        return sdk.setPtz(cmd);
    }
    @ApiOperation("指向目标")
@@ -168,7 +171,7 @@
    public @ResponseBody
    AjaxResult setTargetPosition(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.guideTargetPosition(cmd));
        return sdk.guideTargetPosition(cmd);
    }
@@ -179,7 +182,7 @@
    public @ResponseBody
    AjaxResult setZeroPTZ(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setZeroPtz(cmd));
        return sdk.setZeroPtz(cmd);
    }
@@ -190,7 +193,8 @@
    public @ResponseBody
    AjaxResult getPTZLockInfo(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        int byWorkMode = sdk.getPTZLockInfo(cmd);
        AjaxResult ajaxResult = sdk.getPTZLockInfo(cmd);
        int byWorkMode = (int)ajaxResult.get("msg");
        if (byWorkMode == 0) {
            return AjaxResult.success("云台锁定状态:解锁");
        } else if (byWorkMode == 1) {
@@ -207,7 +211,7 @@
    public @ResponseBody
    AjaxResult defogcfg(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.controlDefogcfg(cmd));
        return sdk.controlDefogcfg(cmd);
    }
    @ApiOperation("红外开关")
@@ -217,7 +221,7 @@
    public @ResponseBody
    AjaxResult infrarecfg(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.controlInfrarecfg(cmd));
        return sdk.controlInfrarecfg(cmd);
    }
    @ApiOperation(value = "手动/自动聚焦", notes = "true手动flase自动")
@@ -227,7 +231,7 @@
    public @ResponseBody
    AjaxResult enableFocusMode(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.controlFocusMode(cmd));
        return sdk.controlFocusMode(cmd);
    }
    @ApiOperation(value = "获取聚焦模式", notes = "1手动2自动")
@@ -235,8 +239,7 @@
    public @ResponseBody
    AjaxResult getFocusMode(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        String focusMode = sdk.getFocusMode(cmd);
        return AjaxResult.success(focusMode);
        return sdk.getFocusMode(cmd);
    }
    @ApiOperation("云台加热")
@@ -246,7 +249,7 @@
    public @ResponseBody
    AjaxResult heateRpwron(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.controlPTHeateRpwron(cmd));
        return sdk.controlPTHeateRpwron(cmd);
    }
@@ -257,15 +260,14 @@
    public @ResponseBody
    AjaxResult cameraDeicing(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.controlCameraDeicing(cmd));
        return sdk.controlCameraDeicing(cmd);
    }
    @PostMapping("/captureJPEGPicture")
    @PostMapping("/localCapture")
    public @ResponseBody
    AjaxResult captureJPEGPicture(@RequestBody CameraCmd cmd) {
    void localCapture(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        String base64Str = sdk.captureJPEGPicture(cmd);
        return toAjaxString(base64Str, "相机抓图");
        sdk.localCapture(cmd);
    }
    @ApiOperation("相机抓图")
@@ -299,4 +301,24 @@
        cmd.setOperator(SecurityUtils.getUserId());
        return AjaxResult.success(sdk.getGisInfo(cmd));
    }
    @PostMapping("/getCameraVideoLable")
    public @ResponseBody
    AjaxResult getCameraVideoLable(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        Map<String, Object> map = sdk.getGisInfo(cmd);
        Double p = (Double) map.get("p");
        Double t = (Double) map.get("t");
        Double z = (Double) map.get("z");
        Double fHorFieldAngle = (Double) map.get("fHorFieldAngle");// 水平视场角
        Double fVerFieldAngle = (Double) map.get("fVerFieldAngle");// 垂直视场角
        if(z <= 5.0){
            return AjaxResult.error("变焦小于5");
        }
        if(t > 359.0){
            return AjaxResult.error("俯仰角过小");
        }
        List<Map<String,Object>> result = ardAlarmpointsWellService.getCameraVideoLable(SecurityUtils.getDeptId(),cmd.getCameraId(),p,t,fHorFieldAngle,fVerFieldAngle);
        return AjaxResult.success(result);
    }
}