自动线索分配
2019-08-01 20:51:02 0 举报
自动分配
作者其他创作
大纲/内容
增加一条线索操作记录
0
删除线索分配记录
执行部门到部门继续:根据规则更新线索详情表的ruleId符合条件的线索并占用该线索,保证不被其他线程占用。如果更新条数为0直接返回,否则用新修改的ruleId查询线索详情表。
通过传过来的配置ID查询自动分配规则表的当天分配未达到上限的规则
执行部门到用户继续:查询自动分配规则表获取当前最后分配人,循环线索分配数,每处理完一条线索减掉一条数量。
执行公海池到部门继续:根据规则更新线索详情表的ruleId符合条件的线索并占用该线索,保证不被其他线程占用。如果更新条数为0直接返回,否则用新修改的ruleId查询线索详情表。
更新自动分配规则表最后分配人
alloType为3:从部门分到用户
如果线索状态表的状态在待跟进之前的状态,都更新为部门新线索
继续下一个用户
执行公海池到部门开始拼接更新线索条件sql首先拼接条件:线索状态表的线索状态待分配,部门线索状态待分配,为一级部门
执行部门到用户开始首先根据自动分配规则表的ID查询自动分配规则用户表用户上班状态为上班分配状态为待分配的用户ID,再通过这些ID去查询系统用户表查询出详细信息。再根据自动分配规则表的ID查询自动分配规则用户表的已分配线索数总数(sum)。取到待分配的第一个用户的分配线索数减去线索总数,如果小于等于0直接返回,否则拼接sql:拼接线索描述表首次分配时间不是空和(and)线索状态表的部门线索状态等于部门新线索和(and)线索状态表为一级部门等于自动分配部门表的部门ids
type:2年龄
增加一条线索分配记录
未达标
增加一条线索轮转记录
继续用用户ID去redis里面查询当前这个人今日总分配数和今日已分配数
循环遍历配置信息ID去查询自动分配规则表去查询
发送消息:您已收到新线索,请及时跟进
type:4销售线索等级
首先更新更新自动分配配置表状态为1,表示该规则正在执行分配中
已达标
判断线索状态表的状态是否等于部门新线索
大于0
根据规则更新线索详情表的ruleId符合条件的线索并占用该线索,保证不被其他线程占用
执行部门到部门开始首先拼接sql:拼接线索状态表为一级部门等于自动分配部门表的部门ids
可分配
如果线索状态表的状态在待跟进之后的状态,都不更新
线索状态表的状态
判断自动分配规则表的规则类型
判断该用户属于已达标用户或者该规则记录已达标
分配的具体逻辑
拿到第一条规则ID去查询自动分配规则部门关联表
type:1客户来源
type:3活动
更新线索描述表的首次分配時間为当前时间
处理完以上逻辑统一去调用拼接sql通用逻辑
本次任务终止
线索分配三种情况都处理以上逻辑后,各自线程处理以下流程
查询当前时间在开始执行时间和停止执行时间未执行并且启用的配置信息
判断更新条数
不可
alloType为2:从部门分到部门
更新今日已分配数的缓存数据
根据当前时间去查询自动分配配置表
校验用户是否可分配
条数为0
更新为个人新线索
yes
根据ruleId去查询线索状态表的状态
通过关联表部门ID查询自动分配部门表
判断查询到的自动分配规则的条数
更新自动分配规则用户表的已分配线索数加一
根据对应的configId查询自动分配规则表对应的规则
type:5省市
Yes
循环遍历查询到的线索详情数据
下一个用户
更新线索状态表为部门新线索
每一分钟自动获取线索进行分配任务执行开始
新线索的状态不更新
各个任务线程终结各自流程
no
判断自动接收分配为0或者该用户已经离职
alloType为1:从公海池分到部门
用新修改的ruleId查询线索详情表
条数大于0
开启一个线程去执行查询到的部门信息人员分配给下面的人员
在查询出来的规则集合中判断自动分配配置表的alloType
0 条评论
下一页