liusuyi
2024-10-10 38f29e38fcc668171dc05c53d40a36b895c86102
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;
@@ -38,6 +39,8 @@
    private HikvisionSDK sdk;
    @Resource
    private IArdCamerasService ardCamerasService;
    @Resource
    private IArdAlarmpointsWellService ardAlarmpointsWellService;
    @RequestMapping("/preview")
@@ -95,7 +98,7 @@
    public @ResponseBody
    AjaxResult gotoPreset(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.gotoPreset(cmd));
        return sdk.gotoPreset(cmd);
    }
    @ApiOperation("设置预置点")
@@ -105,7 +108,7 @@
    public @ResponseBody
    AjaxResult setPreset(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setPreset(cmd));
        return sdk.setPreset(cmd);
    }
    @ApiOperation("获取聚焦值")
@@ -115,8 +118,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 +128,7 @@
    public @ResponseBody
    AjaxResult setFocusPos(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setFocusPos(cmd));
        return sdk.setFocusPos(cmd);
    }
    @ApiOperation("获取PTZ")
@@ -168,7 +170,7 @@
    public @ResponseBody
    AjaxResult setTargetPosition(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.guideTargetPosition(cmd));
        return sdk.guideTargetPosition(cmd);
    }
@@ -179,7 +181,7 @@
    public @ResponseBody
    AjaxResult setZeroPTZ(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setZeroPtz(cmd));
        return sdk.setZeroPtz(cmd);
    }
@@ -190,7 +192,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 +210,7 @@
    public @ResponseBody
    AjaxResult defogcfg(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.controlDefogcfg(cmd));
        return sdk.controlDefogcfg(cmd);
    }
    @ApiOperation("红外开关")
@@ -217,7 +220,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 +230,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 +238,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 +248,7 @@
    public @ResponseBody
    AjaxResult heateRpwron(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.controlPTHeateRpwron(cmd));
        return sdk.controlPTHeateRpwron(cmd);
    }
@@ -257,15 +259,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 +300,28 @@
        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);
        Map<String, Object> data = (Map<String, Object>) map.get("data");
        Float p = (Float) data.get("p");
        Float t = (Float) data.get("t");
        Float z = (Float) data.get("z");
        Float fHorFieldAngle = (Float) data.get("fHorFieldAngle");// 水平视场角
        Float fVerFieldAngle = (Float) data.get("fVerFieldAngle");// 垂直视场角
        /*if(z <= 1.0){
            return AjaxResult.error("变焦小于1");
        }*/
        if(t > 359.0){
            return AjaxResult.error("俯仰角过小");
        }
        List<Map<String,Object>> result = ardAlarmpointsWellService.getCameraVideoLable(SecurityUtils.getDeptId(),cmd.getCameraId(),p,t,fHorFieldAngle,fVerFieldAngle);
        if(result == null){
            return AjaxResult.error("该光电没有挂接塔");
        }
        return AjaxResult.success(result);
    }
}