zhoufan 7 lat temu
rodzic
commit
f31948605e

+ 19 - 9
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/CallInController.cs

9
 
9
 
10
 namespace CallCenterApi.Interface.Controllers.report
10
 namespace CallCenterApi.Interface.Controllers.report
11
 {
11
 {
12
-    //[Authority]
12
+    [Authority]
13
     public class CallInController : BaseController
13
     public class CallInController : BaseController
14
     {
14
     {
15
         //来电数据分析
15
         //来电数据分析
16
         //获取数据
16
         //获取数据
17
         public ActionResult GetDataList(string stime,string endtime)
17
         public ActionResult GetDataList(string stime,string endtime)
18
         {
18
         {
19
-            ActionResult res = NoToken("未知错误,请重新登录");
20
-            DataTable dt = new DataTable();
21
-            DataTable dtlist = new DataTable();
22
-           
19
+            if (Request.IsAuthenticated)
20
+            {
21
+                int userId = CurrentUser.UserData.F_UserId;
22
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
23
+
24
+                DataTable dt = new DataTable();
25
+                DataTable dtlist = new DataTable();
26
+
23
                 Hashtable tab = new Hashtable();
27
                 Hashtable tab = new Hashtable();
24
 
28
 
25
                 string sql = "";
29
                 string sql = "";
34
                     sql += " and BeginTime<='" + endtime + " 23:59:59' ";
38
                     sql += " and BeginTime<='" + endtime + " 23:59:59' ";
35
                 }
39
                 }
36
 
40
 
41
+                if (string.IsNullOrEmpty(userModel.groupcode))
42
+                {
43
+                    sql += " AND groupcode='" + userModel.groupcode + "' ";
44
+                }
45
+
37
                 #region 获取数据
46
                 #region 获取数据
38
 
47
 
39
                 dtlist = new BLL.T_Call_CallRecords().GetList(" CallType=0 " + sql).Tables[0];
48
                 dtlist = new BLL.T_Call_CallRecords().GetList(" CallType=0 " + sql).Tables[0];
857
 
866
 
858
                 #endregion
867
                 #endregion
859
 
868
 
860
-                res = Success("获取来电数据分析数据成功", tab);
861
-      
862
                 dtlist.Clear();
869
                 dtlist.Clear();
863
                 dtlist.Dispose();
870
                 dtlist.Dispose();
864
                 dt.Clear();
871
                 dt.Clear();
865
                 dt.Dispose();
872
                 dt.Dispose();
866
-            
867
-            return res;
873
+
874
+                return Success("获取来电数据分析数据成功", tab);
875
+            }
876
+
877
+            return NoToken("未知错误,请重新登录");
868
         }
878
         }
869
     }
879
     }
870
 }
880
 }

+ 20 - 96
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/DaysTalkTimeController.cs

17
         //获取表头
17
         //获取表头
18
         public ActionResult GetColumnList()
18
         public ActionResult GetColumnList()
19
         {
19
         {
20
-            ActionResult res = NoToken("未知错误,请重新登录");
21
-            
22
                 String[] str = { "日期", "呼入次数", "呼入时长", "呼出次数", "呼出时长", "呼出未接通次数", "振铃时长", "通话总时长", "平均通话时长" };
20
                 String[] str = { "日期", "呼入次数", "呼入时长", "呼出次数", "呼出时长", "呼出未接通次数", "振铃时长", "通话总时长", "平均通话时长" };
23
-                res = Success("获取日通话时长统计表头成功", str);
24
-       
25
-            return res;
21
+            return Success("获取日通话时长统计表头成功", str);
26
         }
22
         }
27
 
23
 
28
         //获取数据
24
         //获取数据
29
-        public ActionResult GetDataList(string stime, string etime,string usercode, string dpt)
25
+        public ActionResult GetDataList(string stime, string etime,string usercode)
30
         {
26
         {
31
-            ActionResult res = NoToken("未知错误,请重新登录");
32
-           
27
+
28
+            if (Request.IsAuthenticated)
29
+            {
30
+                int userId = CurrentUser.UserData.F_UserId;
31
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
32
+
33
                 DataTable dtNew = new DataTable();
33
                 DataTable dtNew = new DataTable();
34
-                dtNew = getData(stime, etime, usercode, dpt);
35
-                #region
36
-                //#region 编辑表头
37
-                //DataColumn dc1 = new DataColumn("日期", Type.GetType("System.String"));
38
-                //DataColumn dc2 = new DataColumn("呼入次数", Type.GetType("System.String"));
39
-                //DataColumn dc3 = new DataColumn("呼入时长", Type.GetType("System.String"));
40
-                //DataColumn dc4 = new DataColumn("呼出次数", Type.GetType("System.String"));
41
-                //DataColumn dc5 = new DataColumn("呼出时长", Type.GetType("System.String"));
42
-                //DataColumn dc6 = new DataColumn("呼出未接通次数", Type.GetType("System.String"));
43
-                //DataColumn dc7 = new DataColumn("振铃时长", Type.GetType("System.String"));
44
-                //DataColumn dc8 = new DataColumn("通话总时长", Type.GetType("System.String"));
45
-                //DataColumn dc9 = new DataColumn("平均通话总时长", Type.GetType("System.String"));
46
-
47
-                //dtNew.Columns.Add(dc1);
48
-                //dtNew.Columns.Add(dc2);
49
-                //dtNew.Columns.Add(dc3);
50
-                //dtNew.Columns.Add(dc4);
51
-                //dtNew.Columns.Add(dc5);
52
-                //dtNew.Columns.Add(dc6);
53
-                //dtNew.Columns.Add(dc7);
54
-                //dtNew.Columns.Add(dc8);
55
-                //dtNew.Columns.Add(dc9);
56
-                //#endregion
57
-                
58
-                //DateTime beginTime;
59
-                //DateTime endTime;
60
-                //string sql = "";
61
-
62
-                //int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
63
-                //if (stime != null && stime != "")
64
-                //    beginTime = DateTime.Parse(stime);
65
-                //else
66
-                //    beginTime = DateTime.Parse(DateTime.Now.AddDays(-days).ToShortDateString());
67
-
68
-                //if (etime != null && etime != "")
69
-                //    endTime = DateTime.Parse(etime + " 23:59:59");
70
-                //else
71
-                //    endTime = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59");
72
-
73
-                //if (usercode != null && usercode != "")
74
-                //{
75
-                //    sql += " and UserCode='" + usercode + "'";
76
-                //}
77
-
78
-                //sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
79
-                //sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
80
-
81
-                //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 " + sql).Tables[0];
82
-                
83
-                //for (DateTime t = beginTime; t <= endTime; t = t.AddDays(1))
84
-                //{
85
-                //    string key = t.ToString("yyyyMMdd");
86
-                //    DataRow[] drsin = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=0");
87
-                //    DataRow[] drsout = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=1");
88
-                //    DataRow[] drswout = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=1 and CallState=0 ");
89
-                //    int callincount = drsin.Length;
90
-                //    int calloutcount = drsout.Length;
91
-                //    int callwoutcount = drswout.Length;
92
-                //    string thsc = gettimes(dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' "), 0);
93
-                //    string hrsc = gettimes(drsin, 0);
94
-                //    string hcsc = gettimes(drsout, 0);
95
-                //    string zlsc = gettimes(drswout, 1);
96
-                //    DataRow drNew = dtNew.NewRow();
97
-
98
-                //    drNew["日期"] = key;
99
-                //    drNew["呼入次数"] = callincount;
100
-                //    drNew["呼入时长"] = hrsc + "S";
101
-                //    drNew["呼出次数"] = calloutcount;
102
-                //    drNew["呼出时长"] = hcsc + "S";
103
-                //    drNew["呼出未接通次数"] = callwoutcount;
104
-                //    drNew["振铃时长"] = zlsc + "S";
105
-                //    drNew["通话总时长"] = thsc + "S";
106
-                //    if ((callincount + calloutcount) > 0)
107
-                //        drNew["平均通话总时长"] = (double.Parse(thsc) / (callincount + calloutcount)).ToString("F2") + "S";
108
-                //    else
109
-                //        drNew["平均通话总时长"] = "0S";
110
-
111
-                //    dtNew.Rows.Add(drNew);
112
-                //}
113
-                #endregion
114
-                res = Success("获取日通话时长数据成功", dtNew);
115
-     
116
-            return res;
34
+                dtNew = getData(stime, etime, usercode, userModel.groupcode);
35
+                return Success("获取通话时长数据成功", dtNew);
36
+            }
37
+            return NoToken("未知错误,请重新登录");
117
         }
38
         }
118
 
39
 
119
         //导出数据
40
         //导出数据
120
-        public ActionResult ExptList(string stime, string etime, string usercode, string dpt)
41
+        public ActionResult ExptList(string stime, string etime, string usercode)
121
         {
42
         {
122
-            ActionResult res = NoToken("未知错误,请重新登录");
123
             if (Request.IsAuthenticated)
43
             if (Request.IsAuthenticated)
124
             {
44
             {
45
+                int userId = CurrentUser.UserData.F_UserId;
46
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
47
+
125
                 NPOIHelper npoi = new NPOIHelper();
48
                 NPOIHelper npoi = new NPOIHelper();
126
-                DataTable dt = getData(stime, etime, usercode, dpt);
49
+                DataTable dt = getData(stime, etime, usercode, userModel.groupcode);
127
                 if (npoi.ExportToExcel("日通话时长数据", dt) == "")
50
                 if (npoi.ExportToExcel("日通话时长数据", dt) == "")
128
                 {
51
                 {
129
                     return Success("导出成功");
52
                     return Success("导出成功");
133
                     return Error("导出失败");
56
                     return Error("导出失败");
134
                 }
57
                 }
135
             }
58
             }
136
-            return res;
59
+            return NoToken("未知错误,请重新登录");
137
         }
60
         }
138
 
61
 
139
         private DataTable getData(string stime, string etime, string usercode, string dpt)
62
         private DataTable getData(string stime, string etime, string usercode, string dpt)
186
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
109
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
187
             if (dpt != null && dpt.Trim() != "")
110
             if (dpt != null && dpt.Trim() != "")
188
             {
111
             {
189
-                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
112
+                //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
113
+                sql += " AND groupcode='" + dpt + "' ";
190
             }
114
             }
191
             DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 " + sql).Tables[0];
115
             DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 " + sql).Tables[0];
192
 
116
 

+ 114 - 112
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/QCResultController.cs

20
         //获取表头
20
         //获取表头
21
         public ActionResult GetColumnList(string isext)
21
         public ActionResult GetColumnList(string isext)
22
         {
22
         {
23
-            ActionResult res = NoToken("未知错误,请重新登录");
24
             List<Model.QCModel> qclist = new List<Model.QCModel>();
23
             List<Model.QCModel> qclist = new List<Model.QCModel>();
25
 
24
 
26
             #region 加载固定项
25
             #region 加载固定项
177
                 dtNew.Columns.Add(dcjy);
176
                 dtNew.Columns.Add(dcjy);
178
             }
177
             }
179
 
178
 
180
-            res = Success("获取质检表头成功", qclist);
181
-
182
-            return res;
179
+            return Success("获取质检表头成功", qclist);
183
         }
180
         }
184
 
181
 
185
         //获取数据
182
         //获取数据
186
         public ActionResult GetDataList(string stime, string endtime)
183
         public ActionResult GetDataList(string stime, string endtime)
