From c5badf4a2eafbaa4eff00f0941807626dda1d8ff Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Tue, 07 Apr 2026 20:10:46 +0800
Subject: [PATCH] opt: 人大金仓数据库改造

---
 drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/RegionServiceImpl.java |   33 +++++++++++++++++++++++++++++++--
 1 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/RegionServiceImpl.java b/drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/RegionServiceImpl.java
index 3e42505..812467b 100644
--- a/drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/RegionServiceImpl.java
+++ b/drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/RegionServiceImpl.java
@@ -54,9 +54,11 @@
 	public Region getById(Serializable id) {
 		return Optional.ofNullable(id)
 			.map(val -> baseMapper.selectOne(new LambdaQueryWrapper<Region>()
-				.eq(Region::getId, val)
+				// 1. 处理 id = ? 部分,强制转为 bigint
+				.apply("id = {0}::bigint", val)
 				.or()
-				.eq(Region::getCode, val)))
+				// 2. 处理 code = ? 部分,强制转为 varchar
+				.apply("code = {0}::varchar", val)))
 			.orElse(null);
 	}
 
@@ -71,6 +73,33 @@
 		if (regionParentCode.startsWith(MAIN_CODE)) {
 			region.setParentCode(StringUtil.removePrefix(regionParentCode, MAIN_CODE));
 		}
+		region.setCityName("吉安市");
+		region.setCityCode("360800000000");
+		region.setProvinceCode("360000000000");
+		region.setProvinceName("江西省");
+		if (region.getRegionLevel().equals(DISTRICT_LEVEL)) {
+			region.setDistrictCode(region.getCode());
+			region.setDistrictName(region.getName());
+		}
+		if (region.getRegionLevel().equals(TOWN_LEVEL)) {
+			String parentCode = region.getParentCode();
+			Region byCode = getByCode(parentCode);
+			region.setDistrictCode(byCode.getCode());
+			region.setDistrictName(byCode.getName());
+			region.setTownCode(region.getCode());
+			region.setTownName(region.getName());
+		}
+		if (region.getRegionLevel().equals(VILLAGE_LEVEL)) {
+			String parentCode = region.getParentCode();
+			Region byCode = getByCode(parentCode);
+			region.setTownCode(byCode.getCode());
+			region.setTownName(byCode.getName());
+			Region byCode2 = getByCode(byCode.getParentCode());
+			region.setDistrictCode(byCode2.getCode());
+			region.setDistrictName(byCode2.getName());
+			region.setVillageCode(region.getCode());
+			region.setVillageName(region.getName());
+		}
 		// 查询是否已存在
 		Long cnt = baseMapper.selectCount(Wrappers.<Region>query().lambda().eq(Region::getCode, region.getCode()));
 		if (cnt > 0L) {

--
Gitblit v1.9.3