diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/OrganizationServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/OrganizationServiceApi.java index b3c8fd099..a25360a1e 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/OrganizationServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/OrganizationServiceApi.java @@ -95,4 +95,17 @@ public interface OrganizationServiceApi { */ Long getParentOrgLevel(Long orgId, String orgLevelCode); + /** + * 获取指定机构的,指定层级编码的机构信息 + *

+ * 例如:获取北京公司/信息中心/技术部,获取技术部的一级机构信息(北京公司),二级机构信息(信息中心) + *

+ * + * @param hrOrganizationDTO 指定的机构信息 + * @param levelCode 指定的层级编码,对应的sys_hr_organization_level表的levelCode + * @author fengshuonan + * @since 2025/2/6 16:39 + */ + HrOrganizationDTO getParentOrgByDataScopeType(HrOrganizationDTO hrOrganizationDTO, String levelCode); + } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java index 40bbcf80c..99d6077f8 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java @@ -481,6 +481,31 @@ public class HrOrganizationServiceImpl extends ServiceImpl parentIdList = ParentIdParseUtil.parseToPidList(orgPids); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(HrOrganization::getOrgId, parentIdList); + List list = this.list(wrapper); + + // 遍历父级单位,找到指定参数层级对应的机构 + for (HrOrganization hrOrganization : list) { + String orgLevelCode = hrOrganization.getLevelCode(); + if (orgLevelCode.equals(levelCode)) { + return BeanUtil.copyProperties(hrOrganization, HrOrganizationDTO.class); + } + } + return null; + } + @Override public HomeCompanyInfo orgStatInfo() {