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

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); departmentService.edit(departmentUpdateCmd);
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
} }
@ApiOperation("部门树状所有数据") @ApiOperation("企业下部门树状所有数据")
@PostMapping("/listTree") @PostMapping("/listTree")
public MultiResponse<DepartmentTreeInfoCO> listTree(@Validated @RequestBody DepartmentTreeQry qry) { public MultiResponse<DepartmentTreeInfoCO> listTree(@Validated @RequestBody DepartmentTreeQry qry) {
return MultiResponse.of(departmentService.listTree(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 * @return
*/ */
public PageResponse<DepartmentCO> execute(DepartmentPageQry departmentPageQry) { public PageResponse<DepartmentCO> execute(DepartmentPageQry departmentPageQry) {
if(departmentPageQry.getEqCorpinfoId() == null){ if (departmentPageQry.getEqCorpinfoId() == null) {
departmentPageQry.setEqCorpinfoId(AuthContext.getTenantId()); departmentPageQry.setEqCorpinfoId(AuthContext.getTenantId());
} }
Map<String, Object> parmas = PageQueryHelper.toHashMap(departmentPageQry); Map<String, Object> parmas = PageQueryHelper.toHashMap(departmentPageQry);
PageResponse<DepartmentDO> pageResponse = departmentRepository.listPage(parmas); PageResponse<DepartmentDO> pageResponse = departmentRepository.listPage(parmas);
List<DepartmentCO> examCenterCOS = departmentCoConvertor.converDOsToCOs(pageResponse.getData()); 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()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
//获取所有的部门id //获取所有的部门id
List<Long> departmentIds = examCenterCOS.stream().map(DepartmentCO::getId).collect(Collectors.toList()); List<Long> departmentIds = examCenterCOS.stream().map(DepartmentCO::getId).collect(Collectors.toList());
//获取所有部门的负责人 //获取所有部门的负责人
Map<Long, String> departmentLeaderMap = userRepository.getDepartmentLeaderByDepartmentId(departmentIds); Map<Long, String> departmentLeaderMap = userRepository.getDepartmentLeaderByDepartmentId(departmentIds);
if(CollUtil.isNotEmpty(departmentLeaderMap)){ if (CollUtil.isNotEmpty(departmentLeaderMap)) {
examCenterCOS.forEach(examCenterCO -> { examCenterCOS.forEach(examCenterCO -> {
examCenterCO.setDepartmentUserLeaderList(departmentLeaderMap.getOrDefault(examCenterCO.getId(), StringUtils.EMPTY)); examCenterCO.setDepartmentUserLeaderList(departmentLeaderMap.getOrDefault(examCenterCO.getId(), StringUtils.EMPTY));
}); });
@ -81,7 +81,7 @@ public class DepartmentQueryExe {
} }
List<DepartmentTreeInfoCO> examCenterCOS = departmentCoConvertor.converDOsToInfoCOs(pageResponse); List<DepartmentTreeInfoCO> examCenterCOS = departmentCoConvertor.converDOsToInfoCOs(pageResponse);
//GBS部门根节点父部门是tenantId //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()); departmentCO.setParentName(departmentDO.getName());
} }
} }
if(CommonFlagEnum.YES.getCode().equals(departmentCO.getSuperviseFlag())){ if (CommonFlagEnum.YES.getCode().equals(departmentCO.getSuperviseFlag())) {
// departmentSuperviseRepository // departmentSuperviseRepository
DepartmentSupervisePageQry qry = new DepartmentSupervisePageQry(); DepartmentSupervisePageQry qry = new DepartmentSupervisePageQry();
qry.setEqSuperviseDepartmentId(id); qry.setEqSuperviseDepartmentId(id);
Map<String, Object> params = PageQueryHelper.toHashMap(qry); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<Long> postDepartmentDOS = departmentSuperviseRepository.listBySuperviseDepartmentId(params); List<Long> postDepartmentDOS = departmentSuperviseRepository.listBySuperviseDepartmentId(params);
if(CollUtil.isNotEmpty(postDepartmentDOS)){ if (CollUtil.isNotEmpty(postDepartmentDOS)) {
departmentCO.setDepartmentIdsList(postDepartmentDOS); departmentCO.setDepartmentIdsList(postDepartmentDOS);
} }
} }
@ -127,5 +127,25 @@ public class DepartmentQueryExe {
List<DepartmentDO> list = departmentRepository.list(); List<DepartmentDO> list = departmentRepository.list();
return departmentCoConvertor.converDOsToCOs(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(); 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> listByDepartIds(Collection<Long> collection);
List<DepartmentCO> getDeptList(); List<DepartmentCO> getDeptList();
Collection<List<DepartmentTreeInfoCO>> listAllTree();
} }

View File

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

View File

@ -1,11 +1,11 @@
package com.zcloud.basic.info.persistence.mapper; package com.zcloud.basic.info.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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 com.zcloud.basic.info.persistence.dataobject.DepartmentDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* web-infrastructure * web-infrastructure
* *
@ -15,5 +15,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface DepartmentMapper extends BaseMapper<DepartmentDO> { 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); 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"> <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> </mapper>