一种基于树形结构的组织结构权限分配方法组成比例

技术编号:29489271 阅读:16 留言:0更新日期:2021-07-30 19:00
本发明专利技术提出了一种基于树形结构的组织结构权限分配方法,所述方法包括:确定组织结构树的类结构并获取所有组织节点的类结构信息;遍历所有组织节点的类结构信息,并放入treeNoteHashMap中;遍历时,根据各个组织节点的类结构中的哈希权限值判断是否具有权限,基于其父节点在treeNoteHashMap查询是否存在父节点,如果不存在,则将该组织节点同时加入noParentdataHashMap中;依次遍历noParentdataHashMap中的所有组织节点,基于各组织节点的类结构中的父节点在treeNoteHashMap查询得到对应的父节点;基于treeNoteHashMap形成组织结构树形图。

【技术实现步骤摘要】
一种基于树形结构的组织结构权限分配方法
本专利技术涉及权限管控领域,尤其涉及一种基于树形结构的组织结构权限分配方法。
技术介绍
随着互联网技术的快速发展,对于快速的进行人员权限的变更,权限的交互展示,权限数据的存储上的需求也越来越高,但是原有的权限系统在效率上无法满足日益增长的业务。本专利技术预解决的问题就是通过不同的存储结构、不同的存储介质、不同的查询方式相结合来提高执行的效率,以便满足增长得业务需求。
技术实现思路
为了解决上述问题,有必要提供一种基于树形结构的组织结构权限分配方法。本专利技术第一方面提出一种基于树形结构的组织结构权限分配方法,所述方法包括以下步骤:步骤1,确定组织结构树的类结构Treenote,其中所述类结构Treenote包括ID、哈希权限值hashAuthority、父节点parentID、子节点集合childrennotes,并获取所有组织节点的类结构Treenote信息;步骤2,依次遍历所有组织节点的类结构Treenote信息,并将各个组织节点放入treeNoteHashMap中;在遍历过程中,根据各个组织节点的类结构Treenote中的哈希权限值hashAuthority判断是否具有权限,当轮询到某组织节点的类结构Treenote信息时,基于其父节点parentID在treeNoteHashMap查询是否存在父节点,如果不存在,则将该组织节点同时加入noParentdataHashMap中;步骤3,依次遍历noParentdataHashMap中的所有组织节点,在遍历过程中,基于各组织节点的类结构Treenote中的父节点parentID在treeNoteHashMap查询得到对应的父节点;步骤4,基于treeNoteHashMap,形成组织结构树形图。进一步的,上述步骤2,具体包括:步骤2-1,将所有组织节点的类结构Treenote信息汇总成为treeNoteList;步骤2-2,遍历treeNoteList,获取第一个treeNote,并将第一个treeNote放到treeNoteHashMap中;步骤2-3,判断第一个treeNote的id是否为0,如果是,则设置其为根节点TreeRoot,并返回步骤2-2;如果否,则进入步骤2-4;步骤2-4,获取第一个treeNote的父节点parentID,并在treeNoteHashMap中根据parentID获取对应的父节点,同时基于第一个treeNote中的哈希权限值hashAuthority判断权限集合中是否包含该组织节点,如果包括,则将hashAuthority由初始值false改为true,反之初始值false不变;步骤2-5,判断是否成功获取对应的父节点,如果是,进入步骤2-6,如果不是,则进入步骤2-7;步骤2-6,获取父节点parentNote中的子节点集合childrennotes,并将该第一个treeNote加入到该子节点集合childrennotes中,然后轮询下一个treeNote;步骤2-7,将第一个treeNote放入到noParentdataHashMap中,然后轮询下一个treeNote。进一步的,上述步骤3,具体包括:步骤3-1,判断noParentdataHashMap是否为空,如果为空,则直接结束,如果不为空,则进入步骤3-2;步骤3-2,获取noParentdataHashMap中的第一个treeNote,根据第一个treeNote的父节点parentID在treeNoteHashMap查询得到对应的父节点,并将该第一个treeNote加入到父节点的子节点集合childrennotes中,然后轮询下一个treeNote。进一步的,上述步骤1,具体还包括:在类结构Treenote增加节点集合PersonNotes字段,并追加一个人员权限表,所述人员权限表包括多个PersonNote,且每个PersonNote至少包括ID、name、hashAuthority、personId。进一步的,在上述步骤4之后,所述方法还包括:判断对应组织节点下的人员权限表personAtuhList的用户是否存在有权限,并将有权限的hashAuthority值设为true,同时将无权限的hashAuthority值设为false;将人员节点放入对应组织节点的节点集合PersonNotes中,基于各个组织节点的节点集合PersonNotes组装成PersonNotemap;基于PersonNotemap在原始的组织结构树形图追加人员权限。本专利技术最佳情况下只要循环一次组织信息的总数就可以完善所有组织权限以及组织节点顺序,即使是最差情况下,最多循环两次组织信息的总数就可以完善所有组织权限以及组织节点顺序。相交于传统的递归循环方式来一级一级的查找父级组织,能够快速建立组织结构树形图,有效提升组织结构权限分配的效率。本专利技术的附加方面和优点将在下面的描述部分中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1示出了本专利技术组织节点的存储结构图。图2示出了本专利技术各组织节点的结构树形图。图3示出了本专利技术修正组织结构树的类结构图。图4示出了本专利技术第一次遍历循环的流程图。图5示出了本专利技术第二次遍历循环的流程图。图6示出了本专利技术带有组织节点权限标识的组织结构树形图。图7示出了本专利技术组织结构树的另一类结构图和PersonNote字段结构图。图8示出了本专利技术组装PersonNoteMap的流程图。图9示出了本专利技术带有组织节点和人员权限标识的结构树形图。具体实施方式为了能够更清楚地理解本专利技术的上述目的、特征和优点,下面结合附图和具体实施方式对本专利技术进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是,本专利技术还可以采用其他不同于在此描述的其他方式来实施,因此,本专利技术的保护范围并不受下面公开的具体实施例的限制。本专利技术采用BRAC权限设计中的RBAC1的模型,在组织中增加parent字段表示它的父级关系,本专利技术旨在以增加必要的空间开支来实现快速高效。物理存储采用主流的关系型数据库,所需要的存储结构如图1所示。组织表是核心,记录各个组织的信息,人员则在不同的组织下面,每个组织所拥有的权限也不相同。组织表本身可以转换成一个组织结构树,但该树只存在子父关系而顺序欠缺,使得无法应用树中的查找法来进行快速查找与设置对应的属性。结构树如图2所示。其原本的处理方法是采用递归循环来一级一级的查找父级组织,即从子向父找,会导致多个子组织重复获取一段相同的组织路径,例如A-本文档来自技高网...

