Преглед на файлове

多次催办,客户信息读取筛选bug修复,坐席工作报表读取优化

zhengbingbing преди 6 години
родител
ревизия
7f31421c04

+ 1 - 1
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/customer/CustomerNewController.cs

@@ -53,7 +53,7 @@ namespace CallCenterApi.Interface.Controllers.customer
53 53
             if (!string.IsNullOrWhiteSpace(code))//客户编号
54 54
                 sql += $" and F_CustomerCode like '%" + code.Trim() + "%'";
55 55
             if (!string.IsNullOrWhiteSpace(cmpname))//公司名称
56
-                sql += $" and F_KeyWords like '%" + cmpname.Trim() + "%'";
56
+                sql += $" and F_CompanyName like '%" + cmpname.Trim() + "%'";
57 57
             if (!string.IsNullOrWhiteSpace(cmpaddress))//公司地址
58 58
                 sql += $" and (F_CompanyAddress like '%" + cmpaddress.Trim() 
59 59
                     + "%' or F_RegisteredAddress like '%" + cmpaddress.Trim() 

+ 559 - 230
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiWorkTotalController.cs

@@ -406,7 +406,6 @@ namespace CallCenterApi.Interface.Controllers.report
406 406
             }
407 407
             return res;
408 408
         }
409
-
410 409
         private DataTable getData(string stime, string endtime, string dpt, string dayss)
