zhongrj
2023-11-13 7eee9e04b31e1d8fdcbce8bc48bc839aa975441f
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
@@ -4,7 +4,12 @@
import cn.gistack.sm.hk.constant.ProtocolConstant;
import cn.gistack.sm.hk.service.HkService;
import cn.gistack.sm.hk.vo.HkVO;
import cn.gistack.sm.hk.vo.VideoVO;
import cn.gistack.sm.sjztmd.service.IAttResBaseService;
import cn.gistack.sm.sjztmd.vo.AttResAdVO;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.protobuf.ServiceException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@@ -13,6 +18,8 @@
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static cn.gistack.sm.hk.util.GetCameraUtils.*;
@@ -30,6 +37,8 @@
public class HkController {
   private final HkService hkService;
   private final IAttResBaseService attResBaseService;
   /**
    * 分页列表查询
@@ -268,7 +277,7 @@
    * @param hk 查询参数
    * @return
    */
   @ApiOperation(value = "海康设备-获取海康摄像头语音对讲url", notes = "海康设备-获取海康摄像头语音对讲url")
   @ApiOperation(value = "海康设备-设置监控点的预置点信息", notes = "海康设备-设置监控点的预置点信息")
   @GetMapping(value = "/presetsAddition")
   public R presetsAddition(HkVO hk) {
      /**
@@ -287,4 +296,67 @@
      return R.data(common(null==hk.getType()?1:hk.getType(),HkConstant.presetsAdditionURLs, body));
   }
   /**
    * 删除监控点的预置点信息
    * @param hk 查询参数
    * @return
    */
   @ApiOperation(value = "海康设备-删除监控点的预置点信息", notes = "海康设备-删除监控点的预置点信息")
   @GetMapping(value = "/presetsDeletion")
   public R presetsDeletion(HkVO hk) {
      /**
       * 组装请求参数
       */
      JSONObject jsonBody = new JSONObject();
      jsonBody.put("cameraIndexCode", hk.getCameraIndexCode());
      jsonBody.put("presetIndex", hk.getPresetIndex());
      String body = jsonBody.toJSONString();
      /**
       * 调用接口并返回数据
       * post请求application/json类型参数;
       */
      return R.data(common(null==hk.getType()?1:hk.getType(),HkConstant.presetsDeletionURLs, body));
   }
   /**
    * 同步水库设备信息
    * @param hk 水库设备
    * @return
    */
   @ApiOperation(value = "海康设备-同步水库设备信息", notes = "海康设备-同步水库设备信息")
   @PostMapping(value = "/syncVideo")
   public R syncVideo(@RequestBody HkVO hk) {
      // 通过水库编号获取区域(区县)名称
      AttResAdVO info = attResBaseService.getWaterRegionInfoByResGuid(hk.getRegionIndexCode());
      hk.setRegionName(info.getCountyName());
      // 通过区域名称查询对应的区域编号
      String rootRegionId = hkService.regionNodesByParams(hk);
      if (null!= rootRegionId && !rootRegionId.equals("")){
         // 更新
         /**
          * 组装请求参数
          */
         List<VideoVO> list = new ArrayList<>();
         VideoVO video = new VideoVO();
         video.setRegionName(hk.getRegionName());
         video.setRegionIndexCode(hk.getRegionIndexCode());
         video.setParentIndexCode(rootRegionId);
         video.setRegionType(10);
         list.add(video);
         String body = JSON.toJSONString(list);
         /**
          * 调用接口并返回数据
          * post请求application/json类型参数;
          */
         JSONObject jsonObject = JSONObject.parseObject(common(null == hk.getType() ? 2 : hk.getType(), HkConstant.batchAddURLs, body));
         // 返回
         return R.data(200,jsonObject,null);
      }else {
         // 当前水库行政区域不匹配
         return R.data(400,null,"当前水库行政区域不匹配");
      }
   }
}