yuqian 8 years ago
parent
commit
458dc3f0d7

+ 68 - 49
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/callout/CallPlanController.cs

636
             if (!Request.IsAuthenticated)
636
             if (!Request.IsAuthenticated)
637
                 return NoToken("未知错误,请重新登录");
637
                 return NoToken("未知错误,请重新登录");
638
 
638
 
639
-            var sql = "";
639
+            var sql = $" and t.State=1 and F_UserId={CurrentUser.UserData.F_UserId} ";
640
             if (filter.Id > 0)
640
             if (filter.Id > 0)
641
             {
641
             {
642
                 var model = taskBLL.GetModel(filter.Id);
642
                 var model = taskBLL.GetModel(filter.Id);
644
                 if (model == null)
644
                 if (model == null)
645
                     return Error("外呼任务不存在");
645
                     return Error("外呼任务不存在");
646
             }
646
             }
647
-
648
-
649
-            sql += $" and t.State>0 and F_UserId={CurrentUser.UserData.F_UserId} ";
650
             if (!string.IsNullOrWhiteSpace(filter.Phone))
647
             if (!string.IsNullOrWhiteSpace(filter.Phone))
651
             {
648
             {
652
                 sql += $" and F_Phone like '%{filter.Phone}%'";
649
                 sql += $" and F_Phone like '%{filter.Phone}%'";
653
             }
650
             }
651
+
652
+            switch (filter.RequestType)
653
+            {
654
+                case 1://我的任务
655
+                    sql += $" and F_HCState=0 ";
656
+                    break;
657
+                default:
658
+                    break;
659
+            }
660
+
661
+
662
+
654
             if (filter.FPState > -1)
663
             if (filter.FPState > -1)
655
             {
664
             {
656
                 sql += $" and F_FPState={filter.FPState} ";
665
                 sql += $" and F_FPState={filter.FPState} ";
663
             {
672
             {
664
                 sql += $" and F_YJState={filter.YJState} ";
673
                 sql += $" and F_YJState={filter.YJState} ";
665
             }
674
             }
675
+            if (filter.YJState > -1)
676
+            {
677
+                sql += $" and F_YJState={filter.YJState} ";
678
+            }
679
+            if (filter.YJState > -1)
680
+            {
681
+                sql += $" and F_YJState={filter.YJState} ";
682
+            }
666
 
683
 
667
-            var field = "F_Id,t.TaskName,F_Phone,F_FPState,F_HCState,F_YJState,F_Username,tn.F_CreateTime";
684
+            var field = "F_Id,t.TaskName,F_Phone,F_FPState,F_HCState,F_YJState,F_Username,tn.F_CreateTime,F_HJJGName,F_YHFKName";
668
             if (filter.TaskType == 2)
685
             if (filter.TaskType == 2)
669
             {
686
             {
670
                 field += " F_Phone,F_HCState,F_YJState";
687
                 field += " F_Phone,F_HCState,F_YJState";
693
                     isallot = x.F_FPState == null ? "" : (x.F_FPState > 0 ? "已分配" : "未分配"),
710
                     isallot = x.F_FPState == null ? "" : (x.F_FPState > 0 ? "已分配" : "未分配"),
694
                     iscalled = x.F_HCState > 0 ? "已呼叫" : "未呼叫",
711
                     iscalled = x.F_HCState > 0 ? "已呼叫" : "未呼叫",
695
                     isconnected = x.F_YJState > 0 ? "已接通" : "未接通",
712
                     isconnected = x.F_YJState > 0 ? "已接通" : "未接通",
713
+                    hjjg = x.F_HJJGName,
714
+                    yhfk = x.F_YHFKName,
696
                     createtime = Convert.ToDateTime(x.F_CreateTime).ToString("yyyy-MM-dd HH:mm:ss")
715
                     createtime = Convert.ToDateTime(x.F_CreateTime).ToString("yyyy-MM-dd HH:mm:ss")
697
                 }),
716
                 }),
698
                 total = recordCount
717
                 total = recordCount
816
             return Success("");
835
             return Success("");
817
         }
836
         }
818
         /// <summary>
837
         /// <summary>
819
-        /// 更新拨出号码的 呼叫状态,用户反馈等
838
+        /// 更新拨出号码的 呼叫状态
820
         /// </summary>
839
         /// </summary>
821
         /// <returns></returns>
840
         /// <returns></returns>
822
-        public ActionResult UpdateCallNumDetail(CallNumberInput input)
841
+        public ActionResult UpdateCallState(int id)
823
         {
842
         {
824
-            var model = taskTellNumBLL.GetModel(input.Id);
843
+            var model = taskTellNumBLL.GetModel(id);
825
             if (model == null)
844
             if (model == null)
826
                 return Error("该号码信息不存在");
845
                 return Error("该号码信息不存在");
827
-            model.F_HJJGId = input.HJJG;
828
-            model.F_YHFKID = input.YHFK;
829
-            model.F_Remark = input.Remark ?? "";
830
-
831
-
832
-            if (taskTellNumBLL.Update(model))
846
+            if (taskTellNumBLL.UpdateHC(model.F_Id, 1))
833
                 return Success("更新成功");
847
                 return Success("更新成功");
834
             return Error("更新失败");
848
             return Error("更新失败");
835
 
849
 
847
         /// <returns></returns>
861
         /// <returns></returns>
848
         public ActionResult Answers(CallNumberInput input)
862
         public ActionResult Answers(CallNumberInput input)
849
         {
863
         {
864
+            if (input.Id <= 0)
865
+                return Error("提交失败,当前号码不存在");
866
+            var otnModel = taskTellNumBLL.GetModel(input.Id);
867
+            if (otnModel.F_HCState <= 0)
868
+                return Error("提交失败,号码未进行呼叫");
869
+            int cc = 0;
870
+            var ansModel = new Model.T_Call_Answers();
871
+            string askqids = "";
872
+            string ansids = "";
850
             if (input.Ans != null)
873
             if (input.Ans != null)
851
             {
874
             {
852
-                int cc = 0;
853
-                var ansModel = new Model.T_Call_Answers();
854
-                string askqids = "";
855
-                string ansids = "";
856
 
875
 
857
                 //先删除 后添加
876
                 //先删除 后添加
858
                 ansBLL.DeleteByTelid(input.Id, input.TaskId);
877
                 ansBLL.DeleteByTelid(input.Id, input.TaskId);
894
                             cc++;
913
                             cc++;
895
                     }
914
                     }
896
                 }
915
                 }
916
+            }
897
 
917
 
898
-                if (input.Id > 0)
899
-                {
900
-                    var otnModel = taskTellNumBLL.GetModel(input.Id);
901
-                    if (otnModel != null)
902
-                    {
903
-                        otnModel.F_HJJGId = input.HJJG;
904
-                        var hjconfig = new BLL.T_Sys_DictionaryValue().GetModel(input.HJJG);
905
-                        if (hjconfig != null)
906
-                            otnModel.F_HJJGName = hjconfig.F_Name;
907
-                        otnModel.F_YHFKID = input.YHFK;
908
-                        var fkconfig = new BLL.T_Sys_DictionaryValue().GetModel(input.YHFK);
909
-                        if (fkconfig != null)
910
-                            otnModel.F_YHFKName = fkconfig.F_Name;
911
-                        otnModel.F_AskRes = askqids;
912
-                        otnModel.F_AskInfo = ansids;
913
-                        taskTellNumBLL.Update(otnModel);
914
-
915
-                        //记录日志
916
-                        //planrecord(otnModel);
917
-                    }
918
-                }
919
 
918
 
920
-                if (cc == input.Ans.Length)
921
-                {
922
-                    return Success("问卷答案提交成功!taskid=" + input.TaskId + ",custelid=" + input.Id + ",操作人:" + CurrentUser.UserData.F_UserCode);
923
-                }
924
-                else
925
-                {
926
-                    ansBLL.DeleteByTelid(input.Id, input.TaskId);
927
-                    return Error("问卷答案提交失败!taskid=" + input.TaskId + ",custelid=" + input.Id + ",操作人:" + CurrentUser.UserData.F_UserCode);
928
-                }
919
+            if (otnModel != null)
920
+            {
921
+                otnModel.F_HJJGId = input.HJJG;
922
+                var hjconfig = new BLL.T_Sys_DictionaryValue().GetModel(input.HJJG);
923
+                if (hjconfig != null)
924
+                    otnModel.F_HJJGName = hjconfig.F_Name;
925
+                otnModel.F_YHFKID = input.YHFK;
926
+                var fkconfig = new BLL.T_Sys_DictionaryValue().GetModel(input.YHFK);
927
+                if (fkconfig != null)
928
+                    otnModel.F_YHFKName = fkconfig.F_Name;
929
+                otnModel.F_AskRes = askqids;
930
+                otnModel.F_AskInfo = ansids;
931
+
932
+                otnModel.F_Remark = input.Remark ?? "";
933
+                taskTellNumBLL.Update(otnModel);
934
+
935
+                //记录日志
936
+                //planrecord(otnModel);
937
+            }
938
+
939
+
940
+            if (cc == (input.Ans?.Length ?? 0))
941
+            {
942
+                return Success("提交成功!taskid=" + input.TaskId + ",custelid=" + input.Id + ",操作人:" + CurrentUser.UserData.F_UserCode);
929
             }
943
             }
930
-            return Error("没有问卷答案提交");
944
+            else
945
+            {
946
+                ansBLL.DeleteByTelid(input.Id, input.TaskId);
947
+                return Error("问卷答案提交失败!taskid=" + input.TaskId + ",custelid=" + input.Id + ",操作人:" + CurrentUser.UserData.F_UserCode);
948
+            }
949
+
931
         }
950
         }
932
         #endregion
951
         #endregion
933
 
952
 

+ 1 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/quality/IndexBaseController.cs

188
                         if (b)
188
                         if (b)
189
                         {
189
                         {
190
                             res = Success("编辑成功");
190
                             res = Success("编辑成功");
191
+                            SetScoreByCategory(cid);
191
                         }
192
                         }
192
                         else
193
                         else
193
                         {
194
                         {

+ 59 - 12
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/quality/QCManageController.cs

33
             string strpagesize = RequestString.GetQueryString("pagesize");
33
             string strpagesize = RequestString.GetQueryString("pagesize");
34
             int pagesize = 10;
34
             int pagesize = 10;
35
 
35
 
36
+            var roleId = CurrentUser.UserData.F_RoleId;
37
+            var deptId = CurrentUser.UserData.F_DeptId;
38
+            var deptCode = CurrentUser.UserData.F_DeptCode;
39
+            var currentUsercode = CurrentUser.UserData.F_UserCode;
40
+            if (roleId != 0)
41
+            {
42
+                if (roleId != 17)
43
+                {
44
+                    if (deptCode.IndexOf("|1|") > 0)
45
+                    {
46
+                        if (roleId == 36 || roleId == 38 || roleId == 40)
47
+                        {
48
+                            sql += $" and  UserCode='{currentUsercode}'";
49
+                        }
50
+                        else
51
+                        {
52
+                            sql += $" and  UserCode  in (SELECT F_UserCode FROM T_Sys_UserAccount WHERE F_DeptId={deptId})";
53
+                        }
54
+
55
+                    }
56
+                }
57
+            }
58
+
36
             sql += " and CallState='1' and F_QCState<>1  ";
59
             sql += " and CallState='1' and F_QCState<>1  ";
37
 
60
 
38
             if (phone.Trim() != "")
61
             if (phone.Trim() != "")
47
             {
70
             {
48
                 sql += " and CallType='" + calltype + "'";
71
                 sql += " and CallType='" + calltype + "'";
49
             }
72
             }
50
-            if (starttime.Trim() == "" && endtime.Trim() == "")
73
+            //if (starttime.Trim() == "" && endtime.Trim() == "")
74
+            //{
75
+            //    sql += " and DATEDIFF(week, BeginTime,getdate())=1 ";//默认显示上周记录
76
+            //}
77
+            //else
78
+            //{
79
+            if (starttime.Trim() != "")
51
             {
80
             {
52
-                sql += " and DATEDIFF(week, BeginTime,getdate())=1 ";//默认显示上周记录
81
+                sql += " and BeginTime>='" + starttime + "'";
53
             }
82
             }
54
-            else
83
+            if (endtime.Trim() != "")
55
             {
84
             {
56
-                if (starttime.Trim() != "")
57
-                {
58
-                    sql += " and BeginTime>='" + starttime + "'";
59
-                }
60
-                if (endtime.Trim() != "")
61
-                {
62
-                    sql += " and BeginTime<='" + endtime + "'";
63
-                }
85
+                sql += " and BeginTime<='" + endtime + "'";
64
             }
86
             }
87
+            //}
65
             if (startl.Trim() != "")
88
             if (startl.Trim() != "")
66
             {
89
             {
67
                 sql += " and TalkLongTime>=" + startl + " ";
90
                 sql += " and TalkLongTime>=" + startl + " ";
164
             string strpagesize = RequestString.GetQueryString("pagesize");
187
             string strpagesize = RequestString.GetQueryString("pagesize");
165
             int pagesize = 10;
188
             int pagesize = 10;
166
 
189
 
190
+            var roleId = CurrentUser.UserData.F_RoleId;
191
+            var deptId = CurrentUser.UserData.F_DeptId;
192
+            var deptCode = CurrentUser.UserData.F_DeptCode;
193
+            var currentUsercode = CurrentUser.UserData.F_UserCode;
194
+            if (roleId != 0)
195
+            {
196
+                if (roleId != 17)
197
+                {
198
+                    if (deptCode.IndexOf("|1|") > 0)
199
+                    {
200
+                        if (roleId == 36 || roleId == 38 || roleId == 40)
201
+                        {
202
+                            sql += $" and  UserCode='{currentUsercode}'";
203
+                        }
204
+                        else
205
+                        {
206
+                            sql += $" and  UserCode  in (SELECT F_UserCode FROM T_Sys_UserAccount WHERE F_DeptId={deptId})";
207
+                        }
208
+
209
+                    }
210
+                }
211
+            }
212
+
167
             //已接通,已质检
213
             //已接通,已质检
168
             sql += "  and CallState='1' and F_QCState=1 ";
214
             sql += "  and CallState='1' and F_QCState=1 ";
169
 
215
 
243
                     _businesstype = d.BusinessType,
289
                     _businesstype = d.BusinessType,
244
                     _f_qclc = lc,
290
                     _f_qclc = lc,
245
                     _f_qcdc = dc,
291
                     _f_qcdc = dc,
246
-                    _callrecordsid = d.CallRecordsId
292
+                    _callrecordsid = d.CallRecordsId,
293
+                    _deptname = d.F_DeptName
247
                 };
294
                 };
248
             }).ToList<object>();
