zhoufan 7 anni fa
parent
commit
f31948605e

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

@@ -9,17 +9,21 @@ using System.Web.Mvc;
9 9
 
10 10
 namespace CallCenterApi.Interface.Controllers.report
11 11
 {
12
-    //[Authority]
12
+    [Authority]
13 13
     public class CallInController : BaseController
14 14
     {
15 15
         //来电数据分析
16 16
         //获取数据
17 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 27
                 Hashtable tab = new Hashtable();
24 28
 
25 29
                 string sql = "";
@@ -34,6 +38,11 @@ namespace CallCenterApi.Interface.Controllers.report
34 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 46
                 #region 获取数据
38 47
 
39 48
                 dtlist = new BLL.T_Call_CallRecords().GetList(" CallType=0 " + sql).Tables[0];
@@ -857,14 +866,15 @@ namespace CallCenterApi.Interface.Controllers.report
857 866
 
858 867
                 #endregion
859 868
 
860
-                res = Success("获取来电数据分析数据成功", tab);
861
-      
862 869
                 dtlist.Clear();
863 870
                 dtlist.Dispose();
864 871
                 dt.Clear();
865 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,113 +17,36 @@ namespace CallCenterApi.Interface.Controllers.report
17 17
         //获取表头
18 18
         public ActionResult GetColumnList()
19 19
         {
20
-            ActionResult res = NoToken("未知错误,请重新登录");
21
-            
22 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 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 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 48
                 NPOIHelper npoi = new NPOIHelper();
126
-                DataTable dt = getData(stime, etime, usercode, dpt);
49
+                DataTable dt = getData(stime, etime, usercode, userModel.groupcode);
127 50
                 if (npoi.ExportToExcel("日通话时长数据", dt) == "")
128 51
                 {
129 52
                     return Success("导出成功");
@@ -133,7 +56,7 @@ namespace CallCenterApi.Interface.Controllers.report
133 56
                     return Error("导出失败");
134 57
                 }
135 58
             }
136
-            return res;
59
+            return NoToken("未知错误,请重新登录");
137 60
         }
138 61
 
139 62
         private DataTable getData(string stime, string etime, string usercode, string dpt)
@@ -186,7 +109,8 @@ namespace CallCenterApi.Interface.Controllers.report
186 109
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
187 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 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,7 +20,6 @@ namespace CallCenterApi.Interface.Controllers.report
20 20
         //获取表头
21 21
         public ActionResult GetColumnList(string isext)
22 22
         {
23
-            ActionResult res = NoToken("未知错误,请重新登录");
24 23
             List<Model.QCModel> qclist = new List<Model.QCModel>();
25 24
 
26 25
             #region 加载固定项
@@ -177,152 +176,155 @@ namespace CallCenterApi.Interface.Controllers.report
177 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 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,68 +17,36 @@ namespace CallCenterApi.Interface.Controllers.report
17 17
         //获取表头
18 18
         public ActionResult GetColumnList()
19 19
         {
20
-            ActionResult res = NoToken("未知错误,请重新登录");
21
-
22 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 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 48
                 NPOIHelper npoi = new NPOIHelper();
81
-                DataTable dt = GetData(stime, endtime, dpt);
49
+                DataTable dt = GetData(stime, endtime, userModel.groupcode);
82 50
                 if (npoi.ExportToExcel("接通呼损数据", dt) == "")
83 51
                 {
84 52
                     return Success("导出成功");
@@ -88,7 +56,7 @@ namespace CallCenterApi.Interface.Controllers.report
88 56
                     return Error("导出失败");
89 57
                 }
90 58
             }
91
-            return res;
59
+            return NoToken("未知错误,请重新登录");
92 60
         }
93 61
 
94 62
         //获取数据源
@@ -145,7 +113,7 @@ namespace CallCenterApi.Interface.Controllers.report
145 113
             //    //result = (JTHS)item.Value.ToString();
146 114
             //    result += item.Key.ToString().TrimStart('{').TrimEnd('}') + ",";
147 115
             //}
148
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
116
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
149 117
             ArrayList arrList = new ArrayList(datares.Keys);
150 118
             arrList.Sort();
151 119
             for (int i = 0; i < arrList.Count; i++)
@@ -170,7 +138,7 @@ namespace CallCenterApi.Interface.Controllers.report
170 138
             //{
171 139
             //    result += ((JTHS)item.Value).CallConnectCount + ",";
172 140
             //}
173
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
141
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
174 142
             ArrayList arrList = new ArrayList(datares.Keys);
175 143
             arrList.Sort();
176 144
             for (int i = 0; i < arrList.Count; i++)
@@ -195,7 +163,7 @@ namespace CallCenterApi.Interface.Controllers.report
195 163
             //{
196 164
             //    result += ((JTHS)item.Value).CallLossCount + ",";
197 165
             //}
198
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
166
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
199 167
             ArrayList arrList = new ArrayList(datares.Keys);
200 168
             arrList.Sort();
201 169
             for (int i = 0; i < arrList.Count; i++)
@@ -220,7 +188,7 @@ namespace CallCenterApi.Interface.Controllers.report
220 188
             //{
221 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 192
             ArrayList arrList = new ArrayList(datares.Keys);
225 193
             arrList.Sort();
226 194
             for (int i = 0; i < arrList.Count; i++)
@@ -242,7 +210,7 @@ namespace CallCenterApi.Interface.Controllers.report
242 210
         {
243 211
             string result = "[";
244 212
 
245
-            var datares = GetStatistical(BeginTime, EndTime, dpt);
213
+            var datares= GetStatistical(BeginTime, EndTime, dpt);
246 214
             ArrayList arrList = new ArrayList(datares.Keys);
247 215
             arrList.Sort();
248 216
             //foreach (DictionaryEntry item in GetStatistical(BeginTime, EndTime))
@@ -289,7 +257,8 @@ namespace CallCenterApi.Interface.Controllers.report
289 257
                 endTime = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59");
290 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 263
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
295 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,7 +10,7 @@ using System.Web.Mvc;
10 10
 
11 11
 namespace CallCenterApi.Interface.Controllers.report
12 12
 {
13
-    //  [Authority]
13
+    [Authority]
14 14
     public class TalkTimeController : BaseController
15 15
     {
16 16
         //通话时长统计
@@ -29,74 +29,28 @@ namespace CallCenterApi.Interface.Controllers.report
29 29
         //获取数据
30 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 45
         public ActionResult ExptList(string stime, string endtime, string dpt)
94 46
         {
95
-            ActionResult res = NoToken("未知错误,请重新登录");
47
+
96 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 52
                 NPOIHelper npoi = new NPOIHelper();
99
-                DataTable dt = GetData(stime, endtime, dpt);
53
+                DataTable dt = GetData(stime, endtime, userModel.groupcode);
100 54
                 if (npoi.ExportToExcel("通话时长数据", dt) == "")
101 55
                 {
102 56
                     return Success("导出成功");
@@ -106,7 +60,7 @@ namespace CallCenterApi.Interface.Controllers.report
106 60
                     return Error("导出失败");
107 61
                 }
108 62
             }
109
-            return res;
63
+            return NoToken("未知错误,请重新登录");
110 64
         }
111 65
 
112 66
         //获取数据源
@@ -198,7 +152,8 @@ namespace CallCenterApi.Interface.Controllers.report
198 152
             }
199 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 158
             if (tag != "")
204 159
             {
@@ -311,7 +266,8 @@ namespace CallCenterApi.Interface.Controllers.report
311 266
             }
312 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 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 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,7 +320,8 @@ namespace CallCenterApi.Interface.Controllers.report
364 320
             }
365 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 327
             sql += " and CallType=0 ";

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

@@ -19,21 +19,22 @@ namespace CallCenterApi.Interface.Controllers.report
19 19
         //获取表头
20 20
         public ActionResult GetColumnList()
21 21
         {
22
-            ActionResult res = NoToken("未知错误,请重新登录");
23 22
             if (Request.IsAuthenticated)
24 23
             {
25 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 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 38
                 DataTable dtNew = new DataTable();
38 39
                 #region
39 40
                 DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
@@ -47,9 +48,10 @@ namespace CallCenterApi.Interface.Controllers.report
47 48
                 dtNew.Columns.Add(dc4);
48 49
                 #endregion
49 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 56
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
55 57
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
@@ -120,9 +122,9 @@ namespace CallCenterApi.Interface.Controllers.report
120 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 130
         private DataTable GetData(string years, string dpt)
@@ -139,9 +141,10 @@ namespace CallCenterApi.Interface.Controllers.report
139 141
                 dtNew.Columns.Add(dc3);
140 142
                 #endregion
141 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 149
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
147 150
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
@@ -214,13 +217,15 @@ namespace CallCenterApi.Interface.Controllers.report
214 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 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 227
                 NPOIHelper npoi = new NPOIHelper();
223
-                DataTable dt = GetData(years, dpt);
228
+                DataTable dt = GetData(years, userModel.groupcode);
224 229
                 if (npoi.ExportToExcel("总呼叫量数据", dt) == "")
225 230
                 {
226 231
                     return Success("导出成功");
@@ -230,20 +235,20 @@ namespace CallCenterApi.Interface.Controllers.report
230 235
                     return Error("导出失败");
231 236
                 }
232 237
             }
233
-            return res;
238
+            return NoToken("未知错误,请重新登录");
234 239
         }
235 240
 
236 241
         //获取图形数据
237 242
         public ActionResult GetChartData(string years, string dpt)
238 243
         {
239
-            ActionResult res = NoToken("未知错误,请重新登录");
240 244
             if (Request.IsAuthenticated)
241 245
             {
242 246
                 string[] arr=new string[12];
243 247
                 var sql = "";
244 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 253
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
249 254
                 var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
@@ -276,9 +281,9 @@ namespace CallCenterApi.Interface.Controllers.report
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,22 +11,25 @@ using System.Web.Mvc;
11 11
 
12 12
 namespace CallCenterApi.Interface.Controllers.report
13 13
 {
14
-    //[Authority]
14
+    [Authority]
15 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 25
                 ArrayList arrlist = new ArrayList();
23
-                
26
+
24 27
                 if (beginyear != null && beginyear.Trim() != "")
25 28
                 {
26 29
                     var data = new
27 30
                     {
28 31
                         key = beginyear + "客户呼叫数",
29
-                        value = GetKhCall(beginyear, dpt).TrimEnd(',').Split(','),
32
+                        value = GetKhCall(beginyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
30 33
                         type = 0
31 34
                     };
32 35
                     arrlist.Add(data);
@@ -34,7 +37,7 @@ namespace CallCenterApi.Interface.Controllers.report
34 37
                     var data1 = new
35 38
                     {
36 39
                         key = beginyear + "坐席接听数",
37
-                        value = GetZxJt(beginyear, dpt).TrimEnd(',').Split(','),
40
+                        value = GetZxJt(beginyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
38 41
                         type = 0
39 42
                     };
40 43
                     arrlist.Add(data1);
@@ -42,7 +45,7 @@ namespace CallCenterApi.Interface.Controllers.report
42 45
                     var data2 = new
43 46
                     {
44 47
                         key = beginyear + "接通率",
45
-                        value = GetJTL(beginyear, dpt).TrimEnd(',').Split(','),
48
+                        value = GetJTL(beginyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
46 49
                         type = 0
47 50
                     };
48 51
                     arrlist.Add(data2);
@@ -52,7 +55,7 @@ namespace CallCenterApi.Interface.Controllers.report
52 55
                     var data = new
53 56
                     {
54 57
                         key = endyear + "客户呼叫数",
55
-                        value = GetKhCall(endyear, dpt).TrimEnd(',').Split(','),
58
+                        value = GetKhCall(endyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
56 59
                         type = 1
57 60
                     };
58 61
                     arrlist.Add(data);
@@ -60,7 +63,7 @@ namespace CallCenterApi.Interface.Controllers.report
60 63
                     var data1 = new
61 64
                     {
62 65
                         key = endyear + "坐席接听数",
63
-                        value = GetZxJt(endyear, dpt).TrimEnd(',').Split(','),
66
+                        value = GetZxJt(endyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
64 67
                         type = 1
65 68
                     };
66 69
                     arrlist.Add(data1);
@@ -68,34 +71,39 @@ namespace CallCenterApi.Interface.Controllers.report
68 71
                     var data2 = new
69 72
                     {
70 73
                         key = endyear + "接通率",
71
-                        value = GetJTL(endyear, dpt).TrimEnd(',').Split(','),
74
+                        value = GetJTL(endyear, userModel.F_SeartGroupID.Value).TrimEnd(',').Split(','),
72 75
                         type = 1
73 76
                     };
74 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 108
             DataTable dtNew = new DataTable();
101 109
             if ((beginyear != null && beginyear.Trim() != "")&&(endyear != null && endyear.Trim() != ""))
@@ -143,7 +151,7 @@ namespace CallCenterApi.Interface.Controllers.report
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 156
             DataTable dt = new DataTable();
149 157
             string str = "";
@@ -156,9 +164,9 @@ namespace CallCenterApi.Interface.Controllers.report
156 164
                     strmm = "0" + i;
157 165
                 }
158 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 171
                 if (strtime != "")
164 172
                 {
@@ -191,7 +199,7 @@ namespace CallCenterApi.Interface.Controllers.report
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 204
             DataTable dt = new DataTable();
197 205
             string str = "";
@@ -204,9 +212,9 @@ namespace CallCenterApi.Interface.Controllers.report
204 212
                     strmm = "0" + i;
205 213
                 }
206 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 219
                 if (strtime != "")
212 220
                 {
@@ -239,7 +247,7 @@ namespace CallCenterApi.Interface.Controllers.report
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 252
             DataTable dt = new DataTable();
245 253
             string str = "";
@@ -252,9 +260,9 @@ namespace CallCenterApi.Interface.Controllers.report
252 260
                     strmm = "0" + i;
253 261
                 }
254 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 267
                 if (strtime != "")
260 268
                 {

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

@@ -12,40 +12,40 @@ namespace CallCenterApi.Interface.Controllers.report
12 12
     public class ZuoXiManYiDuController : BaseController
13 13
     {
14 14
         //// GET: ZuoXiManYiDu
15
-        //public ActionResult Index()
16
-        //{
17
-        //    return View();
18
-        //}
19 15
 
20 16
         //坐席满意度
21 17
         //获取表头
22 18
         public ActionResult GetColumnList()
23 19
         {
24
-            ActionResult res = NoToken("未知错误,请重新登录");
25 20
 
26 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 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 47
                 NPOIHelper npoi = new NPOIHelper();
48
-                DataTable dt = getData(stime, endtime, dpt);
48
+                DataTable dt = getData(stime, endtime, userModel.F_SeartGroupID.Value);
49 49
                 if (npoi.ExportToExcel("坐席满意度评价情况", dt) == "")
50 50
                 {
51 51
                     return Success("导出成功");
@@ -55,10 +55,10 @@ namespace CallCenterApi.Interface.Controllers.report
55 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 63
             DataTable dtNew = new DataTable();
64 64
             #region
@@ -100,9 +100,9 @@ namespace CallCenterApi.Interface.Controllers.report
100 100
 
101 101
             //2018-07-06 lihai 部门搜索条件
102 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 107
             DataTable dtable = new BLL.T_Sys_UserAccount().GetList($"F_DeleteFlag=0 {sqldtable}").Tables[0];
108 108
             int allcount = dtable.Rows.Count;

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

@@ -17,182 +17,45 @@ namespace CallCenterApi.Interface.Controllers.report
17 17
         //获取表头
18 18
         public ActionResult GetColumnList()
19 19
         {
20
-            ActionResult res = NoToken("未知错误,请重新登录");
21
-           
20
+            if (Request.IsAuthenticated)
21
+            {
22
+
22 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 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 57
                 NPOIHelper npoi = new NPOIHelper();
195
-                DataTable dt = getData(stime, endtime, dpt);
58
+                DataTable dt = getData(stime, endtime, userModel.F_SeartGroupID.Value);
196 59
                 if (npoi.ExportToExcel("坐席日通话时长数据", dt) == "")
197 60
                 {
198 61
                     return Success("导出成功");
@@ -202,7 +65,7 @@ namespace CallCenterApi.Interface.Controllers.report
202 65
                     return Error("导出失败");
203 66
                 }
204 67
             }
205
-            return res;
68
+            return NoToken("未知错误,请重新登录");
206 69
         }
207 70
 
208 71
         /// <summary>
@@ -211,7 +74,7 @@ namespace CallCenterApi.Interface.Controllers.report
211 74
         /// <param name="stime"></param>
212 75
         /// <param name="endtime"></param>
213 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 79
             DataTable dtNew = new DataTable();
217 80
             #region
@@ -260,9 +123,9 @@ namespace CallCenterApi.Interface.Controllers.report
260 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 124
             //2018-07-06 lihai 部门搜索条件
262 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 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 131
             dt = DbHelperSQL.Query(sql).Tables[0];

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

@@ -16,385 +16,48 @@ namespace CallCenterApi.Interface.Controllers.report
16 16
         //获取表头
17 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 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 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 61
                 if (npoi.ExportToExcel("坐席工作数据", dt) == "")
399 62
                 {
400 63
                     return Success("导出成功");
@@ -404,10 +67,10 @@ namespace CallCenterApi.Interface.Controllers.report
404 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 75
             DataTable dtNew = new DataTable();
413 76
             #region
@@ -506,264 +169,236 @@ namespace CallCenterApi.Interface.Controllers.report
506 169
             double itrunkhsl = 0.00;//互损率
507 170
             double itrunkpjpd = 0.00;//平均排队
508 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 182
                 dt = DbHelperSQL.Query(sql).Tables[0];
534 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 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 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 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 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 403
             return dtNew;
769 404
         }

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

@@ -360,13 +360,14 @@ namespace CallCenterApi.Interface.Controllers.tel
360 360
         #region 获取KPI数据分析报表接口(默认当月1号到当天)
361 361
         public ActionResult GetKPI()
362 362
         {
363
-            ActionResult res = NoToken("未知错误,请重新登录");
364 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 368
                 string startdate = HttpUtility.UrlDecode(RequestString.GetQueryString("startdate"));
368 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 371
                 if (startdate == "")
371 372
                 {
372 373
                     startdate = DateTime.Now.ToString("yyyy-MM") + "-01";
@@ -378,9 +379,13 @@ namespace CallCenterApi.Interface.Controllers.tel
378 379
                 string starttime = startdate + " 00:00:00";
379 380
                 string endtime = enddate + " 23:59:59";
380 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 390
                 //DataTable dtnew = new DataTable();
386 391
                 dtnew.Columns.Add("ID", Type.GetType("System.String"));
@@ -545,10 +550,10 @@ namespace CallCenterApi.Interface.Controllers.tel
545 550
                         dtnew.Rows.Add(dr2);
546 551
                     }
547 552
                 }
548
-                res = Success("获取KPI数据成功", dtnew);
553
+                return Success("获取KPI数据成功", dtnew);
549 554
                 #endregion
550 555
             }
551
-            return res;
556
+            return NoToken("未知错误,请重新登录");
552 557
         }
553 558
         #endregion
554 559
 
@@ -559,8 +564,6 @@ namespace CallCenterApi.Interface.Controllers.tel
559 564
             ActionResult res = NoToken("未知错误,请重新登录");
560 565
             GetKPI();
561 566
 
562
-            string startdate = "2017-11-12 00:00:00";
563
-            string enddate = "2017-11-14 23:59:59";
564 567
             DataTable dtexpt = new DataTable();
565 568
             dtexpt.Columns.Add("fenlei", Type.GetType("System.String"));
566 569
             dtexpt.Columns.Add("num", Type.GetType("System.String"));