信用调查任务处理流程如下:
A)首先取出前500条满足自动分配条件的任务(待分配任务列表),自动分配条件如下:
任务没有被分配(validater_id为-1)或者当前调查员为Manager并且状态是incoming。
B)根据分配规则找出默认调查员和级别为规则中定义级别的所有调查员组成一个列表(分配级别调查员列表),分别找出这些调查员中每一个调查员当前正在调查的任务的数量(作为已分配比例),形成一个列表(分配比例列表),调查员在列表中的位置与其正在调查的任务数量在列表中的位置要保持一致。
C)遍历待分配任务列表中的每一条任务(待分配任务),依次执行D)-N)步骤
D)根据待分配任务的帐户id取出各个任务分配参数的值,以下简称参数值。
E)根据参数值和规则组配置的规则进行比较,找出满足参数值的规则组列表(满足规则组列表)。
F)根据满足规则组列表和创建调查员时选择的规则组进行比较,找出与这些规则组关联的调查员列表(满足规则调查员列表),如果满足规则调查员列表长度为0,则将默认调查员做为待分配任务的调查员,跳转到M)步进行分配,否则继续下一步操作。
G)根据待分配任务中的客户id,找出此客户的所有正在被调查的任务的当前调查员的列表(当前调查员列表)。
H)对分配比例列表进行排序(升序),同时移动分配级别调查员列表中的元素,使调查员在列表中的位置与其比例在列表中的位置一样
I)遍历分配级别调查员列表(从第一个到最后一个),如果遍历到的调查员
同时存在于满足规则调查员列表和当前调查员列表中,则将此遍历到的调查员作为待分配任务的调查员,跳转到M)步进行分配,否则继续下一步操作。
J)重新开始遍历分配级别调查员列表(从第一个到最后一个),如果遍历到的调查员
存在于满足规则调查员列表中,并且此调查员是当前调查员列表中某个调查员的上级,则将此遍历到的调查员作为待分配任务的调查员,跳转到M)步进行分配,否则继续下一步操作。
K)重新开始遍历分配级别调查员列表(从第一个到最后一个),如果遍历到的调查员
存在于满足规则调查员列表中,则将此遍历到的调查员作为待分配任务的调查员,跳转到M)步进行分配,否则继续下一步操作。
L)如果前面没有找到待分配任务的当前调查员则将默认调查员作为待分配任务的当前调查员。
M)取前面步骤中找到的待分配任务的当前调查员的直接上级作为待分配任务的checkStaff,如果此催欠员没有上级(此催欠员是Manager)则将此调查员自己作为待分配任务的checkStaff,修改数据库中待分配任务的当前调查员、checkStaff、分配日期,操作员,操作日期值。将此催欠任务的数据向历史表中放一条作为历史。
N)将待分配任务的当前调查员的已分配比例值加1。