zhongrj
2024-01-18 d03abd47f2f6c0145b0d30773a8b5ee6252f1139
新增区域数据处理
6 files modified
77 ■■■■■ changed files
src/main/java/org/springblade/modules/system/controller/RegionController.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/entity/Region.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/RegionMapper.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IRegionService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java 44 ●●●●● patch | view | raw | blame | history
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();
    }
}
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;
    /**
     * 区划编号
     */
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();
}
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>
src/main/java/org/springblade/modules/system/service/IRegionService.java
@@ -104,4 +104,9 @@
     * @return
     */
    List<TreeStringNode> getBaseTree();
    /**
     * 区划数据处理
     */
    void regionDataHandle();
}
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, ','));
    }
}