From 7eee9e04b31e1d8fdcbce8bc48bc839aa975441f Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 13 Nov 2023 13:53:24 +0800
Subject: [PATCH] 水库信息同步视频站修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java                |   50 ++++++++----
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java |   11 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkServiceImpl.java             |   30 +++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java                      |   48 ++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml             |   23 +++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResBaseController.java    |   10 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java                    |    5 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkService.java                      |    7 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java            |    8 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java         |    8 ++
 10 files changed, 182 insertions(+), 18 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java
index 5b34db2..83b2efe 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java
@@ -140,6 +140,11 @@
 	 */
 	public static final String batchAddURLs = "/api/resource/v1/region/batch/add";
 
+	/**
+	 * 查询区域列表v2
+	 */
+	public static final String regionNodesByParamsURLs = "/api/irds/v2/region/nodesByParams";
+
 
 
 
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..f9fbc86 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;
 
 	/**
 	 * 分页列表查询
@@ -322,23 +327,36 @@
 	@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());
+		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类型参数;
-		 */
-		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,null,"当前水库行政区域不匹配");
+		}
 	}
 
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkService.java
index e9c6a61..ea3c234 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkService.java
@@ -27,4 +27,11 @@
 	 * @return
 	 */
 	Map<String, Object> getHkStatisticData(HkVO hk, Query query);
+
+	/**
+	 * 查询区域列表v2
+	 * @param hk
+	 * @return
+	 */
+    String regionNodesByParams(HkVO hk);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkServiceImpl.java
index 51960eb..b028021 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkServiceImpl.java
@@ -179,11 +179,11 @@
 	 * 获取根节点区域信息
 	 * @param hk
 	 */
