| | |
| | | import org.apache.logging.log4j.util.Strings; |
| | | import org.springblade.common.cache.SysCache; |
| | | import org.springblade.common.node.TreeStringNode; |
| | | import org.springblade.common.utils.AuthUtils; |
| | | import org.springblade.common.utils.NodeTreeUtil; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | |
| | | */ |
| | | @Override |
| | | public List<TreeStringNode> getTree(RegionParamVO region) { |
| | | List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId(),null); |
| | | Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2; |
| | | if (null!=region.getDeptNature()){ |
| | | List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId(), null); |
| | | Integer isAdministrator = AuthUtils.isAdministratorOrAdmin(AuthUtil.getUserRole()) == true ? 1 : 2; |
| | | if (null != region.getDeptNature()) { |
| | | // 公安 |
| | | if (region.getDeptNature()==1){ |
| | | if (region.getDeptNature() == 1) { |
| | | // 查询公安对应的辖区树 |
| | | return NodeTreeUtil.getStringNodeTree(baseMapper.getPoliceTreeList()); |
| | | } |
| | | // 综治的需要查到网格 |
| | | if (region.getDeptNature()==2){ |
| | | region.setCityCode("361100"); |
| | | } |
| | | } |
| | | // 非公安 |
| | | return NodeTreeUtil.getStringNodeTree(baseMapper.getTreeList(region,regionChildCodesList,isAdministrator)); |
| | | return NodeTreeUtil.getStringNodeTree(baseMapper.getTreeList(region, regionChildCodesList, isAdministrator)); |
| | | } |
| | | |
| | | /** |
| | |
| | | @Override |
| | | public List<TreeStringNode> getTownTree(String code) { |
| | | String regionCode = null; |
| | | if (!AuthUtil.isAdministrator() && !AuthUtil.isAdmin()){ |
| | | if (!AuthUtil.isAdministrator() && !AuthUtil.isAdmin()) { |
| | | Dept dept = deptService.getById(AuthUtil.getDeptId()); |
| | | if (null != dept) { |
| | | regionCode = dept.getRegionCode(); |
| | |
| | | // 遍历处理 |
| | | for (Region region : regionList) { |
| | | // 设置code |
| | | region.setCode(StringUtils.rightPad(region.getCode(),12,"0")); |
| | | region.setCode(StringUtils.rightPad(region.getCode(), 12, "0")); |
| | | // 设置parent_code |
| | | region.setParentCode(StringUtils.rightPad(region.getParentCode(),12,"0")); |
| | | region.setParentCode(StringUtils.rightPad(region.getParentCode(), 12, "0")); |
| | | // 设置Ancestors |
| | | setAncestors(region); |
| | | // 设置ProvinceCode |
| | | region.setProvinceCode(StringUtils.rightPad(region.getProvinceCode(),12,"0")); |
| | | region.setProvinceCode(StringUtils.rightPad(region.getProvinceCode(), 12, "0")); |
| | | // 设置CityCode |
| | | region.setCityCode(StringUtils.rightPad(region.getCityCode(),12,"0")); |
| | | region.setCityCode(StringUtils.rightPad(region.getCityCode(), 12, "0")); |
| | | // 设置DistrictCode |
| | | region.setDistrictCode(StringUtils.rightPad(region.getDistrictCode(),12,"0")); |
| | | region.setDistrictCode(StringUtils.rightPad(region.getDistrictCode(), 12, "0")); |
| | | // 设置TownCode |
| | | region.setTownCode(StringUtils.rightPad(region.getTownCode(),12,"0")); |
| | | region.setTownCode(StringUtils.rightPad(region.getTownCode(), 12, "0")); |
| | | // 设置VillageCode |
| | | region.setVillageCode(StringUtils.rightPad(region.getVillageCode(),12,"0")); |
| | | 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")); |
| | | list.add(StringUtils.rightPad(s, 12, "0")); |
| | | } |
| | | region.setAncestors(Strings.join(list, ',')); |
| | | } |
| | | |
| | | /** |
| | | * 查询下级区域(拼接网格) |
| | | * |
| | | * @param regionCode |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Region> getRegionChild(String regionCode,String communityCode) { |
| | | public List<Region> getRegionChild(String regionCode, String communityCode) { |
| | | // 创建区域对象 |
| | | List<Region> list = new ArrayList<>(); |
| | | // 查询公安相关的区域数据 |
| | | List<Region> regionList = baseMapper.getPoliceList(communityCode); |
| | | if (regionList.size()>0) { |
| | | List<Region> policeList = treeRegionList(regionList,regionCode, list); |
| | | if (regionList.size() > 0) { |
| | | List<Region> policeList = treeRegionList(regionList, regionCode, list); |
| | | list.addAll(policeList); |
| | | } |
| | | // 查询综治区域集合 |
| | | List<Region> regionChildList = baseMapper.getRegionChildList(regionCode); |
| | | List<Region> regionChildList = baseMapper.getRegionChildList(regionCode, null, null); |
| | | list.addAll(regionChildList); |
| | | // 返回 |
| | | return list; |
| | |
| | | |
| | | /** |
| | | * 获取民警下级区域 |
| | | * |
| | | * @param regionCode |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Region> getPoliceRegionChild(String regionCode,String communityCode) { |
| | | public List<Region> getPoliceRegionChild(String regionCode, String communityCode) { |
| | | // 创建区域对象 |
| | | List<Region> list = new ArrayList<>(); |
| | | // 查询公安相关的区域数据 |
| | | List<Region> regionList = baseMapper.getPoliceList(communityCode); |
| | | if (regionList.size()>0) { |
| | | List<Region> policeList = treeRegionList(regionList,regionCode, list); |
| | | if (regionList.size() > 0) { |
| | | List<Region> policeList = treeRegionList(regionList, regionCode, list); |
| | | list.addAll(policeList); |
| | | } |
| | | // 返回 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取综治下级区域 |
| | | * |
| | | * @param regionCode |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Region> getGridRegionChild(String regionCode, String communityCode, String roleName) { |
| | | // 创建区域对象 |
| | | List<Region> list = new ArrayList<>(); |
| | | if (!Strings.isBlank(roleName) && roleName.equals("wgy")) { |
| | | // 查询综治区域集合 |
| | | List<Region> regionChildList = baseMapper.getGridRegionChildList(regionCode); |
| | | list.addAll(regionChildList); |
| | | }else if (!Strings.isBlank(roleName) && roleName.equals("mj")){ |
| | | // 查询公安相关的区域数据 |
| | | List<Region> regionList = baseMapper.getPoliceList(communityCode); |
| | | if (regionList.size()>0) { |
| | | List<Region> policeList = treeRegionList(regionList,regionCode, list); |
| | | list.addAll(policeList); |
| | | } |
| | | } else { |
| | | // 查询综治区域集合 |
| | | List<Region> regionChildList = baseMapper.getRegionChildList(regionCode, communityCode, roleName); |
| | | list.addAll(regionChildList); |
| | | } |
| | | // 返回 |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 获取某个父节点下面的所有子节点 |
| | | * |
| | | * @param regionList |
| | | * @param parentCode |
| | | * @param list |
| | | * @return |
| | | */ |
| | | public static List<Region> treeRegionList( List<Region> regionList, String parentCode,List<Region> list){ |
| | | for(Region region: regionList){ |
| | | public static List<Region> treeRegionList(List<Region> regionList, String parentCode, List<Region> list) { |
| | | for (Region region : regionList) { |
| | | //遍历出父id等于参数的id,add进子节点集合 |
| | | if(region.getParentCode().equals(parentCode)){ |
| | | if (region.getParentCode().equals(parentCode)) { |
| | | list.add(region); |
| | | //递归遍历下一级 |
| | | treeRegionList(regionList,region.getCode(),list); |
| | | treeRegionList(regionList, region.getCode(), list); |
| | | } |
| | | if(region.getCode().equals(parentCode)){ |
| | | // 本身也加入 |
| | | list.add(region); |
| | | } |
| | | } |
| | | return list; |