|
|
@@ -42,15 +42,27 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
42
|
42
|
#endregion
|
|
43
|
43
|
DataTable dtNew = new DataTable();
|
|
44
|
44
|
#region 创建新表表头
|
|
|
45
|
+ //DataColumn dc1 = new DataColumn("呼叫方式", Type.GetType("System.String"));
|
|
|
46
|
+ //DataColumn dc2 = new DataColumn("总呼叫数量", Type.GetType("System.String"));
|
|
|
47
|
+ //DataColumn dc3 = new DataColumn("接通数量", Type.GetType("System.String"));
|
|
|
48
|
+ //DataColumn dc4 = new DataColumn("未接数量", Type.GetType("System.String"));
|
|
|
49
|
+ //DataColumn dc5 = new DataColumn("客户主动放弃呼叫数量", Type.GetType("System.String"));
|
|
|
50
|
+ //DataColumn dc6 = new DataColumn("接通率", Type.GetType("System.String"));
|
|
|
51
|
+ //DataColumn dc7 = new DataColumn("总通话时长", Type.GetType("System.String"));
|
|
|
52
|
+ //DataColumn dc8 = new DataColumn("平均通话时长", Type.GetType("System.String"));
|
|
|
53
|
+
|
|
45
|
54
|
DataColumn dc1 = new DataColumn("呼叫方式", Type.GetType("System.String"));
|
|
46
|
55
|
DataColumn dc2 = new DataColumn("总呼叫数量", Type.GetType("System.String"));
|
|
47
|
56
|
DataColumn dc3 = new DataColumn("接通数量", Type.GetType("System.String"));
|
|
48
|
57
|
DataColumn dc4 = new DataColumn("未接数量", Type.GetType("System.String"));
|
|
49
|
|
- DataColumn dc5 = new DataColumn("客户主动放弃呼叫数量", Type.GetType("System.String"));
|
|
50
|
|
- DataColumn dc6 = new DataColumn("接通率", Type.GetType("System.String"));
|
|
51
|
|
- DataColumn dc7 = new DataColumn("总通话时长", Type.GetType("System.String"));
|
|
52
|
|
- DataColumn dc8 = new DataColumn("平均通话时长", Type.GetType("System.String"));
|
|
53
|
|
-
|
|
|
58
|
+ DataColumn dc5 = new DataColumn("主动挂断数量", Type.GetType("System.String"));
|
|
|
59
|
+ DataColumn dc6 = new DataColumn("特殊挂断数量", Type.GetType("System.String"));
|
|
|
60
|
+ DataColumn dc7 = new DataColumn("自助服务数量", Type.GetType("System.String"));
|
|
|
61
|
+ DataColumn dc8 = new DataColumn("排队等待数量", Type.GetType("System.String"));
|
|
|
62
|
+ DataColumn dc9 = new DataColumn("接通率", Type.GetType("System.String"));
|
|
|
63
|
+ DataColumn dc10 = new DataColumn("总通话时长", Type.GetType("System.String"));
|
|
|
64
|
+ DataColumn dc11 = new DataColumn("平均通话时长", Type.GetType("System.String"));
|
|
|
65
|
+
|
|
54
|
66
|
dtNew.Columns.Add(dc1);
|
|
55
|
67
|
dtNew.Columns.Add(dc2);
|
|
56
|
68
|
dtNew.Columns.Add(dc3);
|
|
|
@@ -59,10 +71,13 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
59
|
71
|
dtNew.Columns.Add(dc6);
|
|
60
|
72
|
dtNew.Columns.Add(dc7);
|
|
61
|
73
|
dtNew.Columns.Add(dc8);
|
|
|
74
|
+ dtNew.Columns.Add(dc9);
|
|
|
75
|
+ dtNew.Columns.Add(dc10);
|
|
|
76
|
+ dtNew.Columns.Add(dc11);
|
|
62
|
77
|
#endregion
|
|
63
|
78
|
try
|
|
64
|
79
|
{
|
|
65
|
|
- string sql = "SELECT CallState,BusinessType,TalkStartTime,TalkEndTime,CallType,WaitLongTime FROM T_Call_CallRecords where BeginTime>='" + begintime + "'and BeginTime<='" + endtime + "'";
|
|
|
80
|
+ string sql = "SELECT CallState,BusinessType,TalkStartTime,TalkEndTime,CallType,WaitLongTime,dealtype FROM T_Call_CallRecords where BeginTime>='" + begintime + "'and BeginTime<='" + endtime + "'";
|
|
66
|
81
|
DataTable table = DbHelperSQL.Query(sql).Tables[0];
|
|
67
|
82
|
|
|
68
|
83
|
if (table.Rows.Count > 0)
|
|
|
@@ -77,19 +92,34 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
77
|
92
|
talcount = rowstotal.Length;
|
|
78
|
93
|
//接通量
|
|
79
|
94
|
jtcount = table.Select("CallType=0 and CallState=1").Length;
|
|
80
|
|
- //主动放弃呼叫
|
|
81
|
|
- zdfqcount = table.Select("CallType=0 and CallState=0 and BusinessType is null").Length;
|
|
|
95
|
+ ////主动放弃呼叫
|
|
|
96
|
+ //zdfqcount = table.Select("CallType=0 and CallState=0 and BusinessType is null").Length;
|
|
|
97
|
+ //主动挂断次数
|
|
|
98
|
+ int srgdcount = table.Select(" calltype=0 and callstate=0 and dealtype=0 ").Count();
|
|
|
99
|
+ //特殊挂断次数
|
|
|
100
|
+ int blackcount = table.Select(" calltype=0 and callstate=0 and dealtype=1 ").Count();
|
|
|
101
|
+ //自助服务次数
|
|
|
102
|
+ int zjfwcount = table.Select(" calltype=0 and callstate=0 and dealtype=2 ").Count();
|
|
|
103
|
+ //排队等待数量
|
|
|
104
|
+ int waitcount = table.Select(" calltype=0 and callstate=0 and dealtype=3 ").Count();
|
|
|
105
|
+
|
|
82
|
106
|
//呼损数量
|
|
83
|
|
- hsqcount = talcount - jtcount - zdfqcount;
|
|
|
107
|
+ hsqcount = table.Select(" calltype=0 and callstate=0 and dealtype=5 ").Count();
|
|
|
108
|
+ //hsqcount = talcount - jtcount - zdfqcount;
|
|
84
|
109
|
|
|
85
|
110
|
drNew["呼叫方式"] = "呼入";
|
|
86
|
111
|
drNew["总呼叫数量"] = talcount;
|
|
87
|
112
|
drNew["接通数量"] = jtcount;
|
|
88
|
113
|
drNew["未接数量"] = hsqcount;
|
|
89
|
|
- drNew["客户主动放弃呼叫数量"] = zdfqcount;
|
|
90
|
|
- drNew["接通率"] = ((jtcount + zdfqcount) / decimal.Parse(talcount.ToString()) * 100).ToString("f") + "%";
|
|
|
114
|
+ drNew["主动挂断数量"] = srgdcount;
|
|
|
115
|
+ drNew["特殊挂断数量"] = blackcount;
|
|
|
116
|
+ drNew["自助服务数量"] = zjfwcount;
|
|
|
117
|
+ drNew["排队等待数量"] = waitcount;
|
|
|
118
|
+ //drNew["客户主动放弃呼叫数量"] = zdfqcount;
|
|
|
119
|
+ drNew["接通率"] = (jtcount / decimal.Parse((jtcount+ hsqcount).ToString()) * 100).ToString("f") + "%";
|
|
|
120
|
+ //drNew["接通率"] = ((jtcount + zdfqcount) / decimal.Parse(talcount.ToString()) * 100).ToString("f") + "%";
|
|
|
121
|
+
|
|
91
|
122
|
|
|
92
|
|
-
|
|
93
|
123
|
if (rows.Length > 0)
|
|
94
|
124
|
{
|
|
95
|
125
|
TimeSpan dta = new TimeSpan();
|
|
|
@@ -132,7 +162,11 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
132
|
162
|
drNew["总呼叫数量"] = rowstotal.Length;
|
|
133
|
163
|
drNew["接通数量"] = table.Select("CallType=1 and CallState=1").Length;
|
|
134
|
164
|
drNew["未接数量"] = table.Select("CallType=1 and CallState=0").Length;
|
|
135
|
|
- drNew["客户主动放弃呼叫数量"] = "/";
|
|
|
165
|
+ drNew["主动挂断数量"] = "/";
|
|
|
166
|
+ drNew["特殊挂断数量"] = "/";
|
|
|
167
|
+ drNew["自助服务数量"] = "/";
|
|
|
168
|
+ drNew["排队等待数量"] = "/";
|
|
|
169
|
+ //drNew["客户主动放弃呼叫数量"] = "/";
|
|
136
|
170
|
drNew["接通率"] = ((jtcount) / decimal.Parse(talcount.ToString()) * 100).ToString("f") + "%";
|
|
137
|
171
|
|
|
138
|
172
|
rows = table.Select("CallType=1 and CallState=1 and TalkStartTime is not null and TalkEndTime is not null and TalkStartTime<TalkEndTime");
|