shenyijian
2024-06-24 7d44d7a2a9ee8f55e911d678d78ff25f047cab4d
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
@@ -14,6 +14,7 @@
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
@@ -72,7 +73,9 @@
         HkConstant.previewURLs,
         hk.getCameraIndexCode(),
         ProtocolConstant.WS,
         expand);
         null==hk.getTransmode()?1:hk.getTransmode(),
         expand,
         null==hk.getStreamType()?1:hk.getStreamType());
      if (null!=result) {
         JSONObject jsonObject = JSONObject.parseObject(result);
         Map map = (Map) jsonObject.get("data");
@@ -100,7 +103,9 @@
         HkConstant.previewURLs,
         hk.getCameraIndexCode(),
         hk.getProtocol(),
         expand);
         null==hk.getTransmode()?1:hk.getTransmode(),
         expand,
         null==hk.getStreamType()?1:hk.getStreamType());
      if (null!=result) {
         JSONObject jsonObject = JSONObject.parseObject(result);
         Map map = (Map) jsonObject.get("data");
@@ -128,7 +133,9 @@
         HkConstant.previewURLs,
         hk.getCameraIndexCode(),
         ProtocolConstant.HLS,
         expand);
         null==hk.getTransmode()?1:hk.getTransmode(),
         expand,
         null==hk.getStreamType()?1:hk.getStreamType());
      if (null!=result) {
         JSONObject jsonObject = JSONObject.parseObject(result);
         Map map = (Map) jsonObject.get("data");
@@ -144,7 +151,7 @@
    * @return
    */
   @ApiOperation(value = "海康设备-海康摄像头云台的控制", notes = "海康设备-海康摄像头云台的控制")
   @GetMapping(value = "/handleCameraPosition")
   @GetMapping(value = "/handleCameraPosition2")
   public R handleCameraPosition(HkVO hk) {
      // 获取海康播放url
      String result = controlling(null==hk.getType()?1:hk.getType(),HkConstant.controllingURLs,
@@ -237,6 +244,7 @@
      jsonBody.put("cameraIndexCode", hk.getCameraIndexCode());
      jsonBody.put("protocol", hk.getProtocol());
      jsonBody.put("recordLocation", "1");
      jsonBody.put("transmode", null==hk.getTransmode()?1:hk.getTransmode());
      jsonBody.put("beginTime", hk.getBeginTime());
      jsonBody.put("endTime", hk.getEndTime());
      String body = jsonBody.toJSONString();
@@ -261,7 +269,9 @@
       */
      JSONObject jsonBody = new JSONObject();
      jsonBody.put("cameraIndexCode", hk.getCameraIndexCode());
      jsonBody.put("streamType",null==hk.getStreamType()?1:hk.getStreamType());
      jsonBody.put("protocol", hk.getProtocol());
      jsonBody.put("transmode", null==hk.getTransmode()?1:hk.getTransmode());
      String body = jsonBody.toJSONString();
      /**
@@ -329,17 +339,22 @@
   public R syncVideo(@RequestBody HkVO hk) {
      // 通过水库编号获取区域(区县)名称
      AttResAdVO info = attResBaseService.getWaterRegionInfoByResGuid(hk.getRegionIndexCode());
      // 判断该水库同一个区县下是否存在同水库名称的,如果是存在多个,水库名称前面拼上乡镇名称
      String resName = setWaterName(hk,info);
      // 设置区域名称
      hk.setRegionName(info.getCountyName());
      hk.setCityName(info.getCityName());
      // 判断
      // 通过区域名称查询对应的区域编号
      String rootRegionId = hkService.regionNodesByParams(hk);
      if (null!= rootRegionId && !rootRegionId.equals("")){
      if (!Strings.isBlank(rootRegionId)){
         // 更新
         /**
          * 组装请求参数
          */
         List<VideoVO> list = new ArrayList<>();
         VideoVO video = new VideoVO();
         video.setRegionName(hk.getRegionName());
         video.setRegionName(resName);
         video.setRegionIndexCode(hk.getRegionIndexCode());
         video.setParentIndexCode(rootRegionId);
         video.setRegionType(10);
@@ -355,7 +370,23 @@
         return R.data(200,jsonObject,null);
      }else {
         // 当前水库行政区域不匹配
         return R.data(400,null,"当前水库行政区域不匹配");
         return R.data(400,"当前水库行政区域不匹配","当前水库行政区域不匹配");
      }
   }
   /**
    * 设置水库名称( 判断该水库同一个区县下是否存在同水库名称的,如果是存在多个,水库名称前面拼上乡镇名称)
    * @param hk
    * @param info
    * @return
    */
   private String setWaterName(HkVO hk, AttResAdVO info) {
      // 根据水库名称、所在区域查询改水库的数量
      Integer number = attResBaseService.getWaterCountByResNameAndCountyName(hk.getRegionName(),info.getCountyCode());
      if (number>1){
         return  hk.getRegionName() + "(" + info.getTownName() + ")";
      }else {
         return hk.getRegionName();
      }
   }