From d03abd47f2f6c0145b0d30773a8b5ee6252f1139 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 18 Jan 2024 14:18:50 +0800
Subject: [PATCH] 新增区域数据处理

---
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.java            |    6 +++
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml             |    6 +++
 src/main/java/org/springblade/modules/system/service/IRegionService.java         |    5 ++
 src/main/java/org/springblade/modules/system/controller/RegionController.java    |    9 ++++
 src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java |   44 ++++++++++++++++++++++
 src/main/java/org/springblade/modules/system/entity/Region.java                  |    7 +++
 6 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/controller/RegionController.java b/src/main/java/org/springblade/modules/system/controller/RegionController.java
index 7d3778a..1a427e3 100644
--- a/src/main/java/org/springblade/modules/system/controller/RegionController.java
+++ b/src/main/java/org/springblade/modules/system/controller/RegionController.java
@@ -236,5 +236,14 @@
 		ExcelUtil.export(response, "行政区划模板", "行政区划表", list, RegionExcel.class);
 	}
 
+	/**
+	 * 区划数据处理
+	 */
+	@ApiOperation(value = "区划数据处理")
+	@GetMapping("/regionDataHandle")
+	public void regionDataHandle() {
+		regionService.regionDataHandle();
+	}
+
 
 }
diff --git a/src/main/java/org/springblade/modules/system/entity/Region.java b/src/main/java/org/springblade/modules/system/entity/Region.java
index 3dbca89..61e0915 100644
--- a/src/main/java/org/springblade/modules/system/entity/Region.java
+++ b/src/main/java/org/springblade/modules/system/entity/Region.java
@@ -37,6 +37,13 @@
 
 	private static final long serialVersionUID = 1L;
 
+//	/**
+//	 * 区划编号  ---数据处理用
+//	 */
+//	@TableId(value = "id", type = IdType.AUTO)
+//	@ApiModelProperty(value = "区划编号")
+//	private Long id;
+
 	/**
 	 * 区划编号
 	 */
diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
index 21b1bfc..aabedc1 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
@@ -84,4 +84,10 @@
 	 */
 	@MapKey(value = "id")
     Map<String, TreeStringNode> getBaseTree();
+
+	/**
+	 * 查询parentCode 长度少于12 的
+	 * @return
+	 */
+    List<Region> getCodeLess12DataList();
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
index d418cbb..0f22ccd 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
@@ -161,4 +161,10 @@
         where region_level >0 and region_level &lt;4
     </select>
 
+    <!--查询parentCode 长度少于12 的-->
+    <select id="getCodeLess12DataList" resultType="org.springblade.modules.system.entity.Region">
+        SELECT * FROM blade_region
+        where length(parent_code) &lt; 12
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/system/service/IRegionService.java b/src/main/java/org/springblade/modules/system/service/IRegionService.java
index 832bf01..8416d79 100644
--- a/src/main/java/org/springblade/modules/system/service/IRegionService.java
+++ b/src/main/java/org/springblade/modules/system/service/IRegionService.java
@@ -104,4 +104,9 @@
 	 * @return
 	 */
 	List<TreeStringNode> getBaseTree();
+
+	/**
+	 * 区划数据处理
+	 */
+    void regionDataHandle();
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
index 2c3709b..2f33745 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
@@ -20,6 +20,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.util.Strings;
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.common.utils.NodeTreeUtil;
 import org.springblade.core.log.exception.ServiceException;
@@ -170,4 +171,47 @@
 	public List<TreeStringNode> getBaseTree() {
 		return NodeTreeUtil.getStringNodeTree(baseMapper.getBaseTree());
 	}
+
+	/**
+	 * 区划数据处理
+	 */
+	@Override
+	public void regionDataHandle() {
+		// 查询所有区划数据
+		List<Region> regionList = baseMapper.getCodeLess12DataList();
+		// 遍历处理
+		for (Region region : regionList) {
+			// 设置code
+			region.setCode(StringUtils.rightPad(region.getCode(),12,"0"));
+			// 设置parent_code
+			region.setParentCode(StringUtils.rightPad(region.getParentCode(),12,"0"));
+			// 设置Ancestors
+			setAncestors(region);
+			// 设置ProvinceCode
+			region.setProvinceCode(StringUtils.rightPad(region.getProvinceCode(),12,"0"));
+			// 设置CityCode
+			region.setCityCode(StringUtils.rightPad(region.getCityCode(),12,"0"));
+			// 设置DistrictCode
+			region.setDistrictCode(StringUtils.rightPad(region.getDistrictCode(),12,"0"));
+			// 设置TownCode
+			region.setTownCode(StringUtils.rightPad(region.getTownCode(),12,"0"));
+			// 设置VillageCode
+			region.setVillageCode(StringUtils.rightPad(region.getVillageCode(),12,"0"));
+			// 更新
+			updateById(region);
+		}
+	}
+
+	/**
+	 * Ancestors 字段处理
+	 * @param region
+	 */
+	private void setAncestors(Region region) {
+		String[] split = region.getAncestors().split(",");
+		List<String> list = new ArrayList<>();
+		for (String s : split) {
+			list.add(StringUtils.rightPad(s,12,"0"));
+		}
+		region.setAncestors(Strings.join(list, ','));
+	}
 }

--
Gitblit v1.9.3