查询项目管理机构管理的最高行政区划级别下的全部行政区划的树状列表逻辑完善
This commit is contained in:
parent
5c0027abeb
commit
899a5a833f
@ -5,6 +5,18 @@ import cn.hutool.json.JSONUtil;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
public class JsonStrUtil {
|
public class JsonStrUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断一个字符串是不是json数组
|
||||||
|
*/
|
||||||
|
public static boolean isJsonArray(String jsonStr) {
|
||||||
|
try {
|
||||||
|
JSONUtil.parseArray(jsonStr);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
*判断一个json数组为空
|
*判断一个json数组为空
|
||||||
*/
|
*/
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.fastbee.ggroup.service.impl;
|
package com.fastbee.ggroup.service.impl;
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||||
import com.fastbee.common.core.domain.entity.SysDept;
|
import com.fastbee.common.core.domain.entity.SysDept;
|
||||||
import com.fastbee.common.exception.ServiceException;
|
import com.fastbee.common.exception.ServiceException;
|
||||||
@ -61,7 +60,7 @@ public class GGroupsServiceImpl implements IGGroupsService
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询组树状列表(不带叶子节点)
|
* 查询组树状列表(不带叶子节点)后台站点管理
|
||||||
*
|
*
|
||||||
* @param gGroups 组
|
* @param gGroups 组
|
||||||
* @return 组
|
* @return 组
|
||||||
@ -86,7 +85,7 @@ public class GGroupsServiceImpl implements IGGroupsService
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<GGroupSiteVo> selectGGroupsListSites(GGroups gGroups) {
|
public List<GGroupSiteVo> selectGGroupsListSites(GGroups gGroups) {
|
||||||
|
//构建查询器
|
||||||
MPJLambdaWrapper<GSiteGroups> gSiteGroupsMPJLambdaWrapper = new MPJLambdaWrapper<GSiteGroups>()
|
MPJLambdaWrapper<GSiteGroups> gSiteGroupsMPJLambdaWrapper = new MPJLambdaWrapper<GSiteGroups>()
|
||||||
.select(GSiteGroups::getId, GSiteGroups::getParentId, GSiteGroups::getSiteId)
|
.select(GSiteGroups::getId, GSiteGroups::getParentId, GSiteGroups::getSiteId)
|
||||||
// .select(GGroups::getName)//起个别名
|
// .select(GGroups::getName)//起个别名
|
||||||
@ -96,6 +95,7 @@ public class GGroupsServiceImpl implements IGGroupsService
|
|||||||
.leftJoin(GGroups.class, GGroups::getId, GSiteGroups::getParentId)
|
.leftJoin(GGroups.class, GGroups::getId, GSiteGroups::getParentId)
|
||||||
.leftJoin(GSites.class, GSites::getId, GSiteGroups::getSiteId)
|
.leftJoin(GSites.class, GSites::getId, GSiteGroups::getSiteId)
|
||||||
.eq(GSiteGroups::getParentId, gGroups.getParentId())
|
.eq(GSiteGroups::getParentId, gGroups.getParentId())
|
||||||
|
//按名称模糊匹配
|
||||||
.like(StringUtils.isNotBlank(gGroups.getSearchValue()), GSites::getName, gGroups.getSearchValue());
|
.like(StringUtils.isNotBlank(gGroups.getSearchValue()), GSites::getName, gGroups.getSearchValue());
|
||||||
List<GGroupSiteVo> gGroupSiteVos = gSiteGroupsMapper.selectJoinList(GGroupSiteVo.class, gSiteGroupsMPJLambdaWrapper);
|
List<GGroupSiteVo> gGroupSiteVos = gSiteGroupsMapper.selectJoinList(GGroupSiteVo.class, gSiteGroupsMPJLambdaWrapper);
|
||||||
gSiteGroupsMapper.selectJoinList(GGroupSiteVo.class,gSiteGroupsMPJLambdaWrapper);
|
gSiteGroupsMapper.selectJoinList(GGroupSiteVo.class,gSiteGroupsMPJLambdaWrapper);
|
||||||
@ -114,7 +114,7 @@ public class GGroupsServiceImpl implements IGGroupsService
|
|||||||
adcodeList.addAll(JsonUtils.parseArray(sysDept.getTownCode(), Long.class));
|
adcodeList.addAll(JsonUtils.parseArray(sysDept.getTownCode(), Long.class));
|
||||||
adcodeList.addAll(JsonUtils.parseArray(sysDept.getVillageCode(), Long.class));
|
adcodeList.addAll(JsonUtils.parseArray(sysDept.getVillageCode(), Long.class));
|
||||||
//根据区域代码过滤站点
|
//根据区域代码过滤站点
|
||||||
if(Objects.nonNull(adcodeList) && !adcodeList.isEmpty()){
|
if(!adcodeList.isEmpty()){
|
||||||
gGroupSiteVos = gGroupSiteVos
|
gGroupSiteVos = gGroupSiteVos
|
||||||
.stream()
|
.stream()
|
||||||
.filter(gGroupSiteVo -> adcodeList.contains(Long.valueOf(gGroupSiteVo.getAreaCode()))).collect(Collectors.toList());
|
.filter(gGroupSiteVo -> adcodeList.contains(Long.valueOf(gGroupSiteVo.getAreaCode()))).collect(Collectors.toList());
|
||||||
@ -165,11 +165,9 @@ public class GGroupsServiceImpl implements IGGroupsService
|
|||||||
List<GGroupSiteVo> gGroupSiteAllList = selectGGroupsAllListSites(new GGroups());
|
List<GGroupSiteVo> gGroupSiteAllList = selectGGroupsAllListSites(new GGroups());
|
||||||
//根据区域代码过滤站点
|
//根据区域代码过滤站点
|
||||||
if(Objects.nonNull(areaCodeList) && !areaCodeList.isEmpty()){
|
if(Objects.nonNull(areaCodeList) && !areaCodeList.isEmpty()){
|
||||||
|
|
||||||
gGroupSiteAllList = gGroupSiteAllList.stream()
|
gGroupSiteAllList = gGroupSiteAllList.stream()
|
||||||
.filter(site -> areaCodeList.contains(site.getAreaCode())).collect(Collectors.toList());
|
.filter(site -> areaCodeList.contains(site.getAreaCode())).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (GGroups group : groupsList) {
|
for (GGroups group : groupsList) {
|
||||||
//查询组的直接子站点列表
|
//查询组的直接子站点列表
|
||||||
//过滤全部站点列表找到当前组下面的所有站点
|
//过滤全部站点列表找到当前组下面的所有站点
|
||||||
|
@ -3,11 +3,8 @@ package com.fastbee.ggroup.service.impl;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
|
||||||
import com.fastbee.common.exception.ServiceException;
|
import com.fastbee.common.exception.ServiceException;
|
||||||
import com.fastbee.common.utils.DateUtils;
|
import com.fastbee.common.utils.DateUtils;
|
||||||
import com.fastbee.ggroup.domain.GSites;
|
import com.fastbee.ggroup.domain.GSites;
|
||||||
|
@ -15,7 +15,7 @@ import com.fastbee.ggroup.service.IGSiteDeviceService;
|
|||||||
* 站点设备关系Service业务层处理
|
* 站点设备关系Service业务层处理
|
||||||
*
|
*
|
||||||
* @author kerwincui
|
* @author kerwincui
|
||||||
* @date 2024-11-05
|
* @date 2024-11-05
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class GSiteDeviceServiceImpl implements IGSiteDeviceService
|
public class GSiteDeviceServiceImpl implements IGSiteDeviceService
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.fastbee.project.service.impl;
|
package com.fastbee.project.service.impl;
|
||||||
|
|
||||||
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONArray;
|
||||||
import cn.hutool.json.JSONException;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
||||||
@ -22,7 +21,6 @@ import com.fastbee.project.domain.Project;
|
|||||||
import com.fastbee.project.domain.vo.ProjectLoginBaseInfo;
|
import com.fastbee.project.domain.vo.ProjectLoginBaseInfo;
|
||||||
import com.fastbee.project.mapper.ProjectMapper;
|
import com.fastbee.project.mapper.ProjectMapper;
|
||||||
import com.fastbee.project.service.IProjectService;
|
import com.fastbee.project.service.IProjectService;
|
||||||
|
|
||||||
import com.fastbee.system.domain.SysDistrict;
|
import com.fastbee.system.domain.SysDistrict;
|
||||||
import com.fastbee.system.mapper.SysDeptMapper;
|
import com.fastbee.system.mapper.SysDeptMapper;
|
||||||
import com.fastbee.system.mapper.SysDistrictMapper;
|
import com.fastbee.system.mapper.SysDistrictMapper;
|
||||||
@ -167,7 +165,7 @@ public class ProjectServiceImpl implements IProjectService
|
|||||||
throw new ServiceException("创建默认机构失败!");
|
throw new ServiceException("创建默认机构失败!");
|
||||||
}
|
}
|
||||||
// 新增机构关联系统账号
|
// 新增机构关联系统账号
|
||||||
// 添加管理员角色,给所有权限
|
// 添加管理员角色,给基本权限
|
||||||
SysDept sysDept = deptService.selectDeptById(100L);
|
SysDept sysDept = deptService.selectDeptById(100L);
|
||||||
List<SysMenu> sysMenuList = sysMenuService.selectMenuList(new SysMenu(), sysDept.getDeptUserId());
|
List<SysMenu> sysMenuList = sysMenuService.selectMenuList(new SysMenu(), sysDept.getDeptUserId());
|
||||||
Long[] menuIdList = sysMenuList.stream().map(SysMenu::getMenuId)
|
Long[] menuIdList = sysMenuList.stream().map(SysMenu::getMenuId)
|
||||||
@ -225,7 +223,7 @@ public class ProjectServiceImpl implements IProjectService
|
|||||||
throw new ServiceException("项目行政区域代码不能为空!");
|
throw new ServiceException("项目行政区域代码不能为空!");
|
||||||
}
|
}
|
||||||
//判断行政区域代码json格式
|
//判断行政区域代码json格式
|
||||||
if(isNotValidJsonArray(project.getAdministrativeAreaCode())){
|
if(!JsonStrUtil.isJsonArray(project.getAdministrativeAreaCode())){
|
||||||
throw new ServiceException("项目行政区域代码多选列表非json数组!");
|
throw new ServiceException("项目行政区域代码多选列表非json数组!");
|
||||||
}
|
}
|
||||||
//项目省代码列表
|
//项目省代码列表
|
||||||
@ -240,7 +238,7 @@ public class ProjectServiceImpl implements IProjectService
|
|||||||
List<String> villageCodeList =new ArrayList<>();
|
List<String> villageCodeList =new ArrayList<>();
|
||||||
JSONArray administrativeAreaList = JSONUtil.parseArray(project.getAdministrativeAreaCode());
|
JSONArray administrativeAreaList = JSONUtil.parseArray(project.getAdministrativeAreaCode());
|
||||||
administrativeAreaList.forEach(item->{
|
administrativeAreaList.forEach(item->{
|
||||||
if(isNotValidJsonArray(item.toString())){
|
if(!JsonStrUtil.isJsonArray(item.toString())){
|
||||||
throw new ServiceException("项目行政区域代码多选列表的元素非json数组!");
|
throw new ServiceException("项目行政区域代码多选列表的元素非json数组!");
|
||||||
}
|
}
|
||||||
//单个行政区划代码列表
|
//单个行政区划代码列表
|
||||||
@ -275,17 +273,7 @@ public class ProjectServiceImpl implements IProjectService
|
|||||||
project.setVillageCode(JSONUtil.toJsonStr(villageCodeList));
|
project.setVillageCode(JSONUtil.toJsonStr(villageCodeList));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 验证json对象是否是数组
|
|
||||||
*/
|
|
||||||
public boolean isNotValidJsonArray(String jsonStr) {
|
|
||||||
try {
|
|
||||||
JSONUtil.parseArray(jsonStr);
|
|
||||||
} catch (JSONException e) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改项目
|
* 修改项目
|
||||||
@ -557,6 +545,31 @@ public class ProjectServiceImpl implements IProjectService
|
|||||||
//镇级查村级别行政区划
|
//镇级查村级别行政区划
|
||||||
queryInLevelList.add(DepartmentAdministrationLevelConstant.VILLAGE);
|
queryInLevelList.add(DepartmentAdministrationLevelConstant.VILLAGE);
|
||||||
|
|
||||||
|
}
|
||||||
|
//村级管理机构
|
||||||
|
else if(Objects.equals(sysDept.getAdministrativeLevel(), DepartmentAdministrationLevelConstant.VILLAGE)){
|
||||||
|
//添加省代码
|
||||||
|
if(JsonStrUtil.nonEmptyArray(sysDept.getProvinceCode())){
|
||||||
|
queryInAdcodeList.add(JSONUtil.parseArray(sysDept.getProvinceCode()).get(0));
|
||||||
|
}
|
||||||
|
//添加市代码
|
||||||
|
if(JsonStrUtil.nonEmptyArray(sysDept.getCityCode()))
|
||||||
|
queryInAdcodeList.add(JSONUtil.parseArray(sysDept.getCityCode()).get(0));
|
||||||
|
//添加县代码
|
||||||
|
if(JsonStrUtil.nonEmptyArray(sysDept.getCountyCode())){
|
||||||
|
queryInAdcodeList.add(JSONUtil.parseArray(sysDept.getCountyCode()).get(0));
|
||||||
|
}
|
||||||
|
//添加镇代码
|
||||||
|
if(JsonStrUtil.nonEmptyArray(sysDept.getTownCode())){
|
||||||
|
queryInAdcodeList.add(JSONUtil.parseArray(sysDept.getTownCode()).get(0));
|
||||||
|
}
|
||||||
|
//添加村代码
|
||||||
|
if(JsonStrUtil.nonEmptyArray(sysDept.getVillageCode())){
|
||||||
|
queryInAdcodeList.add(JSONUtil.parseArray(sysDept.getVillageCode()).get(0));
|
||||||
|
}
|
||||||
|
//村级查户级别行政区划
|
||||||
|
queryInLevelList.add(DepartmentAdministrationLevelConstant.VILLAGE);
|
||||||
|
|
||||||
}
|
}
|
||||||
//先根据项目机构行政管理级别查上层的行政区划信息
|
//先根据项目机构行政管理级别查上层的行政区划信息
|
||||||
List<SysDistrict> aboveSysDistrictList =new ArrayList<>();
|
List<SysDistrict> aboveSysDistrictList =new ArrayList<>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user