-	private String getRootRegionId(HkVO hk) {
+	public String getRootRegionId(HkVO hk) {
 		// 组装请求参数
 		JSONObject jsonBody = new JSONObject();
 		String body = jsonBody.toJSONString();
-		String result = GetCameraUtils.common(hk.getType(),regionsRootUrls, body);
+		String result = GetCameraUtils.common(null==hk.getType()?1:hk.getType(),regionsRootUrls, body);
 		// 数据处理
 		JSONObject jsonObject = JSONObject.parseObject(result);
 		JSONObject data = (JSONObject) jsonObject.get("data");
@@ -191,4 +191,30 @@
 		// 返回
 		return indexCode;
 	}
+
+	/**
+	 * 查询区域列表v2
+	 * @param hk
+	 */
+	public String regionNodesByParams(HkVO hk) {
+		String indexCode = "";
+		// 组装请求参数
+		JSONObject jsonBody = new JSONObject();
+		jsonBody.put("resourceType", "region");
+		jsonBody.put("regionName", hk.getRegionName());
+		jsonBody.put("pageNo", 1);
+		jsonBody.put("pageSize", 10);
+		String body = jsonBody.toJSONString();
+
+		String result = GetCameraUtils.common(null==hk.getType()?1:hk.getType(),regionNodesByParamsURLs, body);
+		// 数据处理
+		JSONObject jsonObject = JSONObject.parseObject(result);
+		JSONObject data = jsonObject.getJSONObject("data");
+		JSONArray list = data.getJSONArray("list");
+		if (list.size()>0){
+			indexCode = list.getJSONObject(0).getString("indexCode");
+		}
+		// 返回
+		return indexCode;
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResBaseController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResBaseController.java
index 61b35ff..2a18171 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResBaseController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResBaseController.java
@@ -91,4 +91,14 @@
 		return R.data(attResBaseService.updateResBaseByGuid(attResBase));
 	}
 
+	/**
+	 * 根据水库编码获取行政区数据
+	 * @param guid
+	 * @return
+	 */
+	@GetMapping(value = "/getWaterRegionInfoByResGuid")
+	public R getWaterRegionInfoByResGuid(String guid) {
+		return R.data(attResBaseService.getWaterRegionInfoByResGuid(guid));
+	}
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
index b2174e1..878a7d7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
@@ -2,6 +2,7 @@
 
 import cn.gistack.sm.sjztmd.dto.AttResBaseUserDTO;
 import cn.gistack.sm.sjztmd.entity.AttResBase;
+import cn.gistack.sm.sjztmd.vo.AttResAdVO;
 import cn.gistack.sm.sjztmd.vo.AttResBaseVO;
 import cn.gistack.sm.sjztmd.vo.ManagePersonVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -51,4 +52,11 @@
 	 * @return
 	 */
 	AttResBaseVO getCityCountyCodeByResGuid(@Param("guid") String res_cd);
+
+	/**
+	 * 根据水库编码获取行政区数据
+	 * @param guid
+	 * @return
+	 */
+    AttResAdVO getWaterRegionInfoByResGuid(@Param("guid") String guid);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
index 39bb55e..b617d38 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
@@ -159,4 +159,27 @@
         where a."guid" = #{guid}
     </select>
 
+    <!--查询当前水库对应的市级编号和县区编号-->
+    <select id="getWaterRegionInfoByResGuid" resultType="cn.gistack.sm.sjztmd.vo.AttResAdVO">
+        SELECT
+            a."guid" as resGuid,
+            case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS townCode,
+            case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS townName,
+            case when b."ad_grad" = 3 THEN b."ad_code"
+                 when c."ad_grad" = 3 THEN c."ad_code" END AS countyCode,
+            case when b."ad_grad" = 3 THEN b."ad_name"
+                 when c."ad_grad" = 3 THEN C."ad_name" END AS countyName,
+            case when b."ad_grad" = 2 THEN b."ad_code"
+                 when c."ad_grad" = 2 THEN c."ad_code"
+                 ELSE d."ad_code" END AS cityCode,
+            case when b."ad_grad" = 2 THEN b."ad_name"
+                 when c."ad_grad" = 2 THEN c."ad_name"
+                 ELSE d."ad_name" END AS cityName
+        FROM sjzt_md."att_res_base" a
+        LEFT JOIN sjzt_md."att_ad_base" b ON a."interior_ad_guid" = b."guid"
+        LEFT JOIN sjzt_md."att_ad_base" c ON b."p_ad_code" = c."guid"
+        LEFT JOIN sjzt_md."att_ad_base" d ON c."p_ad_code" = d."guid"
+        where a."guid" = #{guid}
+    </select>
+
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
index e6240c5..0576c30 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
@@ -4,6 +4,7 @@
 import cn.gistack.sm.sjztmd.entity.AttAdBase;
 import cn.gistack.sm.sjztmd.entity.AttResBase;
 import cn.gistack.sm.sjztmd.vo.AttAdBaseVO;
+import cn.gistack.sm.sjztmd.vo.AttResAdVO;
 import cn.gistack.sm.sjztmd.vo.AttResBaseVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -42,4 +43,11 @@
 	 * @return
 	 */
 	AttResBaseVO getCityCountyCodeByResGuid(String res_cd);
+
+	/**
+	 * 根据水库编码获取行政区数据
+	 * @param guid
+	 * @return
+	 */
+	AttResAdVO getWaterRegionInfoByResGuid(String guid);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
index 4726595..15d9b86 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
@@ -5,6 +5,7 @@
 import cn.gistack.sm.sjztmd.entity.AttResBase;
 import cn.gistack.sm.sjztmd.mapper.AttResBaseMapper;
 import cn.gistack.sm.sjztmd.service.IAttResBaseService;
+import cn.gistack.sm.sjztmd.vo.AttResAdVO;
 import cn.gistack.sm.sjztmd.vo.AttResBaseVO;
 import cn.gistack.sm.sjztmd.vo.ManagePersonVO;
 import com.baomidou.dynamic.datasource.annotation.DS;
@@ -82,4 +83,14 @@
 	public AttResBaseVO getCityCountyCodeByResGuid(String res_cd) {
 		return baseMapper.getCityCountyCodeByResGuid(res_cd);
 	}
+
+	/**
+	 * 根据水库编码获取行政区数据
+	 * @param guid
+	 * @return
+	 */
+	@Override
+	public AttResAdVO getWaterRegionInfoByResGuid(String guid) {
+		return baseMapper.getWaterRegionInfoByResGuid(guid);
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java
new file mode 100644
index 0000000..8f5ac1f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java
@@ -0,0 +1,48 @@
+package cn.gistack.sm.sjztmd.vo;
+
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * 水库及行政区数据
+ *
+ * @author Chill
+ */
+@Data
+public class AttResAdVO implements Serializable {
+
+	/**
+	 * 水库编号
+	 */
+	private String resGuid;
+
+	/**
+	 * 市州编号
+	 */
+	private String cityCode;
+
+	/**
+	 * 市州名称
+	 */
+	private String cityName;
+
+	/**
+	 * 区县编号
+	 */
+	private String countyCode;
+
+	/**
+	 * 区县名称
+	 */
+	private String countyName;
+
+	/**
+	 * 乡镇编号
+	 */
+	private String townCode;
+
+	/**
+	 * 乡镇名称
+	 */
+	private String townName;
+}

--
Gitblit v1.9.3