From b63dccee424ee9dfb8944ead15ff084ff62d63fa Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 10 May 2024 18:22:37 +0800
Subject: [PATCH] 对接及事件查询订阅调整

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java |   85 +++++++++++++++++++++++++++++++++---------
 1 files changed, 66 insertions(+), 19 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
index d4619e9..cafa836 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
@@ -5,8 +5,11 @@
 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;
@@ -34,6 +37,8 @@
 public class HkController {
 
 	private final HkService hkService;
+
+	private final IAttResBaseService attResBaseService;
 
 	/**
 	 * 分页列表查询
@@ -67,7 +72,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");
@@ -95,7 +102,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");
@@ -123,7 +132,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");
@@ -232,6 +243,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();
@@ -256,7 +268,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();
 
 		/**
@@ -322,23 +336,56 @@
 	@ApiOperation(value = "海康设备-同步水库设备信息", notes = "海康设备-同步水库设备信息")
 	@PostMapping(value = "/syncVideo")
 	public R syncVideo(@RequestBody HkVO hk) {
-		/**
-		 * 组装请求参数
-		 */
-		List<VideoVO> list = new ArrayList<>();
-		VideoVO video = new VideoVO();
-		video.setRegionName(hk.getRegionName());
-		video.setRegionIndexCode(hk.getRegionIndexCode());
-		video.setParentIndexCode("root000000");
-		video.setRegionType(10);
-		list.add(video);
-		String body = JSON.toJSONString(list);
+		// 通过水库编号获取区域(区县)名称
+		AttResAdVO info = attResBaseService.getWaterRegionInfoByResGuid(hk.getRegionIndexCode());
+		// 判断该水库同一个区县下是否存在同水库名称的,如果是存在多个,水库名称前面拼上乡镇名称
+		String resName = setWaterName(hk,info);
+		// 设置区域名称
+		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(resName);
+			video.setRegionIndexCode(hk.getRegionIndexCode());
+			video.setParentIndexCode(rootRegionId);
+			video.setRegionType(10);
+			list.add(video);
+			String body = JSON.toJSONString(list);
 
-		/**
-		 * 调用接口并返回数据
-		 * post请求application/json类型参数;
-		 */
-		return R.data(JSONObject.parseObject(common(null==hk.getType()?2:hk.getType(),HkConstant.batchAddURLs, body)));
+			/**
+			 * 调用接口并返回数据
+			 * 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,"当前水库行政区域不匹配","当前水库行政区域不匹配");
+		}
+	}
+
+	/**
+	 * 设置水库名称( 判断该水库同一个区县下是否存在同水库名称的,如果是存在多个,水库名称前面拼上乡镇名称)
+	 * @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();
+		}
 	}
 
 }

--
Gitblit v1.9.3