查询所有企业部门树,添加企业类型条件

main
zhaokai 2026-01-07 15:24:01 +08:00
parent 8d0cd9c2b8
commit 04e95de506
8 changed files with 67 additions and 27 deletions

View File

@ -87,8 +87,14 @@ public class DepartmentController {
} }
@ApiOperation("所有企业下部门树状所有数据") @ApiOperation("所有企业下部门树状所有数据")
@PostMapping("/listAllTree") @PostMapping("/listAllTree")
public MultiResponse<DepartmentTreeInfoCO> listAllTree( @RequestBody DepartmentTreeQry qry) { public MultiResponse<DepartmentTreeInfoCO> listAllTree() {
return MultiResponse.of(departmentService.listAllTree(qry)); return MultiResponse.of(departmentService.listAllTree());
}
@ApiOperation("所有企业下部门树状所有数据根据企业类型")
@PostMapping("/listAllTreeByCorpType")
public MultiResponse<DepartmentTreeInfoCO> listAllTreeByCorpType( @RequestBody DepartmentTreeQry qry) {
return MultiResponse.of(departmentService.listAllTreeByCorpType(qry));
} }

View File

@ -151,13 +151,16 @@ public class DepartmentQueryExe {
return departmentCoConvertor.converDOsToCOs(list); return departmentCoConvertor.converDOsToCOs(list);
} }
public List<DepartmentTreeInfoCO> listAllTree(DepartmentTreeQry departmentQry) { public List<DepartmentTreeInfoCO> listAllTree() {
Map<String, Object> parmas = PageQueryHelper.toHashMap(departmentQry); List<DepartmentDO> pageResponse = departmentRepository.listAllTree();
List<DepartmentDO> pageResponse = departmentRepository.listAllTree(parmas);
if (CollUtil.isEmpty(pageResponse)) { if (CollUtil.isEmpty(pageResponse)) {
return Collections.emptyList(); return Collections.emptyList();
} }
List<DepartmentTreeInfoCO> result2 = getDepartmentAllTree(pageResponse);
return result2;
}
private List<DepartmentTreeInfoCO> getDepartmentAllTree(List<DepartmentDO> pageResponse) {
List<DepartmentTreeInfoCO> examCenterCOS = departmentCoConvertor.converDOsToInfoCOs(pageResponse); List<DepartmentTreeInfoCO> examCenterCOS = departmentCoConvertor.converDOsToInfoCOs(pageResponse);
Map<Long, String> corpinfoMap = corpInfoRepository.getCorpinfoNameByCorpinfoId(examCenterCOS.stream().map(DepartmentTreeInfoCO::getCorpinfoId).distinct().collect(Collectors.toList())); Map<Long, String> corpinfoMap = corpInfoRepository.getCorpinfoNameByCorpinfoId(examCenterCOS.stream().map(DepartmentTreeInfoCO::getCorpinfoId).distinct().collect(Collectors.toList()));
if (CollUtil.isNotEmpty(corpinfoMap)) { if (CollUtil.isNotEmpty(corpinfoMap)) {
@ -180,9 +183,20 @@ public class DepartmentQueryExe {
result2.addAll(departmentTreeInfoCOS); result2.addAll(departmentTreeInfoCOS);
} }
}); });
return result2; return result2;
} }
public Collection<DepartmentTreeInfoCO> listAllTreeByCorpType(DepartmentTreeQry qry) {
Map<String, Object> parmas = PageQueryHelper.toHashMap(qry);
List<DepartmentDO> pageResponse = departmentRepository.listAllTreeByCorpType(parmas);
if (CollUtil.isEmpty(pageResponse)) {
return Collections.emptyList();
}
List<DepartmentTreeInfoCO> result2 = getDepartmentAllTree(pageResponse);
return result2;
}
} }

View File

