From 66bfbdb9251c22ffa2b5f05595a76a3547a2f5eb Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Mon, 09 Feb 2026 11:00:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/RegionServiceImpl.java | 87 +++++++++++++++++++++++++++++++++++++------
1 files changed, 75 insertions(+), 12 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 9aab317..80a9189 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
@@ -16,9 +16,7 @@
*/
package org.sxkj.system.service.impl;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -26,14 +24,16 @@
import org.apache.logging.log4j.util.Strings;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.utils.*;
+import org.springframework.stereotype.Service;
import org.sxkj.common.func.Streams;
import org.sxkj.system.entity.Region;
import org.sxkj.system.excel.RegionExcel;
+import org.sxkj.system.excel.RegionImportExcel;
import org.sxkj.system.mapper.RegionMapper;
+import org.sxkj.system.param.RegionExportParam;
import org.sxkj.system.param.RegionPageParam;
import org.sxkj.system.service.IRegionService;
import org.sxkj.system.vo.RegionVO;
-import org.springframework.stereotype.Service;
import org.sxkj.system.vo.TreeVo;
import java.io.Serializable;
@@ -70,6 +70,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()));
@@ -124,11 +151,47 @@
return baseMapper.lazyTree(parentCode, param);
}
+ // WHEN
+ // region_level = '5' THEN town_name
+ // WHEN
+ // region_level = '4' THEN district_name
+ // WHEN
+ // region_level = '3' THEN city_name
+ // WHEN
+ // region_level = '2' THEN province_name
@Override
- public void importRegion(List<RegionExcel> data, Boolean isCovered) {
+ public void importRegion(List<RegionImportExcel> data, Boolean isCovered) {
List<Region> list = new ArrayList<>();
data.forEach(regionExcel -> {
Region region = BeanUtil.copy(regionExcel, Region.class);
+ region.setRegionLevel(Integer.valueOf(regionExcel.getRegionLevel()));
+ 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());
+ }
list.add(region);
});
if (isCovered) {
@@ -139,8 +202,8 @@
}
@Override
- public List<RegionExcel> exportRegion(Wrapper<Region> queryWrapper) {
- return baseMapper.exportRegion(queryWrapper);
+ public List<RegionExcel> exportRegion(RegionExportParam region) {
+ return baseMapper.exportRegion(region);
}
/**
@@ -197,15 +260,15 @@
@Override
public TreeVo buildRegionTree(String parentCode) {
- if(StringUtil.isBlank(parentCode)){
+ if (StringUtil.isBlank(parentCode)) {
return null;
}
LambdaQueryWrapper<Region> query = Wrappers.<Region>lambdaQuery()
.le(Region::getRegionLevel, 3)
.likeRight(Region::getParentCode, parentCode.replaceAll("0+$", ""))
.or(regionLambdaQueryWrapper ->
- regionLambdaQueryWrapper.eq(Region::getCode, parentCode)
- );
+ regionLambdaQueryWrapper.eq(Region::getCode, parentCode)
+ );
List<Region> list = list(query);
List<TreeVo> regionVOS = Streams.toList(list, region -> {
TreeVo vo = new TreeVo();
@@ -220,7 +283,7 @@
List<TreeVo> regionVOS1 = buildRegionTree(regionVOS, parentCode);
TreeVo treeVo = map.get(parentCode);
- if(Objects.nonNull(treeVo)){
+ if (Objects.nonNull(treeVo)) {
treeVo.setChildrens(regionVOS1);
}
@@ -240,7 +303,7 @@
* @return List of RegionVO trees starting from the specified parentCode
*/
public List<TreeVo> buildRegionTree(List<TreeVo> allRegions, String parentCode) {
- if(CollectionUtil.isEmpty(allRegions)){
+ if (CollectionUtil.isEmpty(allRegions)) {
return Collections.EMPTY_LIST;
}
@@ -255,7 +318,7 @@
/**
* Recursive method to build the region tree
*
- * @param regionMap Map of regions grouped by parentCode
+ * @param regionMap Map of regions grouped by parentCode
* @param currentCode Current region code to process
* @return List of RegionVOs with children populated
*/
--
Gitblit v1.9.3