| | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | 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.cache.SysCache; |
| | | import org.springblade.common.node.TreeStringNode; |
| | | import org.springblade.common.utils.NodeTreeUtil; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringPool; |
| | | import org.springblade.modules.system.entity.Dept; |
| | | import org.springblade.modules.system.entity.Region; |
| | | import org.springblade.modules.system.excel.RegionExcel; |
| | | import org.springblade.modules.system.mapper.RegionMapper; |
| | | import org.springblade.modules.system.service.IDeptService; |
| | | import org.springblade.modules.system.service.IRegionService; |
| | | import org.springblade.modules.system.vo.RegionParamVO; |
| | | import org.springblade.modules.system.vo.RegionVO; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | */ |
| | | @Service |
| | | public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements IRegionService { |
| | | |
| | | @Autowired |
| | | private IDeptService deptService; |
| | | |
| | | @Override |
| | | public boolean submit(Region region) { |
| | |
| | | public List<RegionExcel> exportRegion(Wrapper<Region> queryWrapper) { |
| | | return baseMapper.exportRegion(queryWrapper); |
| | | } |
| | | |
| | | /** |
| | | * 树列表 |
| | | * |
| | | * @param region |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TreeStringNode> getTree(RegionParamVO region) { |
| | | List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId()); |
| | | Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2; |
| | | if (null!=region.getDeptNature()){ |
| | | // 公安 |
| | | if (region.getDeptNature()==1){ |
| | | // 查询公安对应的辖区树 |
| | | return NodeTreeUtil.getStringNodeTree(baseMapper.getPoliceTreeList()); |
| | | } |
| | | } |
| | | // 非公安 |
| | | return NodeTreeUtil.getStringNodeTree(baseMapper.getTreeList(region,regionChildCodesList,isAdministrator)); |
| | | } |
| | | |
| | | /** |
| | | * 树列表(获取当前树) |
| | | * |
| | | * @param code |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TreeStringNode> getTownTree(String code) { |
| | | Dept dept = deptService.getById(AuthUtil.getDeptId()); |
| | | String regionCode = null; |
| | | if (null != dept) { |
| | | regionCode = dept.getRegionCode(); |
| | | if (StringUtils.isNotBlank(regionCode) && regionCode.equals("361100")) { |
| | | regionCode = "361102"; |
| | | } |
| | | } |
| | | return NodeTreeUtil.getStringNodeTree(baseMapper.getTownTree(regionCode)); |
| | | } |
| | | |
| | | /** |
| | | * 树列表(包含省市县三级) |
| | | * |
| | | * @return |
| | | */ |
| | | @Override |
| | | 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, ',')); |
| | | } |
| | | |
| | | /** |
| | | * 查询下级区域(拼接网格) |
| | | * @param regionCode |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Region> getRegionChild(String regionCode) { |
| | | return baseMapper.getRegionChildList(regionCode); |
| | | } |
| | | } |