@ -85,9 +85,16 @@ public class DepartmentServiceImpl implements DepartmentServiceI {
} }
@Override @Override
public List<DepartmentTreeInfoCO> listAllTree(DepartmentTreeQry qry) { public List<DepartmentTreeInfoCO> listAllTree() {
return departmentQueryExe.listAllTree(qry); return departmentQueryExe.listAllTree();
} }
@Override
public Collection<DepartmentTreeInfoCO> listAllTreeByCorpType(DepartmentTreeQry qry) {
return departmentQueryExe.listAllTreeByCorpType(qry);
}
@Override @Override
@Cacheable(value = "deptAllNameCache", key="'deptId:'+#deptId") @Cacheable(value = "deptAllNameCache", key="'deptId:'+#deptId")
public String getFullNameForList(Long deptId, List<DepartmentCO> list) { public String getFullNameForList(Long deptId, List<DepartmentCO> list) {

View File

@ -38,10 +38,11 @@ public interface DepartmentServiceI {
List<DepartmentCO> getDeptList(); List<DepartmentCO> getDeptList();
List<DepartmentTreeInfoCO> listAllTree(DepartmentTreeQry qry); List<DepartmentTreeInfoCO> listAllTree();
String getFullNameForList(Long deptId, List<DepartmentCO> list); String getFullNameForList(Long deptId, List<DepartmentCO> list);
Collection<DepartmentTreeInfoCO> listAllTreeByCorpType(DepartmentTreeQry qry);
} }

View File

@ -25,7 +25,9 @@ import java.util.Map;
}) })
public interface DepartmentMapper extends BaseMapper<DepartmentDO> { public interface DepartmentMapper extends BaseMapper<DepartmentDO> {
List<DepartmentDO> listAllTree(Map<String, Object> parmas); List<DepartmentDO> listAllTree();
IPage<DepartmentDO> selectDeptPage(IPage<DepartmentDO> iPage, @Param("ew") QueryWrapper<DepartmentDO> queryWrapper, String menuPerms); IPage<DepartmentDO> selectDeptPage(IPage<DepartmentDO> iPage, @Param("ew") QueryWrapper<DepartmentDO> queryWrapper, String menuPerms);
List<DepartmentDO> listAllTreeByCorpType(Map<String, Object> parmas);
} }

View File

@ -33,8 +33,10 @@ public interface DepartmentRepository extends BaseRepository<DepartmentDO> {
void updateInfoById(DepartmentDO departmentDO); void updateInfoById(DepartmentDO departmentDO);
List<DepartmentDO> listAllTree(Map<String, Object> parmas); List<DepartmentDO> listAllTree();
boolean existsByName(@NotEmpty(message = "名称不能为空") String name); boolean existsByName(@NotEmpty(message = "名称不能为空") String name);
List<DepartmentDO> listAllTreeByCorpType(Map<String, Object> parmas);
} }

View File

@ -126,8 +126,13 @@ public class DepartmentRepositoryImpl extends BaseRepositoryImpl<DepartmentMappe
} }
@Override @Override
public List<DepartmentDO> listAllTree(Map<String, Object> parmas) { public List<DepartmentDO> listAllTree() {
return departmentMapper.listAllTree(parmas); return departmentMapper.listAllTree();
}
@Override
public List<DepartmentDO> listAllTreeByCorpType(Map<String, Object> parmas) {
return departmentMapper.listAllTreeByCorpType(parmas);
} }
@Override @Override

View File

@ -5,23 +5,26 @@
<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 id="listAllTree" resultType="com.zcloud.basic.info.persistence.dataobject.DepartmentDO">
select d.* select * from department where delete_enum = 'FALSE' order by dep_order, create_time desc
from department d
left join corp_info c on d.corpinfo_id = c.id
where d.delete_enum = 'FALSE'
and c.delete_enum = 'FALSE'
<if test="corpinfoTypeList != null and corpinfoTypeList.size() > 0">
and c.type in
<foreach collection="corpinfoTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
order by d.dep_order, d.create_time desc
</select> </select>
<select id="selectDeptPage" resultType="com.zcloud.basic.info.persistence.dataobject.DepartmentDO"> <select id="selectDeptPage" resultType="com.zcloud.basic.info.persistence.dataobject.DepartmentDO">
SELECT * SELECT *
FROM department FROM department
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="listAllTreeByCorpType" resultType="com.zcloud.basic.info.persistence.dataobject.DepartmentDO">
select d.*
from department d
left join corp_info c on d.corpinfo_id = c.id
where d.delete_enum = 'FALSE'
and c.delete_enum = 'FALSE'
<if test="corpinfoTypeList != null and corpinfoTypeList.size() > 0">
and c.type in
<foreach collection="corpinfoTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
order by d.dep_order, d.create_time desc
</select>
</mapper> </mapper>