From 57d4a5419b7fed02fa1b30bfb70760a5d0b6b6fa Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 26 Feb 2024 14:12:59 +0800
Subject: [PATCH] 水库视频设备同步修改通一个区县下存在多个水库名称相同的拼接乡镇名称

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java                |   21 ++++++++++
 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/sjztmd/mapper/AttResBaseMapper.xml             |   16 ++++++++
 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 ++++
 5 files changed, 63 insertions(+), 1 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 4575600..0eaac34 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
@@ -333,8 +333,11 @@
 	public R syncVideo(@RequestBody HkVO hk) {
 		// 通过水库编号获取区域(区县)名称
 		AttResAdVO info = attResBaseService.getWaterRegionInfoByResGuid(hk.getRegionIndexCode());
-		String resName = hk.getRegionName();
+		// 判断该水库同一个区县下是否存在同水库名称的,如果是存在多个,水库名称前面拼上乡镇名称
+		String resName = setWaterName(hk,info);
+		// 设置区域名称
 		hk.setRegionName(info.getCountyName());
+		// 判断
 		// 通过区域名称查询对应的区域编号
 		String rootRegionId = hkService.regionNodesByParams(hk);
 		if (null!= rootRegionId && !rootRegionId.equals("")){
@@ -364,4 +367,20 @@
 		}
 	}
 
+	/**
+	 * 设置水库名称( 判断该水库同一个区县下是否存在同水库名称的,如果是存在多个,水库名称前面拼上乡镇名称)
+	 * @param hk
+	 * @param info
+	 * @return
+	 */
+	private String setWaterName(HkVO hk, AttResAdVO info) {
+		// 根据水库名称、所在区域查询改水库的数量
+		Integer number = attResBaseService.getWaterCountByResNameAndCountyName(hk.getRegionName(),info.getCountyCode());
+		if (number>1){
+			return info.getTownName() + hk.getRegionName();
+		}else {
+			return hk.getRegionName();
+		}
+	}
+
 }
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 bc02ea6..6aab487 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
@@ -70,4 +70,12 @@
 	int getDimResInfoACount();
 
     Boolean updateIsShowStatus(@Param("ids") String ids, @Param("isShow") Integer status);
+
+	/**
+	 * 根据水库名称、所在区域查询改水库的数量
+	 * @param resName 水库名称
+	 * @param countyCode 区县编号
+	 * @return
+	 */
+	Integer getWaterCountByResNameAndCountyName(@Param("resName") String resName,@Param("countyCode")  String countyCode);
 }
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 263678c..024122d 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
@@ -236,5 +236,21 @@
 
     </update>
 
+    <!--根据水库名称、所在区域查询改水库的数量-->
+    <select id="getWaterCountByResNameAndCountyName" resultType="java.lang.Integer">
+        SELECT
+            count(1)
+        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."name" = #{resName}
+        and (
+            (b."ad_grad" = 3 and b."ad_code" = #{countyCode})
+            or
+            (c."ad_grad" = 3 and c."ad_code" = #{countyCode})
+        )
+    </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 b3ad0d8..6cee98b 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
@@ -57,4 +57,12 @@
 	int getDimResInfoACount();
 
     Boolean updateIsShowStatus(String ids, Integer status);
+
+	/**
+	 * 根据水库名称、所在区域查询改水库的数量
+	 * @param resName 水库名称
+	 * @param countyName 区县
+	 * @return
+	 */
+	Integer getWaterCountByResNameAndCountyName(String resName, String countyName);
 }
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 73d6b39..6a85f17 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
@@ -123,4 +123,15 @@
 	public Boolean updateIsShowStatus(String ids, Integer status) {
 		return baseMapper.updateIsShowStatus(ids,status);
 	}
+
+	/**
+	 * 根据水库名称、所在区域查询改水库的数量
+	 * @param resName 水库名称
+	 * @param countyCode 区县
+	 * @return
+	 */
+	@Override
+	public Integer getWaterCountByResNameAndCountyName(String resName, String countyCode) {
+		return baseMapper.getWaterCountByResNameAndCountyName(resName,countyCode);
+	}
 }

--
Gitblit v1.9.3