表单列表的逻辑

要按照部门和项目展开表单列表,本来表单和部门是没有直接关系,但是通过人员可以建立关系。

1、部门下面有人员 userUnderDepSet。

2、表单涉及到的人员usersCusRequesSet:创建人、表单流程定义涉及的node-》node所涉及到的处理人员。

如果部门下的人员userUnderDepSet存在与表单usersCusRequesSet中,那么表单和部门就建立关系了,关系分为以下几种:

1、直属项目下的表单;2、非直属项目下的表单;3、不属于任何项目下的表单。

 

 

在部门下增加表单的流程可以大致描述为:

 

取得所有表单,然后取得表单和人员的映射Map<表单,人员set> cusRequestUserMap;

 

判断directlyUserSet中人员所关联的表单directlyCusrequestSet的方法为:

对directlyUserSet中的每一个人,查看cusRequestUserMap中每个cusrequest对应的人员set,如果其存在于其中,则把cusreqest加入到directlyCusrequestSet中去。

 

1、首先得到当前人员所管辖的部门树。

这时需要准备的变量还有:1、当前部门父部门下的直接人员(如果是第一次调用为null):grandUserSet

                                    2、当前部门下的所有表单(如果是第一次调用为null):grandCusrequestSet

2、根据部门得到部门下的直接人员 directlyUserSet、部门下的项目projSet

  1)如果grandUserSet不为空,在directlyUserSet中去掉存在与grandUserSet的人员,得到新的directlyUserSet。

  2)在directlyUserSet不为空的前提下,取得directlyUserSet中人员所关联的表单directlyCusrequestSet。

  3)去掉directlyCusrequestSet中也存在与grandCusrequestSet中的元素。

就得到了(人员--表单)directlyCusrequestSet,对应directlyCusrequestSet中的每一个元素

  1)如果表单所属的项目,是当前部门下的直接项目,则增加《项目,表单list》映射

  2)如果表单所属的项目,是当前部门的子、祖孙部门下的直接项目,则不计入。否则增加《项目,表单list》映射

  3)如果表单的项目为null,建立《不属于任何项目,表单列表》映射 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值