|
|
@@ -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
|
,"置忙平均休息分钟数","质检平均成绩"
|
|
|
@@ -36,7 +36,7 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
36
|
36
|
ActionResult res = NoToken("未知错误,请重新登录");
|
|
37
|
37
|
|
|
38
|
38
|
DataTable dtNew = new DataTable();
|
|
39
|
|
- dtNew = getData(stime, endtime, dpt, dayss);
|
|
|
39
|
+ dtNew = getDataNew(stime, endtime, dpt, dayss);
|
|
40
|
40
|
#region
|
|
41
|
41
|
//#region
|
|
42
|
42
|
//DataColumn dc1 = new DataColumn("部门");
|
|
|
@@ -394,7 +394,7 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
394
|
394
|
if (Request.IsAuthenticated)
|
|
395
|
395
|
{
|
|
396
|
396
|
NPOIHelper npoi = new NPOIHelper();
|
|
397
|
|
- DataTable dt = getData(stime, endtime, dpt, dayss);
|
|
|
397
|
+ DataTable dt = getDataNew(stime, endtime, dpt, dayss);
|
|
398
|
398
|
if (npoi.ExportToExcel("坐席工作数据", dt) == "")
|
|
399
|
399
|
{
|
|
400
|
400
|
return Success("导出成功");
|
|
|
@@ -407,6 +407,293 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
407
|
407
|
return res;
|
|
408
|
408
|
}
|
|
409
|
409
|
|
|
|
410
|
+ private DataTable getDataNew(string stime, string endtime, string dpt, string dayss)
|
|
|
411
|
+ {
|
|
|
412
|
+ DataTable dtNew = new DataTable();
|
|
|
413
|
+ #region
|
|
|
414
|
+ DataColumn dc1 = new DataColumn("部门");
|
|
|
415
|
+ DataColumn dc2 = new DataColumn("坐席");
|
|
|
416
|
+ DataColumn dc3 = new DataColumn("坐席工号");
|
|
|
417
|
+ DataColumn dc4 = new DataColumn("呼入电话数");
|
|
|
418
|
+ DataColumn dc5 = new DataColumn("坐席接通量");
|
|
|
419
|
+ DataColumn dc6 = new DataColumn("呼损量");
|
|
|
420
|
+ DataColumn dc7 = new DataColumn("接通率");
|
|
|
421
|
+ DataColumn dc8 = new DataColumn("呼损率");
|
|
|
422
|
+ DataColumn dc9 = new DataColumn("平均排队时间");
|
|
|
423
|
+ DataColumn dc10 = new DataColumn("接听通话次数");
|
|
|
424
|
+ DataColumn dc11 = new DataColumn("通话分钟数");
|
|
|
425
|
+ DataColumn dc12 = new DataColumn("通话秒数");
|
|
|
426
|
+ DataColumn dc13 = new DataColumn("平均接听通话秒数");
|
|
|
427
|
+ DataColumn dc14 = new DataColumn("平均振铃秒数");
|
|
|
428
|
+ DataColumn dc15 = new DataColumn("呼入占有率");
|
|
|
429
|
+ DataColumn dc16 = new DataColumn("用户评价");
|
|
|
430
|
+ DataColumn dc17 = new DataColumn("坐席登录次数");
|
|
|
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("质检平均成绩");
|
|
|
441
|
+
|
|
|
442
|
+ dtNew.Columns.Add(dc1);
|
|
|
443
|
+ dtNew.Columns.Add(dc2);
|
|
|
444
|
+ dtNew.Columns.Add(dc3);
|
|
|
445
|
+ dtNew.Columns.Add(dc4);
|
|
|
446
|
+ dtNew.Columns.Add(dc5);
|
|
|
447
|
+ dtNew.Columns.Add(dc6);
|
|
|
448
|
+ dtNew.Columns.Add(dc7);
|
|
|
449
|
+ dtNew.Columns.Add(dc8);
|
|
|
450
|
+ dtNew.Columns.Add(dc9);
|
|
|
451
|
+ dtNew.Columns.Add(dc10);
|
|
|
452
|
+ dtNew.Columns.Add(dc11);
|
|
|
453
|
+ dtNew.Columns.Add(dc12);
|
|
|
454
|
+ dtNew.Columns.Add(dc13);
|
|
|
455
|
+ dtNew.Columns.Add(dc14);
|
|
|
456
|
+ dtNew.Columns.Add(dc15);
|
|
|
457
|
+ dtNew.Columns.Add(dc16);
|
|
|
458
|
+ dtNew.Columns.Add(dc17);
|
|
|
459
|
+ dtNew.Columns.Add(dc18);
|
|
|
460
|
+ dtNew.Columns.Add(dc19);
|
|
|
461
|
+ dtNew.Columns.Add(dc20);
|
|
|
462
|
+ dtNew.Columns.Add(dc21);
|
|
|
463
|
+ dtNew.Columns.Add(dc22);
|
|
|
464
|
+ dtNew.Columns.Add(dc23);
|
|
|
465
|
+ dtNew.Columns.Add(dc24);
|
|
|
466
|
+ dtNew.Columns.Add(dc25);
|
|
|
467
|
+ dtNew.Columns.Add(dc26);
|
|
|
468
|
+ dtNew.Columns.Add(dc27);
|
|
|
469
|
+ #endregion
|
|
|
470
|
+ int days = 30;
|
|
|
471
|
+ string sqltimeCallRecords = "";
|
|
|
472
|
+ string strsqlcall = "";string strsqltrunk = ""; string strsqlagent = "";
|
|
|
473
|
+
|
|
|
474
|
+ var datenow = DateTime.Now;
|
|
|
475
|
+ if (string.IsNullOrEmpty(stime) && stime.Trim() == "")
|
|
|
476
|
+ stime = datenow.ToString("yyyy-MM-01");
|
|
|
477
|
+ if (string.IsNullOrEmpty(endtime) && endtime.Trim() == "")
|
|
|
478
|
+ endtime = datenow.ToString("yyyy-MM-dd");
|
|
|
479
|
+ if (string.IsNullOrEmpty(dayss) && dayss.Trim() == "")
|
|
|
480
|
+ {
|
|
|
481
|
+ days = datenow.Day;
|
|
|
482
|
+ }
|
|
|
483
|
+
|
|
|
484
|
+ sqltimeCallRecords += " and datediff(day,TimeAlerting,'" + stime + "')<=0 and datediff(day,TimeAlerting,'" + endtime + "')>=0";
|
|
|
485
|
+ strsqlcall += " and datediff(day,BeginTime,'" + stime + "')<=0 and datediff(day,BeginTime,'" + endtime + "')>=0";
|
|
|
486
|
+ strsqltrunk += " and datediff(day,TimeCallIn,'" + stime + "')<=0 and datediff(day,TimeCallIn,'" + endtime + "')>=0";
|
|
|
487
|
+ strsqlagent += " and datediff(day,TimeLogin,'" + stime + "')<=0 and datediff(day,TimeLogin,'" + endtime + "')>=0";
|
|
|
488
|
+
|
|
|
489
|
+ if (dayss != null && dayss.Trim() != "")
|
|
|
490
|
+ {
|
|
|
491
|
+ days = int.Parse(dayss.Trim());
|
|
|
492
|
+ }
|
|
|
493
|
+
|
|
|
494
|
+ var sqluser = " F_DeleteFlag=0 and F_SeatFlag=1 and F_WorkNumber!=''";
|
|
|
495
|
+ if (dpt != null && dpt.Trim() != "")
|
|
|
496
|
+ sqluser += " and F_DeptId=" + dpt;
|
|
|
497
|
+
|
|
|
498
|
+ //坐席
|
|
|
499
|
+ var userslist = new BLL.T_Sys_UserAccount().GetModelList(sqluser+" order by F_WorkNumber asc");
|
|
|
500
|
+ //部门
|
|
|
501
|
+ var deptlist = new BLL.T_Sys_Department().GetModelList("F_ParentId!=0");
|
|
|
502
|
+ //呼入
|
|
|
503
|
+ 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];
|
|
|
504
|
+
|
|
|
505
|
+ DataTable dtcall = DbHelperSQL.Query("select UserCode,CallType,CallState,MYD from T_Call_CallRecords WITH(NOLOCK) where 1=1 " + strsqlcall).Tables[0];
|
|
|
506
|
+ 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];
|
|
|
507
|
+ //接通
|
|
|
508
|
+ DataTable dtCallEvey = DbHelperSQL.Query("select UserCode,COUNT(*) as ct,SUM(TalkLongTime) as sc from T_Call_CallRecords WITH(NOLOCK) where CallState=1 and isnull(UserCode,'')<>'' " + strsqlcall + " group by UserCode ").Tables[0];
|
|
|
509
|
+ //呼出
|
|
|
510
|
+ //登陆信息
|
|
|
511
|
+ 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];
|
|
|
513
|
+ //评价
|
|
|
514
|
+ 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
|
+ //质检
|
|
|
516
|
+ 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 and isnull(UserCode,'')<>'' " + strsqlcall + " group by UserCode ").Tables[0];
|
|
|
517
|
+ foreach (var item in userslist)
|
|
|
518
|
+ {
|
|
|
519
|
+ DataRow drNew = dtNew.NewRow();
|
|
|
520
|
+ drNew["坐席"] = item.F_UserName;
|
|
|
521
|
+ drNew["坐席工号"] = item.F_UserCode;
|
|
|
522
|
+ #region
|
|
|
523
|
+ int ijtcs = 0;//接听通话次数
|
|
|
524
|
+ int ithms = 0;//通话秒数
|
|
|
525
|
+ int izlms = 0;//振铃秒数
|
|
|
526
|
+ int ipjjtms = 0;//平均接听秒数
|
|
|
527
|
+ int ipjzlms = 0;//平均振铃秒数
|
|
|
528
|
+ double ihrzyl = 0.00;//呼入占有率
|
|
|
529
|
+ int izxdlcs = 0;//坐席登录次数
|
|
|
530
|
+ int izxdxcs = 0;//坐席掉线次数
|
|
|
531
|
+ int idlsc = 0;//登录时长
|
|
|
532
|
+ int iWorktime = 0;//工作时长
|
|
|
533
|
+ int izmcs = 0;//置忙次数
|
|
|
534
|
+ int ixxsc = 0;//休息时长
|
|
|
535
|
+ int ipjczsc = 0;//平均操作时长
|
|
|
536
|
+ int ipjzmxxsc = 0;//平均置忙休息时长
|
|
|
537
|
+
|
|
|
538
|
+
|
|
|
539
|
+ int itrunkct = 0;//总数
|
|
|
540
|
+ int itrunkjj = 0;//总接听
|
|
|
541
|
+ int itrunkhs = 0;//呼损量
|
|
|
542
|
+ int itrunkpjsc = 0;//平均排队时间
|
|
|
543
|
+ double itrunkjtl = 0.00;//接通率
|
|
|
544
|
+ double itrunkhsl = 0.00;//互损率
|
|
|
545
|
+ double itrunkpjpd = 0.00;//平均排队
|
|
|
546
|
+ #endregion
|
|
|
547
|
+ #region 部门信息
|
|
|
548
|
+ string deptname = "";
|
|
|
549
|
+ var deptinfo = deptlist.Where(d => d.F_DeptId == item.F_DeptId).FirstOrDefault();
|
|
|
550
|
+ if (deptinfo != null)
|
|
|
551
|
+ deptname = deptinfo.F_DeptName;
|
|
|
552
|
+ drNew["部门"] = deptname;
|
|
|
553
|
+ #endregion
|
|
|
554
|
+ #region 呼入数据
|
|
|
555
|
+ DataRow[] drTrunk = dtTrunk.Select(" AgentID='" + item.F_UserCode + "'");
|
|
|
556
|
+ DataRow[] drCallIn = dtcall.Select(" CallType=0 and UserCode='" + item.F_UserCode + "'");
|
|
|
557
|
+ DataRow[] drCallInJT = dtcall.Select(" CallType=0 and CallState=1 and UserCode='" + item.F_UserCode + "'");
|
|
|
558
|
+ if (drCallIn != null && drCallIn.Count() > 0)
|
|
|
559
|
+ itrunkct = drCallIn.Count();
|
|
|
560
|
+ if (drCallInJT != null && drCallInJT.Count() > 0)
|
|
|
561
|
+ itrunkjj = drCallInJT.Count();
|
|
|
562
|
+ if (drTrunk.Count() > 0 && drTrunk[0]["dd"].ToString() != "")
|
|
|
563
|
+ itrunkpjsc = int.Parse(drTrunk[0]["dd"].ToString());
|
|
|
564
|
+
|
|
|
565
|
+ itrunkhs = itrunkct - itrunkjj;
|
|
|
566
|
+ if (itrunkct != 0)
|
|
|
567
|
+ {
|
|
|
568
|
+ itrunkjtl = itrunkjj / double.Parse(itrunkct.ToString());
|
|
|
569
|
+ itrunkhsl = itrunkhs / double.Parse(itrunkct.ToString());
|
|
|
570
|
+ itrunkpjpd = itrunkpjsc / double.Parse(itrunkct.ToString());
|
|
|
571
|
+ }
|
|
|
572
|
+ else
|
|
|
573
|
+ {
|
|
|
574
|
+ itrunkjtl = 0.00;
|
|
|
575
|
+ itrunkhsl = 0.00;
|
|
|
576
|
+ itrunkpjpd = 0.00;
|
|
|
577
|
+ }
|
|
|
578
|
+ drNew["呼入电话数"] = itrunkct;
|
|
|
579
|
+ drNew["坐席接通量"] = itrunkjj;
|
|
|
580
|
+ drNew["呼损量"] = itrunkhs;
|
|
|
581
|
+ drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
|
|
|
582
|
+ drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
|
|
|
583
|
+ drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
|
|
|
584
|
+ #endregion
|
|
|
585
|
+ #region 坐席接听数据
|
|
|
586
|
+ DataRow[] drExt = dtext.Select(" CalleeAgentID='" + item.F_UserCode + "'");
|
|
|
587
|
+ DataRow[] drCallEvey = dtCallEvey.Select(" usercode='" + item.F_UserCode + "'");
|
|
|
588
|
+ if (drCallEvey != null && drCallEvey.Count() > 0)
|
|
|
589
|
+ {
|
|
|
590
|
+ if (drCallEvey[0]["ct"].ToString() != "")
|
|
|
591
|
+ {
|
|
|
592
|
+ ijtcs = int.Parse(drCallEvey[0]["ct"].ToString());//接听次数
|
|
|
593
|
+ }
|
|
|
594
|
+ if (drCallEvey[0]["sc"].ToString() != "")
|
|
|
595
|
+ {
|
|
|
596
|
+ ithms = int.Parse(drCallEvey[0]["sc"].ToString());//通话秒数
|
|
|
597
|
+ }
|
|
|
598
|
+ }
|
|
|
599
|
+ if (drExt != null && drExt.Count() > 0)
|
|
|
600
|
+ {
|
|
|
601
|
+ if (drExt[0]["pa"].ToString() != "")
|
|
|
602
|
+ {
|
|
|
603
|
+ izlms = int.Parse(drExt[0]["pa"].ToString());//振铃秒数
|
|
|
604
|
+ }
|
|
|
605
|
+ }
|
|
|
606
|
+ drNew["接听通话次数"] = ijtcs.ToString();
|
|
|
607
|
+ //drNew["通话分钟数"] = (ithms / 60).ToString();
|
|
|
608
|
+ drNew["通话分钟数"] = CallCenter.Utility.DateTimeConvert.parseTimeSeconds(ithms, 0);
|
|
|
609
|
+ drNew["通话秒数"] = ithms.ToString();
|
|
|
610
|
+
|
|
|
611
|
+ if (ijtcs != 0)
|
|
|
612
|
+ {
|
|
|
613
|
+ ipjjtms = ithms / ijtcs;//平均接通秒数
|
|
|
614
|
+ ipjzlms = izlms / ijtcs;//平均振铃秒数
|
|
|
615
|
+ }
|
|
|
616
|
+ drNew["平均接听通话秒数"] = ipjjtms.ToString();
|
|
|
617
|
+ drNew["平均振铃秒数"] = ipjzlms.ToString();
|
|
|
618
|
+ #endregion
|
|
|
619
|
+ #region 坐席登录次数
|
|
|
620
|
+ DataRow[] drAgent = dtAgent.Select(" AgentId='" + item.F_UserCode + "'");
|
|
|
621
|
+ DataRow[] drAgentdx = dtAgentdx.Select(" AgentId='" + item.F_UserCode + "'");
|
|
|
622
|
+ if (drAgent != null && drAgent.Count() > 0)
|
|
|
623
|
+ {
|
|
|
624
|
+ if (drAgent[0]["dl"] != null && drAgent[0]["dl"].ToString() != "")
|
|
|
625
|
+ {
|
|
|
626
|
+ izxdlcs = int.Parse(drAgent[0]["dl"].ToString());//登录次数
|
|
|
627
|
+ }
|
|
|
628
|
+ if (drAgent[0]["dlsc"] != null && drAgent[0]["dlsc"].ToString() != "")
|
|
|
629
|
+ {
|
|
|
630
|
+ idlsc = int.Parse(drAgent[0]["dlsc"].ToString());//登录时长
|
|
|
631
|
+ }
|
|
|
632
|
+ if (drAgent[0]["zm"] != null && drAgent[0]["zm"].ToString() != "")
|
|
|
633
|
+ {
|
|
|
634
|
+ izmcs = int.Parse(drAgent[0]["zm"].ToString());//置忙次数
|
|
|
635
|
+ }
|
|
|
636
|
+ if (drAgent[0]["xx"] != null && drAgent[0]["xx"].ToString() != "")
|
|
|
637
|
+ {
|
|
|
638
|
+ ixxsc = int.Parse(drAgent[0]["xx"].ToString());//休息时长
|
|
|
639
|
+ }
|
|
|
640
|
+ }
|
|
|
641
|
+ if (drAgentdx != null && drAgentdx.Count() > 0)
|
|
|
642
|
+ {
|
|
|
643
|
+ if (drAgentdx[0]["dl"] != null && drAgentdx[0]["dl"].ToString() != "")
|
|
|
644
|
+ {
|
|
|
645
|
+ izxdxcs = int.Parse(drAgentdx[0]["dl"].ToString());//掉线次数
|
|
|
646
|
+ }
|
|
|
647
|
+ }
|
|
|
648
|
+ iWorktime = idlsc - ixxsc;//工作时长
|
|
|
649
|
+ if (izxdlcs != 0)
|
|
|
650
|
+ {
|
|
|
651
|
+ ipjczsc = iWorktime / izxdlcs;//平均操作秒数
|
|
|
652
|
+ }
|
|
|
653
|
+ if (izmcs != 0)
|
|
|
654
|
+ {
|
|
|
655
|
+ ipjzmxxsc = ixxsc / izmcs;//置忙平均操作时长
|
|
|
656
|
+ }
|
|
|
657
|
+
|
|
|
658
|
+ //呼入占有率
|
|
|
659
|
+ if (iWorktime != 0)
|
|
|
660
|
+ {
|
|
|
661
|
+ ihrzyl = ithms / Convert.ToDouble(iWorktime);
|
|
|
662
|
+ }
|
|
|
663
|
+ drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
|
|
|
664
|
+ drNew["坐席登录次数"] = izxdlcs.ToString();
|
|
|
665
|
+ drNew["异常掉线次数"] = izxdxcs.ToString();
|
|
|
666
|
+ drNew["登录时长分钟数"] = (idlsc / 60).ToString();
|
|
|
667
|
+ drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
|
|
|
668
|
+ drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
|
|
|
669
|
+ drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
|
|
|
670
|
+ drNew["置忙次数"] = izmcs.ToString();
|
|
|
671
|
+ drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
|
|
|
672
|
+ drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
|
|
|
673
|
+ drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
|
|
|
674
|
+ #endregion
|
|
|
675
|
+ #region 用户评价
|
|
|
676
|
+ DataRow[] drmyd = dtcall.Select(" MYD is not null and myd<>0 and CallState=1 and usercode='" + item.F_UserCode + "' ");
|
|
|
677
|
+ int myd = drmyd != null ? drmyd.Count() : 0;
|
|
|
678
|
+ drNew["用户评价"] = myd.ToString();
|
|
|
679
|
+ #endregion
|
|
|
680
|
+ #region 质检部分
|
|
|
681
|
+ DataRow[] drZJ = dtzj.Select(" UserCode='" + item.F_UserCode + "'");
|
|
|
682
|
+ int zfs = 0;
|
|
|
683
|
+ if (drZJ != null && drZJ.Count() > 0)
|
|
|
684
|
+ {
|
|
|
685
|
+ if (drZJ[0]["fs"].ToString() != "" && drZJ[0]["fsct"].ToString() != "")
|
|
|
686
|
+ {
|
|
|
687
|
+ zfs = Convert.ToInt32(drZJ[0]["fs"].ToString()) / int.Parse(drZJ[0]["fsct"].ToString());
|
|
|
688
|
+ }
|
|
|
689
|
+ }
|
|
|
690
|
+ drNew["质检平均成绩"] = zfs.ToString();
|
|
|
691
|
+ #endregion
|
|
|
692
|
+ dtNew.Rows.Add(drNew);
|
|
|
693
|
+ }
|
|
|
694
|
+ return dtNew;
|
|
|
695
|
+ }
|
|
|
696
|
+ #region 20191204 zhengbingbing 优化前
|
|
410
|
697
|
private DataTable getData(string stime, string endtime, string dpt, string dayss)
|
|
411
|
698
|
{
|
|
412
|
699
|
DataTable dtNew = new DataTable();
|
|
|
@@ -767,5 +1054,6 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
767
|
1054
|
}
|
|
768
|
1055
|
return dtNew;
|
|
769
|
1056
|
}
|
|
|
1057
|
+ #endregion
|
|
770
|
1058
|
}
|
|
771
|
1059
|
}
|