diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrOrganizationRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrOrganizationRequest.java index bf7104331..1f7deff6e 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrOrganizationRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/HrOrganizationRequest.java @@ -80,10 +80,22 @@ public class HrOrganizationRequest extends BaseRequest { @NotNull(message = "角色id不能为空", groups = orgZTree.class) private Long roleId; + /** + * 用户id(作为查询条件) + */ + @NotNull(message = "用户id不能为空", groups = userOrgScopeQuery.class) + private Long userId; + /** * 组织机构树zTree形式 */ public @interface orgZTree { } + /** + * 查询用户的数据范围 + */ + public @interface userOrgScopeQuery { + } + } diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/OrganizationTreeNode.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/OrganizationTreeNode.java index 842225295..5104d4096 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/OrganizationTreeNode.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/organization/OrganizationTreeNode.java @@ -35,6 +35,11 @@ public class OrganizationTreeNode implements AbstractTreeNode, AbstractXmSelectN */ private boolean spread = true; + /** + * 是否选中 + */ + private boolean selected = false; + /** * 子节点的集合 */ @@ -67,7 +72,7 @@ public class OrganizationTreeNode implements AbstractTreeNode, AbstractXmSelectN @Override public Boolean getSelected() { - return false; + return this.selected; } @Override diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrganizationController.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrganizationController.java index 45fc84eb8..10bc0d740 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrganizationController.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrganizationController.java @@ -120,6 +120,17 @@ public class HrOrganizationController { return new SuccessResponseData(hrOrganizationService.organizationTree(hrOrganizationRequest)); } + /** + * 获取组织机构树(用于用户绑定数据范围,可以渲染是否选中信息) + * + * @author fengshuonan + * @date 2021/3/19 22:20 + */ + @GetResource(name = "获取组织机构树(用于用户绑定数据范围)", path = "/hrOrganization/treeOrgScope") + public ResponseData organizationTreeOrgScope(@Validated(value = HrOrganizationRequest.userOrgScopeQuery.class) HrOrganizationRequest hrOrganizationRequest) { + return new SuccessResponseData(hrOrganizationService.organizationTree(hrOrganizationRequest)); + } + /** * 获取组织机构树(用于角色配置数据范围类型,并且数据范围类型是指定组织机构时)(layui版本) * diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java index 3b8e16d39..b3f3cc9a8 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java @@ -176,6 +176,20 @@ public class HrOrganizationServiceImpl extends ServiceImpl orgIds = userServiceApi.getUserBindDataScope(hrOrganizationRequest.getUserId()); + if (ObjectUtil.isNotEmpty(orgIds)) { + for (OrganizationTreeNode organizationTreeNode : treeNodeList) { + for (Long orgId : orgIds) { + if (organizationTreeNode.getId().equals(orgId)) { + organizationTreeNode.setSelected(true); + } + } + } + } + } + // 构建树并返回 return new DefaultTreeBuildFactory().doTreeBuild(treeNodeList); }