package com.dg.core.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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
|
public class OrganizationChartImpl extends ServiceImpl<OrganizationChartMapper, OrganizationChartEntity>
|
implements IOrganizationChartService
|
{
|
|
@Override
|
public List<OrganizationChartEntity> selectConfigList(String parentId,String grade,List<String> ids)
|
{
|
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()+"","",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;
|
}
|
|
@Override
|
public int insertConfig(OrganizationChartEntity entity) {
|
return baseMapper.insertConfig(entity);
|
}
|
|
@Override
|
public int updateConfig(OrganizationChartEntity entity) {
|
return baseMapper.updateConfig(entity);
|
}
|
|
@Override
|
public int deleteConfigById(String Id) {
|
return baseMapper.deleteConfigById(Id);
|
}
|
|
@Override
|
public int countNum() {
|
return baseMapper.countNum();
|
}
|
|
|
|
|
public List<OrganizationChartEntity> selectConfigList(String parentsId) {
|
List<OrganizationChartEntity> list =baseMapper.selectConfigList(parentsId,"",null);
|
for (OrganizationChartEntity sysStreet:list) {
|
sysStreet.setChild(baseMapper.selectConfigList(sysStreet.getId().toString(),"",null));
|
if (sysStreet.getChild()!=null)
|
{
|
sysStreet.setChild(this.selectConfigList(sysStreet.getId().toString()));
|
}
|
|
}
|
return list;
|
}
|
|
@Override
|
public List<OrganizationChartEntity> selectList(){
|
return baseMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda().orderByAsc(OrganizationChartEntity::getGrade));
|
}
|
|
@Override
|
public OrganizationChartEntity selectConfigById(String id) {
|
return baseMapper.selectConfigById(id);
|
}
|
|
@Override
|
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,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;
|
}
|
|
|
}
|