411 410
         {
412 411
             DataTable dtNew = new DataTable();
@@ -468,15 +467,33 @@ namespace CallCenterApi.Interface.Controllers.report
468 467
             int days = 30;
469 468
             string sqltimeCallRecords = "";
470 469
             string strsqlcall = "";
471
-            if (stime != null && stime.Trim() != "")
470
+            string strsqlTrunk = "";
471
+            string strsqlAgent = "";
472
+            string sqlUser = "";
473
+
474
+            var datenow = DateTime.Now;
475
+            if (stime == null || stime.Trim() == "")
472 476
             {
473
-                sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
474
-                strsqlcall += " and CONVERT(varchar , BeginTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
477
+                stime = datenow.ToString("yyyy-MM-01");
475 478
             }
476
-            if (endtime != null && endtime.Trim() != "")
479
+            if (endtime == null || endtime.Trim() == "")
477 480
             {
478
-                sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
479
-                strsqlcall += " and CONVERT(varchar , BeginTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
481
+                endtime = datenow.ToString("yyyy-MM-dd");
482
+            }
483
+
484
+            sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
485
+            strsqlcall += " and CONVERT(varchar , BeginTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
486
+            strsqlTrunk += " and CONVERT(varchar , TimeCallIn, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
487
+            strsqlAgent += " and CONVERT(varchar , TimeLogin, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
488
+
489
+            sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
490
+            strsqlcall += " and CONVERT(varchar , BeginTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
491
+            strsqlTrunk += " and CONVERT(varchar , TimeCallIn, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
492
+            strsqlAgent += " and CONVERT(varchar , TimeLogin, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
493
+
494
+            if (dpt != null && dpt.Trim() != "")
495
+            {
496
+                sqlUser += " and F_DeptId=" + dpt;
480 497
             }
481 498
             if (dayss != null && dayss.Trim() != "")
482 499
             {
@@ -506,266 +523,578 @@ namespace CallCenterApi.Interface.Controllers.report
506 523
             double itrunkhsl = 0.00;//互损率
507 524
             double itrunkpjpd = 0.00;//平均排队
508 525
             #endregion
509
-            DataTable dtdpt = null;
510
-            if (dpt != null && dpt.Trim() != "")
511
-            {
512
-                dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0 and F_DeptId=" + dpt).Tables[0];
513
-            }
514
-            else
515
-            {
516
-                dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0").Tables[0];
517
-            }
518
-            if (dtdpt != null && dtdpt.Rows.Count > 0)
519
-            {
520
-                //foreach (DataRow dr in dtdpt.Rows)
521
-                //{
522
-                    DataTable dt = new DataTable();
523
-                    //string sql = "SELECT F_UserCode,F_UserName,F_WorkNumber,F_UserId FROM T_Sys_UserAccount where f_seatFlag=1 and F_DeptId=" + dr["F_DeptId"] + " and F_WorkNumber!='' order by  F_WorkNumber asc";
524
-                    //20180509 部门筛选框不能用 (需要去掉一个客服组8000所在) machenyang
525
-                    var dptstr = "";
526
-                var dptname = "";
527
-                if (dtdpt.Rows.Count == 1) 
528
-				{ 
529
-                    dptstr = " and F_DeptId="+dtdpt.Rows[0]["F_DeptId"];
530
-                    dptname = dtdpt.Rows[0]["F_DeptName"].ToString();
531
-                }
532 526
 
533
-                string sql = "SELECT F_UserCode,F_UserName,F_WorkNumber,F_UserId,F_DeptId FROM T_Sys_UserAccount where f_seatFlag=1 and F_WorkNumber!='' "+ dptstr + " order by  F_WorkNumber asc";
534
-                dt = DbHelperSQL.Query(sql).Tables[0];
535
-                var datadep = new BLL.T_Sys_Department().GetModelList("1=1");
536
-                    for (int i = 0; i < dt.Rows.Count; i++)
527
+
528
+            DataTable dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department WITH(NOLOCK) ").Tables[0];
529
+            DataTable dtUser = DbHelperSQL.Query("SELECT F_UserCode,F_UserName,F_WorkNumber,F_UserId,F_DeptId FROM T_Sys_UserAccount WITH(NOLOCK) where F_DeleteFlag=0 and f_seatFlag=1 and isnull(F_WorkNumber,'')<>''" + sqlUser + " order by  F_WorkNumber asc").Tables[0];
530
+
531
+            DataTable dtTrunk = DbHelperSQL.Query("select AgentID,COUNT(*) as ct,SUM(DATEDIFF(Second,timewantagent,timeconnected)) as dd from rep_trunk_call_in WITH(NOLOCK) where 1=1 " + strsqlTrunk + " group by AgentID ").Tables[0];
532
+            DataTable dtcall = DbHelperSQL.Query("select UserCode,CallType,CallState,MYD from T_Call_CallRecords WITH(NOLOCK) where 1=1 " + strsqlcall).Tables[0];
533
+            DataTable dtext = DbHelperSQL.Query("select CalleeAgentID,COUNT(*) as ct,SUM(PeriodTalking) as sc,SUM(PeriodAlerting) as pa from rep_ext_call_in WITH(NOLOCK) where 1=1 " + sqltimeCallRecords + " group by CalleeAgentID ").Tables[0];
534
+            DataTable dtCallEvey = DbHelperSQL.Query("select usercode,COUNT(*) as ct,SUM(TalkLongTime) as sc from T_Call_CallRecords WITH(NOLOCK) where CallState=1 " + strsqlcall + " group by usercode ").Tables[0];
535
+            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 WITH(NOLOCK) where 1=1 " + strsqlAgent + " group by AgentId ").Tables[0];
536
+            DataTable dtzj = DbHelperSQL.Query("select usercode,convert(int,SUM(f_qcscore)) as fs,COUNT(*) as fsct from T_Call_CallRecords WITH(NOLOCK) where F_QCState=1 " + strsqlcall + " group by usercode ").Tables[0];
537
+
538
+            if (dtUser != null && dtUser.Rows.Count > 0)
539
+            {
540
+                for (int i = 0; i < dtUser.Rows.Count; i++)
541
+                {
542
+                    if (!string.IsNullOrEmpty(dtUser.Rows[i]["F_WorkNumber"].ToString()))
537 543
                     {
538
-                        if (!string.IsNullOrEmpty(dt.Rows[i]["F_WorkNumber"].ToString()))
539
-                        {
540
-                            DataRow drNew = dtNew.NewRow();
541
-                            //drNew["部门"] = dr["F_DeptName"].ToString();
542
-                            drNew["部门"] = datadep.Where(p => p.F_DeptId == Int32.Parse(dt.Rows[i]["F_DeptId"].ToString())).Select(p => p.F_DeptName).ToList()[0].ToString();
543
-                            drNew["坐席"] = dt.Rows[i]["F_UserName"].ToString();
544
-                            drNew["坐席工号"] = dt.Rows[i]["F_WorkNumber"].ToString();
545
-                            //if (i == 0)
546
-                            {//呼入电话
547
-
548
-                                string strsql = "";
549
-                                if (stime != null && stime.Trim() != "")
550
-                                {
551
-                                    strsql += " and CONVERT(varchar , TimeCallIn, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
552
-                                }
553
-                                if (endtime != null && endtime.Trim() != "")
554
-                                {
555
-                                    strsql += " and CONVERT(varchar , TimeCallIn, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
556
-                                }
557
-
558
-                                DataTable dtTrunk = DbHelperSQL.Query("select COUNT(*) as ct,SUM(DATEDIFF(Second,timewantagent,timeconnected)) as dd from rep_trunk_call_in where AgentID='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsql).Tables[0];
559
-                                DataTable dtcall = DbHelperSQL.Query("select COUNT(*) as ct,(select COUNT(*) from T_Call_CallRecords where CallState=1 and CallType=0 and  UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall + ") as jt from T_Call_CallRecords where CallType=0 and UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall).Tables[0];
560
-
561
-                                if (dtcall != null && dtcall.Rows.Count > 0)
562
-                                {
563
-                                    if (dtcall.Rows[0]["ct"].ToString() != "")
564
-                                    {
565
-                                        itrunkct = int.Parse(dtcall.Rows[0]["ct"].ToString());
566
-                                    }
567
-                                    else
568
-                                    {
569
-                                        itrunkct = 0;
570
-                                    }
571
-                                    if (dtcall.Rows[0]["jt"].ToString() != "")
572
-                                    {
573
-                                        itrunkjj = int.Parse(dtcall.Rows[0]["jt"].ToString());
574
-                                    }
575
-                                    else
576
-                                    {
577
-                                        itrunkjj = 0;
578
-                                    }
579
-                                    if (dtTrunk.Rows.Count > 0 && dtTrunk.Rows[0]["dd"].ToString() != "")
580
-                                    {
581
-                                        itrunkpjsc = int.Parse(dtTrunk.Rows[0]["dd"].ToString());
582
-                                    }
583
-                                    else
584
-                                    {
585
-                                        itrunkpjsc = 0;
586
-                                    }
587
-                                }
588
-                                itrunkhs = itrunkct - itrunkjj;
589
-                                if (itrunkct != 0)
590
-                                {
591
-                                    itrunkjtl = itrunkjj / double.Parse(itrunkct.ToString());
592
-                                    itrunkhsl = itrunkhs / double.Parse(itrunkct.ToString());
593
-                                    itrunkpjpd = itrunkpjsc / double.Parse(itrunkct.ToString());
594
-                                }
595
-                                else
596
-                                {
597
-                                    itrunkjtl = 0.00;
598
-                                    itrunkhsl = 0.00;
599
-                                    itrunkpjpd = 0.00;
600
-                                }
601
-                                drNew["呼入电话数"] = itrunkct;
602
-                                drNew["坐席接通量"] = itrunkjj;
603
-                                drNew["呼损量"] = itrunkhs;
604
-                                drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
605
-                                drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
606
-                                drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
544
+                        DataRow drNew = dtNew.NewRow();
545
+                        drNew["坐席"] = dtUser.Rows[i]["F_UserName"].ToString();
546
+                        drNew["坐席工号"] = dtUser.Rows[i]["F_WorkNumber"].ToString();
607 547
 
548
+                        #region 部门名称
549
+                        DataRow[] dtDept = dtdpt.Select(" F_DeptId=" + dtUser.Rows[i]["F_DeptId"].ToString() + " ");
550
+                        drNew["部门"] = dtDept[0]["F_DeptName"].ToString();
551
+                        #endregion
552
+
553
+                        #region 呼入数据
554
+                        DataRow[] drTrunk = dtTrunk.Select(" AgentID='" + dtUser.Rows[i]["F_UserCode"].ToString() + "'");
555
+                        DataRow[] drCallIn = dtcall.Select(" CallType=0 and UserCode='" + dtUser.Rows[i]["F_UserCode"].ToString() + "'");
556
+                        DataRow[] drCallInJT = dtcall.Select(" CallType=0 and CallState=1 and UserCode='" + dtUser.Rows[i]["F_UserCode"].ToString() + "'");
557
+                        if (drCallIn != null && drCallIn.Count() > 0)
558
+                            itrunkct = drCallIn.Count();
559
+                        if (drCallInJT != null && drCallInJT.Count() > 0)
560
+                            itrunkjj = drCallInJT.Count();
561
+                        if (drTrunk.Count() > 0 && drTrunk[0]["dd"].ToString() != "")
562
+                            itrunkpjsc = int.Parse(drTrunk[0]["dd"].ToString());
563
+
564
+                        itrunkhs = itrunkct - itrunkjj;
565
+                        if (itrunkct != 0)
566
+                        {
567
+                            itrunkjtl = itrunkjj / double.Parse(itrunkct.ToString());
568
+                            itrunkhsl = itrunkhs / double.Parse(itrunkct.ToString());
569
+                            itrunkpjpd = itrunkpjsc / double.Parse(itrunkct.ToString());
570
+                        }
571
+                        else
572
+                        {
573
+                            itrunkjtl = 0.00;
574
+                            itrunkhsl = 0.00;
575
+                            itrunkpjpd = 0.00;
576
+                        }
577
+                        drNew["呼入电话数"] = itrunkct;
578
+                        drNew["坐席接通量"] = itrunkjj;
579
+                        drNew["呼损量"] = itrunkhs;
580
+                        drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
581
+                        drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
582
+                        drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
583
+                        #endregion
584
+                        #region 坐席接听数据
585
+                        DataRow[] drExt = dtext.Select(" CalleeAgentID='" + dtUser.Rows[i]["F_UserCode"].ToString() + "'");
586
+                        DataRow[] drCallEvey = dtCallEvey.Select(" usercode='" + dtUser.Rows[i]["F_UserCode"].ToString() + "'");
587
+                        if (drCallEvey != null && drCallEvey.Count() > 0)
588
+                        {
589
+                            if (drCallEvey[0]["ct"].ToString() != "")
590
+                            {
591
+                                ijtcs = int.Parse(drCallEvey[0]["ct"].ToString());//接听次数
608 592
                             }
609
-                            //else
610
-                            //{
611
-                            //    drNew["呼入电话数"] = "0";
612
-                            //    drNew["坐席接通量"] = "0";
613
-                            //    drNew["呼损量"] = "0";
614
-                            //    drNew["接通率"] = "0.00" + "%";
615
-                            //    drNew["呼损率"] = "0.00" + "%";
616
-                            //    drNew["平均排队时间"] = "0.00";
617
-                            //}
618
-
619
-
620
-                            DataTable dtext = DbHelperSQL.Query("select COUNT(*) as ct,SUM(PeriodTalking) as sc,SUM(PeriodAlerting) as pa from rep_ext_call_in where CalleeAgentID=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords).Tables[0];
621
-                            DataTable dtCallEvey = DbHelperSQL.Query("select COUNT(*) as ct,SUM(TalkLongTime) as sc from T_Call_CallRecords where CallState=1 and  userid=" + dt.Rows[i]["F_UserId"] + " " + strsqlcall).Tables[0];
622
-                            if (dtCallEvey != null && dtCallEvey.Rows.Count > 0)
593
+                            else
623 594
                             {
624
-                                if (dtCallEvey.Rows[0]["ct"].ToString() != "")
625
-                                {
626
-                                    ijtcs = int.Parse(dtCallEvey.Rows[0]["ct"].ToString());//接听次数
627
-                                }
628
-                                else
629
-                                {
630
-                                    ijtcs = 0;
631
-                                }
632
-                                if (dtCallEvey.Rows[0]["sc"].ToString() != "")
633
-                                {
634
-                                    ithms = int.Parse(dtCallEvey.Rows[0]["sc"].ToString());//通话秒数
635
-                                }
636
-                                else
637
-                                {
638
-                                    ithms = 0;
639
-                                }
640
-                                if (dtext.Rows[0]["pa"].ToString() != "")
641
-                                {
642
-                                    izlms = int.Parse(dtext.Rows[0]["pa"].ToString());//振铃秒数
643
-                                }
644
-                                else
645
-                                {
646
-                                    izlms = 0;
647
-                                }
595
+                                ijtcs = 0;
648 596
                             }
649
-                            drNew["接听通话次数"] = ijtcs.ToString();
650
-                            drNew["通话分钟数"] = (ithms / 60).ToString();
651
-                            drNew["通话秒数"] = ithms.ToString();
652
-
653
-                            if (ijtcs != 0)
597
+                            if (drCallEvey[0]["sc"].ToString() != "")
654 598
                             {
655
-                                ipjjtms = ithms / ijtcs;//平均接通秒数
656
-                                ipjzlms = izlms / ijtcs;//平均振铃秒数
599
+                                ithms = int.Parse(drCallEvey[0]["sc"].ToString());//通话秒数
657 600
                             }
658 601
                             else
659 602
                             {
660
-                                ipjjtms = 0;//平均接通秒数
661
-                                ipjzlms = 0;//平均振铃秒数
603
+                                ithms = 0;
662 604
                             }
663
-                            drNew["平均接听通话秒数"] = ipjjtms.ToString();
664
-                            drNew["平均振铃秒数"] = ipjzlms.ToString();
665
-
666
-                            //坐席登录次数
667
-                            DataTable dtAgent = DbHelperSQL.Query("select COUNT(*) as dl,SUM(LoginTimes) as dlsc,SUM(reposenum) as zm,SUM(ReposeTimes) as xx from rep_agent_detail where AgentId=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords.Replace("TimeAlerting", "TimeLogin")).Tables[0];
668
-                            if (dtAgent != null && dtAgent.Rows.Count > 0)
605
+                        }
606
+                        if (drExt != null && drExt.Count() > 0)
607
+                        {
608
+                            if (drExt[0]["pa"].ToString() != "")
669 609
                             {
670
-                                if (dtAgent.Rows[0]["dl"] != null && dtAgent.Rows[0]["dl"].ToString() != "")
671
-                                {
672
-                                    izxdlcs = int.Parse(dtAgent.Rows[0]["dl"].ToString());//登录次数
673
-                                }
674
-                                else
675
-                                {
676
-                                    izxdlcs = 0;
677
-                                }
678
-                                if (dtAgent.Rows[0]["dlsc"] != null && dtAgent.Rows[0]["dlsc"].ToString() != "")
679
-                                {
680
-                                    idlsc = int.Parse(dtAgent.Rows[0]["dlsc"].ToString());//登录时长
681
-                                }
682
-                                else
683
-                                {
684
-                                    idlsc = 0;
685
-                                }
686
-                                if (dtAgent.Rows[0]["zm"] != null && dtAgent.Rows[0]["zm"].ToString() != "")
687
-                                {
688
-                                    izmcs = int.Parse(dtAgent.Rows[0]["zm"].ToString());//置忙次数
689
-                                }
690
-                                else
691
-                                {
692
-                                    izmcs = 0;
693
-                                }
694
-                                if (dtAgent.Rows[0]["xx"] != null && dtAgent.Rows[0]["xx"].ToString() != "")
695
-                                {
696
-                                    ixxsc = int.Parse(dtAgent.Rows[0]["xx"].ToString());//休息时长
697
-                                }
698
-                                else
699
-                                {
700
-                                    ixxsc = 0;
701
-                                }
702
-
610
+                                izlms = int.Parse(drExt[0]["pa"].ToString());//振铃秒数
703 611
                             }
704
-                            iWorktime = idlsc - ixxsc;//工作时长
705
-                            if (izxdlcs != 0)
612
+                            else
706 613
                             {
707
-                                ipjczsc = iWorktime / izxdlcs;//平均操作秒数
614
+                                izlms = 0;
615
+                            }
616
+                        }
617
+                        drNew["接听通话次数"] = ijtcs.ToString();
618
+                        drNew["通话分钟数"] = (ithms / 60).ToString();
619
+                        drNew["通话秒数"] = ithms.ToString();
620
+
621
+                        if (ijtcs != 0)
622
+                        {
623
+                            ipjjtms = ithms / ijtcs;//平均接通秒数
624
+                            ipjzlms = izlms / ijtcs;//平均振铃秒数
625
+                        }
626
+                        else
627
+                        {
628
+                            ipjjtms = 0;//平均接通秒数
629
+                            ipjzlms = 0;//平均振铃秒数
630
+                        }
631
+                        drNew["平均接听通话秒数"] = ipjjtms.ToString();
632
+                        drNew["平均振铃秒数"] = ipjzlms.ToString();
633
+                        #endregion
634
+
635
+                        #region 坐席登录次数
636
+                        DataRow[] drAgent = dtAgent.Select(" AgentId='" + dtUser.Rows[i]["F_UserCode"].ToString() + "'");
637
+                        if (drAgent != null && drAgent.Count() > 0)
638
+                        {
639
+                            if (drAgent[0]["dl"] != null && drAgent[0]["dl"].ToString() != "")
640
+                            {
641
+                                izxdlcs = int.Parse(drAgent[0]["dl"].ToString());//登录次数
708 642
                             }
709 643
                             else
710 644
                             {
711
-                                ipjczsc = 0;
645
+                                izxdlcs = 0;
712 646
                             }
713
-                            if (izmcs != 0)
647
+                            if (drAgent[0]["dlsc"] != null && drAgent[0]["dlsc"].ToString() != "")
714 648
                             {
715
-                                ipjzmxxsc = ixxsc / izmcs;//置忙平均操作时长
649
+                                idlsc = int.Parse(drAgent[0]["dlsc"].ToString());//登录时长
716 650
                             }
717 651
                             else
718 652
                             {
719
-                                ipjzmxxsc = 0;
653
+                                idlsc = 0;
720 654
                             }
721
-
722
-                            //呼入占有率
723
-                            if (iWorktime != 0)
655
+                            if (drAgent[0]["zm"] != null && drAgent[0]["zm"].ToString() != "")
724 656
                             {
725
-                                ihrzyl = ithms / Convert.ToDouble(iWorktime);
657
+                                izmcs = int.Parse(drAgent[0]["zm"].ToString());//置忙次数
726 658
                             }
727 659
                             else
728 660
                             {
729
-                                ihrzyl = 0.00;
661
+                                izmcs = 0;
730 662
                             }
731
-                            drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
732
-                            //用户评价
733
-                            //未评价为0
734
-                            object obj = DbHelperSQL.GetSingle("select count(*) from T_Call_CallRecords where MYD is not null and myd<>0 and CallState=1 and userid=" + dt.Rows[i]["F_UserId"] + strsqlcall);
735
-                            string myd = "";
736
-                            if (obj != null)
663
+                            if (drAgent[0]["xx"] != null && drAgent[0]["xx"].ToString() != "")
737 664
                             {
738
-                                myd = obj.ToString();
665
+                                ixxsc = int.Parse(drAgent[0]["xx"].ToString());//休息时长
739 666
                             }
740
-                            drNew["用户评价"] = myd;
741
-                            drNew["坐席登录次数"] = izxdlcs.ToString();
742
-                            drNew["登录时长分钟数"] = (idlsc / 60).ToString();
743
-                            drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
744
-                            drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
745
-                            drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
746
-                            drNew["置忙次数"] = izmcs.ToString();
747
-                            drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
748
-                            drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
749
-                            drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
750
-
751
-                            DataSet dszj = DbHelperSQL.Query("select convert(int,SUM(f_qcscore)) as fs,COUNT(*) as fsct from T_Call_CallRecords where F_QCState=1 and UserId=" + dt.Rows[i]["F_UserId"] + strsqlcall);
752
-                            int zfs = 0;
753
-                            if (dszj != null && dszj.Tables.Count > 0)
667
+                            else
754 668
                             {
755
-                                DataTable dtzj = dszj.Tables[0];
756
-                                if (dtzj.Rows.Count > 0 && dtzj.Rows[0]["fs"].ToString() != "" && dtzj.Rows[0]["fsct"].ToString() != "")
757
-                                {
758
-                                    zfs = Convert.ToInt32(dtzj.Rows[0]["fs"].ToString()) / int.Parse(dtzj.Rows[0]["fsct"].ToString());
759
-                                }
669
+                                ixxsc = 0;
760 670
                             }
761
-                            drNew["质检平均成绩"] = zfs.ToString();
762 671
 
763
-                            dtNew.Rows.Add(drNew);
764 672
                         }
673
+                        iWorktime = idlsc - ixxsc;//工作时长
674
+                        if (izxdlcs != 0)
675
+                        {
676
+                            ipjczsc = iWorktime / izxdlcs;//平均操作秒数
677
+                        }
678
+                        else
679
+                        {
680
+                            ipjczsc = 0;
681
+                        }
682
+                        if (izmcs != 0)
683
+                        {
684
+                            ipjzmxxsc = ixxsc / izmcs;//置忙平均操作时长
685
+                        }
686
+                        else
687
+                        {
688
+                            ipjzmxxsc = 0;
689
+                        }
690
+
691
+                        //呼入占有率
692
+                        if (iWorktime != 0)
693
+                        {
694
+                            ihrzyl = ithms / Convert.ToDouble(iWorktime);
695
+                        }
696
+                        else
697
+                        {
698
+                            ihrzyl = 0.00;
699
+                        }
700
+                        drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
701
+                        drNew["坐席登录次数"] = izxdlcs.ToString();
702
+                        drNew["登录时长分钟数"] = (idlsc / 60).ToString();
703
+                        drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
704
+                        drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
705
+                        drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
706
+                        drNew["置忙次数"] = izmcs.ToString();
707
+                        drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
708
+                        drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
709
+                        drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
710
+                        #endregion
711
+
712
+                        #region 用户评价
713
+                        DataRow[] drmyd = dtcall.Select(" MYD is not null and CallState=1 and usercode='" + dtUser.Rows[i]["F_UserCode"].ToString() + "' ");
714
+                        int myd = drmyd != null ? drmyd.Count() : 0;
715
+                        drNew["用户评价"] = myd.ToString();
716
+                        #endregion
717
+
718
+                        #region 质检部分
719
+                        DataRow[] drZJ = dtzj.Select(" UserCode='" + dtUser.Rows[i]["F_UserCode"].ToString() + "'");
720
+                        int zfs = 0;
721
+                        if (drZJ != null && drZJ.Count() > 0)
722
+                        {
723
+                            if (drZJ[0]["fs"].ToString() != "" && drZJ[0]["fsct"].ToString() != "")
724
+                            {
725
+                                zfs = Convert.ToInt32(drZJ[0]["fs"].ToString()) / int.Parse(drZJ[0]["fsct"].ToString());
726
+                            }
727
+                        }
728
+                        drNew["质检平均成绩"] = zfs.ToString();
729
+                        #endregion
730
+                        dtNew.Rows.Add(drNew);
731
+
765 732
                     }
766
-                //}
733
+                }
767 734
             }
768 735
             return dtNew;
769 736
         }
737
+        #region 20190510优化
738
+    //    private DataTable getData1(string stime, string endtime, string dpt, string dayss)
739
+    //    {
740
+    //        DataTable dtNew = new DataTable();
741
+    //        #region
742
+    //        DataColumn dc1 = new DataColumn("部门");
743
+    //        DataColumn dc2 = new DataColumn("坐席");
744
+    //        DataColumn dc3 = new DataColumn("坐席工号");
745
+    //        DataColumn dc4 = new DataColumn("呼入电话数");
746
+    //        DataColumn dc5 = new DataColumn("坐席接通量");
747
+    //        DataColumn dc6 = new DataColumn("呼损量");
748
+    //        DataColumn dc7 = new DataColumn("接通率");
749
+    //        DataColumn dc8 = new DataColumn("呼损率");
750
+    //        DataColumn dc9 = new DataColumn("平均排队时间");
751
+    //        DataColumn dc10 = new DataColumn("接听通话次数");
752
+    //        DataColumn dc11 = new DataColumn("通话分钟数");
753
+    //        DataColumn dc12 = new DataColumn("通话秒数");
754
+    //        DataColumn dc13 = new DataColumn("平均接听通话秒数");
755
+    //        DataColumn dc14 = new DataColumn("平均振铃秒数");
756
+    //        DataColumn dc15 = new DataColumn("呼入占有率");
757
+    //        DataColumn dc16 = new DataColumn("用户评价");
758
+    //        DataColumn dc17 = new DataColumn("坐席登录次数");
759
+    //        DataColumn dc18 = new DataColumn("登录时长分钟数");
760
+    //        DataColumn dc19 = new DataColumn("工作时长分钟数");
761
+    //        DataColumn dc20 = new DataColumn("平均每天工作时长");
762
+    //        DataColumn dc21 = new DataColumn("平均操作分钟数");
763
+    //        DataColumn dc22 = new DataColumn("置忙次数");
764
+    //        DataColumn dc23 = new DataColumn("休息时长分钟数");
765
+    //        DataColumn dc24 = new DataColumn("平均每天休息时长");
766
+    //        DataColumn dc25 = new DataColumn("置忙平均休息分钟数");
767
+    //        DataColumn dc26 = new DataColumn("质检平均成绩");
768
+
769
+    //        dtNew.Columns.Add(dc1);
770
+    //        dtNew.Columns.Add(dc2);
771
+    //        dtNew.Columns.Add(dc3);
772
+    //        dtNew.Columns.Add(dc4);
773
+    //        dtNew.Columns.Add(dc5);
774
+    //        dtNew.Columns.Add(dc6);
775
+    //        dtNew.Columns.Add(dc7);
776
+    //        dtNew.Columns.Add(dc8);
777
+    //        dtNew.Columns.Add(dc9);
778
+    //        dtNew.Columns.Add(dc10);
779
+    //        dtNew.Columns.Add(dc11);
780
+    //        dtNew.Columns.Add(dc12);
781
+    //        dtNew.Columns.Add(dc13);
782
+    //        dtNew.Columns.Add(dc14);
783
+    //        dtNew.Columns.Add(dc15);
784
+    //        dtNew.Columns.Add(dc16);
785
+    //        dtNew.Columns.Add(dc17);
786
+    //        dtNew.Columns.Add(dc18);
787
+    //        dtNew.Columns.Add(dc19);
788
+    //        dtNew.Columns.Add(dc20);
789
+    //        dtNew.Columns.Add(dc21);
790
+    //        dtNew.Columns.Add(dc22);
791
+    //        dtNew.Columns.Add(dc23);
792
+    //        dtNew.Columns.Add(dc24);
793
+    //        dtNew.Columns.Add(dc25);
794
+    //        dtNew.Columns.Add(dc26);
795
+    //        #endregion
796
+    //        int days = 30;
797
+    //        string sqltimeCallRecords = "";
798
+    //        string strsqlcall = "";
799
+    //        if (stime != null && stime.Trim() != "")
800
+    //        {
801
+    //            sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
802
+    //            strsqlcall += " and CONVERT(varchar , BeginTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
803
+    //        }
804
+    //        if (endtime != null && endtime.Trim() != "")
805
+    //        {
806
+    //            sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
807
+    //            strsqlcall += " and CONVERT(varchar , BeginTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
808
+    //        }
809
+    //        if (dayss != null && dayss.Trim() != "")
810
+    //        {
811
+    //            days = int.Parse(dayss.Trim());
812
+    //        }
813
+    //        #region
814
+    //        int ijtcs = 0;//接听通话次数 
815
+    //        int ithms = 0;//通话秒数
816
+    //        int izlms = 0;//振铃秒数
817
+    //        int ipjjtms = 0;//平均接听秒数
818
+    //        int ipjzlms = 0;//平均振铃秒数
819
+    //        double ihrzyl = 0.00;//呼入占有率
820
+    //        int izxdlcs = 0;//坐席登录次数
821
+    //        int idlsc = 0;//登录时长
822
+    //        int iWorktime = 0;//工作时长
823
+    //        int izmcs = 0;//置忙次数
824
+    //        int ixxsc = 0;//休息时长
825
+    //        int ipjczsc = 0;//平均操作时长
826
+    //        int ipjzmxxsc = 0;//平均置忙休息时长
827
+
828
+
829
+    //        int itrunkct = 0;//总数
830
+    //        int itrunkjj = 0;//总接听
831
+    //        int itrunkhs = 0;//呼损量
832
+    //        int itrunkpjsc = 0;//平均排队时间
833
+    //        double itrunkjtl = 0.00;//接通率
834
+    //        double itrunkhsl = 0.00;//互损率
835
+    //        double itrunkpjpd = 0.00;//平均排队
836
+    //        #endregion
837
+    //        DataTable dtdpt = null;
838
+    //        if (dpt != null && dpt.Trim() != "")
839
+    //        {
840
+    //            dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0 and F_DeptId=" + dpt).Tables[0];
841
+    //        }
842
+    //        else
843
+    //        {
844
+    //            dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0").Tables[0];
845
+    //        }
846
+    //        if (dtdpt != null && dtdpt.Rows.Count > 0)
847
+    //        {
848
+    //            //foreach (DataRow dr in dtdpt.Rows)
849
+    //            //{
850
+    //                DataTable dt = new DataTable();
851
+    //                //string sql = "SELECT F_UserCode,F_UserName,F_WorkNumber,F_UserId FROM T_Sys_UserAccount where f_seatFlag=1 and F_DeptId=" + dr["F_DeptId"] + " and F_WorkNumber!='' order by  F_WorkNumber asc";
852
+    //                //20180509 部门筛选框不能用 (需要去掉一个客服组8000所在) machenyang
853
+    //                var dptstr = "";
854
+    //            var dptname = "";
855
+    //            if (dtdpt.Rows.Count == 1) 
856
+				//{ 
857
+    //                dptstr = " and F_DeptId="+dtdpt.Rows[0]["F_DeptId"];
858
+    //                dptname = dtdpt.Rows[0]["F_DeptName"].ToString();
859
+    //            }
860
+
861
+    //            string sql = "SELECT F_UserCode,F_UserName,F_WorkNumber,F_UserId,F_DeptId FROM T_Sys_UserAccount where f_seatFlag=1 and F_WorkNumber!='' "+ dptstr + " order by  F_WorkNumber asc";
862
+    //            dt = DbHelperSQL.Query(sql).Tables[0];
863
+    //            var datadep = new BLL.T_Sys_Department().GetModelList("1=1");
864
+    //                for (int i = 0; i < dt.Rows.Count; i++)
865
+    //                {
866
+    //                    if (!string.IsNullOrEmpty(dt.Rows[i]["F_WorkNumber"].ToString()))
867
+    //                    {
868
+    //                        DataRow drNew = dtNew.NewRow();
869
+    //                        //drNew["部门"] = dr["F_DeptName"].ToString();
870
+    //                        drNew["部门"] = datadep.Where(p => p.F_DeptId == Int32.Parse(dt.Rows[i]["F_DeptId"].ToString())).Select(p => p.F_DeptName).ToList()[0].ToString();
871
+    //                        drNew["坐席"] = dt.Rows[i]["F_UserName"].ToString();
872
+    //                        drNew["坐席工号"] = dt.Rows[i]["F_WorkNumber"].ToString();
873
+    //                        //if (i == 0)
874
+    //                        {//呼入电话
875
+
876
+    //                            string strsql = "";
877
+    //                            if (stime != null && stime.Trim() != "")
878
+    //                            {
879
+    //                                strsql += " and CONVERT(varchar , TimeCallIn, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
880
+    //                            }
881
+    //                            if (endtime != null && endtime.Trim() != "")
882
+    //                            {
883
+    //                                strsql += " and CONVERT(varchar , TimeCallIn, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
884
+    //                            }
885
+
886
+    //                            DataTable dtTrunk = DbHelperSQL.Query("select COUNT(*) as ct,SUM(DATEDIFF(Second,timewantagent,timeconnected)) as dd from rep_trunk_call_in where AgentID='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsql).Tables[0];
887
+    //                            DataTable dtcall = DbHelperSQL.Query("select COUNT(*) as ct,(select COUNT(*) from T_Call_CallRecords where CallState=1 and CallType=0 and  UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall + ") as jt from T_Call_CallRecords where CallType=0 and UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall).Tables[0];
888
+
889
+    //                            if (dtcall != null && dtcall.Rows.Count > 0)
890
+    //                            {
891
+    //                                if (dtcall.Rows[0]["ct"].ToString() != "")
892
+    //                                {
893
+    //                                    itrunkct = int.Parse(dtcall.Rows[0]["ct"].ToString());
894
+    //                                }
895
+    //                                else
896
+    //                                {
897
+    //                                    itrunkct = 0;
898
+    //                                }
899
+    //                                if (dtcall.Rows[0]["jt"].ToString() != "")
900
+    //                                {
901
+    //                                    itrunkjj = int.Parse(dtcall.Rows[0]["jt"].ToString());
902
+    //                                }
903
+    //                                else
904
+    //                                {
905
+    //                                    itrunkjj = 0;
906
+    //                                }
907
+    //                                if (dtTrunk.Rows.Count > 0 && dtTrunk.Rows[0]["dd"].ToString() != "")
908
+    //                                {
909
+    //                                    itrunkpjsc = int.Parse(dtTrunk.Rows[0]["dd"].ToString());
910
+    //                                }
911
+    //                                else
912
+    //                                {
913
+    //                                    itrunkpjsc = 0;
914
+    //                                }
915
+    //                            }
916
+    //                            itrunkhs = itrunkct - itrunkjj;
917
+    //                            if (itrunkct != 0)
918
+    //                            {
919
+    //                                itrunkjtl = itrunkjj / double.Parse(itrunkct.ToString());
920
+    //                                itrunkhsl = itrunkhs / double.Parse(itrunkct.ToString());
921
+    //                                itrunkpjpd = itrunkpjsc / double.Parse(itrunkct.ToString());
922
+    //                            }
923
+    //                            else
924
+    //                            {
925
+    //                                itrunkjtl = 0.00;
926
+    //                                itrunkhsl = 0.00;
927
+    //                                itrunkpjpd = 0.00;
928
+    //                            }
929
+    //                            drNew["呼入电话数"] = itrunkct;
930
+    //                            drNew["坐席接通量"] = itrunkjj;
931
+    //                            drNew["呼损量"] = itrunkhs;
932
+    //                            drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
933
+    //                            drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
934
+    //                            drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
935
+
936
+    //                        }
937
+    //                        //else
938
+    //                        //{
939
+    //                        //    drNew["呼入电话数"] = "0";
940
+    //                        //    drNew["坐席接通量"] = "0";
941
+    //                        //    drNew["呼损量"] = "0";
942
+    //                        //    drNew["接通率"] = "0.00" + "%";
943
+    //                        //    drNew["呼损率"] = "0.00" + "%";
944
+    //                        //    drNew["平均排队时间"] = "0.00";
945
+    //                        //}
946
+
947
+
948
+    //                        DataTable dtext = DbHelperSQL.Query("select COUNT(*) as ct,SUM(PeriodTalking) as sc,SUM(PeriodAlerting) as pa from rep_ext_call_in where CalleeAgentID=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords).Tables[0];
949
+    //                        DataTable dtCallEvey = DbHelperSQL.Query("select COUNT(*) as ct,SUM(TalkLongTime) as sc from T_Call_CallRecords where CallState=1 and  userid=" + dt.Rows[i]["F_UserId"] + " " + strsqlcall).Tables[0];
950
+    //                        if (dtCallEvey != null && dtCallEvey.Rows.Count > 0)
951
+    //                        {
952
+    //                            if (dtCallEvey.Rows[0]["ct"].ToString() != "")
953
+    //                            {
954
+    //                                ijtcs = int.Parse(dtCallEvey.Rows[0]["ct"].ToString());//接听次数
955
+    //                            }
956
+    //                            else
957
+    //                            {
958
+    //                                ijtcs = 0;
959
+    //                            }
960
+    //                            if (dtCallEvey.Rows[0]["sc"].ToString() != "")
961
+    //                            {
962
+    //                                ithms = int.Parse(dtCallEvey.Rows[0]["sc"].ToString());//通话秒数
963
+    //                            }
964
+    //                            else
965
+    //                            {
966
+    //                                ithms = 0;
967
+    //                            }
968
+    //                            if (dtext.Rows[0]["pa"].ToString() != "")
969
+    //                            {
970
+    //                                izlms = int.Parse(dtext.Rows[0]["pa"].ToString());//振铃秒数
971
+    //                            }
972
+    //                            else
973
+    //                            {
974
+    //                                izlms = 0;
975
+    //                            }
976
+    //                        }
977
+    //                        drNew["接听通话次数"] = ijtcs.ToString();
978
+    //                        drNew["通话分钟数"] = (ithms / 60).ToString();
979
+    //                        drNew["通话秒数"] = ithms.ToString();
980
+
981
+    //                        if (ijtcs != 0)
982
+    //                        {
983
+    //                            ipjjtms = ithms / ijtcs;//平均接通秒数
984
+    //                            ipjzlms = izlms / ijtcs;//平均振铃秒数
985
+    //                        }
986
+    //                        else
987
+    //                        {
988
+    //                            ipjjtms = 0;//平均接通秒数
989
+    //                            ipjzlms = 0;//平均振铃秒数
990
+    //                        }
991
+    //                        drNew["平均接听通话秒数"] = ipjjtms.ToString();
992
+    //                        drNew["平均振铃秒数"] = ipjzlms.ToString();
993
+
994
+    //                        //坐席登录次数
995
+    //                        DataTable dtAgent = DbHelperSQL.Query("select COUNT(*) as dl,SUM(LoginTimes) as dlsc,SUM(reposenum) as zm,SUM(ReposeTimes) as xx from rep_agent_detail where AgentId=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords.Replace("TimeAlerting", "TimeLogin")).Tables[0];
996
+    //                        if (dtAgent != null && dtAgent.Rows.Count > 0)
997
+    //                        {
998
+    //                            if (dtAgent.Rows[0]["dl"] != null && dtAgent.Rows[0]["dl"].ToString() != "")
999
+    //                            {
1000
+    //                                izxdlcs = int.Parse(dtAgent.Rows[0]["dl"].ToString());//登录次数
1001
+    //                            }
1002
+    //                            else
1003
+    //                            {
1004
+    //                                izxdlcs = 0;
1005
+    //                            }
1006
+    //                            if (dtAgent.Rows[0]["dlsc"] != null && dtAgent.Rows[0]["dlsc"].ToString() != "")
1007
+    //                            {
1008
+    //                                idlsc = int.Parse(dtAgent.Rows[0]["dlsc"].ToString());//登录时长
1009
+    //                            }
1010
+    //                            else
1011
+    //                            {
1012
+    //                                idlsc = 0;
1013
+    //                            }
1014
+    //                            if (dtAgent.Rows[0]["zm"] != null && dtAgent.Rows[0]["zm"].ToString() != "")
1015
+    //                            {
1016
+    //                                izmcs = int.Parse(dtAgent.Rows[0]["zm"].ToString());//置忙次数
1017
+    //                            }
1018
+    //                            else
1019
+    //                            {
1020
+    //                                izmcs = 0;
1021
+    //                            }
1022
+    //                            if (dtAgent.Rows[0]["xx"] != null && dtAgent.Rows[0]["xx"].ToString() != "")
1023
+    //                            {
1024
+    //                                ixxsc = int.Parse(dtAgent.Rows[0]["xx"].ToString());//休息时长
1025
+    //                            }
1026
+    //                            else
1027
+    //                            {
1028
+    //                                ixxsc = 0;
1029
+    //                            }
1030
+
1031
+    //                        }
1032
+    //                        iWorktime = idlsc - ixxsc;//工作时长
1033
+    //                        if (izxdlcs != 0)
1034
+    //                        {
1035
+    //                            ipjczsc = iWorktime / izxdlcs;//平均操作秒数
1036
+    //                        }
1037
+    //                        else
1038
+    //                        {
1039
+    //                            ipjczsc = 0;
1040
+    //                        }
1041
+    //                        if (izmcs != 0)
1042
+    //                        {
1043
+    //                            ipjzmxxsc = ixxsc / izmcs;//置忙平均操作时长
1044
+    //                        }
1045
+    //                        else
1046
+    //                        {
1047
+    //                            ipjzmxxsc = 0;
1048
+    //                        }
1049
+
1050
+    //                        //呼入占有率
1051
+    //                        if (iWorktime != 0)
1052
+    //                        {
1053
+    //                            ihrzyl = ithms / Convert.ToDouble(iWorktime);
1054
+    //                        }
1055
+    //                        else
1056
+    //                        {
1057
+    //                            ihrzyl = 0.00;
1058
+    //                        }
1059
+    //                        drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
1060
+    //                        //用户评价
1061
+    //                        //未评价为0
1062
+    //                        object obj = DbHelperSQL.GetSingle("select count(*) from T_Call_CallRecords where MYD is not null and myd<>0 and CallState=1 and userid=" + dt.Rows[i]["F_UserId"] + strsqlcall);
1063
+    //                        string myd = "";
1064
+    //                        if (obj != null)
1065
+    //                        {
1066
+    //                            myd = obj.ToString();
1067
+    //                        }
1068
+    //                        drNew["用户评价"] = myd;
1069
+    //                        drNew["坐席登录次数"] = izxdlcs.ToString();
1070
+    //                        drNew["登录时长分钟数"] = (idlsc / 60).ToString();
1071
+    //                        drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
1072
+    //                        drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
1073
+    //                        drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
1074
+    //                        drNew["置忙次数"] = izmcs.ToString();
1075
+    //                        drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
1076
+    //                        drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
1077
+    //                        drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
1078
+
1079
+    //                        DataSet dszj = DbHelperSQL.Query("select convert(int,SUM(f_qcscore)) as fs,COUNT(*) as fsct from T_Call_CallRecords where F_QCState=1 and UserId=" + dt.Rows[i]["F_UserId"] + strsqlcall);
1080
+    //                        int zfs = 0;
1081
+    //                        if (dszj != null && dszj.Tables.Count > 0)
1082
+    //                        {
1083
+    //                            DataTable dtzj = dszj.Tables[0];
1084
+    //                            if (dtzj.Rows.Count > 0 && dtzj.Rows[0]["fs"].ToString() != "" && dtzj.Rows[0]["fsct"].ToString() != "")
1085
+    //                            {
1086
+    //                                zfs = Convert.ToInt32(dtzj.Rows[0]["fs"].ToString()) / int.Parse(dtzj.Rows[0]["fsct"].ToString());
1087
+    //                            }
1088
+    //                        }
1089
+    //                        drNew["质检平均成绩"] = zfs.ToString();
1090
+
1091
+    //                        dtNew.Rows.Add(drNew);
1092
+    //                    }
1093
+    //                }
1094
+    //            //}
1095
+    //        }
1096
+    //        return dtNew;
1097
+    //    }
1098
+        #endregion
770 1099
     }
771 1100
 }

+ 3 - 3
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs

@@ -291,8 +291,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
291 291
             ActionResult res = NoToken("未知错误,请重新登录");
292 292
             if (Request.IsAuthenticated)
293 293
             {
294
-                string sql = " and isdel=0 and State != " + (int)EnumWorkOrderState.finish 
295
-                    + " and T_Wo_WorkOrder.ID not in (select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.urge + " and isnull(F_IsUsed,'0')='0')";
294
+                string sql = " and isdel=0 and State != " + (int)EnumWorkOrderState.finish;
295
+                   // + " and T_Wo_WorkOrder.ID not in (select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.urge + " and isnull(F_IsUsed,'0')='0')";
296 296
                 //string sql = " and isdel=0 and State = 1 ";
297 297
                 DataTable dt = new DataTable();
298 298
 
@@ -377,7 +377,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
377 377
                         dt.Columns.Add("CBCount", typeof(int));
378 378
                         foreach (DataRow dr in dt.Rows)
379 379
                         {
380
-                            var list = itembll.GetList(" F_WoID ='" + dr["ID"].ToString() + "' and F_ItemType=" + (int)EnumItemType.urge + " and F_NextUser='" + ua.F_UserCode + "' ").Tables[0];
380
+                            var list = itembll.GetList(" F_WoID ='" + dr["ID"].ToString() + "' and F_ItemType=" + (int)EnumItemType.urge).Tables[0];
381 381
                             dr["CBCount"] = list.Rows.Count;
382 382
                         }
383 383