187
         {
184
         {
188
-            ActionResult res = NoToken("未知错误,请重新登录");
189
-            Model.PageData<object> pagedata = new Model.PageData<object>();
185
+            if (Request.IsAuthenticated)
186
+            {
187
+                int userId = CurrentUser.UserData.F_UserId;
188
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
190
 
189
 
191
-            string dpt = RequestString.GetQueryString("dpt");
192
-            string isext = RequestString.GetQueryString("isext");
190
+                Model.PageData<object> pagedata = new Model.PageData<object>();
193
 
191
 
194
-            GetColumnList(isext);
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
-            }
194
+                GetColumnList(isext);
210
 
195
 
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)
214
-            {
215
-                DataTable dt = ds.Tables[0];
216
-                string strname = "";
217
-                foreach (DataRow dr in dt.Rows)
196
+                string sqltimeCallRecords = "";
197
+                string strsql = "";
198
+                if (stime != null && stime.Trim() != "")
218
                 {
199
                 {
219
-                    DataRow drNew = dtNew.NewRow();
220
-                    if (dr["UserId"] != null && dr["UserId"].ToString() != "")
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 (string.IsNullOrEmpty(userModel.groupcode))
207
+                {
208
+                    //strsql = " and UserId in(select F_UserId from T_Sys_UserAccount where F_DeptId=" + dpt.ToString() + ") ";
209
+                    strsql += " AND groupcode='" + userModel.groupcode + "' ";
210
+                }
211
+
212
+                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");
213
+                DataTable dtTitle = DbHelperSQL.Query("select F_IndexId from T_QC_IndexBase where F_DeleteFlag=0").Tables[0];
214
+                if (ds != null && ds.Tables.Count > 0)
215
+                {
216
+                    DataTable dt = ds.Tables[0];
217
+                    string strname = "";
218
+                    foreach (DataRow dr in dt.Rows)
221
                     {
219
                     {
222
-                        object obj = DbHelperSQL.GetSingle("select F_QCUserName from T_Call_CallRecords where UserId=" + dr["UserId"] + " and F_QCState=1 " + sqltimeCallRecords);
223
-                        if (obj != null)
220
+                        DataRow drNew = dtNew.NewRow();
221
+                        if (dr["UserId"] != null && dr["UserId"].ToString() != "")
224
                         {
222
                         {
225
-                            strname = obj.ToString();
223
+                            object obj = DbHelperSQL.GetSingle("select F_QCUserName from T_Call_CallRecords where UserId=" + dr["UserId"] + " and F_QCState=1 " + sqltimeCallRecords);
224
+                            if (obj != null)
225
+                            {
226
+                                strname = obj.ToString();
227
+                            }
228
+                            else
229
+                            {
230
+                                strname = "";
231
+                            }
226
                         }
232
                         }
227
-                        else
233
+                        drNew["QCName"] = strname;
234
+                        drNew["UserName"] = dr["name"].ToString();
235
+                        drNew["UserCode"] = dr["wknmb"].ToString();
236
+
237
+                        int ct = 0;
238
+                        if (dr["ct"] != null && dr["ct"].ToString() != "")
228
                         {
239
                         {
229
-                            strname = "";
240
+                            ct = int.Parse(dr["ct"].ToString());//评价数量
230
                         }
241
                         }
231
-                    }
232
-                    drNew["QCName"] = strname;
233
-                    drNew["UserName"] = dr["name"].ToString();
234
-                    drNew["UserCode"] = dr["wknmb"].ToString();
235
-
236
-                    int ct = 0;
237
-                    if (dr["ct"] != null && dr["ct"].ToString() != "")
238
-                    {
239
-                        ct = int.Parse(dr["ct"].ToString());//评价数量
240
-                    }
241
-                    drNew["ZJCount"] = dr["ct"].ToString();
242
+                        drNew["ZJCount"] = dr["ct"].ToString();
242
 
243
 
243
-                    double itemfs = 0;//每一大项分数和
244
-                    double ctfs = 0;//总分
244
+                        double itemfs = 0;//每一大项分数和
245
+                        double ctfs = 0;//总分
245
 
246
 
246
-                    for (int i = 0; i < arlist.Count; i++)
247
-                    {
248
-                        string strList = arlist[i];
249
-                        string[] strTitleList = strList.Split(',');
250
-                        foreach (string str in strTitleList)
247
+                        for (int i = 0; i < arlist.Count; i++)
251
                         {
248
                         {
252
-                            if (str != "")
249
+                            string strList = arlist[i];
250
+                            string[] strTitleList = strList.Split(',');
251
+                            foreach (string str in strTitleList)
253
                             {
252
                             {
254
-                                double fs = 0;//每一项分数
255
-                                if (dr["UserId"] != null && dr["UserId"].ToString() != "")
253
+                                if (str != "")
256
                                 {
254
                                 {
257
-                                    var 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);
258
-                                    if (obj != null && obj.ToString() != "")
255
+                                    double fs = 0;//每一项分数
256
+                                    if (dr["UserId"] != null && dr["UserId"].ToString() != "")
259
                                     {
257
                                     {
260
-                                        if (ct != 0)
261
-                                        {//评价数量不为0
262
-                                            if (int.Parse(obj.ToString()) % ct == 0)
263
-                                            {
264
-                                                fs = int.Parse(obj.ToString()) / ct; //每一项分数
265
-                                            }
266
-                                            else
267
-                                            {
268
-                                                fs = double.Parse(obj.ToString()) / double.Parse(ct.ToString());
258
+                                        var 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);
259
+                                        if (obj != null && obj.ToString() != "")
260
+                                        {
261
+                                            if (ct != 0)
262
+                                            {//评价数量不为0
263
+                                                if (int.Parse(obj.ToString()) % ct == 0)
264
+                                                {
265
+                                                    fs = int.Parse(obj.ToString()) / ct; //每一项分数
266
+                                                }
267
+                                                else
268
+                                                {
269
+                                                    fs = double.Parse(obj.ToString()) / double.Parse(ct.ToString());
270
+                                                }
269
                                             }
271
                                             }
270
                                         }
272
                                         }
271
                                     }
273
                                     }
274
+                                    string mm = "";
275
+                                    if (fs.ToString().IndexOf('.') > -1 && fs.ToString().Substring(fs.ToString().IndexOf('.') + 1).Length > 2)
276
+                                    {
277
+                                        mm = fs.ToString("0.00");
278
+                                    }
279
+                                    else
280
+                                    {
281
+                                        mm = fs.ToString();
282
+                                    }
283
+                                    drNew["Q" + str] = mm;
284
+                                    itemfs += fs;
272
                                 }
285
                                 }
273
-                                string mm = "";
274
-                                if (fs.ToString().IndexOf('.') > -1 && fs.ToString().Substring(fs.ToString().IndexOf('.') + 1).Length > 2)
275
-                                {
276
-                                    mm = fs.ToString("0.00");
277
-                                }
278
-                                else
279
-                                {
280
-                                    mm = fs.ToString();
281
-                                }
282
-                                drNew["Q" + str] = mm;
283
-                                itemfs += fs;
284
                             }
286
                             }
287
+                            string imm = "";
288
+                            if (itemfs.ToString().IndexOf('.') > -1 && itemfs.ToString().Substring(itemfs.ToString().IndexOf('.') + 1).Length > 2)
289
+                            {
290
+                                imm = itemfs.ToString("0.00");
291
+                            }
292
+                            else
293
+                            {
294
+                                imm = itemfs.ToString();
295
+                            }
296
+                            drNew["df" + i.ToString()] = imm;
297
+                            ctfs += itemfs;
298
+                            itemfs = 0;
285
                         }
299
                         }
286
-                        string imm = "";
287
-                        if (itemfs.ToString().IndexOf('.') > -1 && itemfs.ToString().Substring(itemfs.ToString().IndexOf('.') + 1).Length > 2)
288
-                        {
289
-                            imm = itemfs.ToString("0.00");
290
-                        }
291
-                        else
292
-                        {
293
-                            imm = itemfs.ToString();
294
-                        }
295
-                        drNew["df" + i.ToString()] = imm;
296
-                        ctfs += itemfs;
297
-                        itemfs = 0;
298
-                    }
299
-                    //drNew["AllScore"] = ((int)ctfs).ToString();
300
-                    drNew["AllScore"] = ctfs.ToString();
301
-                    if (isext != null && isext.Trim() != "")
302
-                    {
303
-                        string question = "";
304
-                        string advise = "";
305
-                        DataSet dss = DbHelperSQL.Query("select * from T_Call_CallRecords where UserId=" + dr["UserId"] + " and F_QCState=1 " + sqltimeCallRecords);
306
-                        if (dss.Tables[0].Rows.Count > 0)
300
+                        //drNew["AllScore"] = ((int)ctfs).ToString();
301
+                        drNew["AllScore"] = ctfs.ToString();
302
+                        if (isext != null && isext.Trim() != "")
307
                         {
303
                         {
308
-                            for (int ii = 0; ii < dss.Tables[0].Rows.Count; ii++)
304
+                            string question = "";
305
+                            string advise = "";
306
+                            DataSet dss = DbHelperSQL.Query("select * from T_Call_CallRecords where UserId=" + dr["UserId"] + " and F_QCState=1 " + sqltimeCallRecords);
307
+                            if (dss.Tables[0].Rows.Count > 0)
309
                             {
308
                             {
310
-                                question += dss.Tables[0].Rows[ii]["F_QCQuestion"].ToString() + ";";
311
-                                advise += dss.Tables[0].Rows[ii]["F_QCAdvise"].ToString() + ";";
309
+                                for (int ii = 0; ii < dss.Tables[0].Rows.Count; ii++)
310
+                                {
311
+                                    question += dss.Tables[0].Rows[ii]["F_QCQuestion"].ToString() + ";";
312
+                                    advise += dss.Tables[0].Rows[ii]["F_QCAdvise"].ToString() + ";";
313
+                                }
312
                             }
314
                             }
315
+                            drNew["Question"] = question;
316
+                            drNew["Advise"] = advise;
313
                         }
317
                         }
314
-                        drNew["Question"] = question;
315
-                        drNew["Advise"] = advise;
316
-                    }
317
-                    ctfs = 0;
318
+                        ctfs = 0;
318
 
319
 
319
-                    dtNew.Rows.Add(drNew);
320
+                        dtNew.Rows.Add(drNew);
321
+                    }
320
                 }
322
                 }
321
-            }
322
 
323
 
323
-            res = Success("获取质检数据成功", dtNew);
324
+                return Success("获取质检数据成功", dtNew);
324
 
325
 
325
-            return res;
326
+            }
327
+            return NoToken("未知错误,请重新登录");
326
         }
328
         }
327
     }
329
     }
328
 }
330
 }

+ 24 - 55
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/SwitchedlossCallController.cs

17
         //获取表头
17
         //获取表头
18
         public ActionResult GetColumnList()
18
         public ActionResult GetColumnList()
19
         {
19
         {
20
-            ActionResult res = NoToken("未知错误,请重新登录");
21
-
22
             String[] str = { "日期", "接通次数", "呼损次数", "接通率", "呼损率" };
20
             String[] str = { "日期", "接通次数", "呼损次数", "接通率", "呼损率" };
23
-            res = Success("获取接通呼损统计表头成功", str);
24
-
25
-            return res;
21
+            return Success("获取接通呼损统计表头成功", str);
26
         }
22
         }
27
 
23
 
28
         //获取数据
24
         //获取数据
29
-        public ActionResult GetDataList(string stime, string endtime, string dpt)
25
+        public ActionResult GetDataList(string stime, string endtime)
30
         {
26
         {
31
-            ActionResult res = NoToken("未知错误,请重新登录");
32
-
33
-            DataTable dtNew = new DataTable();
34
-            dtNew = GetData(stime, endtime, dpt);
35
-            #region
36
-
37
-            //#region 编辑表头
38
-            //DataColumn dc1 = new DataColumn("日期", Type.GetType("System.String"));
39
-            //DataColumn dc2 = new DataColumn("接通次数", Type.GetType("System.String"));
40
-            //DataColumn dc3 = new DataColumn("呼损次数", Type.GetType("System.String"));
41
-            //DataColumn dc4 = new DataColumn("接通率", Type.GetType("System.String"));
42
-            //DataColumn dc5 = new DataColumn("呼损率", Type.GetType("System.String"));
43
-
44
-            //dtNew.Columns.Add(dc1);
45
-            //dtNew.Columns.Add(dc2);
46
-            //dtNew.Columns.Add(dc3);
47
-            //dtNew.Columns.Add(dc4);
48
-            //dtNew.Columns.Add(dc5);
49
-            //#endregion
50
-            //string[] DataArr = GetStatisticalTime(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
51
-            //string[] CallConnectData = GetStatisticalCallConnectData(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
52
-            //string[] CallLossData = GetStatisticalCallLossData(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
53
-            //string[] CallConnectDataRate = GetStatisticalCallConnectDataRate(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
54
-            //string[] CallLossDataRate = GetStatisticalCallLossDataRate(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
55
-
56
-            //for (int i = 0; i < DataArr.Length; i++)
57
-            //{
58
-            //    DataRow drNew = dtNew.NewRow();
59
-
60
-            //    drNew["日期"] = DataArr[i];
61
-            //    drNew["接通次数"] = CallConnectData[i];
62
-            //    drNew["呼损次数"] = CallLossData[i];
63
-            //    drNew["接通率"] = CallConnectDataRate[i];
64
-            //    drNew["呼损率"] = CallLossDataRate[i];
65
 
27
 
66
-            //    dtNew.Rows.Add(drNew);
67
-            //}
68
-            #endregion
69
-            res = Success("获取接通呼损统计数据成功", dtNew);
28
+            if (Request.IsAuthenticated)
29
+            {
30
+                int userId = CurrentUser.UserData.F_UserId;
31
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
70
 
32
 
71
-            return res;
33
+                DataTable dtNew = new DataTable();
34
+                dtNew = GetData(stime, endtime, userModel.groupcode);
35
+                return Success("获取坐席满意度评价情况报表数据成功", dtNew);
36
+            }
37
+            return NoToken("未知错误,请重新登录");
72
         }
38
         }
73
 
39
 
74
         //导出数据
40
         //导出数据
75
-        public ActionResult ExptList(string stime, string endtime, string dpt)
41
+        public ActionResult ExptList(string stime, string endtime)
76
         {
42
         {
77
-            ActionResult res = NoToken("未知错误,请重新登录");
43
+
78
             if (Request.IsAuthenticated)
44
             if (Request.IsAuthenticated)
79
             {
45
             {
46
+                int userId = CurrentUser.UserData.F_UserId;
47
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
80
                 NPOIHelper npoi = new NPOIHelper();
48
                 NPOIHelper npoi = new NPOIHelper();
81
-                DataTable dt = GetData(stime, endtime, dpt);
49
+                DataTable dt = GetData(stime, endtime, userModel.groupcode);
82
                 if (npoi.ExportToExcel("接通呼损数据", dt) == "")
50
                 if (npoi.ExportToExcel("接通呼损数据", dt) == "")
83
                 {
51
                 {
84
                     return Success("导出成功");
52
                     return Success("导出成功");
88
                     return Error("导出失败");
56
                     return Error("导出失败");
89
                 }
57
                 }
90
             }
58
             }
91
-            return res;
59
+            return NoToken("未知错误,请重新登录");
92
         }
60
         }
93
 
61
 
94
         //获取数据源
62
         //获取数据源
145
             //    //result = (JTHS)item.Value.ToString();
113
             //    //result = (JTHS)item.Value.ToString();
146
             //    result += item.Key.ToString().TrimStart('{').TrimEnd('}') + ",";
114
             //    result += item.Key.ToString().TrimStart('{').TrimEnd('}') + ",";
147
             //}
115
             //}
148
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
116
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
149
             ArrayList arrList = new ArrayList(datares.Keys);
117
             ArrayList arrList = new ArrayList(datares.Keys);
150
             arrList.Sort();
118
             arrList.Sort();
151
             for (int i = 0; i < arrList.Count; i++)