295
             }).ToList<object>();
249
 
296
 

+ 248 - 248
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/QCResultController.cs

10
 
10
 
11
 namespace CallCenterApi.Interface.Controllers.report
11
 namespace CallCenterApi.Interface.Controllers.report
12
 {
12
 {
13
-   /// [Authority]
13
+    /// [Authority]
14
     public class QCResultController : BaseController
14
     public class QCResultController : BaseController
15
     {
15
     {
16
         //质检报表
16
         //质检报表
22
         {
22
         {
23
             ActionResult res = NoToken("未知错误,请重新登录");
23
             ActionResult res = NoToken("未知错误,请重新登录");
24
             List<Model.QCModel> qclist = new List<Model.QCModel>();
24
             List<Model.QCModel> qclist = new List<Model.QCModel>();
25
-          
26
-                #region 加载固定项
27
-                DataColumn dc1 = new DataColumn("QCName",Type.GetType("System.String"));
28
-                DataColumn dc2 = new DataColumn("UserName", Type.GetType("System.String"));
29
-                DataColumn dc3 = new DataColumn("UserCode", Type.GetType("System.String"));
30
-                DataColumn dc4 = new DataColumn("ZJCount", Type.GetType("System.String"));
31
-                dtNew.Columns.Add(dc1);
32
-                dtNew.Columns.Add(dc2);
33
-                dtNew.Columns.Add(dc3);
34
-                dtNew.Columns.Add(dc4);
35
-                Model.QCModel qcm1 = new Model.QCModel();
36
-                qcm1.Qcid = "cpr1";
37
-                qcm1.Qcname = "测评人";
38
-                qcm1.Rowspan = "4";
39
-                Model.QCModel qcm2 = new Model.QCModel();
40
-                qcm2.Qcid = "xm2";
41
-                qcm2.Qcname = "姓名";
42
-                qcm2.Rowspan = "4";
43
-                Model.QCModel qcm3 = new Model.QCModel();
44
-                qcm3.Qcid = "gh3";
45
-                qcm3.Qcname = "工号";
46
-                qcm3.Rowspan = "4";
47
-                Model.QCModel qcm4 = new Model.QCModel();
48
-                qcm4.Qcid = "zjts4";
49
-                qcm4.Qcname = "质检条数";
50
-                qcm4.Rowspan = "4";
51
-                qclist.Add(qcm1);
52
-                qclist.Add(qcm2);
53
-                qclist.Add(qcm3);
54
-                qclist.Add(qcm4);
55
-                #endregion
56
-                Model.QCModel qcmzf = new Model.QCModel();
57
-                qcmzf.Qcid = "zf999";
58
-                qcmzf.Qcname = "总分";
59
-                qcmzf.Rowspan = "3";
60
-                
61
-                object obj = null;
62
-                
63
-                DataSet ds = DbHelperSQL.Query("select F_CategoryId,F_CategoryName,F_ParentId from T_QC_IndexCategory where F_DeleteFlag=0 order by F_CategoryId asc");
64
-                DataTable dsConten = DbHelperSQL.Query("select F_IndexId,F_Content,F_Title,F_Score,F_CategoryId from T_QC_IndexBase order by F_IndexId asc").Tables[0];
65
-                if (ds != null && ds.Tables.Count > 0)
25
+
26
+            #region 加载固定项
27
+            DataColumn dc1 = new DataColumn("QCName", Type.GetType("System.String"));
28
+            DataColumn dc2 = new DataColumn("UserName", Type.GetType("System.String"));
29
+            DataColumn dc3 = new DataColumn("UserCode", Type.GetType("System.String"));
30
+            DataColumn dc4 = new DataColumn("ZJCount", Type.GetType("System.String"));
31
+            dtNew.Columns.Add(dc1);
32
+            dtNew.Columns.Add(dc2);
33
+            dtNew.Columns.Add(dc3);
34
+            dtNew.Columns.Add(dc4);
35
+            Model.QCModel qcm1 = new Model.QCModel();
36
+            qcm1.Qcid = "cpr1";
37
+            qcm1.Qcname = "测评人";
38
+            qcm1.Rowspan = "4";
39
+            Model.QCModel qcm2 = new Model.QCModel();
40
+            qcm2.Qcid = "xm2";
41
+            qcm2.Qcname = "姓名";
42
+            qcm2.Rowspan = "4";
43
+            Model.QCModel qcm3 = new Model.QCModel();
44
+            qcm3.Qcid = "gh3";
45
+            qcm3.Qcname = "工号";
46
+            qcm3.Rowspan = "4";
47
+            Model.QCModel qcm4 = new Model.QCModel();
48
+            qcm4.Qcid = "zjts4";
49
+            qcm4.Qcname = "质检条数";
50
+            qcm4.Rowspan = "4";
51
+            qclist.Add(qcm1);
52
+            qclist.Add(qcm2);
53
+            qclist.Add(qcm3);
54
+            qclist.Add(qcm4);
55
+            #endregion
56
+            Model.QCModel qcmzf = new Model.QCModel();
57
+            qcmzf.Qcid = "zf999";
58
+            qcmzf.Qcname = "总分";
59
+            qcmzf.Rowspan = "3";
60
+
61
+            object obj = null;
62
+
63
+            DataSet ds = DbHelperSQL.Query("select F_CategoryId,F_CategoryName,F_ParentId from T_QC_IndexCategory where F_DeleteFlag=0 order by F_CategoryId asc");
64
+            DataTable dsConten = DbHelperSQL.Query("select F_IndexId,F_Content,F_Title,F_Score,F_CategoryId from T_QC_IndexBase order by F_IndexId asc").Tables[0];
65
+            if (ds != null && ds.Tables.Count > 0)
66
+            {
67
+                DataTable dt = ds.Tables[0];
68
+                DataRow[] drlist = dt.Select("F_ParentId=0");
69
+                if (drlist != null)
66
                 {
70
                 {
67
-                    DataTable dt = ds.Tables[0];
68
-                    DataRow[] drlist = dt.Select("F_ParentId=0");
69
-                    if (drlist != null)
71
+                    int ctsc = 0;//总分
72
+                    for (int i = 0; i < drlist.Length; i++)
70
                     {
73
                     {
71
-                        int ctsc = 0;//总分
72
-                        for (int i = 0; i < drlist.Length; i++)
74
+                        obj = DbHelperSQL.GetSingle("select count(*) from T_QC_IndexBase where F_CategoryId in(select F_CategoryId from T_QC_IndexCategory where F_ParentId=" + drlist[i]["F_CategoryId"] + ")");
75
+
76
+                        Model.QCModel qcml = new Model.QCModel();
77
+                        qcml.Qcid = drlist[i]["F_CategoryId"].ToString();
78
+                        qcml.Qcname = drlist[i]["F_CategoryName"].ToString();
79
+                        qcml.Colspan = obj.ToString();
80
+
81
+                        //strColom1 += "<td colspan='" + obj.ToString() + "' style='height: 18px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; padding: 3px 3px 3px 3px; text-align: center;'>" + drlist[i]["F_CategoryName"] + "</td>";
82
+                        //strColom1 += "<td rowspan='3' style='height: 18px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; padding: 3px 3px 3px 3px; text-align: center;'>分项得分</td>";
83
+
84
+                        DataRow[] drlistnew = dt.Select("F_ParentId=" + drlist[i]["F_CategoryId"]);
85
+                        if (drlistnew != null && drlist.Length > 0)
73
                         {
86
                         {
74
-                            obj = DbHelperSQL.GetSingle("select count(*) from T_QC_IndexBase where F_CategoryId in(select F_CategoryId from T_QC_IndexCategory where F_ParentId=" + drlist[i]["F_CategoryId"] + ")");
75
-
76
-                            Model.QCModel qcml = new Model.QCModel();
77
-                            qcml.Qcid = drlist[i]["F_CategoryId"].ToString();
78
-                            qcml.Qcname = drlist[i]["F_CategoryName"].ToString();
79
-                            qcml.Colspan = obj.ToString();
80
-
81
-                            //strColom1 += "<td colspan='" + obj.ToString() + "' style='height: 18px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; padding: 3px 3px 3px 3px; text-align: center;'>" + drlist[i]["F_CategoryName"] + "</td>";
82
-                            //strColom1 += "<td rowspan='3' style='height: 18px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; padding: 3px 3px 3px 3px; text-align: center;'>分项得分</td>";
83
-                            
84
-                            DataRow[] drlistnew = dt.Select("F_ParentId=" + drlist[i]["F_CategoryId"]);
85
-                            if (drlistnew != null && drlist.Length > 0)
87
+                            List<Model.QCModel> qcclist = new List<Model.QCModel>();
88
+                            int sc = 0;
89
+                            string strCatid = "";
90
+                            for (int n = 0; n < drlistnew.Length; n++)
86
                             {
91
                             {
87
-                                List<Model.QCModel> qcclist = new List<Model.QCModel>();
88
-                                int sc = 0;
89
-                                string strCatid = "";
90
-                                for (int n = 0; n < drlistnew.Length; n++)
92
+                                Model.QCModel qccml = new Model.QCModel();
93
+                                obj = DbHelperSQL.GetSingle("select count(*) from T_QC_IndexBase where F_CategoryId=" + drlistnew[n]["F_CategoryId"]);
94
+                                //strColom2 += "<td colspan='" + obj + "' style='height: 18px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; padding: 3px 3px 3px 3px; text-align: center;'>" + drlistnew[n]["F_CategoryName"] + "</td>";
95
+                                qccml.Qcid = drlist[i]["F_CategoryId"].ToString() + "-" + drlistnew[n]["F_CategoryId"].ToString();
96
+                                qccml.Qcname = drlistnew[n]["F_CategoryName"].ToString();
97
+                                qccml.Colspan = obj.ToString();
98
+
99
+                                DataRow[] drContent = dsConten.Select("F_CategoryId=" + drlistnew[n]["F_CategoryId"]);
100
+                                if (drContent != null && drContent.Length > 0)
91
                                 {
101
                                 {
92
-                                    Model.QCModel qccml = new Model.QCModel();
93
-                                    obj = DbHelperSQL.GetSingle("select count(*) from T_QC_IndexBase where F_CategoryId=" + drlistnew[n]["F_CategoryId"]);
94
-                                    //strColom2 += "<td colspan='" + obj + "' style='height: 18px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; padding: 3px 3px 3px 3px; text-align: center;'>" + drlistnew[n]["F_CategoryName"] + "</td>";
95
-                                    qccml.Qcid = drlist[i]["F_CategoryId"].ToString()+"-"+drlistnew[n]["F_CategoryId"].ToString();
96
-                                    qccml.Qcname = drlistnew[n]["F_CategoryName"].ToString();
97
-                                    qccml.Colspan = obj.ToString();
98
-
99
-                                    DataRow[] drContent = dsConten.Select("F_CategoryId=" + drlistnew[n]["F_CategoryId"]);
100
-                                    if (drContent != null && drContent.Length > 0)
102
+                                    List<Model.QCModel> qccllist = new List<Model.QCModel>();
103
+                                    for (int m = 0; m < drContent.Length; m++)
101
                                     {
104
                                     {
102
-                                        List<Model.QCModel> qccllist = new List<Model.QCModel>();
103
-                                        for (int m = 0; m < drContent.Length; m++)
105
+                                        Model.QCModel qccmll = new Model.QCModel();
106
+                                        qccmll.Qcid = drlist[i]["F_CategoryId"].ToString() + "-" + drlistnew[n]["F_CategoryId"].ToString() + "-" + drContent[m]["F_IndexId"].ToString();
107
+                                        qccmll.Qcname = drContent[m]["F_Title"].ToString();
108
+                                        qccmll.Qcscore = drContent[m]["F_Score"].ToString();
109
+                                        //strColom3 += "<td  align='center'style='border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px; height: 18px; padding-top: 3px; padding-bottom: 3px;'>" + drContent[m]["F_Title"] + "</td>";
110
+                                        //strColom4 += "<td  align='center'style='border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px; height: 18px; padding-top: 3px; padding-bottom: 3px;'>" + drContent[m]["F_Score"] + "</td>";
111
+                                        if (!string.IsNullOrEmpty(drContent[m]["F_Score"].ToString()))
104
                                         {
112
                                         {
105
-                                            Model.QCModel qccmll = new Model.QCModel();
106
-                                            qccmll.Qcid = drlist[i]["F_CategoryId"].ToString() + "-" + drlistnew[n]["F_CategoryId"].ToString()+"-"+drContent[m]["F_IndexId"].ToString();
107
-                                            qccmll.Qcname = drContent[m]["F_Title"].ToString();
108
-                                            qccmll.Qcscore = drContent[m]["F_Score"].ToString();
109
-                                            //strColom3 += "<td  align='center'style='border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px; height: 18px; padding-top: 3px; padding-bottom: 3px;'>" + drContent[m]["F_Title"] + "</td>";
110
-                                            //strColom4 += "<td  align='center'style='border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px; height: 18px; padding-top: 3px; padding-bottom: 3px;'>" + drContent[m]["F_Score"] + "</td>";
111
-                                            if (!string.IsNullOrEmpty(drContent[m]["F_Score"].ToString()))
112
-                                            {
113
-                                                sc += int.Parse(drContent[m]["F_Score"].ToString());
114
-                                            }
115
-
116
-                                            strCatid += drContent[m]["F_IndexId"] + ",";
117
-
118
-                                            DataColumn dc = new DataColumn("Q"+ drContent[m]["F_IndexId"].ToString(), Type.GetType("System.String"));
119
-                                            dtNew.Columns.Add(dc);
120
-
121
-                                            qccllist.Add(qccmll);
113
+                                            sc += int.Parse(drContent[m]["F_Score"].ToString());
122
                                         }
114
                                         }
123
 
115
 
124
-                                        qccml.Qclist = qccllist;
116
+                                        strCatid += drContent[m]["F_IndexId"] + ",";
117
+
118
+                                        DataColumn dc = new DataColumn("Q" + drContent[m]["F_IndexId"].ToString(), Type.GetType("System.String"));
119
+                                        dtNew.Columns.Add(dc);
120
+
121
+                                        qccllist.Add(qccmll);
125
                                     }
122
                                     }
126
-                                    qcclist.Add(qccml);
127
-                                }
128
 
123
 
129
-                                if (strCatid != "")
130
-                                {
131
-                                    strCatid.Substring(0, strCatid.Length - 1);
124
+                                    qccml.Qclist = qccllist;
132
                                 }
125
                                 }
133
-                                arlist.Add(strCatid); //每一组的题id记下来,用在分数总和上。
134
-                                //strColom4 += "<td  align='center'style='border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px; height: 18px; padding-top: 3px; padding-bottom: 3px;'>" + sc.ToString() + "</td>";
135
-                                ctsc += sc;
136
-
137
-                                
138
-                                qcml.Qclist = qcclist;
139
-                                qclist.Add(qcml);
140
-
141
-                                Model.QCModel qcml1 = new Model.QCModel();
142
-                                qcml1.Qcid = "fx" + drlist[i]["F_CategoryId"].ToString();
143
-                                qcml1.Qcname = "分项得分";
144
-                                qcml1.Rowspan = "3";
145
-                                qcml1.Qcscore = sc.ToString();
146
-                                qclist.Add(qcml1);
147
-                                DataColumn dcdf = new DataColumn("df" + i.ToString(), Type.GetType("System.String"));
148
-                                dtNew.Columns.Add(dcdf);
126
+                                qcclist.Add(qccml);
127
+                            }
128
+
129
+                            if (strCatid != "")
130
+                            {
131
+                                strCatid.Substring(0, strCatid.Length - 1);
149
                             }
132
                             }
150
-                            
133
+                            arlist.Add(strCatid); //每一组的题id记下来,用在分数总和上。
134
+                                                  //strColom4 += "<td  align='center'style='border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px; height: 18px; padding-top: 3px; padding-bottom: 3px;'>" + sc.ToString() + "</td>";
135
+                            ctsc += sc;
136
+
137
+
138
+                            qcml.Qclist = qcclist;
139
+                            qclist.Add(qcml);
140
+
141
+                            Model.QCModel qcml1 = new Model.QCModel();
142
+                            qcml1.Qcid = "fx" + drlist[i]["F_CategoryId"].ToString();
143
+                            qcml1.Qcname = "分项得分";
144
+                            qcml1.Rowspan = "3";
145
+                            qcml1.Qcscore = sc.ToString();
146
+                            qclist.Add(qcml1);
147
+                            DataColumn dcdf = new DataColumn("df" + i.ToString(), Type.GetType("System.String"));
148
+                            dtNew.Columns.Add(dcdf);
151
                         }
149
                         }
152
-                        
153
-                        qcmzf.Qcscore = ctsc.ToString();
150
+
154
                     }
151
                     }
155
-                    
156
-                }
157
 
152
 
158
-                qclist.Add(qcmzf);
159
-                DataColumn dczf = new DataColumn("AllScore", Type.GetType("System.String"));
160
-                dtNew.Columns.Add(dczf);
161
-                if (isext != null && isext.Trim() != "")
162
-                {
163
-                    //导出增加显示问题和建议
164
-                    Model.QCModel qcmlzj1 = new Model.QCModel();
165
-                    Model.QCModel qcmlzj2 = new Model.QCModel();
166
-                    qcmlzj1.Qcid = "wt99";
167
-                    qcmlzj1.Qcname = "问题";
168
-                    qcmlzj1.Rowspan = "4";
169
-                    qclist.Add(qcmlzj1);
170
-                    qcmlzj2.Qcid = "jy99";
171
-                    qcmlzj2.Qcname = "建议";
172
-                    qcmlzj2.Rowspan = "4";
173
-                    qclist.Add(qcmlzj2);
174
-                    DataColumn dcwt = new DataColumn("Question", Type.GetType("System.String"));
175
-                    dtNew.Columns.Add(dcwt);
176
-                    DataColumn dcjy = new DataColumn("Advise", Type.GetType("System.String"));
177
-                    dtNew.Columns.Add(dcjy);
153
+                    qcmzf.Qcscore = ctsc.ToString();
178
                 }
154
                 }
179
 
155
 
180
-                res = Success("获取质检表头成功", qclist);
181
-    
156
+            }
157
+
158
+            qclist.Add(qcmzf);
159
+            DataColumn dczf = new DataColumn("AllScore", Type.GetType("System.String"));
160
+            dtNew.Columns.Add(dczf);
161
+            if (isext != null && isext.Trim() != "")
162
+            {
163
+                //导出增加显示问题和建议
164
+                Model.QCModel qcmlzj1 = new Model.QCModel();
165
+                Model.QCModel qcmlzj2 = new Model.QCModel();
166
+                qcmlzj1.Qcid = "wt99";
167
+                qcmlzj1.Qcname = "问题";
168
+                qcmlzj1.Rowspan = "4";
169
+                qclist.Add(qcmlzj1);
170
+                qcmlzj2.Qcid = "jy99";
171
+                qcmlzj2.Qcname = "建议";
172
+                qcmlzj2.Rowspan = "4";
173
+                qclist.Add(qcmlzj2);
174
+                DataColumn dcwt = new DataColumn("Question", Type.GetType("System.String"));
175
+                dtNew.Columns.Add(dcwt);
176
+                DataColumn dcjy = new DataColumn("Advise", Type.GetType("System.String"));
177
+                dtNew.Columns.Add(dcjy);
178
+            }
179
+
180
+            res = Success("获取质检表头成功", qclist);
181
+
182
             return res;
182
             return res;
183
         }
183
         }
184
 
184
 
185
         //获取数据
185
         //获取数据
186
-        public ActionResult GetDataList(string stime,string endtime)
186
+        public ActionResult GetDataList(string stime, string endtime)
187
         {
187
         {
188
             ActionResult res = NoToken("未知错误,请重新登录");
188
             ActionResult res = NoToken("未知错误,请重新登录");
189
             Model.PageData<object> pagedata = new Model.PageData<object>();
189
             Model.PageData<object> pagedata = new Model.PageData<object>();
190
-         
191
-                string dpt = RequestString.GetQueryString("dpt");
192
-                string isext = RequestString.GetQueryString("isext");
193
 
190
 
194
-                GetColumnList(isext);
191
+            string dpt = RequestString.GetQueryString("dpt");
192
+            string isext = RequestString.GetQueryString("isext");
195
 
193
 
196
-                string sqltimeCallRecords = "";
197
-                string strsql = "";
198
-                if (stime != null && stime.Trim() != "")
199
-                {
200
-                    sqltimeCallRecords += " and CONVERT(varchar , BeginTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
201
-                }
202
-                if (endtime != null && endtime.Trim() != "")
203
-                {
204
-                    sqltimeCallRecords += " and CONVERT(varchar , BeginTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
205
-                }
206
-                if (dpt != null && dpt.ToString() != "")
207
-                {
208
-                    strsql = " and UserId in(select F_UserId from T_Sys_UserAccount where F_DeptId=" + dpt.ToString() + ") ";
209
-                }
210
-                
211
-                DataSet ds = DbHelperSQL.Query("select *,(select F_UserName from  T_Sys_UserAccount as b where b.F_UserId=a.UserId) as name,(select F_WorkNumber from  T_Sys_UserAccount as b where b.F_UserId=a.UserId) as wknmb from (select COUNT(*) as ct,UserId from T_Call_CallRecords where F_QCState=1 " + sqltimeCallRecords + strsql + " group by  UserId) as a order by wknmb asc");
212
-                DataTable dtTitle = DbHelperSQL.Query("select F_IndexId from T_QC_IndexBase where F_DeleteFlag=0").Tables[0];
213
-                if (ds != null && ds.Tables.Count > 0)
194
+            GetColumnList(isext);
195
+
196
+            string sqltimeCallRecords = "";
197
+            string strsql = "";
198
+            if (stime != null && stime.Trim() != "")
199
+            {
200
+                sqltimeCallRecords += " and CONVERT(varchar , BeginTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
201
+            }
202
+            if (endtime != null && endtime.Trim() != "")
203
+            {
204
+                sqltimeCallRecords += " and CONVERT(varchar , BeginTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
205
+            }
206
+            if (dpt != null && dpt.ToString() != "")
207
+            {
208
+                strsql = " and UserCode in(select F_UserCode from T_Sys_UserAccount where F_DeptId=" + dpt.ToString() + ") ";
209
+            }
210
+
211
+            DataSet ds = DbHelperSQL.Query("select *,(select F_UserName from  T_Sys_UserAccount as b where b.F_UserCode=a.UserCode) as name,(select F_WorkNumber from  T_Sys_UserAccount as b where b.F_UserCode=a.UserCode) as wknmb from (select COUNT(*) as ct,UserCode from T_Call_CallRecords where F_QCState=1 " + sqltimeCallRecords + strsql + " group by  UserCode) as a order by wknmb asc");
212
+            DataTable dtTitle = DbHelperSQL.Query("select F_IndexId from T_QC_IndexBase where F_DeleteFlag=0").Tables[0];
213
+            if (ds != null && ds.Tables.Count > 0)
214
+            {
215
+                DataTable dt = ds.Tables[0];
216
+                string strname = "";
217
+                foreach (DataRow dr in dt.Rows)
214
                 {
218
                 {
215
-                    DataTable dt = ds.Tables[0];
216
-                    string strname = "";
217
-                    foreach (DataRow dr in dt.Rows)
219
+                    DataRow drNew = dtNew.NewRow();
220
+
221
+                    object obj = DbHelperSQL.GetSingle("select F_QCUserName from T_Call_CallRecords where UserCode=" + dr["UserCode"] + " and F_QCState=1 " + sqltimeCallRecords);
222
+                    if (obj != null)
218
                     {
223
                     {
219
-                        DataRow drNew =dtNew.NewRow();
220
-                        
221
-                        object obj = DbHelperSQL.GetSingle("select F_QCUserName from T_Call_CallRecords where UserId=" + dr["UserId"] + " and F_QCState=1 " + sqltimeCallRecords);
222
-                        if (obj != null)
223
-                        {
224
-                            strname = obj.ToString();
225
-                        }
226
-                        else
227
-                        {
228
-                            strname = "";
229
-                        }
230
-                        drNew["QCName"] = strname;
231
-                        drNew["UserName"] = dr["name"].ToString();
232
-                        drNew["UserCode"] = dr["wknmb"].ToString();
224
+                        strname = obj.ToString();
225
+                    }
226
+                    else
227
+                    {
228
+                        strname = "";
229
+                    }
230
+                    drNew["QCName"] = strname;
231
+                    drNew["UserName"] = dr["name"].ToString();
232
+                    drNew["UserCode"] = dr["wknmb"].ToString();
233
 
233
 
234
-                        int ct = 0;
235
-                        if (dr["ct"] != null && dr["ct"].ToString() != "")
236
-                        {
237
-                            ct = int.Parse(dr["ct"].ToString());//评价数量
238
-                        }
239
-                        drNew["ZJCount"] = dr["ct"].ToString();
234
+                    int ct = 0;
235
+                    if (dr["ct"] != null && dr["ct"].ToString() != "")
236
+                    {
237
+                        ct = int.Parse(dr["ct"].ToString());//评价数量
238
+                    }
239
+                    drNew["ZJCount"] = dr["ct"].ToString();
240
 
240
 
241
-                        double itemfs = 0;//每一大项分数和
242
-                        double ctfs = 0;//总分
241
+                    double itemfs = 0;//每一大项分数和
242
+                    double ctfs = 0;//总分
243
 
243
 
244
-                        for (int i = 0; i < arlist.Count; i++)
244
+                    for (int i = 0; i < arlist.Count; i++)
245
+                    {
246
+                        string strList = arlist[i];
247
+                        string[] strTitleList = strList.Split(',');
248
+                        foreach (string str in strTitleList)
245
                         {
249
                         {
246
-                            string strList = arlist[i];
247
-                            string[] strTitleList = strList.Split(',');
248
-                            foreach (string str in strTitleList)
250
+                            if (str != "")
249
                             {
251
                             {
250
-                                if (str != "")
252
+                                double fs = 0;//每一项分数
253
+                                obj = DbHelperSQL.GetSingle("select sum(F_QCScore) from T_QC_IndexRes where CallRecordsId in (select CallRecordsId from T_Call_CallRecords where F_QCState=1 and UserCode=" + dr["UserCode"] + " " + sqltimeCallRecords + ") and F_IndexId=" + str);
254
+                                if (obj != null && obj.ToString() != "")
251
                                 {
255
                                 {
252
-                                    double fs = 0;//每一项分数
253
-                                    obj = DbHelperSQL.GetSingle("select sum(F_QCScore) from T_QC_IndexRes where CallRecordsId in (select CallRecordsId from T_Call_CallRecords where F_QCState=1 and UserId=" + dr["UserId"] + " " + sqltimeCallRecords + ") and F_IndexId=" + str);
254
-                                    if (obj != null && obj.ToString() != "")
255
-                                    {
256
-                                        if (ct != 0)
257
-                                        {//评价数量不为0
258
-                                            if (int.Parse(obj.ToString()) % ct == 0)
259
-                                            {
260
-                                                fs = int.Parse(obj.ToString()) / ct; //每一项分数
261
-                                            }
262
-                                            else
263
-                                            {
264
-                                                fs = double.Parse(obj.ToString()) / double.Parse(ct.ToString());
265
-                                            }
256
+                                    if (ct != 0)
257
+                                    {//评价数量不为0
258
+                                        if (int.Parse(obj.ToString()) % ct == 0)
259
+                                        {
260
+                                            fs = int.Parse(obj.ToString()) / ct; //每一项分数
261
+                                        }
262
+                                        else
263
+                                        {
264
+                                            fs = double.Parse(obj.ToString()) / double.Parse(ct.ToString());
266
                                         }
265
                                         }
267
                                     }
266
                                     }
268
-                                    string mm = "";
269
-                                    if (fs.ToString().IndexOf('.') > -1 && fs.ToString().Substring(fs.ToString().IndexOf('.') + 1).Length > 2)
270
-                                    {
271
-                                        mm = fs.ToString("0.00");
272
-                                    }
273
-                                    else
274
-                                    {
275
-                                        mm = fs.ToString();
276
-                                    }
277
-                                    drNew["Q" + str] = mm;
278
-                                    itemfs += fs;
279
                                 }
267
                                 }
268
+                                string mm = "";
269
+                                if (fs.ToString().IndexOf('.') > -1 && fs.ToString().Substring(fs.ToString().IndexOf('.') + 1).Length > 2)
270
+                                {
271
+                                    mm = fs.ToString("0.00");
272
+                                }
273
+                                else
274
+                                {
275
+                                    mm = fs.ToString();
276
+                                }
277
+                                drNew["Q" + str] = mm;
278
+                                itemfs += fs;
280
                             }
279
                             }
281
-                            string imm = "";
282
-                            if (itemfs.ToString().IndexOf('.') > -1 && itemfs.ToString().Substring(itemfs.ToString().IndexOf('.') + 1).Length > 2)
283
-                            {
284
-                                imm = itemfs.ToString("0.00");
285
-                            }
286
-                            else
287
-                            {
288
-                                imm = itemfs.ToString();
289
-                            }
290
-                            drNew["df" + i.ToString()] = imm;
291
-                            ctfs += itemfs;
292
-                            itemfs = 0;
293
                         }
280
                         }
294
-                        drNew["AllScore"] = ((int)ctfs).ToString();
295
-                        if (isext != null && isext.Trim() != "")
281
+                        string imm = "";
282
+                        if (itemfs.ToString().IndexOf('.') > -1 && itemfs.ToString().Substring(itemfs.ToString().IndexOf('.') + 1).Length > 2)
283
+                        {
284
+                            imm = itemfs.ToString("0.00");
285
+                        }
286
+                        else
287
+                        {
288
+                            imm = itemfs.ToString();
289
+                        }
290
+                        drNew["df" + i.ToString()] = imm;
291
+                        ctfs += itemfs;
292
+                        itemfs = 0;
293
+                    }
294
+                    drNew["AllScore"] = ((int)ctfs).ToString();
295
+                    if (isext != null && isext.Trim() != "")
296
+                    {
297
+                        string question = "";
298
+                        string advise = "";
299
+                        DataSet dss = DbHelperSQL.Query("select * from T_Call_CallRecords where UserCode=" + dr["UserCode"] + " and F_QCState=1 " + sqltimeCallRecords);
300
+                        if (dss.Tables[0].Rows.Count > 0)
296
                         {
301
                         {
297
-                            string question = "";
298
-                            string advise = "";
299
-                            DataSet dss = DbHelperSQL.Query("select * from T_Call_CallRecords where UserId=" + dr["UserId"] + " and F_QCState=1 " + sqltimeCallRecords);
300
-                            if (dss.Tables[0].Rows.Count > 0)
302
+                            for (int ii = 0; ii < dss.Tables[0].Rows.Count; ii++)
301
                             {
303
                             {
302
-                                for (int ii = 0; ii < dss.Tables[0].Rows.Count; ii++)
303
-                                {
304
-                                    question += dss.Tables[0].Rows[ii]["F_QCQuestion"].ToString() + ";";
305
-                                    advise += dss.Tables[0].Rows[ii]["F_QCAdvise"].ToString() + ";";
306
-                                }
304
+                                question += dss.Tables[0].Rows[ii]["F_QCQuestion"].ToString() + ";";
305
+                                advise += dss.Tables[0].Rows[ii]["F_QCAdvise"].ToString() + ";";
307
                             }
306
                             }
308
-                            drNew["Question"] = question;
309
-                            drNew["Advise"] = advise;
310
                         }
307
                         }
311
-                        ctfs = 0;
312
-                        
313
-                        dtNew.Rows.Add(drNew);
308
+                        drNew["Question"] = question;
309
+                        drNew["Advise"] = advise;
314
                     }
310
                     }
311
+                    ctfs = 0;
312
+
313
+                    dtNew.Rows.Add(drNew);
315
                 }
314
                 }
315
+            }
316
+
317
+            res = Success("获取质检数据成功", dtNew);
316
 
318
 
317
-                res = Success("获取质检数据成功", dtNew);
318
-    
319
             return res;
319
             return res;
320
         }
320
         }
321
     }
321
     }

+ 117 - 71
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TalkTimeController.cs

10
 
10
 
11
 namespace CallCenterApi.Interface.Controllers.report
11
 namespace CallCenterApi.Interface.Controllers.report
12
 {
12
 {
13
-  //  [Authority]
13
+    //  [Authority]
14
     public class TalkTimeController : BaseController
14
     public class TalkTimeController : BaseController
15
     {
15
     {
16
         //通话时长统计
16
         //通话时长统计
19
         public ActionResult GetColumnList()
19
         public ActionResult GetColumnList()
20
         {
20
         {
21
             ActionResult res = NoToken("未知错误,请重新登录");
21
             ActionResult res = NoToken("未知错误,请重新登录");
22
-         
23
-                String[] str = { "坐席名称", "呼入次数", "呼入时长", "呼出次数", "呼出时长", "呼出未接通次数", "振铃时长", "通话总时长", "平均通话时长" };
24
-                res = Success("获取通话时长统计表头成功", str);
25
-      
22
+
23
+            String[] str = { "坐席名称", "呼入次数", "呼入时长", "呼出次数", "呼出时长", "呼出未接通次数", "振铃时长", "通话总时长", "平均通话时长" };
24
+            res = Success("获取通话时长统计表头成功", str);
25
+
26
             return res;
26
             return res;
27
         }
27
         }
28
 
28
 
29
         //获取数据
29
         //获取数据
30
-        public ActionResult GetDataList(string stime,string endtime)
30
+        public ActionResult GetDataList(string stime, string endtime)
31
         {
31
         {
32
             ActionResult res = NoToken("未知错误,请重新登录");
32
             ActionResult res = NoToken("未知错误,请重新登录");
33
-           
34
-                DataTable dtNew = new DataTable();
35
-                dtNew = GetData(stime, endtime);
36
-                #region
37
-                //DataTable dtNew = new DataTable();
38
-                //#region 编辑表头
39
-                //DataColumn dc1 = new DataColumn("坐席名称", Type.GetType("System.String"));
40
-                //DataColumn dc2 = new DataColumn("呼入次数", Type.GetType("System.String"));
41
-                //DataColumn dc3 = new DataColumn("呼入时长", Type.GetType("System.String"));
42
-                //DataColumn dc4 = new DataColumn("呼出次数", Type.GetType("System.String"));
43
-                //DataColumn dc5 = new DataColumn("呼出时长", Type.GetType("System.String"));
44
-                //DataColumn dc6 = new DataColumn("呼出未接通次数", Type.GetType("System.String"));
45
-                //DataColumn dc7 = new DataColumn("振铃时长", Type.GetType("System.String"));
46
-                //DataColumn dc8 = new DataColumn("通话总时长", Type.GetType("System.String"));
47
-                //DataColumn dc9 = new DataColumn("平均通话总时长", Type.GetType("System.String"));
48
-
49
-                //dtNew.Columns.Add(dc1);
50
-                //dtNew.Columns.Add(dc2);
51
-                //dtNew.Columns.Add(dc3);
52
-                //dtNew.Columns.Add(dc4);
53
-                //dtNew.Columns.Add(dc5);
54
-                //dtNew.Columns.Add(dc6);
55
-                //dtNew.Columns.Add(dc7);
56
-                //dtNew.Columns.Add(dc8);
57
-                //dtNew.Columns.Add(dc9);
58
-                //#endregion
59
-
60
-                //string[] CallInTime = GetCallRecordIn(stime, endtime, "0").TrimStart('[').TrimEnd(']').Split(',');
61
-                //string[] CallInTimes = GetCallRecordTotalTime(stime, endtime, "0").TrimStart('[').TrimEnd(']').Split(',');
62
-                //string[] CallOutTime = GetCallRecordOut(stime, endtime, "1","").TrimStart('[').TrimEnd(']').Split(',');
63
-                //string[] CallOutTimes = GetCallRecordTotalTime(stime, endtime, "1").TrimStart('[').TrimEnd(']').Split(',');
64
-                //string[] CallOutWTime = GetCallRecordOut(stime, endtime, "1", "0").TrimStart('[').TrimEnd(']').Split(',');
65
-                //string[] CallOutWTimes = GetCallRecordRingTime(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
66
-                //string[] CallTotalTime = GetCallRecordTotalTime(stime, endtime, "").TrimStart('[').TrimEnd(']').Split(',');
67
-                //string[] AgentArr = GetAgent().TrimStart('[').TrimEnd(']').Split(',');
68
-                //string[] AverageTime = GetCallAverageTime(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
69
-
70
-                //for (int i = 0; i < AgentArr.Length; i++)
71
-                //{
72
-                //    DataRow drNew = dtNew.NewRow();
73
-
74
-                //    drNew["坐席名称"] = AgentArr[i].Replace('\'', ' ');
75
-                //    drNew["呼入次数"] = CallInTime[i];
76
-                //    drNew["呼入时长"] = CallInTimes[i];
77
-                //    drNew["呼出次数"] = CallOutTime[i];
78
-                //    drNew["呼出时长"] = CallOutTimes[i];
79
-                //    drNew["呼出未接通次数"] = CallOutWTime[i];
80
-                //    drNew["振铃时长"] = CallOutWTimes[i];
81
-                //    drNew["通话总时长"] = CallTotalTime[i];
82
-                //    drNew["平均通话总时长"] = AverageTime[i];
83
-
84
-                //    dtNew.Rows.Add(drNew);
85
-                //}
86
-                #endregion
87
-                res = Success("获取通话时长数据成功", dtNew);
88
-        
33
+
34
+            DataTable dtNew = new DataTable();
35
+            dtNew = GetData(stime, endtime);
36
+            #region
37
+            //DataTable dtNew = new DataTable();
38
+            //#region 编辑表头
39
+            //DataColumn dc1 = new DataColumn("坐席名称", Type.GetType("System.String"));
40
+            //DataColumn dc2 = new DataColumn("呼入次数", Type.GetType("System.String"));
41
+            //DataColumn dc3 = new DataColumn("呼入时长", Type.GetType("System.String"));
42
+            //DataColumn dc4 = new DataColumn("呼出次数", Type.GetType("System.String"));
43
+            //DataColumn dc5 = new DataColumn("呼出时长", Type.GetType("System.String"));
44
+            //DataColumn dc6 = new DataColumn("呼出未接通次数", Type.GetType("System.String"));
45
+            //DataColumn dc7 = new DataColumn("振铃时长", Type.GetType("System.String"));
46
+            //DataColumn dc8 = new DataColumn("通话总时长", Type.GetType("System.String"));
47
+            //DataColumn dc9 = new DataColumn("平均通话总时长", Type.GetType("System.String"));
48
+
49
+            //dtNew.Columns.Add(dc1);
50
+            //dtNew.Columns.Add(dc2);
51
+            //dtNew.Columns.Add(dc3);
52
+            //dtNew.Columns.Add(dc4);
53
+            //dtNew.Columns.Add(dc5);
54
+            //dtNew.Columns.Add(dc6);
55
+            //dtNew.Columns.Add(dc7);
56
+            //dtNew.Columns.Add(dc8);
57
+            //dtNew.Columns.Add(dc9);
58
+            //#endregion
59
+
60
+            //string[] CallInTime = GetCallRecordIn(stime, endtime, "0").TrimStart('[').TrimEnd(']').Split(',');
61
+            //string[] CallInTimes = GetCallRecordTotalTime(stime, endtime, "0").TrimStart('[').TrimEnd(']').Split(',');
62
+            //string[] CallOutTime = GetCallRecordOut(stime, endtime, "1","").TrimStart('[').TrimEnd(']').Split(',');
63
+            //string[] CallOutTimes = GetCallRecordTotalTime(stime, endtime, "1").TrimStart('[').TrimEnd(']').Split(',');
64
+            //string[] CallOutWTime = GetCallRecordOut(stime, endtime, "1", "0").TrimStart('[').TrimEnd(']').Split(',');
65
+            //string[] CallOutWTimes = GetCallRecordRingTime(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
66
+            //string[] CallTotalTime = GetCallRecordTotalTime(stime, endtime, "").TrimStart('[').TrimEnd(']').Split(',');
67
+            //string[] AgentArr = GetAgent().TrimStart('[').TrimEnd(']').Split(',');
68
+            //string[] AverageTime = GetCallAverageTime(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
69
+
70
+            //for (int i = 0; i < AgentArr.Length; i++)
71
+            //{
72
+            //    DataRow drNew = dtNew.NewRow();
73
+
74
+            //    drNew["坐席名称"] = AgentArr[i].Replace('\'', ' ');
75
+            //    drNew["呼入次数"] = CallInTime[i];
76
+            //    drNew["呼入时长"] = CallInTimes[i];
77
+            //    drNew["呼出次数"] = CallOutTime[i];
78
+            //    drNew["呼出时长"] = CallOutTimes[i];
79
+            //    drNew["呼出未接通次数"] = CallOutWTime[i];
80
+            //    drNew["振铃时长"] = CallOutWTimes[i];
81
+            //    drNew["通话总时长"] = CallTotalTime[i];
82
+            //    drNew["平均通话总时长"] = AverageTime[i];
83
+
84
+            //    dtNew.Rows.Add(drNew);
85
+            //}
86
+            #endregion
87
+            res = Success("获取通话时长数据成功", dtNew);
88
+
89
             return res;
89
             return res;
90
         }
90
         }
91
 
91
 
200
             {
200
             {
201
                 sql += " and CallType=" + tag;
201
                 sql += " and CallType=" + tag;
202
             }
202
             }
203
-            var userAccountList = new BLL.T_Sys_UserAccount().GetModelList(" F_SeatFlag=1");
204
-            DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount,SUM(TalkLongTime) AS TalkSummaryTime FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
203
+
204
+            var deptId = CurrentUser.UserData.F_DeptId;
205
+            var roleId = CurrentUser.UserData.F_RoleId;
206
+            var deptCode = CurrentUser.UserData.F_DeptCode;
207
+            var usercode = CurrentUser.UserData.F_UserCode;
208
+            var usercodeSQL = "";
209
+            var f_usercodeSQL = "";
210
+            if (roleId != 0)
211
+            {
212
+                if (roleId != 17)
213
+                {
214
+                    if (roleId == 36 || roleId == 38 || roleId == 40)
215
+                    {
216
+                        usercodeSQL += $" and  UserCode='{usercode}'";
217
+                        f_usercodeSQL += $" and  F_UserCode='{usercode}'";
218
+                    }
219
+                    else
220
+                    {
221
+                        usercodeSQL += $" and   UserCode in (SELECT F_UserCode from T_Sys_UserAccount where F_DeptId={deptId}) ";
222
+                        f_usercodeSQL += $" and   F_UserCode in (SELECT F_UserCode from T_Sys_UserAccount where F_DeptId={deptId}) ";
223
+                    }
224
+
225
+                }
226
+            }
227
+
228
+            var userAccountList = new BLL.T_Sys_UserAccount().GetModelList(" F_SeatFlag=1 " + f_usercodeSQL);
229
+            DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount,SUM(TalkLongTime) AS TalkSummaryTime FROM T_Call_CallRecords where 1=1 " + usercodeSQL + "  GROUP BY UserId,UserCode,UserName").Tables[0];
205
 
230
 
206
             foreach (Model.T_Sys_UserAccount item in userAccountList)
231
             foreach (Model.T_Sys_UserAccount item in userAccountList)
207
             {
232
             {
223
         public string GetAgent()
248
         public string GetAgent()
224
         {
249
         {
225
             string result = "[";
250
             string result = "[";
226
-            var userAccountList = new BLL.T_Sys_UserAccount().GetModelList(" F_SeatFlag=1");
251
+            var deptId = CurrentUser.UserData.F_DeptId;
252
+            var roleId = CurrentUser.UserData.F_RoleId;
253
+            var deptCode = CurrentUser.UserData.F_DeptCode;
254
+            var usercode = CurrentUser.UserData.F_UserCode;
255
+            var f_usercodeSQL = "";
256
+            if (roleId != 0)
257
+            {
258
+                if (roleId != 17)
259
+                {
260
+                    if (roleId == 36 || roleId == 38 || roleId == 40)
261
+                    {
262
+                        f_usercodeSQL += $" and  F_UserCode='{usercode}'";
263
+                    }
264
+                    else
265
+                    {
266
+                        f_usercodeSQL += $" and   F_UserCode in (SELECT F_UserCode from T_Sys_UserAccount where F_DeptId={deptId}) ";
267
+                    }
268
+
269
+                }
270
+            }
271
+
272
+            var userAccountList = new BLL.T_Sys_UserAccount().GetModelList(" F_SeatFlag=1 " + f_usercodeSQL);
227
             foreach (Model.T_Sys_UserAccount item in userAccountList)
273
             foreach (Model.T_Sys_UserAccount item in userAccountList)
228
             {
274
             {
229
                 result += "'" + item.F_UserName + "',";
275
                 result += "'" + item.F_UserName + "',";
242
             string result = "[";
288
             string result = "[";
243
 
289
 
244
             string[] CallInTime = GetCallRecordIn(BeginTime, EndTime, "0").TrimStart('[').TrimEnd(']').Split(',');
290
             string[] CallInTime = GetCallRecordIn(BeginTime, EndTime, "0").TrimStart('[').TrimEnd(']').Split(',');
245
-            string[] CallOutTime = GetCallRecordOut(BeginTime, EndTime, "1","").TrimStart('[').TrimEnd(']').Split(',');
291
+            string[] CallOutTime = GetCallRecordOut(BeginTime, EndTime, "1", "").TrimStart('[').TrimEnd(']').Split(',');
246
 
292
 
247
-            string[] CallTotalTime = GetCallRecordTotalTime(BeginTime, EndTime,"").TrimStart('[').TrimEnd(']').Split(',');
293
+            string[] CallTotalTime = GetCallRecordTotalTime(BeginTime, EndTime, "").TrimStart('[').TrimEnd(']').Split(',');
248
 
294
 
249
             for (int i = 0; i < CallInTime.Length; i++)
295
             for (int i = 0; i < CallInTime.Length; i++)
250
             {
296
             {
308
 
354
 
309
             foreach (Model.T_Sys_UserAccount item in userAccountList)
355
             foreach (Model.T_Sys_UserAccount item in userAccountList)
310
             {
356
             {
311
-                if (!myDictionary.ContainsKey(item.F_UserName))
312
-                    myDictionary.Add(item.F_UserName, 0);
357
+                if (!myDictionary.ContainsKey(item.F_UserCode))
358
+                    myDictionary.Add(item.F_UserCode, 0);
313
 
359
 
314
-                DataRow drUser = dt.AsEnumerable().FirstOrDefault(dr => dr.Field<string>("UserName") == item.F_UserName);
360
+                DataRow drUser = dt.AsEnumerable().FirstOrDefault(dr => dr.Field<string>("UserCode") == item.F_UserCode);
315
 
361
 
316
                 if (drUser != null)
362
                 if (drUser != null)
317
                 {
363
                 {
318
-                    myDictionary[item.F_UserName] += int.Parse(drUser[3].ToString());
364
+                    myDictionary[item.F_UserCode] += int.Parse(drUser[3].ToString());
319
                 }
365
                 }
320
             }
366
             }
321
 
367
 

+ 59 - 8
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TotalCallController.cs

45
                 dtNew.Columns.Add(dc3);
45
                 dtNew.Columns.Add(dc3);
46
                 dtNew.Columns.Add(dc4);
46
                 dtNew.Columns.Add(dc4);
47
                 #endregion
47
                 #endregion
48
-                DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
48
+
49
+
50
+                //17=系统管理员,36=客服,37=组长,38=组员,39=业主,40=话务员,41=客服主管,43=分公司市场部主任,45=业务稽核,46=集团客户部,
51
+                //47 =网络部,48=市场部经理,50=业务支撑中心,51=市场部,52=客户服务中心,53=总经理,54=副总经理,55=业务负责人,56=投诉处理员,57=基础业务主管,
52
+
53
+                var sql = " 1=1 ";
54
+                var roleId = CurrentUser.UserData.F_RoleId;
55
+                var deptId = CurrentUser.UserData.F_DeptId;
56
+                var deptCode = CurrentUser.UserData.F_DeptCode;
57
+                var usercode = CurrentUser.UserData.F_UserCode;
58
+                if (roleId != 0)
59
+                {
60
+                    if (roleId != 17)
61
+                    {
62
+                        if (deptCode.IndexOf("|1|") > 0)
63
+                        {
64
+                            if (roleId == 36 || roleId == 38 || roleId == 40)
65
+                            {
66
+                                sql += $" and  UserCode='{usercode}'";
67
+                            }
68
+                            else
69
+                            {
70
+                                sql += $" and  UserCode  in (SELECT F_UserCode FROM T_Sys_UserAccount WHERE F_DeptId={deptId})";
71
+                            }
72
+
73
+                        }
74
+                    }
75
+                }
76
+                DataTable dt = new BLL.T_Call_CallRecords().GetList(sql).Tables[0];
49
                 DateTime dtNow;
77
                 DateTime dtNow;
50
                 int Count = 0;
78
                 int Count = 0;
51
                 int DayCount = 0;
79
                 int DayCount = 0;
114
         private DataTable GetData(string years)
142
         private DataTable GetData(string years)
115
         {
143
         {
116
             DataTable dtNew = new DataTable();
144
             DataTable dtNew = new DataTable();
117
-            try {
145
+            try
146
+            {
118
                 #region
147
                 #region
119
                 DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
148
                 DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
120
                 DataColumn dc2 = new DataColumn("日期", Type.GetType("System.String"));
149
                 DataColumn dc2 = new DataColumn("日期", Type.GetType("System.String"));
158
                                 dr1["月份"] = beginTime.Month + "月";
187
                                 dr1["月份"] = beginTime.Month + "月";
159
                                 dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
188
                                 dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
160
                                 dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
189
                                 dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
161
-                               
190
+
162
                                 dtNew.Rows.Add(dr1);
191
                                 dtNew.Rows.Add(dr1);
163
                             }
192
                             }
164
                         }
193
                         }
213
             ActionResult res = NoToken("未知错误,请重新登录");
242
             ActionResult res = NoToken("未知错误,请重新登录");
214
             if (Request.IsAuthenticated)
243
             if (Request.IsAuthenticated)
215
             {
244
             {
216
-                string[] arr=new string[12];
217
-                
218
-                DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
245
+                string[] arr = new string[12];
246
+                var sql = " 1=1 ";
247
+                var roleId = CurrentUser.UserData.F_RoleId;
248
+                var deptId = CurrentUser.UserData.F_DeptId;
249
+                var deptCode = CurrentUser.UserData.F_DeptCode;
250
+                var usercode = CurrentUser.UserData.F_UserCode;
251
+                if (roleId != 0)
252
+                {
253
+                    if (roleId != 17)
254
+                    {
255
+                        if (deptCode.IndexOf("|1|") > 0)
256
+                        {
257
+                            if (roleId == 36 || roleId == 38 || roleId == 40)
258
+                            {
259
+                                sql += $" and  UserCode='{usercode}'";
260
+                            }
261
+                            else
262
+                            {
263
+                                sql += $" and  UserCode  in (SELECT F_UserCode FROM T_Sys_UserAccount WHERE F_DeptId={deptId})";
264
+                            }
265
+
266
+                        }
267
+                    }
268
+                }
269
+                DataTable dt = new BLL.T_Call_CallRecords().GetList(sql).Tables[0];
219
                 DateTime dtNow;
270
                 DateTime dtNow;
220
 
271
 
221
                 if (string.IsNullOrEmpty(years))
272
                 if (string.IsNullOrEmpty(years))
233
                     DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
284
                     DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
234
                     if (dtRow.Length > 0)
285
                     if (dtRow.Length > 0)
235
                     {
286
                     {
236
-                        arr[i-1] = dtRow.Length.ToString();
287
+                        arr[i - 1] = dtRow.Length.ToString();
237
                     }
288
                     }
238
                     else
289
                     else
239
                     {
290
                     {
240
-                        arr[i-1] = "0";
291
+                        arr[i - 1] = "0";
241
                     }
292
                     }
242
                 }
293
                 }
243
 
294
 

+ 77 - 55
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/YearContrastController.cs

15
     public class YearContrastController : BaseController
15
     public class YearContrastController : BaseController
16
     {
16
     {
17
         //呼叫数据对比
17
         //呼叫数据对比
18
-        public ActionResult GetDataList(string beginyear,string endyear)
18
+        public ActionResult GetDataList(string beginyear, string endyear)
19
         {
19
         {
20
             ActionResult res = NoToken("未知错误,请重新登录");
20
             ActionResult res = NoToken("未知错误,请重新登录");
21
-         
22
-                ArrayList arrlist = new ArrayList();
23
-                
24
-                if (beginyear != null && beginyear.Trim() != "")
21
+
22
+            ArrayList arrlist = new ArrayList();
23
+
24
+            if (beginyear != null && beginyear.Trim() != "")
25
+            {
26
+                var data = new
25
                 {
27
                 {
26
-                    var data = new
27
-                    {
28
-                        key = beginyear + "客户呼叫数",
29
-                        value = GetKhCall(beginyear).TrimEnd(',').Split(','),
30
-                        type = 0
31
-                    };
32
-                    arrlist.Add(data);
28
+                    key = beginyear + "客户呼叫数",
29
+                    value = GetKhCall(beginyear).TrimEnd(',').Split(','),
30
+                    type = 0
31
+                };
32
+                arrlist.Add(data);
33
 
33
 
34
-                    var data1 = new
35
-                    {
36
-                        key = beginyear + "坐席接听数",
37
-                        value = GetZxJt(beginyear).TrimEnd(',').Split(','),
38
-                        type = 0
39
-                    };
40
-                    arrlist.Add(data1);
34
+                var data1 = new
35
+                {
36
+                    key = beginyear + "坐席接听数",
37
+                    value = GetZxJt(beginyear).TrimEnd(',').Split(','),
38
+                    type = 0
39
+                };
40
+                arrlist.Add(data1);
41
 
41
 
42
-                    var data2 = new
43
-                    {
44
-                        key = beginyear + "接通率",
45
-                        value = GetJTL(beginyear).TrimEnd(',').Split(','),
46
-                        type = 0
47
-                    };
48
-                    arrlist.Add(data2);
49
-                }
50
-                if (endyear != null && endyear.Trim() != "")
42
+                var data2 = new
51
                 {
43
                 {
52
-                    var data = new
53
-                    {
54
-                        key = endyear + "客户呼叫数",
55
-                        value = GetKhCall(endyear).TrimEnd(',').Split(','),
56
-                        type = 1
57
-                    };
58
-                    arrlist.Add(data);
44
+                    key = beginyear + "接通率",
45
+                    value = GetJTL(beginyear).TrimEnd(',').Split(','),
46
+                    type = 0
47
+                };
48
+                arrlist.Add(data2);
49
+            }
50
+            if (endyear != null && endyear.Trim() != "")
51
+            {
52
+                var data = new
53
+                {
54
+                    key = endyear + "客户呼叫数",
55
+                    value = GetKhCall(endyear).TrimEnd(',').Split(','),
56
+                    type = 1
57
+                };
58
+                arrlist.Add(data);
59
 
59
 
60
-                    var data1 = new
61
-                    {
62
-                        key = endyear + "坐席接听数",
63
-                        value = GetZxJt(endyear).TrimEnd(',').Split(','),
64
-                        type = 1
65
-                    };
66
-                    arrlist.Add(data1);
60
+                var data1 = new
61
+                {
62
+                    key = endyear + "坐席接听数",
63
+                    value = GetZxJt(endyear).TrimEnd(',').Split(','),
64
+                    type = 1
65
+                };
66
+                arrlist.Add(data1);
67
+
68
+                var data2 = new
69
+                {
70
+                    key = endyear + "接通率",
71
+                    value = GetJTL(endyear).TrimEnd(',').Split(','),
72
+                    type = 1
73
+                };
74
+                arrlist.Add(data2);
75
+            }
76
+
77
+            res = Success("获取呼叫数据分析数据成功", arrlist);
67
 
78
 
68
-                    var data2 = new
69
-                    {
70
-                        key = endyear + "接通率",
71
-                        value = GetJTL(endyear).TrimEnd(',').Split(','),
72
-                        type = 1
73
-                    };
74
-                    arrlist.Add(data2);
75
-                }
76
-                
77
-                res = Success("获取呼叫数据分析数据成功", arrlist);
78
-      
79
             return res;
79
             return res;
80
         }
80
         }
81
 
81
 
84
         {
84
         {
85
             ActionResult res = NoToken("未知错误,请重新登录");
85
             ActionResult res = NoToken("未知错误,请重新登录");
86
             //if (Request.IsAuthenticated)
86
             //if (Request.IsAuthenticated)
87
-            if(1==1)
87
+            if (1 == 1)
88
             {
88
             {
89
                 NPOIHelper npoi = new NPOIHelper();
89
                 NPOIHelper npoi = new NPOIHelper();
90
                 DataTable dt = GetData(beginyear, endyear);
90
                 DataTable dt = GetData(beginyear, endyear);
103
         private DataTable GetData(string beginyear, string endyear)
103
         private DataTable GetData(string beginyear, string endyear)
104
         {
104
         {
105
             DataTable dtNew = new DataTable();
105
             DataTable dtNew = new DataTable();
106
-            if ((beginyear != null && beginyear.Trim() != "")&&(endyear != null && endyear.Trim() != ""))
106
+            if ((beginyear != null && beginyear.Trim() != "") && (endyear != null && endyear.Trim() != ""))
107
             {
107
             {
108
                 #region 编辑表头
108
                 #region 编辑表头
109
                 DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
109
                 DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
165
                     sqltimeCallRecords += " and CONVERT(varchar , timecallin, 120)>=CONVERT(varchar , '" + strtime + "-" + strmm + "-01 00:00:01', 120) ";
165
                     sqltimeCallRecords += " and CONVERT(varchar , timecallin, 120)>=CONVERT(varchar , '" + strtime + "-" + strmm + "-01 00:00:01', 120) ";
166
                     sqltimeCallRecords += " and CONVERT(varchar , timecallin, 120)<=CONVERT(varchar , '" + strtime + "-" + strmm + "-31 23:59:59', 120) ";
166
                     sqltimeCallRecords += " and CONVERT(varchar , timecallin, 120)<=CONVERT(varchar , '" + strtime + "-" + strmm + "-31 23:59:59', 120) ";
167
                 }
167
                 }
168
+                var sql = " 1=1 ";
169
+                var roleId = CurrentUser.UserData.F_RoleId;
170
+                var deptId = CurrentUser.UserData.F_DeptId;
171
+                var deptCode = CurrentUser.UserData.F_DeptCode;
172
+                var usercode = CurrentUser.UserData.F_UserCode;
173
+                if (roleId != 0)
174
+                {
175
+                    if (roleId != 17)
176
+                    {
177
+                        if (deptCode.IndexOf("|1|") > 0)
178
+                        {
179
+                            if (roleId == 36 || roleId == 38 || roleId == 40)
180
+                            {
181
+                                sql += $" and  UserCode='{usercode}'";
182
+                            }
183
+                            else
184
+                            {
185
+                                sql += $" and  UserCode  in (SELECT F_UserCode FROM T_Sys_UserAccount WHERE F_DeptId={deptId})";
186
+                            }
168
 
187
 
188
+                        }
189
+                    }
190
+                }
169
                 dt = DbHelperSQL.Query("select COUNT(*) as ct from rep_trunk_call_in  where 1=1 " + sqltimeCallRecords).Tables[0];
191
                 dt = DbHelperSQL.Query("select COUNT(*) as ct from rep_trunk_call_in  where 1=1 " + sqltimeCallRecords).Tables[0];
170
                 if (dt != null && dt.Rows.Count > 0)
192
                 if (dt != null && dt.Rows.Count > 0)
171
                 {
193
                 {

+ 172 - 148
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiTongHuaController.cs

10
 
10
 
11
 namespace CallCenterApi.Interface.Controllers.report
11
 namespace CallCenterApi.Interface.Controllers.report
12
 {
12
 {
13
-   // [Authority]
13
+    // [Authority]
14
     public class ZuoXiTongHuaController : BaseController
14
     public class ZuoXiTongHuaController : BaseController
15
     {
15
     {
16
         //坐席日通话时长
16
         //坐席日通话时长
18
         public ActionResult GetColumnList()
18
         public ActionResult GetColumnList()
19
         {
19
         {
20
             ActionResult res = NoToken("未知错误,请重新登录");
20
             ActionResult res = NoToken("未知错误,请重新登录");
21
-           
22
-                String[] str = { "坐席人员", "通话总时长(小时)", "呼出通话总时长(小时)"
21
+
22
+            String[] str = { "坐席人员", "通话总时长(小时)", "呼出通话总时长(小时)"
23
                         , "呼出通话占比", "呼入通话总时长", "呼入通话占比"
23
                         , "呼出通话占比", "呼入通话总时长", "呼入通话占比"
24
                         ,"平均日呼入通话时长(小时)","平均日呼出通话时长(小时)"
24
                         ,"平均日呼入通话时长(小时)","平均日呼出通话时长(小时)"
25
                 };
25
                 };
26
 
26
 
27
-                res = Success("获取坐席日通话时长统计表头成功", str);
27
+            res = Success("获取坐席日通话时长统计表头成功", str);
28
+
28
 
29
 
29
-     
30
             return res;
30
             return res;
31
         }
31
         }
32
         //获取数据
32
         //获取数据
33
         public ActionResult GetDataList(string stime, string endtime)
33
         public ActionResult GetDataList(string stime, string endtime)
34
         {
34
         {
35
             ActionResult res = NoToken("未知错误,请重新登录");
35
             ActionResult res = NoToken("未知错误,请重新登录");
36
-         
37
-                DataTable dtNew = new DataTable();
38
-                dtNew = getData(stime, endtime);
39
-                #region
40
-                //#region
41
-                //DataColumn dc1 = new DataColumn("坐席人员");
42
-                //DataColumn dc2 = new DataColumn("通话总时长");
43
-                //DataColumn dc3 = new DataColumn("呼出通话总时长");
44
-                //DataColumn dc4 = new DataColumn("呼出通话占比");
45
-                //DataColumn dc5 = new DataColumn("呼入通话总时长");
46
-                //DataColumn dc6 = new DataColumn("呼入通话占比");
47
-                //DataColumn dc7 = new DataColumn("平均日呼入通话时长");
48
-                //DataColumn dc8 = new DataColumn("平均日呼出通话时长");
49
 
36
 
50
-                //dtNew.Columns.Add(dc1);
51
-                //dtNew.Columns.Add(dc2);
52
-                //dtNew.Columns.Add(dc3);
53
-                //dtNew.Columns.Add(dc4);
54
-                //dtNew.Columns.Add(dc5);
55
-                //dtNew.Columns.Add(dc6);
56
-                //dtNew.Columns.Add(dc7);
57
-                //dtNew.Columns.Add(dc8);
58
-                //#endregion
37
+            DataTable dtNew = new DataTable();
38
+            dtNew = getData(stime, endtime);
39
+            #region
40
+            //#region
41
+            //DataColumn dc1 = new DataColumn("坐席人员");
42
+            //DataColumn dc2 = new DataColumn("通话总时长");
43
+            //DataColumn dc3 = new DataColumn("呼出通话总时长");
44
+            //DataColumn dc4 = new DataColumn("呼出通话占比");
45
+            //DataColumn dc5 = new DataColumn("呼入通话总时长");
46
+            //DataColumn dc6 = new DataColumn("呼入通话占比");
47
+            //DataColumn dc7 = new DataColumn("平均日呼入通话时长");
48
+            //DataColumn dc8 = new DataColumn("平均日呼出通话时长");
49
+
50
+            //dtNew.Columns.Add(dc1);
51
+            //dtNew.Columns.Add(dc2);
52
+            //dtNew.Columns.Add(dc3);
53
+            //dtNew.Columns.Add(dc4);
54
+            //dtNew.Columns.Add(dc5);
55
+            //dtNew.Columns.Add(dc6);
56
+            //dtNew.Columns.Add(dc7);
57
+            //dtNew.Columns.Add(dc8);
58
+            //#endregion
59
+
60
+            //string sqltimeCallRecords = "";
61
+            //if (stime != null && stime.Trim() != "")
62
+            //{
63
+            //    sqltimeCallRecords += " and CONVERT(varchar , TalkStartTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
64
+            //}
65
+            //if (endtime != null && endtime.Trim() != "")
66
+            //{
67
+            //    sqltimeCallRecords += " and CONVERT(varchar , TalkStartTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
68
+            //}
69
+            //double zong1 = 0;
70
+            //double zong2 = 0;
71
+            //double zong3 = 0;
72
+            //double day = 0;
73
+            //Double sumshuchu = 0;
74
+            //Double sumshuru = 0;
75
+            //if (stime != null && endtime != null && endtime.Trim() != "" && stime.Trim() != "")
76
+            //{
77
+            //    TimeSpan time = Convert.ToDateTime(endtime) - Convert.ToDateTime(stime);
78
+            //    day = time.Days + 1;
79
+            //}
80
+
81
+            //DataTable dt = new DataTable();
82
+            //string sql = "SELECT  *,(SELECT sum(TalkLongTime)  FROM T_Call_CallRecords where  UserId=T_Sys_UserAccount.F_Userid " + sqltimeCallRecords + ") as counts from T_Sys_UserAccount where F_RoleId in(1,28,29) order by counts desc ";
83
+            //dt = DbHelperSQL.Query(sql).Tables[0];
84
+            //for (int i = 0; i < dt.Rows.Count; i++)
85
+            //{
86
+            //    DataRow drNew = dtNew.NewRow();
87
+
88
+            //    sql = "SELECT (SELECT sum(TalkLongTime)  FROM T_Call_CallRecords where  UserId=" + dt.Rows[i]["F_UserId"].ToString() + "" + sqltimeCallRecords + ") as sums,";
89
+            //    sql += "(SELECT sum(TalkLongTime) FROM T_Call_CallRecords where  UserId=" + dt.Rows[i]["F_UserId"].ToString() + " and CallType=0" + sqltimeCallRecords + ") as sumshuru,";
90
+            //    sql += "(SELECT sum(TalkLongTime)  FROM T_Call_CallRecords where  UserId=" + dt.Rows[i]["F_UserId"].ToString() + " and CallType=1" + sqltimeCallRecords + ") as sumshuchu";
91
+            //    DataTable dt1 = new DataTable();
92
+            //    dt1 = DbHelperSQL.Query(sql).Tables[0];
59
 
93
 
60
-                //string sqltimeCallRecords = "";
61
-                //if (stime != null && stime.Trim() != "")
62
-                //{
63
-                //    sqltimeCallRecords += " and CONVERT(varchar , TalkStartTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
64
-                //}
65
-                //if (endtime != null && endtime.Trim() != "")
66
-                //{
67
-                //    sqltimeCallRecords += " and CONVERT(varchar , TalkStartTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
68
-                //}
69
-                //double zong1 = 0;
70
-                //double zong2 = 0;
71
-                //double zong3 = 0;
72
-                //double day = 0;
73
-                //Double sumshuchu = 0;
74
-                //Double sumshuru = 0;
75
-                //if (stime != null && endtime != null && endtime.Trim() != "" && stime.Trim() != "")
76
-                //{
77
-                //    TimeSpan time = Convert.ToDateTime(endtime) - Convert.ToDateTime(stime);
78
-                //    day = time.Days + 1;
79
-                //}
94
+            //    if (dt1.Rows[0]["sums"] == null || dt1.Rows[0]["sums"].ToString() == "" || dt1.Rows[0]["sums"].ToString() == "0")
95
+            //    {
96
+            //        continue;
97
+            //    }
98
+            //    drNew["坐席人员"] = dt.Rows[i]["F_UserName"].ToString();
99
+            //    drNew["通话总时长"] = (Convert.ToDouble(dt1.Rows[0]["sums"]) / 3600).ToString("f2");
100
+            //    Double sums = 0;
101
+            //    if (dt1.Rows[0]["sums"] != null && dt1.Rows[0]["sums"].ToString() != "")
102
+            //    {
103
+            //        zong1 += Convert.ToInt32(dt1.Rows[0]["sums"]);
104
+            //        sums = Convert.ToInt32(dt1.Rows[0]["sums"]);
105
+            //    }
106
+            //    if (dt1.Rows[0]["sumshuchu"] == null || dt1.Rows[0]["sumshuchu"].ToString() == "")
107
+            //    {
108
+            //        drNew["呼出通话总时长"] = "0";
109
+            //    }
110
+            //    else
111
+            //    {
112
+            //        drNew["呼出通话总时长"] = (Convert.ToDouble(dt1.Rows[0]["sumshuchu"]) / 3600).ToString("f2");
113
+            //    }
114
+            //    sumshuchu = 0;
115
+            //    if (dt1.Rows[0]["sumshuchu"] != null && dt1.Rows[0]["sumshuchu"].ToString() != "")
116
+            //    {
117
+            //        zong2 += Convert.ToInt32(dt1.Rows[0]["sumshuchu"]);
118
+            //        sumshuchu = Convert.ToInt32(dt1.Rows[0]["sumshuchu"]);
119
+            //    }
120
+            //    if (sums == 0)
121
+            //    {
122
+            //        drNew["呼出通话占比"] = "0.00" + "%";
123
+            //    }
124
+            //    else
125
+            //    {
126
+            //        drNew["呼出通话占比"] = (sumshuchu / sums * 100).ToString("f2") + "%";
127
+            //    }
128
+            //    if (dt1.Rows[0]["sumshuru"] == null || dt1.Rows[0]["sumshuru"].ToString() == "")
129
+            //    {
130
+            //        drNew["呼入通话总时长"] = "0";
131
+            //    }
132
+            //    else
133
+            //    {
134
+            //        drNew["呼入通话总时长"] = (Convert.ToDouble(dt1.Rows[0]["sumshuru"]) / 3600).ToString("f2");
135
+            //    }
136
+            //    sumshuru = 0;
80
 
137
 
81
-                //DataTable dt = new DataTable();
82
-                //string sql = "SELECT  *,(SELECT sum(TalkLongTime)  FROM T_Call_CallRecords where  UserId=T_Sys_UserAccount.F_Userid " + sqltimeCallRecords + ") as counts from T_Sys_UserAccount where F_RoleId in(1,28,29) order by counts desc ";
83
-                //dt = DbHelperSQL.Query(sql).Tables[0];
84
-                //for (int i = 0; i < dt.Rows.Count; i++)
85
-                //{
86
-                //    DataRow drNew = dtNew.NewRow();
87
-                    
88
-                //    sql = "SELECT (SELECT sum(TalkLongTime)  FROM T_Call_CallRecords where  UserId=" + dt.Rows[i]["F_UserId"].ToString() + "" + sqltimeCallRecords + ") as sums,";
89
-                //    sql += "(SELECT sum(TalkLongTime) FROM T_Call_CallRecords where  UserId=" + dt.Rows[i]["F_UserId"].ToString() + " and CallType=0" + sqltimeCallRecords + ") as sumshuru,";
90
-                //    sql += "(SELECT sum(TalkLongTime)  FROM T_Call_CallRecords where  UserId=" + dt.Rows[i]["F_UserId"].ToString() + " and CallType=1" + sqltimeCallRecords + ") as sumshuchu";
91
-                //    DataTable dt1 = new DataTable();
92
-                //    dt1 = DbHelperSQL.Query(sql).Tables[0];
138
+            //    if (dt1.Rows[0]["sumshuru"] != null && dt1.Rows[0]["sumshuru"].ToString() != "")
139
+            //    {
140
+            //        zong3 += Convert.ToInt32(dt1.Rows[0]["sumshuru"]);
141
+            //        sumshuru = Convert.ToInt32(dt1.Rows[0]["sumshuru"]);
142
+            //    }
143
+            //    if (sums == 0)
144
+            //    {
145
+            //        drNew["呼入通话占比"] = "0.00" + "%";
146
+            //    }
147
+            //    else
148
+            //    {
149
+            //        drNew["呼入通话占比"] = (sumshuru / sums * 100).ToString("f2") + "%";
150
+            //    }
93
 
151
 
94
-                //    if (dt1.Rows[0]["sums"] == null || dt1.Rows[0]["sums"].ToString() == "" || dt1.Rows[0]["sums"].ToString() == "0")
95
-                //    {
96
-                //        continue;
97
-                //    }
98
-                //    drNew["坐席人员"] = dt.Rows[i]["F_UserName"].ToString();
99
-                //    drNew["通话总时长"] = (Convert.ToDouble(dt1.Rows[0]["sums"]) / 3600).ToString("f2");
100
-                //    Double sums = 0;
101
-                //    if (dt1.Rows[0]["sums"] != null && dt1.Rows[0]["sums"].ToString() != "")
102
-                //    {
103
-                //        zong1 += Convert.ToInt32(dt1.Rows[0]["sums"]);
104
-                //        sums = Convert.ToInt32(dt1.Rows[0]["sums"]);
105
-                //    }
106
-                //    if (dt1.Rows[0]["sumshuchu"] == null || dt1.Rows[0]["sumshuchu"].ToString() == "")
107
-                //    {
108
-                //        drNew["呼出通话总时长"] = "0";
109
-                //    }
110
-                //    else
111
-                //    {
112
-                //        drNew["呼出通话总时长"] = (Convert.ToDouble(dt1.Rows[0]["sumshuchu"]) / 3600).ToString("f2");
113
-                //    }
114
-                //    sumshuchu = 0;
115
-                //    if (dt1.Rows[0]["sumshuchu"] != null && dt1.Rows[0]["sumshuchu"].ToString() != "")
116
-                //    {
117
-                //        zong2 += Convert.ToInt32(dt1.Rows[0]["sumshuchu"]);
118
-                //        sumshuchu = Convert.ToInt32(dt1.Rows[0]["sumshuchu"]);
119
-                //    }
120
-                //    if (sums == 0)
121
-                //    {
122
-                //        drNew["呼出通话占比"] = "0.00" + "%";
123
-                //    }
124
-                //    else
125
-                //    {
126
-                //        drNew["呼出通话占比"] = (sumshuchu / sums * 100).ToString("f2") + "%";
127
-                //    }
128
-                //    if (dt1.Rows[0]["sumshuru"] == null || dt1.Rows[0]["sumshuru"].ToString() == "")
129
-                //    {
130
-                //        drNew["呼入通话总时长"] = "0";
131
-                //    }
132
-                //    else
133
-                //    {
134
-                //        drNew["呼入通话总时长"] = (Convert.ToDouble(dt1.Rows[0]["sumshuru"]) / 3600).ToString("f2");
135
-                //    }
136
-                //    sumshuru = 0;
152
+            //    drNew["平均日呼入通话时长"] = (sumshuru / day / 3600).ToString("f2");
153
+            //    drNew["平均日呼出通话时长"] = (sumshuchu / day / 3600).ToString("f2");
137
 
154
 
138
-                //    if (dt1.Rows[0]["sumshuru"] != null && dt1.Rows[0]["sumshuru"].ToString() != "")
139
-                //    {
140
-                //        zong3 += Convert.ToInt32(dt1.Rows[0]["sumshuru"]);
141
-                //        sumshuru = Convert.ToInt32(dt1.Rows[0]["sumshuru"]);
142
-                //    }
143
-                //    if (sums == 0)
144
-                //    {
145
-                //        drNew["呼入通话占比"] = "0.00" + "%";
146
-                //    }
147
-                //    else
148
-                //    {
149
-                //        drNew["呼入通话占比"] = (sumshuru / sums * 100).ToString("f2") + "%";
150
-                //    }
151
-                    
152
-                //    drNew["平均日呼入通话时长"] = (sumshuru / day / 3600).ToString("f2");
153
-                //    drNew["平均日呼出通话时长"] = (sumshuchu / day / 3600).ToString("f2");
155
+            //    dtNew.Rows.Add(drNew);
156
+            //}
154
 
157
 
155
-                //    dtNew.Rows.Add(drNew);
156
-                //}
158
+            //DataRow drzj = dtNew.NewRow();
159
+            //drzj["坐席人员"] = "总计";
160
+            //drzj["通话总时长"] = (zong1 / 3600).ToString("f2");
161
+            //drzj["呼出通话总时长"] = (zong2 / 3600).ToString("f2");
162
+            //if (zong1 == 0 || zong2 == 0)
163
+            //{
164
+            //    drzj["呼出通话占比"] = "0.00" + "%";
165
+            //}
166
+            //else
167
+            //{
168
+            //    drzj["呼出通话占比"] = (Convert.ToDouble(zong2 / zong1) * 100).ToString("f2") + "%";
169
+            //}
170
+            //drzj["呼入通话总时长"] = (zong3 / 3600).ToString("f2");
171
+            //if (zong1 == 0 || zong3 == 0)
172
+            //{
173
+            //    drzj["呼入通话占比"] = "0.00" + "%";
174
+            //}
175
+            //else
176
+            //{
177
+            //    drzj["呼入通话占比"] = (Convert.ToDouble(zong3 / zong1) * 100).ToString("f2") + "%";
178
+            //}
179
+            //drzj["平均日呼入通话时长"] = (zong3 / day / 3600).ToString("f2");
180
+            //drzj["平均日呼出通话时长"] = (zong2 / day / 3600).ToString("f2");
181
+            //dtNew.Rows.Add(drzj);
182
+            #endregion
183
+            res = Success("获取坐席日通话时长统计数据成功", dtNew);
157
 
184
 
158
-                //DataRow drzj = dtNew.NewRow();
159
-                //drzj["坐席人员"] = "总计";
160
-                //drzj["通话总时长"] = (zong1 / 3600).ToString("f2");
161
-                //drzj["呼出通话总时长"] = (zong2 / 3600).ToString("f2");
162
-                //if (zong1 == 0 || zong2 == 0)
163
-                //{
164
-                //    drzj["呼出通话占比"] = "0.00" + "%";
165
-                //}
166
-                //else
167
-                //{
168
-                //    drzj["呼出通话占比"] = (Convert.ToDouble(zong2 / zong1) * 100).ToString("f2") + "%";
169
-                //}
170
-                //drzj["呼入通话总时长"] = (zong3 / 3600).ToString("f2");
171
-                //if (zong1 == 0 || zong3 == 0)
172
-                //{
173
-                //    drzj["呼入通话占比"] = "0.00" + "%";
174
-                //}
175
-                //else
176
-                //{
177
-                //    drzj["呼入通话占比"] = (Convert.ToDouble(zong3 / zong1) * 100).ToString("f2") + "%";
178
-                //}
179
-                //drzj["平均日呼入通话时长"] = (zong3 / day / 3600).ToString("f2");
180
-                //drzj["平均日呼出通话时长"] = (zong2 / day / 3600).ToString("f2");
181
-                //dtNew.Rows.Add(drzj);
182
-                #endregion
183
-                res = Success("获取坐席日通话时长统计数据成功", dtNew);
184
-         
185
             return res;
185
             return res;
186
         }
186
         }
187
 
187
 
250
             }
250
             }
251
 
251
 
252
             DataTable dt = new DataTable();
252
             DataTable dt = new DataTable();
253
-            string sql = "SELECT  *,(SELECT sum(TalkLongTime)  FROM T_Call_CallRecords where  UserId=T_Sys_UserAccount.F_Userid " + sqltimeCallRecords + ") as counts from T_Sys_UserAccount where F_RoleId in(1,28,29) order by counts desc ";
253
+            var deptId = CurrentUser.UserData.F_DeptId;
254
+            var roleId = CurrentUser.UserData.F_RoleId;
255
+            var deptCode = CurrentUser.UserData.F_DeptCode;
256
+            var usercode = CurrentUser.UserData.F_UserCode;
257
+            var usercodeSQL = "";
258
+            if (roleId != 0)
259
+            {
260
+                if (roleId != 17)
261
+                {
262
+                    if (roleId == 36 || roleId == 38 || roleId == 40)
263
+                    {
264
+                        usercodeSQL += $"  F_UserCode='{usercode}'";
265
+                    }
266
+                    else
267
+                    {
268
+                        usercodeSQL += $"  F_UserCode in (SELECT F_UserCode from T_Sys_UserAccount where F_DeptId={deptId}) ";
269
+                    }
270
+
271
+                }
272
+            }
273
+            if (!string.IsNullOrWhiteSpace(usercodeSQL))
274
+            {
275
+                usercodeSQL = " where " + usercodeSQL;
276
+            }
277
+            string sql = "SELECT  *,(SELECT sum(TalkLongTime)  FROM T_Call_CallRecords where  UserId=T_Sys_UserAccount.F_Userid " + sqltimeCallRecords + ") as counts from T_Sys_UserAccount  " + usercodeSQL + " order by counts desc ";
254
             dt = DbHelperSQL.Query(sql).Tables[0];
278
             dt = DbHelperSQL.Query(sql).Tables[0];
255
             for (int i = 0; i < dt.Rows.Count; i++)
279
             for (int i = 0; i < dt.Rows.Count; i++)
256
             {
280
             {

+ 30 - 3
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiWorkTotalController.cs

506
             double itrunkhsl = 0.00;//互损率
506
             double itrunkhsl = 0.00;//互损率
507
             double itrunkpjpd = 0.00;//平均排队
507
             double itrunkpjpd = 0.00;//平均排队
508
             #endregion
508
             #endregion
509
+
510
+            //17=系统管理员,36=客服,37=组长,38=组员,39=业主,40=话务员,41=客服主管,43=分公司市场部主任,45=业务稽核,46=集团客户部,
511
+            //47 =网络部,48=市场部经理,50=业务支撑中心,51=市场部,52=客户服务中心,53=总经理,54=副总经理,55=业务负责人,56=投诉处理员,57=基础业务主管,
512
+
513
+
514
+            var deptId = CurrentUser.UserData.F_DeptId;
515
+            var roleId = CurrentUser.UserData.F_RoleId;
516
+            var deptCode = CurrentUser.UserData.F_DeptCode;
517
+            var usercode = CurrentUser.UserData.F_UserCode;
518
+            var deptSQL = "";
519
+            var usercodeSQL = "";
520
+            if (roleId != 0)
521
+            {
522
+                if (roleId != 17)
523
+                {
524
+                    if (roleId == 36 || roleId == 38 || roleId == 40)
525
+                    {
526
+                        usercodeSQL += $" and F_UserCode='{usercode}'";
527
+                    }
528
+                    else
529
+                    {
530
+                        deptSQL += $" and F_DeptId={deptId} ";
531
+                    }
532
+
533
+                }
534
+            }
535
+
509
             DataTable dtdpt = null;
536
             DataTable dtdpt = null;
510
             if (!string.IsNullOrWhiteSpace(dpt) && Convert.ToInt32(dpt) >= 0)
537
             if (!string.IsNullOrWhiteSpace(dpt) && Convert.ToInt32(dpt) >= 0)
511
             {
538
             {
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];
539
+                dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0 and F_DeptId=" + dpt + deptSQL).Tables[0];
513
             }
540
             }
514
             else
541
             else
515
             {
542
             {
516
-                dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0").Tables[0];
543
+                dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0" + deptSQL).Tables[0];
517
             }
544
             }
518
             //if (dtdpt != null && dtdpt.Rows.Count > 0)
545
             //if (dtdpt != null && dtdpt.Rows.Count > 0)
519
             //{
546
             //{
520
             foreach (DataRow dr in dtdpt.Rows)
547
             foreach (DataRow dr in dtdpt.Rows)
521
             {
548
             {
522
                 DataTable dt = new DataTable();
549
                 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";
550
+                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!='' {usercodeSQL} order by  F_WorkNumber asc";
524
                 dt = DbHelperSQL.Query(sql).Tables[0];
551
                 dt = DbHelperSQL.Query(sql).Tables[0];
525
                 for (int i = 0; i < dt.Rows.Count; i++)
552
                 for (int i = 0; i < dt.Rows.Count; i++)
526
                 {
553
                 {

+ 13 - 12
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallrecordsController.cs

35
                 string strpagesize = RequestString.GetQueryString("pagesize");
35
                 string strpagesize = RequestString.GetQueryString("pagesize");
36
                 int pagesize = 10;
36
                 int pagesize = 10;
37
 
37
 
38
+                //17=系统管理员,36=客服,37=组长,38=组员,39=业主,40=话务员,41=客服主管,43=分公司市场部主任,45=业务稽核,46=集团客户部,
39
+                //47 =网络部,48=市场部经理,50=业务支撑中心,51=市场部,52=客户服务中心,53=总经理,54=副总经理,55=业务负责人,56=投诉处理员,57=基础业务主管,
40
+
38
                 if (roleid != 0)
41
                 if (roleid != 0)
39
                 {
42
                 {
40
                     if (roleid != 17)
43
                     if (roleid != 17)
41
                     {
44
                     {
42
-                        //if (deptcode.IndexOf("|533|") > 0)
43
-                        //{
44
-                        //    sql += " and UserCode in (select F_UserCode from T_Sys_UserAccount where F_DeptId=" + deptid + ")";
45
-                        //}
46
-                        if (deptcode.IndexOf("|531|") > 0)
45
+                        //各分公司
46
+                        if (deptcode.IndexOf("|1|") > 0)
47
                         {
47
                         {
48
-                            if (roleid == 32)
48
+                            if (roleid == 36 || roleid == 38 || roleid == 40)
49
                             {
49
                             {
50
                                 usercode = CurrentUser.UserData.F_UserCode;
50
                                 usercode = CurrentUser.UserData.F_UserCode;
51
                                 sql += " and UserCode='" + usercode + "'";
51
                                 sql += " and UserCode='" + usercode + "'";
55
                                 sql += " and UserCode in (select F_UserCode from T_Sys_UserAccount where F_DeptID in (select F_DeptId from T_Sys_Department where F_DeptCode like '" + deptcode + "%')) ";
55
                                 sql += " and UserCode in (select F_UserCode from T_Sys_UserAccount where F_DeptID in (select F_DeptId from T_Sys_Department where F_DeptCode like '" + deptcode + "%')) ";
56
                             }
56
                             }
57
                         }
57
                         }
58
-                        else
59
-                        {
60
-                            sql += " and UserCode in (select F_UserCode from T_Sys_UserAccount where F_DeptId=" + deptid + ")";
61
-                        }
58
+                        //总公司
59
+                        //else
60
+                        //{
61
+                        //    sql += " and UserCode in (select F_UserCode from T_Sys_UserAccount where F_DeptId=" + deptid + ")";
62
+                        //}
62
                     }
63
                     }
63
                 }
64
                 }
64
 
65
 
106
                 }
107
                 }
107
                 int recordCount = 0;
108
                 int recordCount = 0;
108
                 dt = BLL.PagerBLL.GetListPager(
109
                 dt = BLL.PagerBLL.GetListPager(
109
-                    "T_Call_CallRecords left join T_Sys_UserAccount ON T_Sys_UserAccount.F_UserCode=T_Call_CallRecords.UserCode",
110
+                    "T_Call_CallRecords left join T_Sys_UserAccount ON T_Sys_UserAccount.F_UserCode=T_Call_CallRecords.UserCode  left join T_Sys_Department ON T_Sys_UserAccount.F_DeptId=T_Sys_Department.F_DeptId ",
110
                     "CallRecordsId",
111
                     "CallRecordsId",
111
-                    "*,T_Sys_UserAccount.F_UserName",
112
+                    "*,T_Sys_UserAccount.F_UserName,T_Sys_Department.F_DeptName ",
112
                     sql,
113
                     sql,
113
                     "ORDER BY CallRecordsId desc",
114
                     "ORDER BY CallRecordsId desc",
114
                     pagesize,
115
                     pagesize,

+ 2 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Filter/FilterCallPhone.cs

15
         public int YJState { get; set; } = -1;
15
         public int YJState { get; set; } = -1;
16
         public int UserId { get; set; } = 0;
16
         public int UserId { get; set; } = 0;
17
         public int TaskType { get; set; } = 1;
17
         public int TaskType { get; set; } = 1;
18
+        public int HJJGID { get; set; } = -1;
19
+        public int YHFKID { get; set; } = -1;
18
         public int RequestType { get; set; } = 1;
20
         public int RequestType { get; set; } = 1;
19
     }
21
     }
20
 }
22
 }