From de09889cb97fcd7e9ae3236d3cb0d9f2f752e439 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 22 Apr 2026 15:26:30 +0800
Subject: [PATCH] fix: 删除机构异常
---
drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/RegionServiceImpl.java | 36 +++++++++++++++++++++++++++++++++---
1 files changed, 33 insertions(+), 3 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..2803440 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);
}
@@ -70,6 +72,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()));
@@ -111,7 +140,8 @@
if (cnt > 0L) {
throw new ServiceException("请先删除子节点!");
}
- return removeById(id);
+ Long idLong = Long.valueOf(id);
+ return removeById(idLong);
}
@Override
--
Gitblit v1.9.3