|
|
@@ -59,6 +59,8 @@ namespace CallCenterApi.Interface.Controllers.MedicalFollowup
|
|
59
|
59
|
string strejwwc = HttpUtility.UrlDecode(RequestString.GetQueryString("secondlevel"));
|
|
60
|
60
|
//满意度
|
|
61
|
61
|
string strsatisfy = HttpUtility.UrlDecode(RequestString.GetQueryString("satisfied"));
|
|
|
62
|
+ //类型
|
|
|
63
|
+ string strtype = HttpUtility.UrlDecode(RequestString.GetQueryString("type"));
|
|
62
|
64
|
|
|
63
|
65
|
string strpageindex = RequestString.GetQueryString("page");
|
|
64
|
66
|
int pageindex = 1;
|
|
|
@@ -133,7 +135,10 @@ namespace CallCenterApi.Interface.Controllers.MedicalFollowup
|
|
133
|
135
|
{
|
|
134
|
136
|
sql += " and F_Satisfied = '"+strsatisfy +"' ";//随访完成状态
|
|
135
|
137
|
}
|
|
136
|
|
-
|
|
|
138
|
+ if (strtype.Trim() != "" && strtype != "undefined")
|
|
|
139
|
+ {
|
|
|
140
|
+ sql += " and F_Type = '" + strtype.Trim() + "' ";
|
|
|
141
|
+ }
|
|
137
|
142
|
if (strpageindex.Trim() != "")
|
|
138
|
143
|
{
|
|
139
|
144
|
pageindex = Convert.ToInt32(strpageindex);
|
|
|
@@ -388,7 +393,95 @@ namespace CallCenterApi.Interface.Controllers.MedicalFollowup
|
|
388
|
393
|
|
|
389
|
394
|
|
|
390
|
395
|
#region 科室随访率统计
|
|
|
396
|
+ //获取数据
|
|
|
397
|
+ public ActionResult GetSFDataList(string ks,string stime,string etime)
|
|
|
398
|
+ {
|
|
|
399
|
+ ActionResult res = NoToken("未知错误,请重新登录");
|
|
|
400
|
+ DataTable dtNew = new DataTable();
|
|
|
401
|
+ dtNew = GetData(ks, stime, etime);
|
|
|
402
|
+ res = Success("获取科室随访率统计数据成功", dtNew);
|
|
|
403
|
+
|
|
|
404
|
+ return res;
|
|
|
405
|
+ }
|
|
|
406
|
+
|
|
|
407
|
+ //获取数据源
|
|
|
408
|
+ private DataTable GetData(string ks, string stime, string etime)
|
|
|
409
|
+ {
|
|
|
410
|
+ DataTable dtNew = new DataTable();
|
|
|
411
|
+ #region 编辑表头
|
|
|
412
|
+ /*DataColumn dc1 = new DataColumn("科室名称", Type.GetType("System.String"));
|
|
|
413
|
+ DataColumn dc2 = new DataColumn("科室代码", Type.GetType("System.String"));
|
|
|
414
|
+ DataColumn dc3 = new DataColumn("时间", Type.GetType("System.String"));
|
|
|
415
|
+ DataColumn dc4 = new DataColumn("需要随访病人数", Type.GetType("System.String"));
|
|
|
416
|
+ DataColumn dc5 = new DataColumn("随访完成人数", Type.GetType("System.String"));
|
|
|
417
|
+ DataColumn dc6 = new DataColumn("科室随访率", Type.GetType("System.String"));
|
|
|
418
|
+ DataColumn dc7 = new DataColumn("满意人数", Type.GetType("System.String"));
|
|
|
419
|
+ DataColumn dc8 = new DataColumn("不满意人数", Type.GetType("System.String"));
|
|
|
420
|
+ DataColumn dc9 = new DataColumn("随访满意率", Type.GetType("System.String"));
|
|
|
421
|
+
|
|
|
422
|
+ dtNew.Columns.Add(dc1);
|
|
|
423
|
+ dtNew.Columns.Add(dc2);
|
|
|
424
|
+ dtNew.Columns.Add(dc3);
|
|
|
425
|
+ dtNew.Columns.Add(dc4);
|
|
|
426
|
+ dtNew.Columns.Add(dc5);
|
|
|
427
|
+ dtNew.Columns.Add(dc6);
|
|
|
428
|
+ #endregion
|
|
|
429
|
+
|
|
|
430
|
+ string sql = " ";
|
|
|
431
|
+ var list = bllCall.DataTableToList(bllCall.GetList($" 1=1 {sql} and UserCode is not null ").Tables[0]);
|
|
|
432
|
+ int callInCount = 0, callOutCount = 0, calledCount = 0, nocalledCount = 0;
|
|
|
433
|
+ //一天24小时
|
|
|
434
|
+ for (int i = 0; i < 24; i++)
|
|
|
435
|
+ {
|
|
|
436
|
+ DateTime stimes = Convert.ToDateTime(stime + " 00:00:00").AddHours(i);
|
|
|
437
|
+ DateTime etimes = Convert.ToDateTime(stime + " 00:59:59").AddHours(i);
|
|
|
438
|
+ DataRow drNew = dtNew.NewRow();
|
|
|
439
|
+ //SELECT BeginTime, * FROM T_Call_CallRecords WHERE DATEPART(hh,BeginTime) = DATEPART(hh, DATEADD(hh,-2,GETDATE())) and DATEPART(dd,BeginTime) = DATEPART(dd, GETDATE()) and DATEPART(mm, BeginTime) = DATEPART(mm, GETDATE()) and DATEPART(yy, BeginTime) = DATEPART(yy, GETDATE())
|
|
|
440
|
+ //CallType
|
|
|
441
|
+ //CallState呼叫状态,0:未接通电话1已接通电话
|
|
|
442
|
+ var callInTimes = list.Where(x => x.CallType == 0 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count(); //呼入量
|
|
|
443
|
+ var callOutTimes = list.Where(x => x.CallType == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count(); //呼出量
|
|
|
444
|
+ var calledTimes = list.Where(x => x.CallState == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count(); //接通量
|
|
|
445
|
+ var nocalledTimes = list.Where(x => x.CallState == 0 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();//未接通量
|
|
391
|
446
|
|
|
|
447
|
+ //var calledRate = list.Where(x => x.CallType == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();
|
|
|
448
|
+ drNew["时间"] = (i + 1).ToString();
|
|
|
449
|
+ drNew["呼入量"] = callInTimes.ToString();
|
|
|
450
|
+ drNew["呼出量"] = callOutTimes.ToString();
|
|
|
451
|
+ drNew["接通量"] = calledTimes.ToString();
|
|
|
452
|
+ drNew["未接通量"] = nocalledTimes.ToString();
|
|
|
453
|
+ //计算未结案率
|
|
|
454
|
+ var calledTotal = calledTimes + nocalledTimes;
|
|
|
455
|
+ Double notRate = 0.00;
|
|
|
456
|
+ if (calledTotal > 0)
|
|
|
457
|
+ notRate = (double)calledTimes / (double)calledTotal;
|
|
|
458
|
+ drNew["接通率"] = (notRate * 100).ToString("0.00") + "%";
|
|
|
459
|
+ ////统计结案,未结案数
|
|
|
460
|
+ callInCount += callInTimes;
|
|
|
461
|
+ callOutCount += callOutTimes;
|
|
|
462
|
+ calledCount += calledTimes;
|
|
|
463
|
+ nocalledCount += nocalledTimes;
|
|
|
464
|
+ dtNew.Rows.Add(drNew);
|
|
|
465
|
+ }
|
|
|
466
|
+ #region 获取一条统计信息
|
|
|
467
|
+ DataRow drzj = dtNew.NewRow();
|
|
|
468
|
+ drzj["时间"] = "总计";
|
|
|
469
|
+ drzj["呼入量"] = callInCount.ToString();
|
|
|
470
|
+ drzj["呼出量"] = callOutCount.ToString();
|
|
|
471
|
+ drzj["接通量"] = calledCount.ToString();
|
|
|
472
|
+ drzj["未接通量"] = nocalledCount.ToString();
|
|
|
473
|
+ //计算未结案率
|
|
|
474
|
+ int totalAllCount = calledCount + nocalledCount;
|
|
|
475
|
+ Double calledAllRate = 0.00;
|
|
|
476
|
+ if (totalAllCount > 0)
|
|
|
477
|
+ calledAllRate = (double)calledCount / (double)totalAllCount;
|
|
|
478
|
+ drzj["接通率"] = (calledAllRate * 100).ToString("0.00") + "%";
|
|
|
479
|
+ dtNew.Rows.Add(drzj);*/
|
|
|
480
|
+ #endregion
|
|
|
481
|
+ return dtNew;
|
|
|
482
|
+ }
|
|
392
|
483
|
#endregion
|
|
|
484
|
+
|
|
|
485
|
+
|
|
393
|
486
|
}
|
|
394
|
487
|
}
|