8

来源:互联网 发布:小莫软件 编辑:程序博客网 时间:2024/04/16 22:27

 

1.       调用assignRule = CollectRuleMgr.getInstance().getAutoAssignRule(ruleId)根据规则ID获取保存自动分配规则,如果没有找到则返回null。
2.       获取规则列表:List paramList = assignRule.getRuleParamList()。
3.       获取分配级别:assignLevel = assignRule.getAssignToLevel();
4.       获取最高级别:highestLevel = Integer.parseInt(CollectorMgr.getHighestLevel());
5.       获取某个级别的催欠员列表:getCollectorsByLevel(int levelId, Boolean hasOperCode, String collectorType)
6.       返回校验员的分配比例:getAssignProportionList(Connection conn, List validaterIds),这一步操作了两张表:dc_credit_validate_task,dc_collector
7.       调用assignTask(CreditValidateTaskViewValue task)方法,进行任务分配。获取一个最合适的校验员:getValidaterId(conn, task, assignRule);
8.       调用List metValidaterIdList = getMetValidaterIdList(conn,groupIdSet) 获得满足条件的校验员的列表。
9.       调用CreditValidateMgr类中的assignTask(Connection conn, CreditValidateTaskViewValue task, String validaterId, String checkStaffId)分配任务,执行sql:update dc_credit_validate_task t set t.validator_id = ? , t.check_staff_id = ?, t.status = 2, t.assign_date = ?, t.oper_id = 19, t.oper_date = ?, where t.task_id = ?。 也就是在这一步将任务分配给了具体的校验员。
10.   如果不是手动执行该任务则:它会在启动服务器的时候就开始运行BossTaskStartup类中的main()方法,将所有的任务都加入到一个队列中去,然后根据各任务执行频率执行定时任务,处理逻辑也与手动执行逻辑类似。
原创粉丝点击