diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java index 5d7bc7c..038877d 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java @@ -45,8 +45,8 @@ public class DingOrganizationController { @PostMapping("/get-child-list") @ApiOperation("获取组织架构的树状结构(单位筛选列表)") - public List getChildOrganizationList(@RequestParam(value = "parentCode", required = false) String parentCode,@RequestParam(value = "orgName", required = false) String orgName) { - return organizationManage.getChildOrganizationList(parentCode,orgName,false); + public List getChildOrganizationList(@RequestParam(value = "parentCode", required = false) String parentCode, @RequestParam(value = "orgName", required = false) String orgName) { + return organizationManage.getChildOrganizationList(parentCode, orgName, false); } @ApiOperation("组织树状列表筛选(前端定制化接口不可复用)") diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java index 5f7e37d..eb5a8ce 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java @@ -180,9 +180,15 @@ public class OrganizationManage { } public List treeEmployeeQuery(String employeeName, String organizationCode) { - List organizationCodeList = CollUtil.toList(organizationCode).stream() + List parentCodeList = CollUtil.toList(organizationCode).stream() .filter(StringUtils::isNotBlank) .collect(Collectors.toList()); + + // 获取所有的组织列表 + List organizationCodeList = new ArrayList<>(); + getChildList(organizationCodeList, parentCodeList); + organizationCodeList = organizationCodeList.stream().distinct().collect(Collectors.toList()); + List dingEmployeeInfoList = iDingEmployeeInfoService .list(Wrappers.lambdaQuery(DingEmployeeInfo.class) .like(DingEmployeeInfo::getEmployeeName, employeeName) @@ -213,6 +219,21 @@ public class OrganizationManage { return orgKeyTreeVOList; } + private void getChildList(List orgCodeList, List parentCodeList) { + if (CollUtil.isEmpty(parentCodeList)) { + return; + } + orgCodeList.addAll(parentCodeList); +// orgCodeList = orgCodeList.stream().distinct().collect(Collectors.toList()); + + for (String parentCode : parentCodeList) { + List childOrgList = iDingOrganizationService.list(Wrappers.lambdaQuery(DingOrganization.class) + .in(DingOrganization::getParentCode, parentCode)); + List newParentCodeList = childOrgList.stream().map(DingOrganization::getOrganizationCode).collect(Collectors.toList()); + getChildList(orgCodeList, newParentCodeList); + } + } + private void employeeNameSearcheTreeVOList(List basicOrgKeyTreeVOList, List allDingEmployeeInfoList) { Map> orgCodeEmployeeMap = allDingEmployeeInfoList.stream() .filter(r -> StringUtils.isNotBlank(r.getOrganizationCode()))