Przeglądaj źródła

报表优化,获取坐席接口优化

zhengbingbing 6 lat temu
rodzic
commit
0d532868ac

+ 27 - 15
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiWorkTotalController.cs

@@ -20,7 +20,7 @@ namespace CallCenterApi.Interface.Controllers.report
20 20
             
21 21
                 String[] str = { "部门", "坐席", "坐席工号", "呼入电话数", "坐席接通量", "呼损量"
22 22
                         ,"接通率","呼损率","平均排队时间","接听通话次数","通话分钟数","通话秒数"
23
-                        ,"平均接听通话秒数","平均振铃秒数","呼入占有率","用户评价","坐席登录次数","异常掉线次数"
23
+                        ,"平均接听通话秒数","平均振铃秒数","呼入占有率","用户评价","坐席登录次数","异常掉线次数","坐席签出次数"
24 24
                         ,"登录时长分钟数","工作时长分钟数","平均每天工作时长(小时)","平均操作分钟数"
25 25
                         ,"置忙次数","休息时长分钟数","平均每天休息时长(小时)"
26 26
                         ,"置忙平均休息分钟数","质检平均成绩"
@@ -429,15 +429,16 @@ namespace CallCenterApi.Interface.Controllers.report
429 429
             DataColumn dc16 = new DataColumn("用户评价");
430 430
             DataColumn dc17 = new DataColumn("坐席登录次数");
431 431
             DataColumn dc18 = new DataColumn("异常掉线次数");
432
-            DataColumn dc19 = new DataColumn("登录时长分钟数");
433
-            DataColumn dc20 = new DataColumn("工作时长分钟数");
434
-            DataColumn dc21 = new DataColumn("平均每天工作时长");
435
-            DataColumn dc22 = new DataColumn("平均操作分钟数");
436
-            DataColumn dc23 = new DataColumn("置忙次数");
437
-            DataColumn dc24 = new DataColumn("休息时长分钟数");
438
-            DataColumn dc25 = new DataColumn("平均每天休息时长");
439
-            DataColumn dc26 = new DataColumn("置忙平均休息分钟数");
440
-            DataColumn dc27 = new DataColumn("质检平均成绩");
432
+            DataColumn dc19 = new DataColumn("坐席签出次数");
433
+            DataColumn dc20 = new DataColumn("登录时长分钟数");
434
+            DataColumn dc21 = new DataColumn("工作时长分钟数");
435
+            DataColumn dc22 = new DataColumn("平均每天工作时长");
436
+            DataColumn dc23 = new DataColumn("平均操作分钟数");
437
+            DataColumn dc24 = new DataColumn("置忙次数");
438
+            DataColumn dc25 = new DataColumn("休息时长分钟数");
439
+            DataColumn dc26 = new DataColumn("平均每天休息时长");
440
+            DataColumn dc27 = new DataColumn("置忙平均休息分钟数");
441
+            DataColumn dc28 = new DataColumn("质检平均成绩");
441 442
 
442 443
             dtNew.Columns.Add(dc1);
443 444
             dtNew.Columns.Add(dc2);
@@ -466,6 +467,7 @@ namespace CallCenterApi.Interface.Controllers.report
466 467
             dtNew.Columns.Add(dc25);
467 468
             dtNew.Columns.Add(dc26);
468 469
             dtNew.Columns.Add(dc27);
470
+            dtNew.Columns.Add(dc28);
469 471
             #endregion
470 472
             int days = 30;
471 473
             string sqltimeCallRecords = "";
@@ -509,7 +511,7 @@ namespace CallCenterApi.Interface.Controllers.report
509 511
             //呼出
510 512
             //登陆信息
511 513
             DataTable dtAgent = DbHelperSQL.Query("select AgentID,COUNT(*) as dl,SUM(LoginTimes) as dlsc,SUM(reposenum) as zm,SUM(ReposeTimes) as xx from rep_agent_detail where 1=1 " + strsqlagent + " group by AgentID").Tables[0];
512
-            DataTable dtAgentdx = DbHelperSQL.Query("select AgentID,COUNT(*) as dl from rep_agent_detail where 1=1 and LogoutType=3 " + strsqlagent + " group by AgentID").Tables[0];
514
+            DataTable dtAgentdx = DbHelperSQL.Query("select AgentID,LogoutType,COUNT(*) as dl from rep_agent_detail where 1=1 " + strsqlagent + " group by AgentID,LogoutType").Tables[0];
513 515
             //评价
514 516
             DataTable dtcallpj = DbHelperSQL.Query("select UserCode,count(*) from T_Call_CallRecords WITH(NOLOCK) where MYD is not null and myd<>0 and CallState=1 and isnull(UserCode,'')<>'' " + strsqlcall + " group by UserCode ").Tables[0];
515 517
             //质检
@@ -527,7 +529,8 @@ namespace CallCenterApi.Interface.Controllers.report
527 529
                 int ipjzlms = 0;//平均振铃秒数
528 530
                 double ihrzyl = 0.00;//呼入占有率
529 531
                 int izxdlcs = 0;//坐席登录次数
530
-                int izxdxcs = 0;//坐席掉线次数
532
+                int izxdxcs = 0;//异常掉线次数
533
+                int izxqccs = 0;//坐席签出次数
531 534
                 int idlsc = 0;//登录时长
532 535
                 int iWorktime = 0;//工作时长
533 536
                 int izmcs = 0;//置忙次数
@@ -618,7 +621,8 @@ namespace CallCenterApi.Interface.Controllers.report
618 621
                 #endregion                
619 622
                 #region 坐席登录次数
620 623
                 DataRow[] drAgent = dtAgent.Select(" AgentId='" + item.F_UserCode + "'");
621
-                DataRow[] drAgentdx = dtAgentdx.Select(" AgentId='" + item.F_UserCode + "'");
624
+                DataRow[] drAgentdx = dtAgentdx.Select(" AgentId='" + item.F_UserCode + "' and LogoutType=3");
625
+                DataRow[] drAgentqc = dtAgentdx.Select(" AgentId='" + item.F_UserCode + "' and LogoutType=0");
622 626
                 if (drAgent != null && drAgent.Count() > 0)
623 627
                 {
624 628
                     if (drAgent[0]["dl"] != null && drAgent[0]["dl"].ToString() != "")
@@ -642,7 +646,14 @@ namespace CallCenterApi.Interface.Controllers.report
642 646
                 {
643 647
                     if (drAgentdx[0]["dl"] != null && drAgentdx[0]["dl"].ToString() != "")
644 648
                     {
645
-                        izxdxcs = int.Parse(drAgentdx[0]["dl"].ToString());//掉线次数
649
+                        izxdxcs = int.Parse(drAgentdx[0]["dl"].ToString());//异常掉线次数
650
+                    }
651
+                }
652
+                if (drAgentqc != null && drAgentqc.Count() > 0)
653
+                {
654
+                    if (drAgentqc[0]["dl"] != null && drAgentqc[0]["dl"].ToString() != "")
655
+                    {
656
+                        izxqccs = int.Parse(drAgentqc[0]["dl"].ToString());//坐席签出次数
646 657
                     }
647 658
                 }
648 659
                 iWorktime = idlsc - ixxsc;//工作时长
@@ -662,7 +673,8 @@ namespace CallCenterApi.Interface.Controllers.report
662 673
                 }
663 674
                 drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
664 675
                 drNew["坐席登录次数"] = izxdlcs.ToString();
665
-                drNew["异常掉线次数"] = izxdxcs.ToString(); 
676
+                drNew["异常掉线次数"] = izxdxcs.ToString();
677
+                drNew["坐席签出次数"] = izxqccs.ToString(); 
666 678
                 drNew["登录时长分钟数"] = (idlsc / 60).ToString();
667 679
                 drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
668 680
                 drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();

+ 4 - 3
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/SeatMonitoringController.cs

@@ -15,13 +15,14 @@ namespace CallCenterApi.Interface.Controllers.tel
15 15
         /// 获取坐席列表
16 16
         /// </summary>
17 17
         /// <returns></returns>
18
-        public ActionResult GetList()
18
+        public ActionResult GetList(string deptid)
19 19
         {
20 20
             ActionResult res = NoToken("未知错误,请重新登录");
21 21
             if (Request.IsAuthenticated)
22 22
             {
23 23
                 DataTable dt = new DataTable();
24
-                int deptid = CurrentUser.UserData.F_DeptId;
24
+                if(deptid==null || deptid=="")
25
+                  deptid = CurrentUser.UserData.F_DeptId.ToString();
25 26
                 int roleid = CurrentUser.UserData.F_RoleId;
26 27
                 BLL.T_Sys_UserAccount bll = new BLL.T_Sys_UserAccount();
27 28
 
@@ -31,7 +32,7 @@ namespace CallCenterApi.Interface.Controllers.tel
31 32
                     sql = " and F_DeptId=" + deptid;
32 33
                 }
33 34
 
34
-                dt = bll.GetList(" f_seatflag=1 and F_DeleteFlag=0 " + sql + " order by f_userid desc ").Tables[0];
35
+                dt = bll.GetList(" f_seatflag=1 and F_DeleteFlag=0 " + sql + " order by F_SeartGroupID,F_UserCode desc ").Tables[0];
35 36
 
36 37
                 if (dt.Rows.Count > 0)
37 38
                 {