业务系统-呼叫中心二次开发(已完结)

一. 批量筛号:
 
1.输入:案件批次号
  输出:该批次的所有电话号码(非有效状态),进行批量筛号,将未知状态的号码标志为有效和无效。
 
2.Table:
Call_Filter_Task     =(Id, Step, Status, BatchId,  CateGoryId, TaskType, TotalNum, Creator, CreateTime, RunBeginTime, RunEndTime)   
 
Call_Filter_Send_Batch    = (Id, Status, Filter_Task_Id, Order, TotalNum, Creator, CreateTime) 
 
Call_Filter_Send_Batch_Log= (Id, Filter_Task_Id, Order, TotalNum, Task_Id, Creator, CreateTime, RunBeginTime, RunEndTime
                           | Send_FromFlag,  Send_RecvFlag,  Send_BeginTime,  Send_RecvTime, Send_Res_SumInfo 
                           | Query_FromFlag, Query_RecvFlag, Query_BeginTime, Query_RecvTime,Query_Res_SumInfo  )
 
Call_Filter_Send_Detail = (Id, Filter_Send_Batch_Id, TelId, TelNo, Call_Info, Record_Id, Creator, CreateTime)
 
Call_Filter_Send_QueryRes=  (Id,Filter_Send_Batch_Id,Nid,Phone,Call_Status,BillSec,Call_Start_Time,Answer_Time,
                                    Call_End_Time,Wait_Time,Uniqueid,Fail_Call_Times,Success_Call_Times,Ivr_Key,
                                    Agent,Agent_Billsec,Agent_Answer_Time,Agent_End_Time,CreateTime);
 
3.操作流程
Step1: 用户在筛号界面,输入一个“批次号:batchId”, 然后单击按钮“查询电话”,显示一条汇总记录“Call_Filter_Task”
 
Step2: 文件JOB,查询Call_Filter_Task状态为“0:创建任务0”的Call_Filter_Task 记录,执行文件JOB任务;
       产生文件数据:"Call_Filter_Send_Batch记录" 和 “Call_Filter_Send_Detail记录” 和 “Call_Filter_Send_Detail文件”,每个批次文件的最大笔数为1000(可以修改配置)。
 
Step3: 发送JOB,查询Call_Filter_Send_Batch记录,并且判断“Log是否存在”或“查询任务是否发送成功”,然后执行发送API接口;
       产生日志记录“Call_Filter_Send_Batch_Log”,并且修改Call_Filter_Send_Batch_Log的状态为“Send_FromFlag=0->1 | Send_RecvFlag=0->1或-1”
 
Step4: 查询JOB,查询“Call_Filter_Send_Batch_Log的记录”,根据“发送状态为Send_RecvFlag=1 且 Query_FromFlag=0”的日志记录,然后执行查询API接口;
       更新日志记录“Call_Filter_Send_Batch_Log”的状态为“Query_FromFlag=0->1 | Query_RecvFlag=0->1或-1”;
       保存结果为“JSON报文文件和对应用户的Excel文件”,并且将结果更新到电话记录的状态“有效电话 | 无效电话” 


经过几个周末开发,终于开发完毕效果图如下:

 Part 1: 前台设置: 数据字典配置“筛号任务”、“批次文件”的工作状态,如下图:
 





 Part 2: 后台服务: 系统后台有三个定时计划任务,每隔5分钟检查一次相关任务表和日志表中的特定状态的记录,根据条件匹配来实时调度如下JOB:

 Job1: 创建批次计划任务,Job2:发送批次计划任务,Job3:查询批次计划任务

 代码简图:


执行效果,如下:
 
 Job1: 创建批次计划任务: 实时处理来自用户前端提交的“筛号申请”(分区字段:创建时间为当天内的数据),
          并且由此生成相关“呼叫中心批量外呼的json指令文件和供用户查阅的xlsx文件”, 并且按照进度更新先关数据和状态。
 




生成批次的日志追踪:


Job2: 发送批次计划任务: 实时处理来自系统后台状态为“已生成”的“批次文件”(分区字段:创建时间为今天的数据),且由此读取本地文件(“呼叫中心批量外呼的json指令文件”),节约数据库查询和构造时间, 并且按照进度更新先关数据和状态。

   
发送批次的日志追踪:


 
Job3: 查询批次计划任务: 实时处理来自系统后台状态为“已发送”的“批次文件的日志数据”(分区字段:创建时间为昨天和今天之间的数据),且由此构造“呼叫中心的查询批量外呼结果的json指令文件”, 并且按照进度更新先关数据和状态;最后根据外呼结果,更新“电话的有效状态”,实现“批量筛号的功能”。



 查询批次的日志追踪:




该模块的意义:
实现对业务系统的大量无效和过期号码的筛选,减少了业务操作元每天浪费在对无效号码的工作时间,提高了系统的使用效率和员工的工作热情。
 
 
如果您认为这篇文章还不错或者有所收获,不妨点击一下右下角的(推荐)按钮,因为你的支持是我继续写作,分享的最大的动力!
 
 模块优化:
增加了对未处理完毕的“外呼任务”和“批次文件”的状态回滚为“已发送”,显示每个批次文件的“发送耗时”和“查询耗时”。如下图
 
posted @ 2015-08-01 22:46  tiandong  阅读(1571)  评论(3编辑  收藏  举报