部门增加所有企业的树状结构

main
zhaokai 2025-11-19 17:14:13 +08:00
parent c81d15084c
commit a6131058b2
9 changed files with 52 additions and 9 deletions

View File

@ -85,11 +85,16 @@ public class DepartmentController {
departmentService.edit(departmentUpdateCmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("部门树状所有数据")
@ApiOperation("企业下部门树状所有数据")
@PostMapping("/listTree")
public MultiResponse<DepartmentTreeInfoCO> listTree(@Validated @RequestBody DepartmentTreeQry qry) {
return MultiResponse.of(departmentService.listTree(qry));
}
@ApiOperation("所有企业下部门树状所有数据")
@PostMapping("/listAllTree")
public MultiResponse<List<DepartmentTreeInfoCO>> listAllTree() {
return MultiResponse.of(departmentService.listAllTree());
}
}

View File

@ -48,20 +48,20 @@ public class DepartmentQueryExe {
* @return
*/
public PageResponse<DepartmentCO> execute(DepartmentPageQry departmentPageQry) {
if(departmentPageQry.getEqCorpinfoId() == null){
if (departmentPageQry.getEqCorpinfoId() == null) {
departmentPageQry.setEqCorpinfoId(AuthContext.getTenantId());
}
Map<String, Object> parmas = PageQueryHelper.toHashMap(departmentPageQry);
PageResponse<DepartmentDO> pageResponse = departmentRepository.listPage(parmas);
List<DepartmentCO> examCenterCOS = departmentCoConvertor.converDOsToCOs(pageResponse.getData());
if(CollUtil.isEmpty(examCenterCOS)){
if (CollUtil.isEmpty(examCenterCOS)) {
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//获取所有的部门id
List<Long> departmentIds = examCenterCOS.stream().map(DepartmentCO::getId).collect(Collectors.toList());
//获取所有部门的负责人
Map<Long, String> departmentLeaderMap = userRepository.getDepartmentLeaderByDepartmentId(departmentIds);
if(CollUtil.isNotEmpty(departmentLeaderMap)){
if (CollUtil.isNotEmpty(departmentLeaderMap)) {
examCenterCOS.forEach(examCenterCO -> {
examCenterCO.setDepartmentUserLeaderList(departmentLeaderMap.getOrDefault(examCenterCO.getId(), StringUtils.EMPTY));
});
@ -81,7 +81,7 @@ public class DepartmentQueryExe {
}
List<DepartmentTreeInfoCO> examCenterCOS = departmentCoConvertor.converDOsToInfoCOs(pageResponse);
//GBS部门根节点父部门是tenantId
return Tools.buildEntityTree(examCenterCOS, "id", "parentId", "childrenList",departmentQry.getEqCorpinfoId());
return Tools.buildEntityTree(examCenterCOS, "id", "parentId", "childrenList", departmentQry.getEqCorpinfoId());
}
@ -101,13 +101,13 @@ public class DepartmentQueryExe {
departmentCO.setParentName(departmentDO.getName());
}
}
if(CommonFlagEnum.YES.getCode().equals(departmentCO.getSuperviseFlag())){
if (CommonFlagEnum.YES.getCode().equals(departmentCO.getSuperviseFlag())) {
// departmentSuperviseRepository
DepartmentSupervisePageQry qry = new DepartmentSupervisePageQry();
qry.setEqSuperviseDepartmentId(id);
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<Long> postDepartmentDOS = departmentSuperviseRepository.listBySuperviseDepartmentId(params);
if(CollUtil.isNotEmpty(postDepartmentDOS)){
if (CollUtil.isNotEmpty(postDepartmentDOS)) {
departmentCO.setDepartmentIdsList(postDepartmentDOS);
}
}
@ -127,5 +127,25 @@ public class DepartmentQueryExe {
List<DepartmentDO> list = departmentRepository.list();
return departmentCoConvertor.converDOsToCOs(list);
}
public Collection<List<DepartmentTreeInfoCO>> listAllTree() {
List<DepartmentDO> pageResponse = departmentRepository.listAllTree();
if (CollUtil.isEmpty(pageResponse)) {
return Collections.emptyList();
}
List<DepartmentTreeInfoCO> examCenterCOS = departmentCoConvertor.converDOsToInfoCOs(pageResponse);
//GBS部门根节点父部门是tenantId
//按照企业分组
List<List<DepartmentTreeInfoCO>> result1= new ArrayList<>();
Map<Long, List<DepartmentTreeInfoCO>> corpMap = examCenterCOS.stream().collect(Collectors.groupingBy(DepartmentTreeInfoCO::getCorpinfoId));
corpMap.forEach((corpId, list) -> {
List<DepartmentTreeInfoCO> departmentTreeInfoCOS = Tools.buildEntityTree(list, "id", "parentId", "childrenList", corpId);
result1.add(departmentTreeInfoCOS);
});
return result1;
}
}

View File

@ -82,5 +82,9 @@ public class DepartmentServiceImpl implements DepartmentServiceI {
return departmentQueryExe.getDeptList();
}
@Override
public Collection<List<DepartmentTreeInfoCO>> listAllTree() {
return departmentQueryExe.listAllTree();
}
}

View File

@ -35,5 +35,7 @@ public interface DepartmentServiceI {
List<DepartmentCO> listByDepartIds(Collection<Long> collection);
List<DepartmentCO> getDeptList();
Collection<List<DepartmentTreeInfoCO>> listAllTree();
}

View File

@ -20,6 +20,8 @@ public class DepartmentTreeInfoCO extends ClientObject {
//主键
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "所属企业")
private Long corpinfoId;
//部门id
@ApiModelProperty(value = "部门id")
private String departmentId;

View File

@ -1,11 +1,11 @@
package com.zcloud.basic.info.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.basic.info.persistence.dataobject.DepartmentDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* web-infrastructure
*
@ -15,5 +15,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DepartmentMapper extends BaseMapper<DepartmentDO> {
List<DepartmentDO> listAllTree();
}

View File

@ -32,5 +32,6 @@ public interface DepartmentRepository extends BaseRepository<DepartmentDO> {
void updateInfoById(DepartmentDO departmentDO);
List<DepartmentDO> listAllTree();
}

View File

@ -119,5 +119,9 @@ public class DepartmentRepositoryImpl extends BaseRepositoryImpl<DepartmentMappe
}
}
@Override
public List<DepartmentDO> listAllTree() {
return departmentMapper.listAllTree();
}
}

View File

@ -4,5 +4,9 @@
<mapper namespace="com.zcloud.basic.info.persistence.mapper.DepartmentMapper">
<select id="listAllTree" resultType="com.zcloud.basic.info.persistence.dataobject.DepartmentDO">
select * from department where delete_enum = 'FALSE'
</select>
</mapper>