119
             for (int i = 0; i < arrList.Count; i++)
170
             //{
138
             //{
171
             //    result += ((JTHS)item.Value).CallConnectCount + ",";
139
             //    result += ((JTHS)item.Value).CallConnectCount + ",";
172
             //}
140
             //}
173
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
141
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
174
             ArrayList arrList = new ArrayList(datares.Keys);
142
             ArrayList arrList = new ArrayList(datares.Keys);
175
             arrList.Sort();
143
             arrList.Sort();
176
             for (int i = 0; i < arrList.Count; i++)
144
             for (int i = 0; i < arrList.Count; i++)
195
             //{
163
             //{
196
             //    result += ((JTHS)item.Value).CallLossCount + ",";
164
             //    result += ((JTHS)item.Value).CallLossCount + ",";
197
             //}
165
             //}
198
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
166
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
199
             ArrayList arrList = new ArrayList(datares.Keys);
167
             ArrayList arrList = new ArrayList(datares.Keys);
200
             arrList.Sort();
168
             arrList.Sort();
201
             for (int i = 0; i < arrList.Count; i++)
169
             for (int i = 0; i < arrList.Count; i++)
220
             //{
188
             //{
221
             //    result += ((JTHS)item.Value).CallConnectRate.ToString("F2") + ",";
189
             //    result += ((JTHS)item.Value).CallConnectRate.ToString("F2") + ",";
222
             //}
190
             //}
223
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
191
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
224
             ArrayList arrList = new ArrayList(datares.Keys);
192
             ArrayList arrList = new ArrayList(datares.Keys);
225
             arrList.Sort();
193
             arrList.Sort();
226
             for (int i = 0; i < arrList.Count; i++)
194
             for (int i = 0; i < arrList.Count; i++)
242
         {
210
         {
243
             string result = "[";
211
             string result = "[";
244
 
212
 
245
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
213
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
246
             ArrayList arrList = new ArrayList(datares.Keys);
214
             ArrayList arrList = new ArrayList(datares.Keys);
247
             arrList.Sort();
215
             arrList.Sort();
248
             //foreach (DictionaryEntry item in GetStatistical(BeginTime, EndTime))
216
             //foreach (DictionaryEntry item in GetStatistical(BeginTime, EndTime))
289
                 endTime = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59");
257
                 endTime = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59");
290
             if (dpt != null && dpt.Trim() != "")
258
             if (dpt != null && dpt.Trim() != "")
291
             {
259
             {
292
-                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
260
+                //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
261
+                sql += " AND groupcode='" + dpt + "' ";
293
             }
262
             }
294
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
263
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
295
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
264
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";

+ 21 - 64
codegit/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
         //通话时长统计
29
         //获取数据
29
         //获取数据
30
         public ActionResult GetDataList(string stime, string endtime, string dpt)
30
         public ActionResult GetDataList(string stime, string endtime, string dpt)
31
         {
31
         {
32
-            ActionResult res = NoToken("未知错误,请重新登录");
33
-
34
-            DataTable dtNew = new DataTable();
35
-            dtNew = GetData(stime, endtime, dpt);
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);
32
+            if (Request.IsAuthenticated)
33
+            {
34
+                int userId = CurrentUser.UserData.F_UserId;
35
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
88
 
36
 
89
-            return res;
37
+                DataTable dtNew = new DataTable();
38
+                dtNew = GetData(stime, endtime, userModel.groupcode);
39
+                return Success("获取通话时长数据成功", dtNew);
40
+            }
41
+            return NoToken("未知错误,请重新登录");
90
         }
42
         }
91
 
43
 
92
         //导出数据
44
         //导出数据
93
         public ActionResult ExptList(string stime, string endtime, string dpt)
45
         public ActionResult ExptList(string stime, string endtime, string dpt)
94
         {
46
         {
95
-            ActionResult res = NoToken("未知错误,请重新登录");
47
+
96
             if (Request.IsAuthenticated)
48
             if (Request.IsAuthenticated)
97
             {
49
             {
50
+                int userId = CurrentUser.UserData.F_UserId;
51
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
98
                 NPOIHelper npoi = new NPOIHelper();
52
                 NPOIHelper npoi = new NPOIHelper();
99
-                DataTable dt = GetData(stime, endtime, dpt);
53
+                DataTable dt = GetData(stime, endtime, userModel.groupcode);
100
                 if (npoi.ExportToExcel("通话时长数据", dt) == "")
54
                 if (npoi.ExportToExcel("通话时长数据", dt) == "")
101
                 {
55
                 {
102
                     return Success("导出成功");
56
                     return Success("导出成功");
106
                     return Error("导出失败");
60
                     return Error("导出失败");
107
                 }
61
                 }
108
             }
62
             }
109
-            return res;
63
+            return NoToken("未知错误,请重新登录");
110
         }
64
         }
111
 
65
 
112
         //获取数据源
66
         //获取数据源
198
             }
152
             }
199
             if (dpt != null && dpt.Trim() != "")
153
             if (dpt != null && dpt.Trim() != "")
200
             {
154
             {
201
-                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
155
+                //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
156
+                sql += " AND groupcode='" + dpt + "' ";
202
             }
157
             }
203
             if (tag != "")
158
             if (tag != "")
204
             {
159
             {
311
             }
266
             }
312
             if (dpt != null && dpt.Trim() != "")
267
             if (dpt != null && dpt.Trim() != "")
313
             {
268
             {
314
-                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
269
+                //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
270
+                sql += " AND groupcode='" + dpt + "' ";
315
             }
271
             }
316
             //DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
272
             //DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
317
             //var recordstr = " select users.F_UserId,users.F_UserCode,users.F_UserName,COUNT(*) AS calloutCount from T_Sys_UserAccount users right join T_Call_CallRecords records on users.F_UserCode = records.UserCode and 1=1 " + sql + " GROUP BY users.F_UserId,users.F_UserCode,users.F_UserName";
273
             //var recordstr = " select users.F_UserId,users.F_UserCode,users.F_UserName,COUNT(*) AS calloutCount from T_Sys_UserAccount users right join T_Call_CallRecords records on users.F_UserCode = records.UserCode and 1=1 " + sql + " GROUP BY users.F_UserId,users.F_UserCode,users.F_UserName";
364
             }
320
             }
365
             if (dpt != null && dpt.Trim() != "")
321
             if (dpt != null && dpt.Trim() != "")
366
             {
322
             {
367
-                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
323
+                //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
324
+                sql += " AND groupcode='" + dpt + "' ";
368
             }
325
             }
369
             //只统计呼入振铃时长
326
             //只统计呼入振铃时长
370
             sql += " and CallType=0 ";
327
             sql += " and CallType=0 ";

+ 24 - 19
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TotalCallController.cs

19
         //获取表头
19
         //获取表头
20
         public ActionResult GetColumnList()
20
         public ActionResult GetColumnList()
21
         {
21
         {
22
-            ActionResult res = NoToken("未知错误,请重新登录");
23
             if (Request.IsAuthenticated)
22
             if (Request.IsAuthenticated)
24
             {
23
             {
25
                 String[] str = { "月份", "日期", "总数" };
24
                 String[] str = { "月份", "日期", "总数" };
26
-                res = Success("获取总呼叫量统计表头成功", str);
25
+                return Success("获取总呼叫量统计表头成功", str);
27
             }
26
             }
28
-            return res;
27
+            return NoToken("未知错误,请重新登录");
29
         }
28
         }
30
 
29
 
31
         //获取数据
30
         //获取数据
32
-        public ActionResult GetDataList(string years, string dpt)
31
+        public ActionResult GetDataList(string years)
33
         {
32
         {
34
-            ActionResult res = NoToken("未知错误,请重新登录");
35
             if (Request.IsAuthenticated)
33
             if (Request.IsAuthenticated)
36
             {
34
             {
35
+                int userId = CurrentUser.UserData.F_UserId;
36
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
37
+
37
                 DataTable dtNew = new DataTable();
38
                 DataTable dtNew = new DataTable();
38
                 #region
39
                 #region
39
                 DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
40
                 DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
47
                 dtNew.Columns.Add(dc4);
48
                 dtNew.Columns.Add(dc4);
48
                 #endregion
49
                 #endregion
49
                 var sql = "";
50
                 var sql = "";
50
-                if (dpt != null && dpt.Trim() != "")
51
+                if (string.IsNullOrEmpty(userModel.groupcode))
51
                 {
52
                 {
52
-                    sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
53
+                    //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
54
+                    sql += " AND groupcode='" + userModel.groupcode + "' ";
53
                 }
55
                 }
54
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
56
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
55
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
57
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
120
                     dtNew.Rows.Add(drzj);
122
                     dtNew.Rows.Add(drzj);
121
                 }
123
                 }
122
 
124
 
123
-                res = Success("获取呼叫量数据成功", dtNew);
125
+                return Success("获取呼叫量数据成功", dtNew);
124
             }
126
             }
125
-            return res;
127
+            return NoToken("未知错误,请重新登录");
126
         }
128
         }
127
 
129
 
128
         private DataTable GetData(string years, string dpt)
130
         private DataTable GetData(string years, string dpt)
139
                 dtNew.Columns.Add(dc3);
141
                 dtNew.Columns.Add(dc3);
140
                 #endregion
142
                 #endregion
141
                 var sql = "";
143
                 var sql = "";
142
-                if (dpt != null && dpt.Trim() != "")
144
+                if (string.IsNullOrEmpty(dpt))
143
                 {
145
                 {
144
-                    sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
146
+                    //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
147
+                    sql += " AND groupcode='" + dpt + "' ";
145
                 }
148
                 }
146
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
149
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
147
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
150
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
214
             return dtNew;
217
             return dtNew;
215
         }
218
         }
216
 
219
 
217
-        public ActionResult ExptList(string years, string dpt)
220
+        public ActionResult ExptList(string years)
218
         {
221
         {
219
-            ActionResult res = NoToken("未知错误,请重新登录");
220
             if (Request.IsAuthenticated)
222
             if (Request.IsAuthenticated)
221
             {
223
             {
224
+                int userId = CurrentUser.UserData.F_UserId;
225
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
226
+
222
                 NPOIHelper npoi = new NPOIHelper();
227
                 NPOIHelper npoi = new NPOIHelper();
223
-                DataTable dt = GetData(years, dpt);
228
+                DataTable dt = GetData(years, userModel.groupcode);
224
                 if (npoi.ExportToExcel("总呼叫量数据", dt) == "")
229
                 if (npoi.ExportToExcel("总呼叫量数据", dt) == "")
225
                 {
230
                 {
226
                     return Success("导出成功");
231
                     return Success("导出成功");
230
                     return Error("导出失败");
235
                     return Error("导出失败");
231
                 }
236
                 }
232
             }
237
             }
233
-            return res;
238
+            return NoToken("未知错误,请重新登录");
234
         }
239
         }
235
 
240
 
236
         //获取图形数据
241
         //获取图形数据
237
         public ActionResult GetChartData(string years, string dpt)
242
         public ActionResult GetChartData(string years, string dpt)
238
         {
243
         {
239
-            ActionResult res = NoToken("未知错误,请重新登录");
240
             if (Request.IsAuthenticated)
244
             if (Request.IsAuthenticated)
241
             {
245
             {
242
                 string[] arr=new string[12];
246
                 string[] arr=new string[12];
243
                 var sql = "";
247
                 var sql = "";
244
                 if (dpt != null && dpt.Trim() != "")
248
                 if (dpt != null && dpt.Trim() != "")
245
                 {
249
                 {
246
-                    sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
250
+                    //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
251
+                    sql += " AND groupcode='" + dpt + "' ";
247
                 }
252
                 }
248
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
253
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
249
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
254
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
276
                     }
281
                     }
277
                 }
282
                 }
278
 
283
 
279
-                res = Success("获取呼叫量图形数据成功", arr);
284
+                return Success("获取呼叫量图形数据成功", arr);
280
             }
285
             }
281
-            return res;
286
+            return NoToken("未知错误,请重新登录");
282
         }
287
         }
283
     }
288
     }
284
 }
289
 }

+ 43 - 35
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/YearContrastController.cs

11
 
11
 
12
 namespace CallCenterApi.Interface.Controllers.report
12
 namespace CallCenterApi.Interface.Controllers.report