【技术保护点】
1.一种基于树形结构的组织结构权限分配方法,其特征在于,所述方法包括以下步骤:/n步骤1,确定组织结构树的类结构Treenote,其中所述类结构Treenote包括ID、哈希权限值hashAuthority、父节点parentID、子节点集合childrennotes,并获取所有组织节点的类结构Treenote信息;/n步骤2,依次遍历所有组织节点的类结构Treenote信息,并将各个组织节点放入treeNoteHashMap中;在遍历过程中,根据各个组织节点的类结构Treenote中的哈希权限值hashAuthority判断是否具有权限,当轮询到某组织节点的类结构Treenote信息时,基于其父节点parentID在treeNoteHashMap查询是否存在父节点,如果不存在,则将该组织节点同时加入noParentdataHashMap中;/n步骤3,依次遍历noParentdataHashMap中的所有组织节点,在遍历过程中,基于各组织节点的类结构Treenote中的父节点parentID在treeNoteHashMap查询得到对应的父节点;/n步骤4,基于treeNoteHashMap,形成组织结构树形图。/n...

【技术特征摘要】
1.一种基于树形结构的组织结构权限分配方法,其特征在于,所述方法包括以下步骤:
步骤1,确定组织结构树的类结构Treenote,其中所述类结构Treenote包括ID、哈希权限值hashAuthority、父节点parentID、子节点集合childrennotes,并获取所有组织节点的类结构Treenote信息;
步骤2,依次遍历所有组织节点的类结构Treenote信息,并将各个组织节点放入treeNoteHashMap中;在遍历过程中,根据各个组织节点的类结构Treenote中的哈希权限值hashAuthority判断是否具有权限,当轮询到某组织节点的类结构Treenote信息时,基于其父节点parentID在treeNoteHashMap查询是否存在父节点,如果不存在,则将该组织节点同时加入noParentdataHashMap中;
步骤3,依次遍历noParentdataHashMap中的所有组织节点,在遍历过程中,基于各组织节点的类结构Treenote中的父节点parentID在treeNoteHashMap查询得到对应的父节点;
步骤4,基于treeNoteHashMap,形成组织结构树形图。


2.根据权利要求1所述的基于树形结构的组织结构权限分配方法,其特征在于,上述步骤2,具体包括:
步骤2-1,将所有组织节点的类结构Treenote信息汇总成为treeNoteList;
步骤2-2,遍历treeNoteList,获取第一个treeNote,并将第一个treeNote放到treeNoteHashMap中;
步骤2-3,判断第一个treeNote的id是否为0,如果是,则设置其为根节点TreeRoot,并返回步骤2-2;如果否,则进入步骤2-4;
步骤2-4,获取第一个treeNote的父节点parentID,并在treeNoteHashMap中根据parentID获取对应的父节点,同时基于第一个treeNote中的哈希权限值hashAuthority判断权限集合中是否包含该组织节点,如果包括,则将hashAuthority由初始值false改为true,反之初始值false...

【专利技术属性】
技术研发人员:孙豪梁琦任建琴王超江淋王平
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1