首页 > 范文大全 > 正文

某话务统计查询系统的Web实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇某话务统计查询系统的Web实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文介绍了如何对web上的话务统计功能进行查询和实现,通过比较以及逻辑判断按月,日,小时三个统计粒度进行话务统计,如存在故障显示原因。方便找出故障原因和故障高发时间段,便于系统的维护和优化。

引言

对某业务的电话会议,呼入,呼出进行话务统计并在Web上显示,统计功能包括:一段时间内的会议数、系统呼出数、成员呼入数、成功呼叫数、失败呼叫数,失败的呼叫按照原因统计。统计粒度分为小时、日、月,如存在故障显示原因。

功能流程图如图所示

一.参数介绍

Web页面主菜单.起始时间结束时间.用一个下拉菜单来显示统计粒度。

二.Web页面判断

(一)起始、结束时间是否为空。如为空,提示输入时间为空。

(二)起始、结束时间时间是否符合时间格式。如不合格,提示时间格式输入错误。

(三)验证开始时间是否超出搜索范围(根据实际情况考虑,由于话务业务数据庞大,如限定只能查询最近三月数据。即将当前时间减去开始时间判断不能大于三个月)如果大于则提示开始时间超出搜索范围。

(四)结束时间是否大于起始时间,若小于提示结束时间小于起始时间。

(五)验证时间间隔是否超出了时间搜索范围(如规定时间间隔不能大于一个月,将结束时间减去起始时间判断是否大于一个月)如果大于提示时间间隔不能大于一个月。

(六)点击统计按钮,页面进行判断,成功后进入下一步。

三.根据传输的参数提交服务器进行处理并返回结果

在Web界面判断成功后,将提交服务器处理 来统计它的电话会议数,系统呼出数,成员呼入数,呼叫成功数,呼叫失败数以及失败原因故障分析。

在数据库中创建call_log表

create table call_log

(

id numeric(12,0) not null,

confid numeric(12,0) not null,

starttimevarchar(19) not null, --开始时间

endtimevarchar(19) not null, --结束时间

calltypenumeric(1,0), --1-普通呼叫2-会议呼叫3-短信

statusnumeric(1,0), --0-成功1-失败

recordtypenumeric(1,0), --1创建会议2-呼入3呼出

terminal_cause numeric(1,0) -- 0-系统挂断1-终端挂机2-终端忙3-无应答 4-路由失败5-路由不可达6-号码暂时不可用7-未知原因

根据输入的起始时间,结束时间还有统计粒度参数进行统计。对应于数据库中用相应SQL语句进行搜索。每项统计功能用一条相应的SQL语句列出:

(一)电话会议数

数据库call_log表中confid为电话会议ID,而创建一个会议的时候可能会有多个confid。统计会议数时必须去掉重复的会议ID数即得到会议数。SQL语句中使用distinct confide为select count(distinct confid),substring(starttime,1,13) from call_log group by substring(starttime 1,13)

substring(starttime,1,13)即统计粒度精确到按小时统计。即根据时间的格式如 2008.01.07 00使用substring()函数从左往右1到13位。(包括年月日之间小数点和日与小时之间的空格)。如需统计粒度为月,substring()则为substring(starttime,1,7)。按日统计则为substring(starttime,1,10)

(二)系统呼出数

select count(recordtype),substring(starttime,1,13) from call_log where recordtype = 3 and starttime>=’开始时间’and endtime

(三)成员呼入数

select count(recordtype),substring(starttime,1,13) from call_log where recordtype=2 and starttime>=’开始时间’ and endtime

(四)呼叫成功数

select count(status),substring(starttime,1,13) from call_log where status=0 and starttime>=’ 开始时间’ and endtime

呼叫成功对应call_log表中status的 status=0

(五)呼叫失败数

select count(status),substring(starttime,1,13) from call_log where status=1 and starttime>=’开始时间’ and endtime

显示截图如下(假设数据都为100个 显示按月)

在表格中分别横向列出1.会议数(the number of conference)2.系统呼出数(the number of system call out)3.成员呼入数(the number of member call in) 4.成功呼叫数(success call)这里包括了成功的呼出和成功的呼入5.失败呼叫数(the number of failing call),在点击失败呼叫错误时会链接到一张故障表。6.统计结果较多时可能一页显示显示不下,可以通过前后翻页查看详细内容,右侧增加跳转键。

(六)故障原因分析

点击失败呼叫次数时,会链接到一张故障表上:

表示在查询时间段中对应call_log表中呼叫失败的情况下出现故障原因。

假设100个故障,在上表中可以看到系统挂断10次,终端挂机20次,终端忙出现10次,无应答出现10次,路由失败10次,路由不可达20次,号码暂时不可用10次。还有10次的呼叫失败找不到原因暂时归到未知原因一类。

注意几个问题:

1.统计粒度的体现。该问题在相关的SQL语句中都没有体现如何实现统计粒度的问题。后在老师和同学指导下已有修改 加入group by substring(var,1,13)。根据时间格式 yyyy.mm.dd hh 对于不用的统计粒度,更改相关的字节数。

2.举例。必须遍历各种情况。

3.故障表查询没有时间。 虽然在故障表中没有显示时间,但是它是由呼叫失败链接过去的,是哪一段时间的故障引起的呼叫失败这个是最重要的。SQL语句中一定要加入starttime 和endtime。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文