admin 管理员组

文章数量: 1086019

人员岗位和机构设计

    说一下项目环境:

    我们做的是流程相关类的项目,存在着很多种需求单子,每个单子一个流程,但人员机构和岗位是公用的,审核时根据审核选项选择下一节点的处理人,规则是根据下一节点的处理机构来选择下一节点的处理人员。

    ---------------------------------------------项目A--------------------------------------------------------

    之前在运维一个项目A时,遇到了人员、岗位、机构的想到绑定的一种情况,导致运维特别复杂。

    说明一下:

    比如有2个机构org1、org2,2个人user1、user2,2种岗位 posi1、posi2;在项目A中的情况是这样的。

   

    在org1下有一个posi1,在org2下有一个posi2;user1的认证机构为org1,user2的认证机构为org2;但是user1和user2都在posi1和posi2中;

    如上图,查找下一节点审核人时,找到对应机构下的岗位,再查找此岗位下的人员。

    但是这种情况就存在着双重绑定的情况。

    在机构数和人员数量特别大的时候,会导致运维特别复杂,比如我在增加1个岗位,就需要在N个机构下都去创建岗位,比如我有M个机构,就需要创建M*N个岗位,效率十分低下。

    ---------------------------------------------项目B--------------------------------------------------------

    鉴于此,在后来对此项目进行重构改造时新建项目B,对这种设计进行了优化处理,其考虑如下:

    因为岗位相当于是权限的表达,而具体的权限是和业务系统是有关的,不同的业务系统岗位会不一样,但一套完整的人员机构关系是可以应用于多个子系统的。因此解开双向绑定的情况,其核心就是解开岗位和机构的关系。

    

    解开双向绑定后,在整个系统就只需要N个岗位了,而不是每个机构下都设置N个岗位,这样运维的效率就提高了。

    这样我们查找审核人时就可以查找出此岗位下的认证机构为XX的人员作为审核人了。

    ----------------------------------------------项目C-------------------------------------------------

    BUT,我们在做另外一个项目C时遇到了一个问题,就是user1是属于org1的,他也在posi2下,要求他也可以审核只有org2的人员才可以审核的需求,当然这种是少数情况。

    针对这种需求,上面的这种就无法进行满足了。

    由于是少数情况,因此我们衍生出一种设计,就是给人员添加一个管理机构。如下图:

    

    因此,我们可以通过让user1可以审核需要org2的需求单子了。

    说得不是很清楚,请各位见谅,只是把这种情况记录下来,以备查询。

本文标签: 人员岗位和机构设计