Kaynağa Gözat

话务运营分析中的所有报表统一加上“部门”的筛选条件

lihai 7 yıl önce
ebeveyn
işleme
8bf6554309

+ 9 - 6
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/DaysTalkTimeController.cs

26
         }
26
         }
27
 
27
 
28
         //获取数据
28
         //获取数据
29
-        public ActionResult GetDataList(string stime, string etime,string usercode)
29
+        public ActionResult GetDataList(string stime, string etime,string usercode, string dpt)
30
         {
30
         {
31
             ActionResult res = NoToken("未知错误,请重新登录");
31
             ActionResult res = NoToken("未知错误,请重新登录");
32
            
32
            
33
                 DataTable dtNew = new DataTable();
33
                 DataTable dtNew = new DataTable();
34
-                dtNew = getData(stime, etime, usercode);
34
+                dtNew = getData(stime, etime, usercode, dpt);
35
                 #region
35
                 #region
36
                 //#region 编辑表头
36
                 //#region 编辑表头
37
                 //DataColumn dc1 = new DataColumn("日期", Type.GetType("System.String"));
37
                 //DataColumn dc1 = new DataColumn("日期", Type.GetType("System.String"));
117
         }
117
         }
118
 
118
 
119
         //导出数据
119
         //导出数据
120
-        public ActionResult ExptList(string stime, string etime, string usercode)
120
+        public ActionResult ExptList(string stime, string etime, string usercode, string dpt)
121
         {
121
         {
122
             ActionResult res = NoToken("未知错误,请重新登录");
122
             ActionResult res = NoToken("未知错误,请重新登录");
123
             if (Request.IsAuthenticated)
123
             if (Request.IsAuthenticated)
124
             {
124
             {
125
                 NPOIHelper npoi = new NPOIHelper();
125
                 NPOIHelper npoi = new NPOIHelper();
126
-                DataTable dt = getData(stime, etime, usercode);
126
+                DataTable dt = getData(stime, etime, usercode, dpt);
127
                 if (npoi.ExportToExcel("日通话时长数据", dt) == "")
127
                 if (npoi.ExportToExcel("日通话时长数据", dt) == "")
128
                 {
128
                 {
129
                     return Success("导出成功");
129
                     return Success("导出成功");
136
             return res;
136
             return res;
137
         }
137
         }
138
 
138
 
139
-        private DataTable getData(string stime, string etime, string usercode)
139
+        private DataTable getData(string stime, string etime, string usercode, string dpt)
140
         {
140
         {
141
             DataTable dtNew = new DataTable();
141
             DataTable dtNew = new DataTable();
142
             #region 编辑表头
142
             #region 编辑表头
184
 
184
 
185
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
185
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
186
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
186
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
187
-
187
+            if (dpt != null && dpt.Trim() != "")
188
+            {
189
+                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
190
+            }
188
             DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 " + sql).Tables[0];
191
             DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 " + sql).Tables[0];
189
 
192
 
190
             for (DateTime t = beginTime; t <= endTime; t = t.AddDays(1))
193
             for (DateTime t = beginTime; t <= endTime; t = t.AddDays(1))

+ 25 - 22
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/SwitchedlossCallController.cs

26
         }
26
         }
27
 
27
 
28
         //获取数据
28
         //获取数据
29
-        public ActionResult GetDataList(string stime, string endtime)
29
+        public ActionResult GetDataList(string stime, string endtime, string dpt)
30
         {
30
         {
31
             ActionResult res = NoToken("未知错误,请重新登录");
31
             ActionResult res = NoToken("未知错误,请重新登录");
32
 
32
 
33
             DataTable dtNew = new DataTable();
33
             DataTable dtNew = new DataTable();
34
-            dtNew = GetData(stime, endtime);
34
+            dtNew = GetData(stime, endtime, dpt);
35
             #region
35
             #region
36
 
36
 
37
             //#region 编辑表头
37
             //#region 编辑表头
72
         }
72
         }
73
 
73
 
74
         //导出数据
74
         //导出数据
75
-        public ActionResult ExptList(string stime, string endtime)
75
+        public ActionResult ExptList(string stime, string endtime, string dpt)
76
         {
76
         {
77
             ActionResult res = NoToken("未知错误,请重新登录");
77
             ActionResult res = NoToken("未知错误,请重新登录");
78
             if (Request.IsAuthenticated)
78
             if (Request.IsAuthenticated)
79
             {
79
             {
80
                 NPOIHelper npoi = new NPOIHelper();
80
                 NPOIHelper npoi = new NPOIHelper();
81
-                DataTable dt = GetData(stime, endtime);
81
+                DataTable dt = GetData(stime, endtime, dpt);
82
                 if (npoi.ExportToExcel("接通呼损数据", dt) == "")
82
                 if (npoi.ExportToExcel("接通呼损数据", dt) == "")
83
                 {
83
                 {
84
                     return Success("导出成功");
84
                     return Success("导出成功");
92
         }
92
         }
93
 
93
 
94
         //获取数据源
94
         //获取数据源
95
-        private DataTable GetData(string stime, string endtime)
95
+        private DataTable GetData(string stime, string endtime, string dpt)
96
         {
96
         {
97
             DataTable dtNew = new DataTable();
97
             DataTable dtNew = new DataTable();
98
             #region 编辑表头
98
             #region 编辑表头
108
             dtNew.Columns.Add(dc4);
108
             dtNew.Columns.Add(dc4);
109
             dtNew.Columns.Add(dc5);
109
             dtNew.Columns.Add(dc5);
110
             #endregion
110
             #endregion
111
-            string[] DataArr = GetStatisticalTime(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
112
-            string[] CallConnectData = GetStatisticalCallConnectData(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
113
-            string[] CallLossData = GetStatisticalCallLossData(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
114
-            string[] CallConnectDataRate = GetStatisticalCallConnectDataRate(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
115
-            string[] CallLossDataRate = GetStatisticalCallLossDataRate(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
111
+            string[] DataArr = GetStatisticalTime(stime, endtime, dpt).TrimStart('[').TrimEnd(']').Split(',');
112
+            string[] CallConnectData = GetStatisticalCallConnectData(stime, endtime, dpt).TrimStart('[').TrimEnd(']').Split(',');
113
+            string[] CallLossData = GetStatisticalCallLossData(stime, endtime, dpt).TrimStart('[').TrimEnd(']').Split(',');
114
+            string[] CallConnectDataRate = GetStatisticalCallConnectDataRate(stime, endtime, dpt).TrimStart('[').TrimEnd(']').Split(',');
115
+            string[] CallLossDataRate = GetStatisticalCallLossDataRate(stime, endtime, dpt).TrimStart('[').TrimEnd(']').Split(',');
116
 
116
 
117
             for (int i = 0; i < DataArr.Length; i++)
117
             for (int i = 0; i < DataArr.Length; i++)
118
             {
118
             {
136
         /// <param name="BeginTime"></param>
136
         /// <param name="BeginTime"></param>
137
         /// <param name="EndTime"></param>
137
         /// <param name="EndTime"></param>
138
         /// <returns></returns>
138
         /// <returns></returns>
139
-        public string GetStatisticalTime(string BeginTime, string EndTime)
139
+        public string GetStatisticalTime(string BeginTime, string EndTime, string dpt)
140
         {
140
         {
141
             string result = "[";
141
             string result = "[";
142
 
142
 
145
             //    //result = (JTHS)item.Value.ToString();
145
             //    //result = (JTHS)item.Value.ToString();
146
             //    result += item.Key.ToString().TrimStart('{').TrimEnd('}') + ",";
146
             //    result += item.Key.ToString().TrimStart('{').TrimEnd('}') + ",";
147
             //}
147
             //}
148
-            var datares = GetStatistical(BeginTime, EndTime);
148
+            var datares = GetStatistical(BeginTime, EndTime, dpt);
149
             ArrayList arrList = new ArrayList(datares.Keys);
149
             ArrayList arrList = new ArrayList(datares.Keys);
150
             arrList.Sort();
150
             arrList.Sort();
151
             for (int i = 0; i < arrList.Count; i++)
151
             for (int i = 0; i < arrList.Count; i++)
162
         /// <param name="BeginTime"></param>
162
         /// <param name="BeginTime"></param>
163
         /// <param name="EndTime"></param>
163
         /// <param name="EndTime"></param>
164
         /// <returns></returns>
164
         /// <returns></returns>
165
-        public string GetStatisticalCallConnectData(string BeginTime, string EndTime)
165
+        public string GetStatisticalCallConnectData(string BeginTime, string EndTime, string dpt)
166
         {
166
         {
167
             string result = "[";
167
             string result = "[";
168
 
168
 
170
             //{
170
             //{
171
             //    result += ((JTHS)item.Value).CallConnectCount + ",";
171
             //    result += ((JTHS)item.Value).CallConnectCount + ",";
172
             //}
172
             //}
173
-            var datares = GetStatistical(BeginTime, EndTime);
173
+            var datares = GetStatistical(BeginTime, EndTime, dpt);
174
             ArrayList arrList = new ArrayList(datares.Keys);
174
             ArrayList arrList = new ArrayList(datares.Keys);
175
             arrList.Sort();
175
             arrList.Sort();
176
             for (int i = 0; i < arrList.Count; i++)
176
             for (int i = 0; i < arrList.Count; i++)
187
         /// <param name="BeginTime"></param>
187
         /// <param name="BeginTime"></param>
188
         /// <param name="EndTime"></param>
188
         /// <param name="EndTime"></param>
189
         /// <returns></returns>
189
         /// <returns></returns>
190
-        public string GetStatisticalCallLossData(string BeginTime, string EndTime)
190
+        public string GetStatisticalCallLossData(string BeginTime, string EndTime, string dpt)
191
         {
191
         {
192
             string result = "[";
192
             string result = "[";
193
 
193
 
195
             //{
195
             //{
196
             //    result += ((JTHS)item.Value).CallLossCount + ",";
196
             //    result += ((JTHS)item.Value).CallLossCount + ",";
197
             //}
197
             //}
198
-            var datares = GetStatistical(BeginTime, EndTime);
198
+            var datares = GetStatistical(BeginTime, EndTime, dpt);
199
             ArrayList arrList = new ArrayList(datares.Keys);
199
             ArrayList arrList = new ArrayList(datares.Keys);
200
             arrList.Sort();
200
             arrList.Sort();
201
             for (int i = 0; i < arrList.Count; i++)
201
             for (int i = 0; i < arrList.Count; i++)
212
         /// <param name="BeginTime"></param>
212
         /// <param name="BeginTime"></param>
213
         /// <param name="EndTime"></param>
213
         /// <param name="EndTime"></param>
214
         /// <returns></returns>
214
         /// <returns></returns>
215
-        public string GetStatisticalCallConnectDataRate(string BeginTime, string EndTime)
215
+        public string GetStatisticalCallConnectDataRate(string BeginTime, string EndTime, string dpt)
216
         {
216
         {
217
             string result = "[";
217
             string result = "[";
218
 
218
 
220
             //{
220
             //{
221
             //    result += ((JTHS)item.Value).CallConnectRate.ToString("F2") + ",";
221
             //    result += ((JTHS)item.Value).CallConnectRate.ToString("F2") + ",";
222
             //}
222
             //}
223
-            var datares = GetStatistical(BeginTime, EndTime);
223
+            var datares = GetStatistical(BeginTime, EndTime, dpt);
224
             ArrayList arrList = new ArrayList(datares.Keys);
224
             ArrayList arrList = new ArrayList(datares.Keys);
225
             arrList.Sort();
225
             arrList.Sort();
226
             for (int i = 0; i < arrList.Count; i++)
226
             for (int i = 0; i < arrList.Count; i++)
238
         /// <param name="BeginTime"></param>
238
         /// <param name="BeginTime"></param>
239
         /// <param name="EndTime"></param>
239
         /// <param name="EndTime"></param>
240
         /// <returns></returns>
240
         /// <returns></returns>
241
-        public string GetStatisticalCallLossDataRate(string BeginTime, string EndTime)
241
+        public string GetStatisticalCallLossDataRate(string BeginTime, string EndTime, string dpt)
242
         {
242
         {
243
             string result = "[";
243
             string result = "[";
244
 
244
 
245
-            var datares = GetStatistical(BeginTime, EndTime);
245
+            var datares = GetStatistical(BeginTime, EndTime, dpt);
246
             ArrayList arrList = new ArrayList(datares.Keys);
246
             ArrayList arrList = new ArrayList(datares.Keys);
247
             arrList.Sort();
247
             arrList.Sort();
248
             //foreach (DictionaryEntry item in GetStatistical(BeginTime, EndTime))
248
             //foreach (DictionaryEntry item in GetStatistical(BeginTime, EndTime))
263
         /// <param name="BeginTime"></param>
263
         /// <param name="BeginTime"></param>
264
         /// <param name="EndTime"></param>
264
         /// <param name="EndTime"></param>
265
         /// <returns></returns>
265
         /// <returns></returns>
266
-        public Hashtable GetStatistical(string BeginTime, string EndTime)
266
+        public Hashtable GetStatistical(string BeginTime, string EndTime, string dpt)
267
         {
267
         {
268
             Hashtable tab = new Hashtable();
268
             Hashtable tab = new Hashtable();
269
 
269
 
287
                 endTime = DateTime.Parse(EndTime + " 23:59:59");
287
                 endTime = DateTime.Parse(EndTime + " 23:59:59");
288
             else
288
             else
289
                 endTime = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59");
289
                 endTime = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59");
290
-
290
+            if (dpt != null && dpt.Trim() != "")
291
+            {
292
+                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
293
+            }
291
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
294
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
292
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
295
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
293
             // 没有业务类型。添加这个条件会过滤掉 BusinessType is null 的记录
296
             // 没有业务类型。添加这个条件会过滤掉 BusinessType is null 的记录

+ 36 - 25
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TalkTimeController.cs

27
         }
27
         }
28
 
28
 
29
         //获取数据
29
         //获取数据
30
-        public ActionResult GetDataList(string stime, string endtime)
30
+        public ActionResult GetDataList(string stime, string endtime, string dpt)
31
         {
31
         {
32
             ActionResult res = NoToken("未知错误,请重新登录");
32
             ActionResult res = NoToken("未知错误,请重新登录");
33
 
33
 
34
             DataTable dtNew = new DataTable();
34
             DataTable dtNew = new DataTable();
35
-            dtNew = GetData(stime, endtime);
35
+            dtNew = GetData(stime, endtime, dpt);
36
             #region
36
             #region
37
             //DataTable dtNew = new DataTable();
37
             //DataTable dtNew = new DataTable();
38
             //#region 编辑表头
38
             //#region 编辑表头
90
         }
90
         }
91
 
91
 
92
         //导出数据
92
         //导出数据
93
-        public ActionResult ExptList(string stime, string endtime)
93
+        public ActionResult ExptList(string stime, string endtime, string dpt)
94
         {
94
         {
95
             ActionResult res = NoToken("未知错误,请重新登录");
95
             ActionResult res = NoToken("未知错误,请重新登录");
96
             if (Request.IsAuthenticated)
96
             if (Request.IsAuthenticated)
97
             {
97
             {
98
                 NPOIHelper npoi = new NPOIHelper();
98
                 NPOIHelper npoi = new NPOIHelper();
99
-                DataTable dt = GetData(stime, endtime);
99
+                DataTable dt = GetData(stime, endtime, dpt);
100
                 if (npoi.ExportToExcel("通话时长数据", dt) == "")
100
                 if (npoi.ExportToExcel("通话时长数据", dt) == "")
101
                 {
101
                 {
102
                     return Success("导出成功");
102
                     return Success("导出成功");
110
         }
110
         }
111
 
111
 
112
         //获取数据源
112
         //获取数据源
113
-        private DataTable GetData(string stime, string endtime)
113
+        private DataTable GetData(string stime, string endtime, string dpt)
114
         {
114
         {
115
             DataTable dtNew = new DataTable();
115
             DataTable dtNew = new DataTable();
116
             #region 编辑表头
116
             #region 编辑表头
135
             dtNew.Columns.Add(dc9);
135
             dtNew.Columns.Add(dc9);
136
             #endregion
136
             #endregion
137
 
137
 
138
-            string[] CallInTime = GetCallRecordIn(stime, endtime, "0").TrimStart('[').TrimEnd(']').Split(',');
139
-            string[] CallInTimes = GetCallRecordTotalTime(stime, endtime, "0").TrimStart('[').TrimEnd(']').Split(',');
140
-            string[] CallOutTime = GetCallRecordOut(stime, endtime, "1", "").TrimStart('[').TrimEnd(']').Split(',');
141
-            string[] CallOutTimes = GetCallRecordTotalTime(stime, endtime, "1").TrimStart('[').TrimEnd(']').Split(',');
142
-            string[] CallOutWTime = GetCallRecordOut(stime, endtime, "1", "0").TrimStart('[').TrimEnd(']').Split(',');
143
-            string[] CallOutWTimes = GetCallRecordRingTime(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
144
-            string[] CallTotalTime = GetCallRecordTotalTime(stime, endtime, "").TrimStart('[').TrimEnd(']').Split(',');
138
+            string[] CallInTime = GetCallRecordIn(stime, endtime, "0", dpt).TrimStart('[').TrimEnd(']').Split(',');
139
+            string[] CallInTimes = GetCallRecordTotalTime(stime, endtime, "0", dpt).TrimStart('[').TrimEnd(']').Split(',');
140
+            string[] CallOutTime = GetCallRecordOut(stime, endtime, "1", "", dpt).TrimStart('[').TrimEnd(']').Split(',');
141
+            string[] CallOutTimes = GetCallRecordTotalTime(stime, endtime, "1", dpt).TrimStart('[').TrimEnd(']').Split(',');
142
+            string[] CallOutWTime = GetCallRecordOut(stime, endtime, "1", "0", dpt).TrimStart('[').TrimEnd(']').Split(',');
143
+            string[] CallOutWTimes = GetCallRecordRingTime(stime, endtime, dpt).TrimStart('[').TrimEnd(']').Split(',');
144
+            string[] CallTotalTime = GetCallRecordTotalTime(stime, endtime, "", dpt).TrimStart('[').TrimEnd(']').Split(',');
145
             string[] AgentArr = GetAgent().TrimStart('[').TrimEnd(']').Split(',');
145
             string[] AgentArr = GetAgent().TrimStart('[').TrimEnd(']').Split(',');
146
-            string[] AverageTime = GetCallAverageTime(stime, endtime).TrimStart('[').TrimEnd(']').Split(',');
146
+            string[] AverageTime = GetCallAverageTime(stime, endtime, dpt).TrimStart('[').TrimEnd(']').Split(',');
147
 
147
 
148
             for (int i = 0; i < AgentArr.Length; i++)
148
             for (int i = 0; i < AgentArr.Length; i++)
149
             {
149
             {
173
         /// <param name="EndTime">结束时间</param>
173
         /// <param name="EndTime">结束时间</param>
174
         /// <param name="Tag">1表示呼出,0表示呼入</param>
174
         /// <param name="Tag">1表示呼出,0表示呼入</param>
175
         /// <returns></returns>
175
         /// <returns></returns>
176
-        public string GetCallRecordOut(string BeginTime, string EndTime, string Tag, string state)
176
+        public string GetCallRecordOut(string BeginTime, string EndTime, string Tag, string state, string dpt)
177
         {
177
         {
178
-            return GetHighChartData(BeginTime, EndTime, Tag, state);
178
+            return GetHighChartData(BeginTime, EndTime, Tag, state, dpt);
179
         }
179
         }
180
         /// <summary>
180
         /// <summary>
181
         /// 获取通话总时长
181
         /// 获取通话总时长
183
         /// <param name="BeginTime">开始时间</param>
183
         /// <param name="BeginTime">开始时间</param>
184
         /// <param name="EndTime">结束时间</param>
184
         /// <param name="EndTime">结束时间</param>
185
         /// <returns></returns>
185
         /// <returns></returns>
186
-        public string GetCallRecordTotalTime(string BeginTime, string EndTime, string tag)
186
+        public string GetCallRecordTotalTime(string BeginTime, string EndTime, string tag, string dpt)
187
         {
187
         {
188
             string result = "[";
188
             string result = "[";
189
             string sql = "";
189
             string sql = "";
196
             {
196
             {
197
                 sql += " and DATEDIFF(d,BeginTime,'" + EndTime + "')>=0";
197
                 sql += " and DATEDIFF(d,BeginTime,'" + EndTime + "')>=0";
198
             }
198
             }
199
+            if (dpt != null && dpt.Trim() != "")
200
+            {
201
+                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
202
+            }
199
             if (tag != "")
203
             if (tag != "")
200
             {
204
             {
201
                 sql += " and CallType=" + tag;
205
                 sql += " and CallType=" + tag;
240
         /// <param name="BeginTime">开始时间</param>
244
         /// <param name="BeginTime">开始时间</param>
241
         /// <param name="EndTime">结束时间</param>
245
         /// <param name="EndTime">结束时间</param>
242
         /// <returns></returns>
246
         /// <returns></returns>
243
-        public string GetCallAverageTime(string BeginTime, string EndTime)
247
+        public string GetCallAverageTime(string BeginTime, string EndTime, string dpt)
244
         {
248
         {
245
             string result = "[";
249
             string result = "[";
246
 
250
 
247
-            string[] CallInTime = GetCallRecordIn(BeginTime, EndTime, "0").TrimStart('[').TrimEnd(']').Split(',');
248
-            string[] CallOutTime = GetCallRecordOut(BeginTime, EndTime, "1", "").TrimStart('[').TrimEnd(']').Split(',');
251
+            string[] CallInTime = GetCallRecordIn(BeginTime, EndTime, "0", dpt).TrimStart('[').TrimEnd(']').Split(',');
252
+            string[] CallOutTime = GetCallRecordOut(BeginTime, EndTime, "1", "", dpt).TrimStart('[').TrimEnd(']').Split(',');
249
 
253
 
250
-            string[] CallTotalTime = GetCallRecordTotalTime(BeginTime, EndTime, "").TrimStart('[').TrimEnd(']').Split(',');
254
+            string[] CallTotalTime = GetCallRecordTotalTime(BeginTime, EndTime, "", dpt).TrimStart('[').TrimEnd(']').Split(',');
251
 
255
 
252
             for (int i = 0; i < CallInTime.Length; i++)
256
             for (int i = 0; i < CallInTime.Length; i++)
253
             {
257
             {
274
         /// <param name="BeginTime">开始时间</param>
278
         /// <param name="BeginTime">开始时间</param>
275
         /// <param name="EndTime">结束时间</param>
279
         /// <param name="EndTime">结束时间</param>
276
         /// <returns></returns>
280
         /// <returns></returns>
277
-        public string GetCallRecordIn(string BeginTime, string EndTime, string Tag)
281
+        public string GetCallRecordIn(string BeginTime, string EndTime, string Tag, string dpt)
278
         {
282
         {
279
-            return GetHighChartData(BeginTime, EndTime, Tag, "");
283
+            return GetHighChartData(BeginTime, EndTime, Tag, "", dpt);
280
         }
284
         }
281
         /// <summary>
285
         /// <summary>
282
         /// 获取呼入呼出数据
286
         /// 获取呼入呼出数据
285
         /// <param name="EndTime">结束时间</param>
289
         /// <param name="EndTime">结束时间</param>
286
         /// <param name="Tag">1表示呼出,0表示呼入</param>
290
         /// <param name="Tag">1表示呼出,0表示呼入</param>
287
         /// <returns></returns>
291
         /// <returns></returns>
288
-        private string GetHighChartData(string BeginTime, string EndTime, string Tag, string state)
292
+        private string GetHighChartData(string BeginTime, string EndTime, string Tag, string state, string dpt)
289
         {
293
         {
290
             string result = "[";
294
             string result = "[";
291
             string sql = " and CallType=" + Tag; // 呼入
295
             string sql = " and CallType=" + Tag; // 呼入
305
             {
309
             {
306
                 sql += " and CallState=" + state.Trim();
310
                 sql += " and CallState=" + state.Trim();
307
             }
311
             }
308
-
312
+            if (dpt != null && dpt.Trim() != "")
313
+            {
314
+                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
315
+            }
309
             //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];
316
             //DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
310
             //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";
317
             //var recordstr = " select users.F_UserId,users.F_UserCode,users.F_UserName,COUNT(*) AS calloutCount from T_Sys_UserAccount users right join T_Call_CallRecords records on users.F_UserCode = records.UserCode and 1=1 " + sql + " GROUP BY users.F_UserId,users.F_UserCode,users.F_UserName";
311
             //20180509 通话时长统计不对  machenyang
318
             //20180509 通话时长统计不对  machenyang
340
         /// <param name="BeginTime"></param>
347
         /// <param name="BeginTime"></param>
341
         /// <param name="EndTime"></param>
348
         /// <param name="EndTime"></param>
342
         /// <returns></returns>
349
         /// <returns></returns>
343
-        public string GetCallRecordRingTime(string BeginTime, string EndTime)
350
+        public string GetCallRecordRingTime(string BeginTime, string EndTime, string dpt)
344
         {
351
         {
345
             string result = "[";
352
             string result = "[";
346
             string sql = "";
353
             string sql = "";
355
                 sql += " and BeginTime<='" + EndTime + "'";
362
                 sql += " and BeginTime<='" + EndTime + "'";
356
                 //sql += " and DATEDIFF(d,BeginTime,'" + EndTime + "')>=0";
363
                 //sql += " and DATEDIFF(d,BeginTime,'" + EndTime + "')>=0";
357
             }
364
             }
365
+            if (dpt != null && dpt.Trim() != "")
366
+            {
367
+                sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
368
+            }
358
             //只统计呼入振铃时长
369
             //只统计呼入振铃时长
359
             sql += " and CallType=0 ";
370
             sql += " and CallType=0 ";
360
 
371
 

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

29
         }
29
         }
30
 
30
 
31
         //获取数据
31
         //获取数据
32
-        public ActionResult GetDataList(string years)
32
+        public ActionResult GetDataList(string years, string dpt)
33
         {
33
         {
34
             ActionResult res = NoToken("未知错误,请重新登录");
34
             ActionResult res = NoToken("未知错误,请重新登录");
35
             if (Request.IsAuthenticated)
35
             if (Request.IsAuthenticated)
46
                 dtNew.Columns.Add(dc3);
46
                 dtNew.Columns.Add(dc3);
47
                 dtNew.Columns.Add(dc4);
47
                 dtNew.Columns.Add(dc4);
48
                 #endregion
48
                 #endregion
49
+                var sql = "";
50
+                if (dpt != null && dpt.Trim() != "")
51
+                {
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
+                }
49
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
54
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
50
-                var list = bll.DataTableToList(bll.GetList(" 1=1 ").Tables[0]);
55
+                var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
51
                 DateTime dtNow;
56
                 DateTime dtNow;
52
                 int Count = 0;
57
                 int Count = 0;
53
                 int DayCount = 0;
58
                 int DayCount = 0;
54
-
59
+                
55
                 if (string.IsNullOrEmpty(years))
60
                 if (string.IsNullOrEmpty(years))
56
                 {
61
                 {
57
                     dtNow = DateTime.Now;
62
                     dtNow = DateTime.Now;
120
             return res;
125
             return res;
121
         }
126
         }
122
 
127
 
123
-        private DataTable GetData(string years)
128
+        private DataTable GetData(string years, string dpt)
124
         {
129
         {
125
             DataTable dtNew = new DataTable();
130
             DataTable dtNew = new DataTable();
126
             try {
131
             try {
133
                 dtNew.Columns.Add(dc2);
138
                 dtNew.Columns.Add(dc2);
134
                 dtNew.Columns.Add(dc3);
139
                 dtNew.Columns.Add(dc3);
135
                 #endregion
140
                 #endregion
141
+                var sql = "";
142
+                if (dpt != null && dpt.Trim() != "")
143
+                {
144
+                    sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
145
+                }
136
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
146
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
137
-                var list = bll.DataTableToList(bll.GetList(" 1=1 ").Tables[0]);
147
+                var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
138
                 DateTime dtNow;
148
                 DateTime dtNow;
139
                 int Count = 0;
149
                 int Count = 0;
140
                 int DayCount = 0;
150
                 int DayCount = 0;
204
             return dtNew;
214
             return dtNew;
205
         }
215
         }
206
 
216
 
207
-        public ActionResult ExptList(string years)
217
+        public ActionResult ExptList(string years, string dpt)
208
         {
218
         {
209
             ActionResult res = NoToken("未知错误,请重新登录");
219
             ActionResult res = NoToken("未知错误,请重新登录");
210
             if (Request.IsAuthenticated)
220
             if (Request.IsAuthenticated)
211
             {
221
             {
212
                 NPOIHelper npoi = new NPOIHelper();
222
                 NPOIHelper npoi = new NPOIHelper();
213
-                DataTable dt = GetData(years);
223
+                DataTable dt = GetData(years, dpt);
214
                 if (npoi.ExportToExcel("总呼叫量数据", dt) == "")
224
                 if (npoi.ExportToExcel("总呼叫量数据", dt) == "")
215
                 {
225
                 {
216
                     return Success("导出成功");
226
                     return Success("导出成功");
224
         }
234
         }
225
 
235
 
226
         //获取图形数据
236
         //获取图形数据
227
-        public ActionResult GetChartData(string years)
237
+        public ActionResult GetChartData(string years, string dpt)
228
         {
238
         {
229
             ActionResult res = NoToken("未知错误,请重新登录");
239
             ActionResult res = NoToken("未知错误,请重新登录");
230
             if (Request.IsAuthenticated)
240
             if (Request.IsAuthenticated)
231
             {
241
             {
232
                 string[] arr=new string[12];
242
                 string[] arr=new string[12];
233
-
243
+                var sql = "";
244
+                if (dpt != null && dpt.Trim() != "")
245
+                {
246
+                    sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
247
+                }
234
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
248
                 //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
235
-                var list = bll.DataTableToList(bll.GetList(" 1=1 ").Tables[0]);
249
+                var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
236
                 DateTime dtNow;
250
                 DateTime dtNow;
237
 
251
 
238
                 if (string.IsNullOrEmpty(years))
252
                 if (string.IsNullOrEmpty(years))

Dosya farkı çok büyük olduğundan ihmal edildi
+ 9 - 3
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallrecordsController.cs