13
 {
13
 {
14
-    //[Authority]
14
+    [Authority]
15
     public class YearContrastController : BaseController
15
     public class YearContrastController : BaseController
16
     {
16
     {
17
         //呼叫数据对比
17
         //呼叫数据对比
18
-        public ActionResult GetDataList(string beginyear,string endyear, string dpt)
18
+        public ActionResult GetDataList(string beginyear,string endyear)
19
         {
19
         {
20
-            ActionResult res = NoToken("未知错误,请重新登录");
21
-         
20
+            if (Request.IsAuthenticated)
21
+            {
22
+                int userId = CurrentUser.UserData.F_UserId;
23
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
24
+
22
                 ArrayList arrlist = new ArrayList();
25
                 ArrayList arrlist = new ArrayList();
23
-                
26
+
24
                 if (beginyear != null && beginyear.Trim() != "")
27
                 if (beginyear != null && beginyear.Trim() != "")
25
                 {
28
                 {
26
                     var data = new
29
                     var data = new
27
                     {
30
                     {
28
                         key = beginyear + "客户呼叫数",
31
                         key = beginyear + "客户呼叫数",
29
-                        value = GetKhCall(beginyear, dpt).TrimEnd(',').Split(','),
32
+                        value = GetKhCall(beginyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
30
                         type = 0
33
                         type = 0
31
                     };
34
                     };
32
                     arrlist.Add(data);
35
                     arrlist.Add(data);
34
                     var data1 = new
37
                     var data1 = new
35
                     {
38
                     {
36
                         key = beginyear + "坐席接听数",
39
                         key = beginyear + "坐席接听数",
37
-                        value = GetZxJt(beginyear, dpt).TrimEnd(',').Split(','),
40
+                        value = GetZxJt(beginyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
38
                         type = 0
41
                         type = 0
39
                     };
42
                     };
40
                     arrlist.Add(data1);
43
                     arrlist.Add(data1);
42
                     var data2 = new
45
                     var data2 = new
43
                     {
46
                     {
44
                         key = beginyear + "接通率",
47
                         key = beginyear + "接通率",
45
-                        value = GetJTL(beginyear, dpt).TrimEnd(',').Split(','),
48
+                        value = GetJTL(beginyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
46
                         type = 0
49
                         type = 0
47
                     };
50
                     };
48
                     arrlist.Add(data2);
51
                     arrlist.Add(data2);
52
                     var data = new
55
                     var data = new
53
                     {
56
                     {
54
                         key = endyear + "客户呼叫数",
57
                         key = endyear + "客户呼叫数",
55
-                        value = GetKhCall(endyear, dpt).TrimEnd(',').Split(','),
58
+                        value = GetKhCall(endyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
56
                         type = 1
59
                         type = 1
57
                     };
60
                     };
58
                     arrlist.Add(data);
61
                     arrlist.Add(data);
60
                     var data1 = new
63
                     var data1 = new
61
                     {
64
                     {
62
                         key = endyear + "坐席接听数",
65
                         key = endyear + "坐席接听数",
63
-                        value = GetZxJt(endyear, dpt).TrimEnd(',').Split(','),
66
+                        value = GetZxJt(endyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
64
                         type = 1
67
                         type = 1
65
                     };
68
                     };
66
                     arrlist.Add(data1);
69
                     arrlist.Add(data1);
68
                     var data2 = new
71
                     var data2 = new
69
                     {
72
                     {
70
                         key = endyear + "接通率",
73
                         key = endyear + "接通率",
71
-                        value = GetJTL(endyear, dpt).TrimEnd(',').Split(','),
74
+                        value = GetJTL(endyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
72
                         type = 1
75
                         type = 1
73
                     };
76
                     };
74
                     arrlist.Add(data2);
77
                     arrlist.Add(data2);
75
                 }
78
                 }
76
-                
77
-                res = Success("获取呼叫数据分析数据成功", arrlist);
78
-      
79
-            return res;
79
+
80
+                return Success("获取呼叫数据分析数据成功", arrlist);
81
+            }
82
+            return NoToken("未知错误,请重新登录");
80
         }
83
         }
81
 
84
 
82
         //导出数据
85
         //导出数据
83
-        public ActionResult ExptList(string beginyear, string endyear, string dpt)
86
+        public ActionResult ExptList(string beginyear, string endyear)
84
         {
87
         {
85
-            NPOIHelper npoi = new NPOIHelper();
86
-            DataTable dt = GetData(beginyear, endyear, dpt);
87
-            if (npoi.ExportToExcel("呼叫数据分析数据", dt) == "")
88
-            {
89
-                return Success("导出成功");
90
-            }
91
-            else
88
+            if (Request.IsAuthenticated)
92
             {
89
             {
93
-                return Error("导出失败");
90
+                int userId = CurrentUser.UserData.F_UserId;
91
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
92
+                NPOIHelper npoi = new NPOIHelper();
93
+                DataTable dt = GetData(beginyear, endyear, userModel.F_SeartGroupID.Value);
94
+                if (npoi.ExportToExcel("呼叫数据分析数据", dt) == "")
95
+                {
96
+                    return Success("导出成功");
97
+                }
98
+                else
99
+                {
100
+                    return Error("导出失败");
101
+                }
94
             }
102
             }
95
-
103
+            return NoToken("未知错误,请重新登录");
96
         }
104
         }
97
 
105
 
98
-        private DataTable GetData(string beginyear, string endyear, string dpt)
106
+        private DataTable GetData(string beginyear, string endyear, int dpt)
99
         {
107
         {
100
             DataTable dtNew = new DataTable();
108
             DataTable dtNew = new DataTable();
101
             if ((beginyear != null && beginyear.Trim() != "")&&(endyear != null && endyear.Trim() != ""))
109
             if ((beginyear != null && beginyear.Trim() != "")&&(endyear != null && endyear.Trim() != ""))
143
         }
151
         }
144
 
152
 
145
         //客户呼叫数
153
         //客户呼叫数
146
-        private string GetKhCall(string strtime, string dpt)
154
+        private string GetKhCall(string strtime, int dpt)
147
         {
155
         {
148
             DataTable dt = new DataTable();
156
             DataTable dt = new DataTable();
149
             string str = "";
157
             string str = "";
156
                     strmm = "0" + i;
164
                     strmm = "0" + i;
157
                 }
165
                 }
158
                 //2018-07-06 lihai 部门搜索条件
166
                 //2018-07-06 lihai 部门搜索条件
159
-                if (!string.IsNullOrEmpty(dpt))
167
+                if (dpt!=0)
160
                 {
168
                 {
161
-                    sqltimeCallRecords += $" and AgentID IN (SELECT F_UserCode FROM T_Sys_UserAccount where f_seatFlag=1 and F_WorkNumber!='' and F_DeptId={dpt}) ";
169
+                    sqltimeCallRecords += $" and AgentID IN (SELECT F_UserCode FROM T_Sys_UserAccount where f_seatFlag=1 and F_WorkNumber!='' and F_SeartGroupID={dpt}) ";
162
                 }
170
                 }
163
                 if (strtime != "")
171
                 if (strtime != "")
164
                 {
172
                 {
191
         }
199
         }
192
 
200
 
193
         //坐席接听数
201
         //坐席接听数
194
-        private string GetZxJt(string strtime, string dpt)
202
+        private string GetZxJt(string strtime, int dpt)
195
         {
203
         {
196
             DataTable dt = new DataTable();
204
             DataTable dt = new DataTable();
197
             string str = "";
205
             string str = "";
204
                     strmm = "0" + i;
212
                     strmm = "0" + i;
205
                 }
213
                 }
206
                 //2018-07-06 lihai 部门搜索条件
214
                 //2018-07-06 lihai 部门搜索条件
207
-                if (!string.IsNullOrEmpty(dpt))
215
+                if (dpt != 0)
208
                 {
216
                 {
209
-                    sqltimeCallRecords += " and AgentID='" + dpt + "' ";
217
+                    sqltimeCallRecords += $" and AgentID IN (SELECT F_UserCode FROM T_Sys_UserAccount where f_seatFlag=1 and F_WorkNumber!='' and F_SeartGroupID={dpt}) ";
210
                 }
218
                 }
211
                 if (strtime != "")
219
                 if (strtime != "")
212
                 {
220
                 {
239
         }
247
         }
240
 
248
 
241
         //坐席接听率
249
         //坐席接听率
242
-        private string GetJTL(string strtime, string dpt)
250
+        private string GetJTL(string strtime, int dpt)
243
         {
251
         {
244
             DataTable dt = new DataTable();
252
             DataTable dt = new DataTable();
245
             string str = "";
253
             string str = "";
252
                     strmm = "0" + i;
260
                     strmm = "0" + i;
253
                 }
261
                 }
254
                 //2018-07-06 lihai 部门搜索条件
262
                 //2018-07-06 lihai 部门搜索条件
255
-                if (!string.IsNullOrEmpty(dpt))
263
+                if (dpt != 0)
256
                 {
264
                 {
257
-                    sqltimeCallRecords += " and AgentID='" + dpt + "' ";
265
+                    sqltimeCallRecords += $" and AgentID IN (SELECT F_UserCode FROM T_Sys_UserAccount where f_seatFlag=1 and F_WorkNumber!='' and F_SeartGroupID={dpt}) ";
258
                 }
266
                 }
259
                 if (strtime != "")
267
                 if (strtime != "")
260
                 {
268
                 {

+ 20 - 20
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiManYiDuController.cs

12
     public class ZuoXiManYiDuController : BaseController
12
     public class ZuoXiManYiDuController : BaseController
13
     {
13
     {
14
         //// GET: ZuoXiManYiDu
14
         //// GET: ZuoXiManYiDu
15
-        //public ActionResult Index()
16
-        //{
17
-        //    return View();
18
-        //}
19
 
15
 
20
         //坐席满意度
16
         //坐席满意度
21
         //获取表头
17
         //获取表头
22
         public ActionResult GetColumnList()
18
         public ActionResult GetColumnList()
23
         {
19
         {
24
-            ActionResult res = NoToken("未知错误,请重新登录");
25
 
20
 
26
             String[] str = { "坐席姓名", "非常满意", "非常满意占比", "基本满意", "基本满意占比", "不满意", "不满意占比", "未评价", "未评价占比" };
21
             String[] str = { "坐席姓名", "非常满意", "非常满意占比", "基本满意", "基本满意占比", "不满意", "不满意占比", "未评价", "未评价占比" };
27
-            res = Success("获取坐席满意度评价情况报表表头成功", str);
28
-            return res;
22
+            return Success("获取坐席满意度评价情况报表表头成功", str);
23
+
29
         }
24
         }
30
         //获取数据
25
         //获取数据
31
-        public ActionResult GetDataList(string stime, string endtime, string dpt)
26
+        public ActionResult GetDataList(string stime, string endtime)
32
         {
27
         {
33
-            ActionResult res = NoToken("未知错误,请重新登录");
28
+            if (Request.IsAuthenticated)
29
+            {
30
+                int userId = CurrentUser.UserData.F_UserId;
31
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
34
 
32
 
35
-            DataTable dtNew = new DataTable();
36
-            dtNew = getData(stime, endtime, dpt);
37
-            res = Success("获取坐席满意度评价情况报表数据成功", dtNew);
38
-            return res;
33
+                DataTable dtNew = new DataTable();
34
+                dtNew = getData(stime, endtime, userModel.F_SeartGroupID.Value);
35
+                return Success("获取坐席满意度评价情况报表数据成功", dtNew);
36
+            }
37
+            return NoToken("未知错误,请重新登录");
39
         }
38
         }
40
 
39
 
41
         //导出数据
40
         //导出数据
42
-        public ActionResult ExptList(string stime, string endtime, string dpt)
41
+        public ActionResult ExptList(string stime, string endtime)
43
         {
42
         {
44
-            ActionResult res = NoToken("未知错误,请重新登录");
45
             if (Request.IsAuthenticated)
43
             if (Request.IsAuthenticated)
46
             {
44
             {
45
+                int userId = CurrentUser.UserData.F_UserId;
46
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
47
                 NPOIHelper npoi = new NPOIHelper();
47
                 NPOIHelper npoi = new NPOIHelper();
48
-                DataTable dt = getData(stime, endtime, dpt);
48
+                DataTable dt = getData(stime, endtime, userModel.F_SeartGroupID.Value);
49
                 if (npoi.ExportToExcel("坐席满意度评价情况", dt) == "")
49
                 if (npoi.ExportToExcel("坐席满意度评价情况", dt) == "")
50
                 {
50
                 {
51
                     return Success("导出成功");
51
                     return Success("导出成功");
55
                     return Error("导出失败");
55
                     return Error("导出失败");
56
                 }
56
                 }
57
             }
57
             }
58
-            return res;
58
+            return NoToken("未知错误,请重新登录");
59
         }
59
         }
60
 
60
 
61
-        private DataTable getData(string stime, string endtime, string dpt)
61
+        private DataTable getData(string stime, string endtime, int dpt)
62
         {
62
         {
63
             DataTable dtNew = new DataTable();
63
             DataTable dtNew = new DataTable();
64
             #region
64
             #region
100
 
100
 
101
             //2018-07-06 lihai 部门搜索条件
101
             //2018-07-06 lihai 部门搜索条件
102
             var sqldtable = "";
102
             var sqldtable = "";
103
-            if (!string.IsNullOrEmpty(dpt))
103
+            if (dpt != 0)
104
             {
104
             {
105
-                sqldtable += $" and F_DeptId = {dpt}";
105
+                sqldtable += " and F_SeartGroupID = '" + dpt + "' ";
106
             }
106
             }
107
             DataTable dtable = new BLL.T_Sys_UserAccount().GetList($"F_DeleteFlag=0 {sqldtable}").Tables[0];
107
             DataTable dtable = new BLL.T_Sys_UserAccount().GetList($"F_DeleteFlag=0 {sqldtable}").Tables[0];
108
             int allcount = dtable.Rows.Count;
108
             int allcount = dtable.Rows.Count;

+ 25 - 162
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiTongHuaController.cs

17
         //获取表头
17
         //获取表头
18
         public ActionResult GetColumnList()
18
         public ActionResult GetColumnList()
19
         {
19
         {
20
-            ActionResult res = NoToken("未知错误,请重新登录");
21
-           
20
+            if (Request.IsAuthenticated)
21
+            {
22
+
22
                 String[] str = { "坐席人员", "通话总时长(小时)", "呼出通话总时长(小时)"
23
                 String[] str = { "坐席人员", "通话总时长(小时)", "呼出通话总时长(小时)"
23
                         , "呼出通话占比", "呼入通话总时长", "呼入通话占比"
24
                         , "呼出通话占比", "呼入通话总时长", "呼入通话占比"
24
                         ,"平均日呼入通话时长(小时)","平均日呼出通话时长(小时)"
25
                         ,"平均日呼入通话时长(小时)","平均日呼出通话时长(小时)"
25
                 };
26
                 };
26
 
27
 
27
-                res = Success("获取坐席日通话时长统计表头成功", str);
28
+                return Success("获取坐席日通话时长统计表头成功", str);
28
 
29
 
29
-     
30
-            return res;
30
+            }
31
+            return NoToken("未知错误,请重新登录");
31
         }
32
         }
32
         //获取数据
33
         //获取数据
33
-        public ActionResult GetDataList(string stime, string endtime, string dpt)
34
+        public ActionResult GetDataList(string stime, string endtime)
34
         {
35
         {
35
-            ActionResult res = NoToken("未知错误,请重新登录");
36
-         
37
-                DataTable dtNew = new DataTable();
38
-                dtNew = getData(stime, endtime, dpt);
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];
93
-
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;
137
-
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");
36
+            if (Request.IsAuthenticated)
37
+            {
38
+                int userId = CurrentUser.UserData.F_UserId;
39
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
154
 
40
 
155
-                //    dtNew.Rows.Add(drNew);
156
-                //}
41
+                DataTable dtNew = new DataTable();
42
+                dtNew = getData(stime, endtime, userModel.F_SeartGroupID.Value);
157
 
43
 
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;
44
+                return Success("获取坐席日通话时长统计数据成功", dtNew);
45
+            }
46
+            return NoToken("未知错误,请重新登录");
186
         }
47
         }
187
 
48
 
188
         //导出数据
49
         //导出数据
189
-        public ActionResult ExptList(string stime, string endtime, string dpt)
50
+        public ActionResult ExptList(string stime, string endtime)
190
         {
51
         {
191
-            ActionResult res = NoToken("未知错误,请重新登录");
192
             if (Request.IsAuthenticated)
52
             if (Request.IsAuthenticated)
193
             {
53
             {
54
+                int userId = CurrentUser.UserData.F_UserId;
55
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
56
+
194
                 NPOIHelper npoi = new NPOIHelper();
57
                 NPOIHelper npoi = new NPOIHelper();
195
-                DataTable dt = getData(stime, endtime, dpt);
58
+                DataTable dt = getData(stime, endtime, userModel.F_SeartGroupID.Value);
196
                 if (npoi.ExportToExcel("坐席日通话时长数据", dt) == "")
59
                 if (npoi.ExportToExcel("坐席日通话时长数据", dt) == "")
197
                 {
60
                 {
198
                     return Success("导出成功");
61
                     return Success("导出成功");
202
                     return Error("导出失败");
65
                     return Error("导出失败");
203
                 }
66
                 }
204
             }
67
             }
205
-            return res;
68
+            return NoToken("未知错误,请重新登录");
206
         }
69
         }
207
 
70
 
208
         /// <summary>
71
         /// <summary>
211
         /// <param name="stime"></param>
74
         /// <param name="stime"></param>
212
         /// <param name="endtime"></param>
75
         /// <param name="endtime"></param>
213
         /// <returns></returns>
76
         /// <returns></returns>
214
-        private DataTable getData(string stime, string endtime, string dpt)
77
+        private DataTable getData(string stime, string endtime, int dpt)
215
         {
78
         {
216
             DataTable dtNew = new DataTable();
79
             DataTable dtNew = new DataTable();
217
             #region
80
             #region
260
             //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 ";
123
             //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 ";
261
             //2018-07-06 lihai 部门搜索条件
124
             //2018-07-06 lihai 部门搜索条件
262
             var sqlUser = "";
125
             var sqlUser = "";
263
-            if (!string.IsNullOrEmpty(dpt))
126
+            if (dpt != 0)
264
             {
127
             {
265
-                sqlUser += $" AND F_DeptId = {dpt} ";
128
+                sqlUser += " and F_SeartGroupID = '" + dpt + "' ";
266
             }
129
             }
267
             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_seatFlag=1 and F_WorkNumber!='' " + sqlUser + " order by counts desc ";
130
             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_seatFlag=1 and F_WorkNumber!='' " + sqlUser + " order by counts desc ";
268
             dt = DbHelperSQL.Query(sql).Tables[0];
131
             dt = DbHelperSQL.Query(sql).Tables[0];

+ 211 - 576
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiWorkTotalController.cs

16
         //获取表头
16
         //获取表头
17
         public ActionResult GetColumnList()
17
         public ActionResult GetColumnList()
18
         {
18
         {
19
-            ActionResult res = NoToken("未知错误,请重新登录");
20
-            
21
-                String[] str = { "部门", "坐席", "坐席工号", "呼入电话数", "坐席接通量", "呼损量"
19
+            if (Request.IsAuthenticated)
20
+            {
21
+
22
+                String[] str = //{ "部门", "坐席", "坐席工号", "呼入电话数", "坐席接通量", "呼损量"
23
+                        { "坐席", "坐席工号", "呼入电话数", "坐席接通量", "呼损量"
22
                         ,"接通率","呼损率","平均排队时间","接听通话次数","通话分钟数","通话秒数"
24
                         ,"接通率","呼损率","平均排队时间","接听通话次数","通话分钟数","通话秒数"
23
                         ,"平均接听通话秒数","平均振铃秒数","呼入占有率","用户评价","坐席登录次数"
25
                         ,"平均接听通话秒数","平均振铃秒数","呼入占有率","用户评价","坐席登录次数"
24
                         ,"登录时长分钟数","工作时长分钟数","平均每天工作时长(小时)","平均操作分钟数"
26
                         ,"登录时长分钟数","工作时长分钟数","平均每天工作时长(小时)","平均操作分钟数"
25
                         ,"置忙次数","休息时长分钟数","平均每天休息时长(小时)"
27
                         ,"置忙次数","休息时长分钟数","平均每天休息时长(小时)"
26
                         ,"置忙平均休息分钟数","质检平均成绩"
28
                         ,"置忙平均休息分钟数","质检平均成绩"
27
                 };
29
                 };
28
-                res = Success("获取坐席工作统计表头成功", str);
29
-         
30
-            return res;
30
+                return Success("获取坐席工作统计表头成功", str);
31
+            }
32
+            return NoToken("未知错误,请重新登录");
31
         }
33
         }
32
 
34
 
33
         //获取数据
35
         //获取数据
34
-        public ActionResult GetDataList(string stime,string endtime,string dpt,string dayss)
36
+        public ActionResult GetDataList(string stime, string endtime,  string dayss)
35
         {
37
         {
36
-            ActionResult res = NoToken("未知错误,请重新登录");
37
-         
38
-                DataTable dtNew = new DataTable();
39
-                dtNew = getData(stime, endtime, dpt, dayss);
40
-                #region
41
-                //#region
42
-                //DataColumn dc1 = new DataColumn("部门");
43
-                //DataColumn dc2 = new DataColumn("坐席");
44
-                //DataColumn dc3 = new DataColumn("坐席工号");
45
-                //DataColumn dc4 = new DataColumn("呼入电话数");
46
-                //DataColumn dc5 = new DataColumn("坐席接通量");
47
-                //DataColumn dc6 = new DataColumn("呼损量");
48
-                //DataColumn dc7 = new DataColumn("接通率");
49
-                //DataColumn dc8 = new DataColumn("呼损率");
50
-                //DataColumn dc9 = new DataColumn("平均排队时间");
51
-                //DataColumn dc10 = new DataColumn("接听通话次数");
52
-                //DataColumn dc11 = new DataColumn("通话分钟数");
53
-                //DataColumn dc12 = new DataColumn("通话秒数");
54
-                //DataColumn dc13 = new DataColumn("平均接听通话秒数");
55
-                //DataColumn dc14 = new DataColumn("平均振铃秒数");
56
-                //DataColumn dc15 = new DataColumn("呼入占有率");
57
-                //DataColumn dc16 = new DataColumn("用户评价");
58
-                //DataColumn dc17 = new DataColumn("坐席登录次数");
59
-                //DataColumn dc18 = new DataColumn("登录时长分钟数");
60
-                //DataColumn dc19 = new DataColumn("工作时长分钟数");
61
-                //DataColumn dc20 = new DataColumn("平均每天工作时长");
62
-                //DataColumn dc21 = new DataColumn("平均操作分钟数");
63
-                //DataColumn dc22 = new DataColumn("置忙次数");
64
-                //DataColumn dc23 = new DataColumn("休息时长分钟数");
65
-                //DataColumn dc24 = new DataColumn("平均每天休息时长");
66
-                //DataColumn dc25 = new DataColumn("置忙平均休息分钟数");
67
-                //DataColumn dc26 = new DataColumn("质检平均成绩");
68
-
69
-                //dtNew.Columns.Add(dc1);
70
-                //dtNew.Columns.Add(dc2);
71
-                //dtNew.Columns.Add(dc3);
72
-                //dtNew.Columns.Add(dc4);
73
-                //dtNew.Columns.Add(dc5);
74
-                //dtNew.Columns.Add(dc6);
75
-                //dtNew.Columns.Add(dc7);
76
-                //dtNew.Columns.Add(dc8);
77
-                //dtNew.Columns.Add(dc9);
78
-                //dtNew.Columns.Add(dc10);
79
-                //dtNew.Columns.Add(dc11);
80
-                //dtNew.Columns.Add(dc12);
81
-                //dtNew.Columns.Add(dc13);
82
-                //dtNew.Columns.Add(dc14);
83
-                //dtNew.Columns.Add(dc15);
84
-                //dtNew.Columns.Add(dc16);
85
-                //dtNew.Columns.Add(dc17);
86
-                //dtNew.Columns.Add(dc18);
87
-                //dtNew.Columns.Add(dc19);
88
-                //dtNew.Columns.Add(dc20);
89
-                //dtNew.Columns.Add(dc21);
90
-                //dtNew.Columns.Add(dc22);
91
-                //dtNew.Columns.Add(dc23);
92
-                //dtNew.Columns.Add(dc24);
93
-                //dtNew.Columns.Add(dc25);
94
-                //dtNew.Columns.Add(dc26);
95
-                //#endregion
96
-                //int days = 30;
97
-                //string sqltimeCallRecords = "";
98
-                //string strsqlcall = "";
99
-                //if (stime != null && stime.Trim() != "")
100
-                //{
101
-                //    sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
102
-                //    strsqlcall += " and CONVERT(varchar , BeginTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
103
-                //}
104
-                //if (endtime != null && endtime.Trim() != "")
105
-                //{
106
-                //    sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
107
-                //    strsqlcall += " and CONVERT(varchar , BeginTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
108
-                //}
109
-                //if (dayss != null && dayss.Trim() != "")
110
-                //{
111
-                //    days = int.Parse(dayss.Trim());
112
-                //}
113
-                //#region
114
-                //int ijtcs = 0;//接听通话次数 
115
-                //int ithms = 0;//通话秒数
116
-                //int izlms = 0;//振铃秒数
117
-                //int ipjjtms = 0;//平均接听秒数
118
-                //int ipjzlms = 0;//平均振铃秒数
119
-                //double ihrzyl = 0.00;//呼入占有率
120
-                //int izxdlcs = 0;//坐席登录次数
121
-                //int idlsc = 0;//登录时长
122
-                //int iWorktime = 0;//工作时长
123
-                //int izmcs = 0;//置忙次数
124
-                //int ixxsc = 0;//休息时长
125
-                //int ipjczsc = 0;//平均操作时长
126
-                //int ipjzmxxsc = 0;//平均置忙休息时长
127
-
128
-
129
-                //int itrunkct = 0;//总数
130
-                //int itrunkjj = 0;//总接听
131
-                //int itrunkhs = 0;//呼损量
132
-                //int itrunkpjsc = 0;//平均排队时间
133
-                //double itrunkjtl = 0.00;//接通率
134
-                //double itrunkhsl = 0.00;//互损率
135
-                //double itrunkpjpd = 0.00;//平均排队
136
-                //#endregion
137
-                //DataTable dtdpt = null;
138
-                //if (dpt != null && dpt.Trim() != "")
139
-                //{
140
-                //    dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0 and F_DeptId=" + dpt).Tables[0];
141
-                //}
142
-                //else
143
-                //{
144
-                //    dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0").Tables[0];
145
-                //}
146
-                //if (dtdpt != null && dtdpt.Rows.Count > 0)
147
-                //{
148
-                //    foreach (DataRow dr in dtdpt.Rows)
149
-                //    {   
150
-                //        DataTable dt = new DataTable();
151
-                //        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";
152
-                //        dt = DbHelperSQL.Query(sql).Tables[0];
153
-                //        for (int i = 0; i < dt.Rows.Count; i++)
154
-                //        {
155
-                //            if (!string.IsNullOrEmpty(dt.Rows[i]["F_WorkNumber"].ToString()))
156
-                //            {
157
-                //                DataRow drNew = dtNew.NewRow();
158
-                //                drNew["部门"] = dr["F_DeptName"].ToString();
159
-                //                drNew["坐席"] = dt.Rows[i]["F_UserName"].ToString();
160
-                //                drNew["坐席工号"] = dt.Rows[i]["F_WorkNumber"].ToString();
161
-                //                if (i == 0)
162
-                //                {//呼入电话
163
-
164
-                //                    string strsql = "";
165
-                //                    if (stime != null && stime.Trim() != "")
166
-                //                    {
167
-                //                        strsql += " and CONVERT(varchar , TimeCallIn, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
168
-                //                    }
169
-                //                    if (endtime != null && endtime.Trim() != "")
170
-                //                    {
171
-                //                        strsql += " and CONVERT(varchar , TimeCallIn, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
172
-                //                    }
173
-
174
-                //                    DataTable dtTrunk = DbHelperSQL.Query("select COUNT(*) as ct,SUM(DATEDIFF(Second,timewantagent,timeconnected)) as dd from rep_trunk_call_in where AgentID='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsql).Tables[0];
175
-                //                    DataTable dtcall = DbHelperSQL.Query("select COUNT(*) as ct,(select COUNT(*) from T_Call_CallRecords where CallState=1 and CallType=0 and  UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall + ") as jt from T_Call_CallRecords where CallType=0 and UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall).Tables[0];
176
-
177
-                //                    if (dtcall != null && dtcall.Rows.Count > 0)
178
-                //                    {
179
-                //                        if (dtcall.Rows[0]["ct"].ToString() != "")
180
-                //                        {
181
-                //                            itrunkct = int.Parse(dtcall.Rows[0]["ct"].ToString());
182
-                //                        }
183
-                //                        else
184
-                //                        {
185
-                //                            itrunkct = 0;
186
-                //                        }
187
-                //                        if (dtcall.Rows[0]["jt"].ToString() != "")
188
-                //                        {
189
-                //                            itrunkjj = int.Parse(dtcall.Rows[0]["jt"].ToString());
190
-                //                        }
191
-                //                        else
192
-                //                        {
193
-                //                            itrunkjj = 0;
194
-                //                        }
195
-                //                        if (dtTrunk.Rows.Count > 0 && dtTrunk.Rows[0]["dd"].ToString() != "")
196
-                //                        {
197
-                //                            itrunkpjsc = int.Parse(dtTrunk.Rows[0]["dd"].ToString());
198
-                //                        }
199
-                //                        else
200
-                //                        {
201
-                //                            itrunkpjsc = 0;
202
-                //                        }
203
-                //                    }
204
-                //                    itrunkhs = itrunkct - itrunkjj;
205
-                //                    if (itrunkct != 0)
206
-                //                    {
207
-                //                        itrunkjtl = itrunkjj / double.Parse(itrunkct.ToString());
208
-                //                        itrunkhsl = itrunkhs / double.Parse(itrunkct.ToString());
209
-                //                        itrunkpjpd = itrunkpjsc / double.Parse(itrunkct.ToString());
210
-                //                    }
211
-                //                    else
212
-                //                    {
213
-                //                        itrunkjtl = 0.00;
214
-                //                        itrunkhsl = 0.00;
215
-                //                        itrunkpjpd = 0.00;
216
-                //                    }
217
-                //                    drNew["呼入电话数"] = itrunkct;
218
-                //                    drNew["坐席接通量"] = itrunkjj;
219
-                //                    drNew["呼损量"] = itrunkhs;
220
-                //                    drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
221
-                //                    drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
222
-                //                    drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
223
-
224
-                //                }
225
-                //                else
226
-                //                {
227
-                //                    drNew["呼入电话数"] = "0";
228
-                //                    drNew["坐席接通量"] = "0";
229
-                //                    drNew["呼损量"] = "0";
230
-                //                    drNew["接通率"] = "0.00" + "%";
231
-                //                    drNew["呼损率"] = "0.00" + "%";
232
-                //                    drNew["平均排队时间"] = "0.00";
233
-                //                }
234
-
235
-
236
-                //                DataTable dtext = DbHelperSQL.Query("select COUNT(*) as ct,SUM(PeriodTalking) as sc,SUM(PeriodAlerting) as pa from rep_ext_call_in where CalleeAgentID=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords).Tables[0];
237
-                //                DataTable dtCallEvey = DbHelperSQL.Query("select COUNT(*) as ct,SUM(TalkLongTime) as sc from T_Call_CallRecords where CallState=1 and  userid=" + dt.Rows[i]["F_UserId"] + " " + strsqlcall).Tables[0];
238
-                //                if (dtCallEvey != null && dtCallEvey.Rows.Count > 0)
239
-                //                {
240
-                //                    if (dtCallEvey.Rows[0]["ct"].ToString() != "")
241
-                //                    {
242
-                //                        ijtcs = int.Parse(dtCallEvey.Rows[0]["ct"].ToString());//接听次数
243
-                //                    }
244
-                //                    else
245
-                //                    {
246
-                //                        ijtcs = 0;
247
-                //                    }
248
-                //                    if (dtCallEvey.Rows[0]["sc"].ToString() != "")
249
-                //                    {
250
-                //                        ithms = int.Parse(dtCallEvey.Rows[0]["sc"].ToString());//通话秒数
251
-                //                    }
252
-                //                    else
253
-                //                    {
254
-                //                        ithms = 0;
255
-                //                    }
256
-                //                    if (dtext.Rows[0]["pa"].ToString() != "")
257
-                //                    {
258
-                //                        izlms = int.Parse(dtext.Rows[0]["pa"].ToString());//振铃秒数
259
-                //                    }
260
-                //                    else
261
-                //                    {
262
-                //                        izlms = 0;
263
-                //                    }
264
-                //                }
265
-                //                drNew["接听通话次数"] = ijtcs.ToString();
266
-                //                drNew["通话分钟数"] = (ithms / 60).ToString();
267
-                //                drNew["通话秒数"] = ithms.ToString();
268
-                                
269
-                //                if (ijtcs != 0)
270
-                //                {
271
-                //                    ipjjtms = ithms / ijtcs;//平均接通秒数
272
-                //                    ipjzlms = izlms / ijtcs;//平均振铃秒数
273
-                //                }
274
-                //                else
275
-                //                {
276
-                //                    ipjjtms = 0;//平均接通秒数
277
-                //                    ipjzlms = 0;//平均振铃秒数
278
-                //                }
279
-                //                drNew["平均接听通话秒数"] = ipjjtms.ToString();
280
-                //                drNew["平均振铃秒数"] = ipjzlms.ToString();
281
-                                
282
-                //                //坐席登录次数
283
-                //                DataTable dtAgent = DbHelperSQL.Query("select COUNT(*) as dl,SUM(LoginTimes) as dlsc,SUM(reposenum) as zm,SUM(ReposeTimes) as xx from rep_agent_detail where AgentId=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords.Replace("TimeAlerting", "TimeLogin")).Tables[0];
284
-                //                if (dtAgent != null && dtAgent.Rows.Count > 0)
285
-                //                {
286
-                //                    if (dtAgent.Rows[0]["dl"] != null && dtAgent.Rows[0]["dl"].ToString() != "")
287
-                //                    {
288
-                //                        izxdlcs = int.Parse(dtAgent.Rows[0]["dl"].ToString());//登录次数
289
-                //                    }
290
-                //                    else
291
-                //                    {
292
-                //                        izxdlcs = 0;
293
-                //                    }
294
-                //                    if (dtAgent.Rows[0]["dlsc"] != null && dtAgent.Rows[0]["dlsc"].ToString() != "")
295
-                //                    {
296
-                //                        idlsc = int.Parse(dtAgent.Rows[0]["dlsc"].ToString());//登录时长
297
-                //                    }
298
-                //                    else
299
-                //                    {
300
-                //                        idlsc = 0;
301
-                //                    }
302
-                //                    if (dtAgent.Rows[0]["zm"] != null && dtAgent.Rows[0]["zm"].ToString() != "")
303
-                //                    {
304
-                //                        izmcs = int.Parse(dtAgent.Rows[0]["zm"].ToString());//置忙次数
305
-                //                    }
306
-                //                    else
307
-                //                    {
308
-                //                        izmcs = 0;
309
-                //                    }
310
-                //                    if (dtAgent.Rows[0]["xx"] != null && dtAgent.Rows[0]["xx"].ToString() != "")
311
-                //                    {
312
-                //                        ixxsc = int.Parse(dtAgent.Rows[0]["xx"].ToString());//休息时长
313
-                //                    }
314
-                //                    else
315
-                //                    {
316
-                //                        ixxsc = 0;
317
-                //                    }
318
-
319
-                //                }
320
-                //                iWorktime = idlsc - ixxsc;//工作时长
321
-                //                if (izxdlcs != 0)
322
-                //                {
323
-                //                    ipjczsc = iWorktime / izxdlcs;//平均操作秒数
324
-                //                }
325
-                //                else
326
-                //                {
327
-                //                    ipjczsc = 0;
328
-                //                }
329
-                //                if (izmcs != 0)
330
-                //                {
331
-                //                    ipjzmxxsc = ixxsc / izmcs;//置忙平均操作时长
332
-                //                }
333
-                //                else
334
-                //                {
335
-                //                    ipjzmxxsc = 0;
336
-                //                }
337
-
338
-                //                //呼入占有率
339
-                //                if (iWorktime != 0)
340
-                //                {
341
-                //                    ihrzyl = ithms / Convert.ToDouble(iWorktime);
342
-                //                }
343
-                //                else
344
-                //                {
345
-                //                    ihrzyl = 0.00;
346
-                //                }
347
-                //                drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
348
-                //                //用户评价
38
+            if (Request.IsAuthenticated)
39
+            {
40
+                int userId = CurrentUser.UserData.F_UserId;
41
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
349
 
42
 
350
-                //                object obj = DbHelperSQL.GetSingle("select count(*) from T_Call_CallRecords where MYD is not null and CallState=1 and userid=" + dt.Rows[i]["F_UserId"] + strsqlcall);
351
-                //                string myd = "";
352
-                //                if (obj != null)
353
-                //                {
354
-                //                    myd = obj.ToString();
355
-                //                }
356
-                //                drNew["用户评价"] = myd;
357
-                //                drNew["坐席登录次数"] = izxdlcs.ToString();
358
-                //                drNew["登录时长分钟数"] = (idlsc / 60).ToString();
359
-                //                drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
360
-                //                drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
361
-                //                drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
362
-                //                drNew["置忙次数"] = izmcs.ToString();
363
-                //                drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
364
-                //                drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
365
-                //                drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
366
-                                
367
-                //                DataSet dszj = DbHelperSQL.Query("select convert(int,SUM(f_qcscore)) as fs,COUNT(*) as fsct from T_Call_CallRecords where F_QCState=1 and UserId=" + dt.Rows[i]["F_UserId"] + strsqlcall);
368
-                //                int zfs = 0;
369
-                //                if (dszj != null && dszj.Tables.Count > 0)
370
-                //                {
371
-                //                    DataTable dtzj = dszj.Tables[0];
372
-                //                    if (dtzj.Rows.Count > 0 && dtzj.Rows[0]["fs"].ToString() != "" && dtzj.Rows[0]["fsct"].ToString() != "")
373
-                //                    {
374
-                //                        zfs = Convert.ToInt32(dtzj.Rows[0]["fs"].ToString()) / int.Parse(dtzj.Rows[0]["fsct"].ToString());
375
-                //                    }
376
-                //                }
377
-                //                drNew["质检平均成绩"] = zfs.ToString();
43
+                DataTable dtNew = new DataTable();
44
+                dtNew = getData(stime, endtime, userModel.F_SeartGroupID.Value, dayss);
378
 
45
 
379
-                //                dtNew.Rows.Add(drNew);
380
-                //            }
381
-                //        }
382
-                //    }
383
-                //}
384
-                #endregion
385
-                res = Success("获取坐席工作统计数据成功", dtNew);
386
-         
387
-            return res;
46
+                return Success("获取坐席工作统计数据成功", dtNew);
47
+            }
48
+            return NoToken("未知错误,请重新登录");
388
         }
49
         }
389
 
50
 
390
         //导出数据
51
         //导出数据
391
-        public ActionResult ExptList(string stime, string endtime, string dpt, string dayss)
52
+        public ActionResult ExptList(string stime, string endtime, string dayss)
392
         {
53
         {
393
-            ActionResult res = NoToken("未知错误,请重新登录");
394
             if (Request.IsAuthenticated)
54
             if (Request.IsAuthenticated)
395
             {
55
             {
56
+                int userId = CurrentUser.UserData.F_UserId;
57
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
58
+
396
                 NPOIHelper npoi = new NPOIHelper();
59
                 NPOIHelper npoi = new NPOIHelper();
397
-                DataTable dt = getData(stime, endtime, dpt, dayss);
60
+                DataTable dt = getData(stime, endtime, userModel.F_SeartGroupID.Value, dayss);
398
                 if (npoi.ExportToExcel("坐席工作数据", dt) == "")
61
                 if (npoi.ExportToExcel("坐席工作数据", dt) == "")
399
                 {
62
                 {
400
                     return Success("导出成功");
63
                     return Success("导出成功");
404
                     return Error("导出失败");
67
                     return Error("导出失败");
405
                 }
68
                 }
406
             }
69
             }
407
-            return res;
70
+            return NoToken("未知错误,请重新登录");
408
         }
71
         }
409
 
72
 
410
-        private DataTable getData(string stime, string endtime, string dpt, string dayss)
73
+        private DataTable getData(string stime, string endtime, int dpt, string dayss)
411
         {
74
         {
412
             DataTable dtNew = new DataTable();
75
             DataTable dtNew = new DataTable();
413
             #region
76
             #region
506
             double itrunkhsl = 0.00;//互损率
169
             double itrunkhsl = 0.00;//互损率
507
             double itrunkpjpd = 0.00;//平均排队
170
             double itrunkpjpd = 0.00;//平均排队
508
             #endregion
171
             #endregion
509
-            DataTable dtdpt = null;
510
-            if (dpt != null && dpt.Trim() != "")
511
-            {
512
-                dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0 and F_DeptId=" + dpt).Tables[0];
513
-            }
514
-            else
172
+
173
+            string dptstr = string.Empty;
174
+            if (dpt!=0)
515
             {
175
             {
516
-                dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0").Tables[0];
176
+                dptstr += " and F_SeartGroupID = '" + dpt + "' ";
517
             }
177
             }
518
-            if (dtdpt != null && dtdpt.Rows.Count > 0)
519
-            {
520
-                //foreach (DataRow dr in dtdpt.Rows)
521
-                //{
522
-                    DataTable dt = new DataTable();
523
-                    //string sql = "SELECT F_UserCode,F_UserName,F_WorkNumber,F_UserId FROM T_Sys_UserAccount where f_seatFlag=1 and F_DeptId=" + dr["F_DeptId"] + " and F_WorkNumber!='' order by  F_WorkNumber asc";
524
-                    //20180509 部门筛选框不能用 (需要去掉一个客服组8000所在) machenyang
525
-                    var dptstr = "";
526
-                var dptname = "";
527
-                if (dtdpt.Rows.Count == 1) { 
528
-                    dptstr = " and F_DeptId="+dtdpt.Rows[0]["F_DeptId"];
529
-                    dptname = dtdpt.Rows[0]["F_DeptName"].ToString();
530
-                }
531
 
178
 
532
-                string sql = "SELECT F_UserCode,F_UserName,F_WorkNumber,F_UserId,F_DeptId FROM T_Sys_UserAccount where f_seatFlag=1 and F_WorkNumber!='' "+ dptstr + " order by  F_WorkNumber asc";
179
+            DataTable dt = new DataTable();
180
+
181
+                string sql = "SELECT F_UserCode,F_UserName,F_WorkNumber,F_UserId,F_DeptId FROM T_Sys_UserAccount where f_seatFlag=1 and F_WorkNumber!='' " + dptstr + " order by  F_WorkNumber asc";
533
                 dt = DbHelperSQL.Query(sql).Tables[0];
182
                 dt = DbHelperSQL.Query(sql).Tables[0];
534
                 var datadep = new BLL.T_Sys_Department().GetModelList("1=1");
183
                 var datadep = new BLL.T_Sys_Department().GetModelList("1=1");
535
-                    for (int i = 0; i < dt.Rows.Count; i++)
184
+                for (int i = 0; i < dt.Rows.Count; i++)
185
+                {
186
+                    if (!string.IsNullOrEmpty(dt.Rows[i]["F_WorkNumber"].ToString()))
536
                     {
187
                     {
537
-                        if (!string.IsNullOrEmpty(dt.Rows[i]["F_WorkNumber"].ToString()))
538
-                        {
539
-                            DataRow drNew = dtNew.NewRow();
540
-                            //drNew["部门"] = dr["F_DeptName"].ToString();
541
-                            drNew["部门"] = datadep.Where(p => p.F_DeptId == Int32.Parse(dt.Rows[i]["F_DeptId"].ToString())).Select(p => p.F_DeptName).ToList()[0].ToString();
542
-                            drNew["坐席"] = dt.Rows[i]["F_UserName"].ToString();
543
-                            drNew["坐席工号"] = dt.Rows[i]["F_WorkNumber"].ToString();
544
-                            //if (i == 0)
545
-                            {//呼入电话
188
+                        DataRow drNew = dtNew.NewRow();
546
 
189
 
547
-                                string strsql = "";
548
-                                if (stime != null && stime.Trim() != "")
549
-                                {
550
-                                    strsql += " and CONVERT(varchar , TimeCallIn, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
551
-                                }
552
-                                if (endtime != null && endtime.Trim() != "")
553
-                                {
554
-                                    strsql += " and CONVERT(varchar , TimeCallIn, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
555
-                                }
190
+                        //drNew["部门"] = datadep.Where(p => p.F_DeptId == Int32.Parse(dt.Rows[i]["F_DeptId"].ToString())).Select(p => p.F_DeptName).ToList()[0].ToString();
191
+                        drNew["坐席"] = dt.Rows[i]["F_UserName"].ToString();
192
+                        drNew["坐席工号"] = dt.Rows[i]["F_WorkNumber"].ToString();
556
 
193
 
557
-                                DataTable dtTrunk = DbHelperSQL.Query("select COUNT(*) as ct,SUM(DATEDIFF(Second,timewantagent,timeconnected)) as dd from rep_trunk_call_in where AgentID='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsql).Tables[0];
558
-                                DataTable dtcall = DbHelperSQL.Query("select COUNT(*) as ct,(select COUNT(*) from T_Call_CallRecords where CallState=1 and CallType=0 and  UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall + ") as jt from T_Call_CallRecords where CallType=0 and UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall).Tables[0];
194
+                        string strsql = "";
195
+                        if (stime != null && stime.Trim() != "")
196
+                        {
197
+                            strsql += " and CONVERT(varchar , TimeCallIn, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
198
+                        }
199
+                        if (endtime != null && endtime.Trim() != "")
200
+                        {
201
+                            strsql += " and CONVERT(varchar , TimeCallIn, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
202
+                        }
559
 
203
 
560
-                                if (dtcall != null && dtcall.Rows.Count > 0)
561
-                                {
562
-                                    if (dtcall.Rows[0]["ct"].ToString() != "")
563
-                                    {
564
-                                        itrunkct = int.Parse(dtcall.Rows[0]["ct"].ToString());
565
-                                    }
566
-                                    else
567
-                                    {
568
-                                        itrunkct = 0;
569
-                                    }
570
-                                    if (dtcall.Rows[0]["jt"].ToString() != "")
571
-                                    {
572
-                                        itrunkjj = int.Parse(dtcall.Rows[0]["jt"].ToString());
573
-                                    }
574
-                                    else
575
-                                    {
576
-                                        itrunkjj = 0;
577
-                                    }
578
-                                    if (dtTrunk.Rows.Count > 0 && dtTrunk.Rows[0]["dd"].ToString() != "")
579
-                                    {
580
-                                        itrunkpjsc = int.Parse(dtTrunk.Rows[0]["dd"].ToString());
581
-                                    }
582
-                                    else
583
-                                    {
584
-                                        itrunkpjsc = 0;
585
-                                    }
586
-                                }
587
-                                itrunkhs = itrunkct - itrunkjj;
588
-                                if (itrunkct != 0)
589
-                                {
590
-                                    itrunkjtl = itrunkjj / double.Parse(itrunkct.ToString());
591
-                                    itrunkhsl = itrunkhs / double.Parse(itrunkct.ToString());
592
-                                    itrunkpjpd = itrunkpjsc / double.Parse(itrunkct.ToString());
593
-                                }
594
-                                else
595
-                                {
596
-                                    itrunkjtl = 0.00;
597
-                                    itrunkhsl = 0.00;
598
-                                    itrunkpjpd = 0.00;
599
-                                }
600
-                                drNew["呼入电话数"] = itrunkct;
601
-                                drNew["坐席接通量"] = itrunkjj;
602
-                                drNew["呼损量"] = itrunkhs;
603
-                                drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
604
-                                drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
605
-                                drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
204
+                        DataTable dtTrunk = DbHelperSQL.Query("select COUNT(*) as ct,SUM(DATEDIFF(Second,timewantagent,timeconnected)) as dd from rep_trunk_call_in where AgentID='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsql).Tables[0];
205
+                        DataTable dtcall = DbHelperSQL.Query("select COUNT(*) as ct,(select COUNT(*) from T_Call_CallRecords where CallState=1 and CallType=0 and  UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall + ") as jt from T_Call_CallRecords where CallType=0 and UserCode='" + dt.Rows[i]["F_UserCode"].ToString() + "' " + strsqlcall).Tables[0];
606
 
206
 
207
+                        if (dtcall != null && dtcall.Rows.Count > 0)
208
+                        {
209
+                            if (dtcall.Rows[0]["ct"].ToString() != "")
210
+                            {
211
+                                itrunkct = int.Parse(dtcall.Rows[0]["ct"].ToString());
607
                             }
212
                             }
608
-                            //else
609
-                            //{
610
-                            //    drNew["呼入电话数"] = "0";
611
-                            //    drNew["坐席接通量"] = "0";
612
-                            //    drNew["呼损量"] = "0";
613
-                            //    drNew["接通率"] = "0.00" + "%";
614
-                            //    drNew["呼损率"] = "0.00" + "%";
615
-                            //    drNew["平均排队时间"] = "0.00";
616
-                            //}
617
-
618
-
619
-                            DataTable dtext = DbHelperSQL.Query("select COUNT(*) as ct,SUM(PeriodTalking) as sc,SUM(PeriodAlerting) as pa from rep_ext_call_in where CalleeAgentID=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords).Tables[0];
620
-                            DataTable dtCallEvey = DbHelperSQL.Query("select COUNT(*) as ct,SUM(TalkLongTime) as sc from T_Call_CallRecords where CallState=1 and  userid=" + dt.Rows[i]["F_UserId"] + " " + strsqlcall).Tables[0];
621
-                            if (dtCallEvey != null && dtCallEvey.Rows.Count > 0)
213
+                            else
622
                             {
214
                             {
623
-                                if (dtCallEvey.Rows[0]["ct"].ToString() != "")
624
-                                {
625
-                                    ijtcs = int.Parse(dtCallEvey.Rows[0]["ct"].ToString());//接听次数
626
-                                }
627
-                                else
628
-                                {
629
-                                    ijtcs = 0;
630
-                                }
631
-                                if (dtCallEvey.Rows[0]["sc"].ToString() != "")
632
-                                {
633
-                                    ithms = int.Parse(dtCallEvey.Rows[0]["sc"].ToString());//通话秒数
634
-                                }
635
-                                else
636
-                                {
637
-                                    ithms = 0;
638
-                                }
639
-                                if (dtext.Rows[0]["pa"].ToString() != "")
640
-                                {
641
-                                    izlms = int.Parse(dtext.Rows[0]["pa"].ToString());//振铃秒数
642
-                                }
643
-                                else
644
-                                {
645
-                                    izlms = 0;
646
-                                }
215
+                                itrunkct = 0;
647
                             }
216
                             }
648
-                            drNew["接听通话次数"] = ijtcs.ToString();
649
-                            //drNew["通话分钟数"] = (ithms / 60).ToString();
650
-                            drNew["通话分钟数"] = CallCenter.Utility.DateTimeConvert.parseTimeSeconds(ithms, 0);
651
-                            drNew["通话秒数"] = ithms.ToString();
652
-
653
-                            if (ijtcs != 0)
217
+                            if (dtcall.Rows[0]["jt"].ToString() != "")
654
                             {
218
                             {
655
-                                ipjjtms = ithms / ijtcs;//平均接通秒数
656
-                                ipjzlms = izlms / ijtcs;//平均振铃秒数
219
+                                itrunkjj = int.Parse(dtcall.Rows[0]["jt"].ToString());
657
                             }
220
                             }
658
                             else
221
                             else
659
                             {
222
                             {
660
-                                ipjjtms = 0;//平均接通秒数
661
-                                ipjzlms = 0;//平均振铃秒数
223
+                                itrunkjj = 0;
662
                             }
224
                             }
663
-                            drNew["平均接听通话秒数"] = ipjjtms.ToString();
664
-                            drNew["平均振铃秒数"] = ipjzlms.ToString();
665
-
666
-                            //坐席登录次数
667
-                            DataTable dtAgent = DbHelperSQL.Query("select COUNT(*) as dl,SUM(LoginTimes) as dlsc,SUM(reposenum) as zm,SUM(ReposeTimes) as xx from rep_agent_detail where AgentId=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords.Replace("TimeAlerting", "TimeLogin")).Tables[0];
668
-                            if (dtAgent != null && dtAgent.Rows.Count > 0)
225
+                            if (dtTrunk.Rows.Count > 0 && dtTrunk.Rows[0]["dd"].ToString() != "")
669
                             {
226
                             {
670
-                                if (dtAgent.Rows[0]["dl"] != null && dtAgent.Rows[0]["dl"].ToString() != "")
671
-                                {
672
-                                    izxdlcs = int.Parse(dtAgent.Rows[0]["dl"].ToString());//登录次数
673
-                                }
674
-                                else
675
-                                {
676
-                                    izxdlcs = 0;
677
-                                }
678
-                                if (dtAgent.Rows[0]["dlsc"] != null && dtAgent.Rows[0]["dlsc"].ToString() != "")
679
-                                {
680
-                                    idlsc = int.Parse(dtAgent.Rows[0]["dlsc"].ToString());//登录时长
681
-                                }
682
-                                else
683
-                                {
684
-                                    idlsc = 0;
685
-                                }
686
-                                if (dtAgent.Rows[0]["zm"] != null && dtAgent.Rows[0]["zm"].ToString() != "")
687
-                                {
688
-                                    izmcs = int.Parse(dtAgent.Rows[0]["zm"].ToString());//置忙次数
689
-                                }
690
-                                else
691
-                                {
692
-                                    izmcs = 0;
693
-                                }
694
-                                if (dtAgent.Rows[0]["xx"] != null && dtAgent.Rows[0]["xx"].ToString() != "")
695
-                                {
696
-                                    ixxsc = int.Parse(dtAgent.Rows[0]["xx"].ToString());//休息时长
697
-                                }
698
-                                else
699
-                                {
700
-                                    ixxsc = 0;
701
-                                }
227
+                                itrunkpjsc = int.Parse(dtTrunk.Rows[0]["dd"].ToString());
228
+                            }
229
+                            else
230
+                            {
231
+                                itrunkpjsc = 0;
232
+                            }
233
+                        }
234
+                        itrunkhs = itrunkct - itrunkjj;
235
+                        if (itrunkct != 0)
236
+                        {
237
+                            itrunkjtl = itrunkjj / double.Parse(itrunkct.ToString());
238
+                            itrunkhsl = itrunkhs / double.Parse(itrunkct.ToString());
239
+                            itrunkpjpd = itrunkpjsc / double.Parse(itrunkct.ToString());
240
+                        }
241
+                        else
242
+                        {
243
+                            itrunkjtl = 0.00;
244
+                            itrunkhsl = 0.00;
245
+                            itrunkpjpd = 0.00;
246
+                        }
247
+                        drNew["呼入电话数"] = itrunkct;
248
+                        drNew["坐席接通量"] = itrunkjj;
249
+                        drNew["呼损量"] = itrunkhs;
250
+                        drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
251
+                        drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
252
+                        drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
253
+
702
 
254
 
255
+                        DataTable dtext = DbHelperSQL.Query("select COUNT(*) as ct,SUM(PeriodTalking) as sc,SUM(PeriodAlerting) as pa from rep_ext_call_in where CalleeAgentID=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords).Tables[0];
256
+                        DataTable dtCallEvey = DbHelperSQL.Query("select COUNT(*) as ct,SUM(TalkLongTime) as sc from T_Call_CallRecords where CallState=1 and  userid=" + dt.Rows[i]["F_UserId"] + " " + strsqlcall).Tables[0];
257
+                        if (dtCallEvey != null && dtCallEvey.Rows.Count > 0)
258
+                        {
259
+                            if (dtCallEvey.Rows[0]["ct"].ToString() != "")
260
+                            {
261
+                                ijtcs = int.Parse(dtCallEvey.Rows[0]["ct"].ToString());//接听次数
262
+                            }
263
+                            else
264
+                            {
265
+                                ijtcs = 0;
703
                             }
266
                             }
704
-                            iWorktime = idlsc - ixxsc;//工作时长
705
-                            if (izxdlcs != 0)
267
+                            if (dtCallEvey.Rows[0]["sc"].ToString() != "")
706
                             {
268
                             {
707
-                                ipjczsc = iWorktime / izxdlcs;//平均操作秒数
269
+                                ithms = int.Parse(dtCallEvey.Rows[0]["sc"].ToString());//通话秒数
708
                             }
270
                             }
709
                             else
271
                             else
710
                             {
272
                             {
711
-                                ipjczsc = 0;
273
+                                ithms = 0;
712
                             }
274
                             }
713
-                            if (izmcs != 0)
275
+                            if (dtext.Rows[0]["pa"].ToString() != "")
714
                             {
276
                             {
715
-                                ipjzmxxsc = ixxsc / izmcs;//置忙平均操作时长
277
+                                izlms = int.Parse(dtext.Rows[0]["pa"].ToString());//振铃秒数
716
                             }
278
                             }
717
                             else
279
                             else
718
                             {
280
                             {
719
-                                ipjzmxxsc = 0;
281
+                                izlms = 0;
720
                             }
282
                             }
283
+                        }
284
+                        drNew["接听通话次数"] = ijtcs.ToString();
285
+                        //drNew["通话分钟数"] = (ithms / 60).ToString();
286
+                        drNew["通话分钟数"] = CallCenter.Utility.DateTimeConvert.parseTimeSeconds(ithms, 0);
287
+                        drNew["通话秒数"] = ithms.ToString();
288
+
289
+                        if (ijtcs != 0)
290
+                        {
291
+                            ipjjtms = ithms / ijtcs;//平均接通秒数
292
+                            ipjzlms = izlms / ijtcs;//平均振铃秒数
293
+                        }
294
+                        else
295
+                        {
296
+                            ipjjtms = 0;//平均接通秒数
297
+                            ipjzlms = 0;//平均振铃秒数
298
+                        }
299
+                        drNew["平均接听通话秒数"] = ipjjtms.ToString();
300
+                        drNew["平均振铃秒数"] = ipjzlms.ToString();
721
 
301
 
722
-                            //呼入占有率
723
-                            if (iWorktime != 0)
302
+                        //坐席登录次数
303
+                        DataTable dtAgent = DbHelperSQL.Query("select COUNT(*) as dl,SUM(LoginTimes) as dlsc,SUM(reposenum) as zm,SUM(ReposeTimes) as xx from rep_agent_detail where AgentId=" + dt.Rows[i]["F_WorkNumber"] + " " + sqltimeCallRecords.Replace("TimeAlerting", "TimeLogin")).Tables[0];
304
+                        if (dtAgent != null && dtAgent.Rows.Count > 0)
305
+                        {
306
+                            if (dtAgent.Rows[0]["dl"] != null && dtAgent.Rows[0]["dl"].ToString() != "")
724
                             {
307
                             {
725
-                                ihrzyl = ithms / Convert.ToDouble(iWorktime);
308
+                                izxdlcs = int.Parse(dtAgent.Rows[0]["dl"].ToString());//登录次数
726
                             }
309
                             }
727
                             else
310
                             else
728
                             {
311
                             {
729
-                                ihrzyl = 0.00;
312
+                                izxdlcs = 0;
730
                             }
313
                             }
731
-                            drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
732
-                            //用户评价
733
-                            //未评价为0
734
-                            object obj = DbHelperSQL.GetSingle("select count(*) from T_Call_CallRecords where MYD is not null and myd<>0 and CallState=1 and userid=" + dt.Rows[i]["F_UserId"] + strsqlcall);
735
-                            string myd = "";
736
-                            if (obj != null)
314
+                            if (dtAgent.Rows[0]["dlsc"] != null && dtAgent.Rows[0]["dlsc"].ToString() != "")
737
                             {
315
                             {
738
-                                myd = obj.ToString();
316
+                                idlsc = int.Parse(dtAgent.Rows[0]["dlsc"].ToString());//登录时长
739
                             }
317
                             }
740
-                            drNew["用户评价"] = myd;
741
-                            drNew["坐席登录次数"] = izxdlcs.ToString();
742
-                            drNew["登录时长分钟数"] = (idlsc / 60).ToString();
743
-                            drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
744
-                            drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
745
-                            drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
746
-                            drNew["置忙次数"] = izmcs.ToString();
747
-                            drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
748
-                            drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
749
-                            drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
750
-
751
-                            DataSet dszj = DbHelperSQL.Query("select convert(int,SUM(f_qcscore)) as fs,COUNT(*) as fsct from T_Call_CallRecords where F_QCState=1 and UserId=" + dt.Rows[i]["F_UserId"] + strsqlcall);
752
-                            int zfs = 0;
753
-                            if (dszj != null && dszj.Tables.Count > 0)
318
+                            else
319
+                            {
320
+                                idlsc = 0;
321
+                            }
322
+                            if (dtAgent.Rows[0]["zm"] != null && dtAgent.Rows[0]["zm"].ToString() != "")
323
+                            {
324
+                                izmcs = int.Parse(dtAgent.Rows[0]["zm"].ToString());//置忙次数
325
+                            }
326
+                            else
327
+                            {
328
+                                izmcs = 0;
329
+                            }
330
+                            if (dtAgent.Rows[0]["xx"] != null && dtAgent.Rows[0]["xx"].ToString() != "")
754
                             {
331
                             {
755
-                                DataTable dtzj = dszj.Tables[0];
756
-                                if (dtzj.Rows.Count > 0 && dtzj.Rows[0]["fs"].ToString() != "" && dtzj.Rows[0]["fsct"].ToString() != "")
757
-                                {
758
-                                    zfs = Convert.ToInt32(dtzj.Rows[0]["fs"].ToString()) / int.Parse(dtzj.Rows[0]["fsct"].ToString());
759
-                                }
332
+                                ixxsc = int.Parse(dtAgent.Rows[0]["xx"].ToString());//休息时长
333
+                            }
334
+                            else
335
+                            {
336
+                                ixxsc = 0;
760
                             }
337
                             }
761
-                            drNew["质检平均成绩"] = zfs.ToString();
762
 
338
 
763
-                            dtNew.Rows.Add(drNew);
764
                         }
339
                         }
340
+                        iWorktime = idlsc - ixxsc;//工作时长
341
+                        if (izxdlcs != 0)
342
+                        {
343
+                            ipjczsc = iWorktime / izxdlcs;//平均操作秒数
344
+                        }
345
+                        else
346
+                        {
347
+                            ipjczsc = 0;
348
+                        }
349
+                        if (izmcs != 0)
350
+                        {
351
+                            ipjzmxxsc = ixxsc / izmcs;//置忙平均操作时长
352
+                        }
353
+                        else
354
+                        {
355
+                            ipjzmxxsc = 0;
356
+                        }
357
+
358
+                        //呼入占有率
359
+                        if (iWorktime != 0)
360
+                        {
361
+                            ihrzyl = ithms / Convert.ToDouble(iWorktime);
362
+                        }
363
+                        else
364
+                        {
365
+                            ihrzyl = 0.00;
366
+                        }
367
+                        drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
368
+                        //用户评价
369
+                        //未评价为0
370
+                        object obj = DbHelperSQL.GetSingle("select count(*) from T_Call_CallRecords where MYD is not null and myd<>0 and CallState=1 and userid=" + dt.Rows[i]["F_UserId"] + strsqlcall);
371
+                        string myd = "";
372
+                        if (obj != null)
373
+                        {
374
+                            myd = obj.ToString();
375
+                        }
376
+                        drNew["用户评价"] = myd;
377
+                        drNew["坐席登录次数"] = izxdlcs.ToString();
378
+                        drNew["登录时长分钟数"] = (idlsc / 60).ToString();
379
+                        drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
380
+                        drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
381
+                        drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
382
+                        drNew["置忙次数"] = izmcs.ToString();
383
+                        drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
384
+                        drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
385
+                        drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
386
+
387
+                        DataSet dszj = DbHelperSQL.Query("select convert(int,SUM(f_qcscore)) as fs,COUNT(*) as fsct from T_Call_CallRecords where F_QCState=1 and UserId=" + dt.Rows[i]["F_UserId"] + strsqlcall);
388
+                        int zfs = 0;
389
+                        if (dszj != null && dszj.Tables.Count > 0)
390
+                        {
391
+                            DataTable dtzj = dszj.Tables[0];
392
+                            if (dtzj.Rows.Count > 0 && dtzj.Rows[0]["fs"].ToString() != "" && dtzj.Rows[0]["fsct"].ToString() != "")
393
+                            {
394
+                                zfs = Convert.ToInt32(dtzj.Rows[0]["fs"].ToString()) / int.Parse(dtzj.Rows[0]["fsct"].ToString());
395
+                            }
396
+                        }
397
+                        drNew["质检平均成绩"] = zfs.ToString();
398
+
399
+                        dtNew.Rows.Add(drNew);
765
                     }
400
                     }
766
-                //}
401
+                
767
             }
402
             }
768
             return dtNew;
403
             return dtNew;
769
         }
404
         }

+ 11 - 8
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallrecordsController.cs

360
         #region 获取KPI数据分析报表接口(默认当月1号到当天)
360
         #region 获取KPI数据分析报表接口(默认当月1号到当天)
361
         public ActionResult GetKPI()
361
         public ActionResult GetKPI()
362
         {
362
         {
363
-            ActionResult res = NoToken("未知错误,请重新登录");
364
             if (Request.IsAuthenticated)
363
             if (Request.IsAuthenticated)
365
             {
364
             {
365
+                int userId = CurrentUser.UserData.F_UserId;
366
+                Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
366
 
367
 
367
                 string startdate = HttpUtility.UrlDecode(RequestString.GetQueryString("startdate"));
368
                 string startdate = HttpUtility.UrlDecode(RequestString.GetQueryString("startdate"));
368
                 string enddate = HttpUtility.UrlDecode(RequestString.GetQueryString("enddate"));
369
                 string enddate = HttpUtility.UrlDecode(RequestString.GetQueryString("enddate"));
369
-                string dpt = HttpUtility.UrlDecode(RequestString.GetQueryString("dpt"));
370
+                //string dpt = HttpUtility.UrlDecode(RequestString.GetQueryString("dpt"));
370
                 if (startdate == "")
371
                 if (startdate == "")
371
                 {
372
                 {
372
                     startdate = DateTime.Now.ToString("yyyy-MM") + "-01";
373
                     startdate = DateTime.Now.ToString("yyyy-MM") + "-01";
378
                 string starttime = startdate + " 00:00:00";
379
                 string starttime = startdate + " 00:00:00";
379
                 string endtime = enddate + " 23:59:59";
380
                 string endtime = enddate + " 23:59:59";
380
                 string sql = "";
381
                 string sql = "";
381
-                if (dpt != null && dpt.Trim() != "")
382
+                //if (dpt != null && dpt.Trim() != "")
383
+                //{
384
+                //    sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
385
+                //}
386
+                if (string.IsNullOrEmpty(userModel.groupcode))
382
                 {
387
                 {
383
-                    sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
388
+                    sql += " AND groupcode='" + userModel.groupcode + "' ";
384
                 }
389
                 }
385
                 //DataTable dtnew = new DataTable();
390
                 //DataTable dtnew = new DataTable();
386
                 dtnew.Columns.Add("ID", Type.GetType("System.String"));
391
                 dtnew.Columns.Add("ID", Type.GetType("System.String"));
545
                         dtnew.Rows.Add(dr2);
550
                         dtnew.Rows.Add(dr2);
546
                     }
551
                     }
547
                 }
552
                 }
548
-                res = Success("获取KPI数据成功", dtnew);
553
+                return Success("获取KPI数据成功", dtnew);
549
                 #endregion
554
                 #endregion
550
             }
555
             }
551
-            return res;
556
+            return NoToken("未知错误,请重新登录");
552
         }
557
         }
553
         #endregion
558
         #endregion
554
 
559
 
559
             ActionResult res = NoToken("未知错误,请重新登录");
564
             ActionResult res = NoToken("未知错误,请重新登录");
560
             GetKPI();
565
             GetKPI();
561
 
566
 
562
-            string startdate = "2017-11-12 00:00:00";
563
-            string enddate = "2017-11-14 23:59:59";
564
             DataTable dtexpt = new DataTable();
567
             DataTable dtexpt = new DataTable();
565
             dtexpt.Columns.Add("fenlei", Type.GetType("System.String"));
568
             dtexpt.Columns.Add("fenlei", Type.GetType("System.String"));
566
             dtexpt.Columns.Add("num", Type.GetType("System.String"));
569
             dtexpt.Columns.Add("num", Type.GetType("System.String"));