From 5e7892cd0921111dfbaf84196f2593f8045d1c11 Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期四, 08 十二月 2022 13:16:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/haucheng_panzhihua' into haucheng_panzhihua --- flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 164 insertions(+), 9 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java index c06ddb6..04f1d01 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java @@ -6,8 +6,10 @@ import com.dg.core.db.gen.entity.OrganizationChartEntity; import com.dg.core.db.gen.mapper.OrganizationChartMapper; import com.dg.core.service.IOrganizationChartService; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; @Service @@ -16,19 +18,32 @@ { @Override - public List<OrganizationChartEntity> selectConfigList(String parentId,String grade) + public List<OrganizationChartEntity> selectConfigList(String parentId,String grade,List<String> ids) { - List<OrganizationChartEntity> ocList=baseMapper.selectConfigList("","1"); + List<OrganizationChartEntity> ocList=baseMapper.selectConfigList(parentId,"1",ids); + + if(ocList==null || ocList.size()<1) + { + List<String> id=new ArrayList<>(); + id.add(parentId); + ocList=baseMapper.selectConfigList(null,null,id); + } for (OrganizationChartEntity entity:ocList) { - entity.setChild(baseMapper.selectConfigList(entity.getId()+"","")); + entity.setChild(baseMapper.selectConfigList(entity.getId()+"","",null)); if (entity.getChild()!=null) { entity.setChild(this.selectConfigList(entity.getId().toString())); } } + return ocList; + } + + @Override + public List<OrganizationChartEntity> selectConfigList(List<String> ids) { + List<OrganizationChartEntity> ocList=baseMapper.selectConfigList(null,null,ids); return ocList; } @@ -56,9 +71,9 @@ public List<OrganizationChartEntity> selectConfigList(String parentsId) { - List<OrganizationChartEntity> list =baseMapper.selectConfigList(parentsId,""); + List<OrganizationChartEntity> list =baseMapper.selectConfigList(parentsId,"",null); for (OrganizationChartEntity sysStreet:list) { - sysStreet.setChild(baseMapper.selectConfigList(sysStreet.getId().toString(),"")); + sysStreet.setChild(baseMapper.selectConfigList(sysStreet.getId().toString(),"",null)); if (sysStreet.getChild()!=null) { sysStreet.setChild(this.selectConfigList(sysStreet.getId().toString())); @@ -79,12 +94,152 @@ } @Override - public List<OrganizationChartEntity> queryList(IPage<OrganizationChartEntity> page, Integer state, String organizationName) { - return baseMapper.queryList(page,state,organizationName); + public List<OrganizationChartEntity> queryList(IPage<OrganizationChartEntity> page, Integer state, + String organizationName,List<String> ids) { + return baseMapper.queryList(page,state,organizationName,ids); } @Override - public int countList(String organizationName) { - return baseMapper.countList(organizationName); + public int countList(String organizationName,List<String> ids) { + return baseMapper.countList(organizationName,ids); } + + + @Override + public List<OrganizationChartEntity> selectParentList(String parentId, String grade) { + return baseMapper.selectConfigList(parentId,grade,null); + } + + /** + * 递归获取id 内部使用 + * @param id + * @return + */ + + @Override + public List<String> getIds(String id) + { + List<String> ids=new ArrayList<>(); + List<OrganizationChartEntity> lists = baseMapper.selectConfigList(id,"",null); + if(lists.size()<1) + { + lists.add(baseMapper.selectConfigById(id)); + } + ids=disposestreetId(lists); + if(ids.size()<1) + { + return null; + } + ids.add(id); + return ids; + } + + @Override + public List<String> getDepartmentId(String id){ + String parentId = parentId(id); + List<String> departmentIds=new ArrayList<>(); + departmentIds.add(parentId); + List<OrganizationChartEntity> organizationChartEntities = baseMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getParentId, parentId)); + for (OrganizationChartEntity organizationChart :organizationChartEntities){ + departmentIds.add(organizationChart.getId().toString()); + departmentIds=getDepartmentIds(organizationChart.getId().toString(),departmentIds); + } + return departmentIds; + } + + @Override + public String getStairId(String id) + { + OrganizationChartEntity entity= baseMapper.selectConfigById(id); + if(entity!=null && StringUtils.isEmpty(entity.getParentId())) + { + return entity.getId()+""; + } + else + { + return getParentId(entity.getParentId()); + } + } + + + /** + * 根据id 获取一级部门id 递归 + * @param id + * @return + */ + public String getParentId(String id) + { + String ultimatelyId; + OrganizationChartEntity entity= baseMapper.selectConfigById(id); + if(entity==null) + { + return id; + } + + if(!StringUtils.isEmpty(entity.getParentId())) + { + ultimatelyId= getParentId(entity.getParentId()); + return ultimatelyId; + } + else + { + ultimatelyId=entity.getId()+""; + return ultimatelyId; + } + } + + + + public String parentId(String id){ + String parentId=id; + OrganizationChartEntity organizationChart = baseMapper.selectOne(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getId, id)); + if (organizationChart.getParentId().length()>0){ + parentId=parentId(organizationChart.getParentId()); + } + return parentId; + } + + public List<String> getDepartmentIds(String id,List<String> departmentIds){ + List<OrganizationChartEntity> organizationChartEntities = baseMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getParentId, id)); + if (organizationChartEntities.size()==0){ + return departmentIds; + } + else { + for (OrganizationChartEntity organizationChart :organizationChartEntities){ + departmentIds.add(organizationChart.getId().toString()); + departmentIds=getDepartmentIds(organizationChart.getId().toString(),departmentIds); + } + } + return departmentIds; + } + + + + //递归取id + private List<String> disposestreetId(List<OrganizationChartEntity> lists) + { + List<String> ids=new ArrayList<>(); + if(lists==null || lists.size()<1) + { + return ids; + } + + for (OrganizationChartEntity sysStreet:lists) + { + if(sysStreet!=null&&sysStreet.getId()!=null) + { + if(sysStreet.getChild()!=null && sysStreet.getChild().size()>0) + { + ids.addAll(disposestreetId(sysStreet.getChild())); + } + else + { + ids.add(sysStreet.getId()+""); + } + } + } + return ids; + } + + } -- Gitblit v1.7.1