Просмотр исходного кода

自定义客户字段
坐席工作报表自定义导出

yuqian лет назад: 8
Родитель
Сommit
0bc49719f2

+ 25 - 10
CallCenterApi/CallCenterApi.DAL/T_Sys_UserAccount.cs

@@ -165,7 +165,10 @@ namespace CallCenterApi.DAL
165 165
             strSql.Append("F_DeptCode=@F_DeptCode,");
166 166
             strSql.Append("F_WXNo=@F_WXNo,");
167 167
             strSql.Append("F_SeartGroupID=@F_SeartGroupID,");
168
-            strSql.Append("F_SeartGroup=@F_SeartGroup");
168
+            strSql.Append("F_StartTime1=@F_StartTime1,");
169
+            strSql.Append("F_StartTime2=@F_StartTime2, ");
170
+            strSql.Append("F_EndTime1=@F_EndTime1, ");
171
+            strSql.Append("F_EndTime2=@F_EndTime2 ");
169 172
             strSql.Append(" where F_UserId=@F_UserId");
170 173
             SqlParameter[] parameters = {
171 174
                     new SqlParameter("@F_UserCode", SqlDbType.VarChar,50),
@@ -199,6 +202,10 @@ namespace CallCenterApi.DAL
199 202
                     new SqlParameter("@F_WXNo", SqlDbType.NVarChar,50),
200 203
                     new SqlParameter("@F_SeartGroupID", SqlDbType.Int,4),
201 204
                     new SqlParameter("@F_SeartGroup", SqlDbType.NVarChar,50),
205
+                    new SqlParameter("@F_StartTime1",  SqlDbType.DateTime),
206
+                    new SqlParameter("@F_StartTime2",  SqlDbType.DateTime),
207
+                    new SqlParameter("@F_EndTime1",  SqlDbType.DateTime),
208
+                    new SqlParameter("@F_EndTime2", SqlDbType.DateTime),
202 209
                     new SqlParameter("@F_UserId", SqlDbType.Int,4)};
203 210
             parameters[0].Value = model.F_UserCode;
204 211
             parameters[1].Value = model.F_Password;
@@ -231,7 +238,11 @@ namespace CallCenterApi.DAL
231 238
             parameters[28].Value = model.F_WXNo;
232 239
             parameters[29].Value = model.F_SeartGroupID;
233 240
             parameters[30].Value = model.F_SeartGroup;
234
-            parameters[31].Value = model.F_UserId;
241
+            parameters[31].Value = model.StartTime1;
242
+            parameters[32].Value = model.StartTime2;
243
+            parameters[33].Value = model.EndTime1;
244
+            parameters[34].Value = model.EndTime2;
245
+            parameters[35].Value = model.F_UserId;
235 246
 
236 247
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
237 248
             if (rows > 0)
@@ -308,11 +319,11 @@ namespace CallCenterApi.DAL
308 319
         /// <summary>
309 320
         /// 登录得到一个对象实体
310 321
         /// </summary>
311
-        public Model.T_Sys_UserAccount LoginGetModel(string F_UserCode,string F_Password)
322
+        public Model.T_Sys_UserAccount LoginGetModel(string F_UserCode, string F_Password)
312 323
         {
313 324
 
314 325
             StringBuilder strSql = new StringBuilder();
315
-            strSql.Append("select  top 1 F_UserId,F_UserCode,F_Password,F_ExtensionNumber,F_UserName,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup from T_Sys_UserAccount ");
326
+            strSql.Append("select  top 1 F_UserId,F_UserCode,F_Password,F_ExtensionNumber,F_UserName,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup,F_StartTime1,F_StartTime2,F_EndTime1,F_EndTime2  from T_Sys_UserAccount ");
316 327
             strSql.Append(" where F_UserCode=@F_UserCode and F_Password=@F_Password and  F_DeleteFlag=0");
317 328
             SqlParameter[] parameters = {
318 329
                     new SqlParameter("@F_UserCode", SqlDbType.VarChar,50),
@@ -340,7 +351,7 @@ namespace CallCenterApi.DAL
340 351
         {
341 352
 
342 353
             StringBuilder strSql = new StringBuilder();
343
-            strSql.Append("select  top 1 F_UserId,F_UserCode,F_ExtensionNumber,F_UserName,F_Password,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup from T_Sys_UserAccount ");
354
+            strSql.Append("select  top 1 F_UserId,F_UserCode,F_ExtensionNumber,F_UserName,F_Password,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup,F_StartTime1,F_StartTime2,F_EndTime1,F_EndTime2  from T_Sys_UserAccount ");
344 355
             strSql.Append(" where F_UserCode=@F_UserCode");
345 356
             SqlParameter[] parameters = {
346 357
                     new SqlParameter("@F_UserCode", SqlDbType.VarChar,50)
@@ -366,7 +377,7 @@ namespace CallCenterApi.DAL
366 377
         {
367 378
 
368 379
             StringBuilder strSql = new StringBuilder();
369
-            strSql.Append("select  top 1 F_UserId,F_UserCode,F_Password,F_ExtensionNumber,F_UserName,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup from T_Sys_UserAccount ");
380
+            strSql.Append("select  top 1 F_UserId,F_UserCode,F_Password,F_ExtensionNumber,F_UserName,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup,F_StartTime1,F_StartTime2,F_EndTime1,F_EndTime2 from T_Sys_UserAccount ");
370 381
             strSql.Append(" where F_UserId=@F_UserId");
371 382
             SqlParameter[] parameters = {
372 383
                     new SqlParameter("@F_UserId", SqlDbType.Int,4)
@@ -385,8 +396,8 @@ namespace CallCenterApi.DAL
385 396
             }
386 397
         }
387 398
 
388
-       
389
-      
399
+
400
+
390 401
 
391 402
         /// <summary>
392 403
         /// 得到一个对象实体
@@ -408,7 +419,7 @@ namespace CallCenterApi.DAL
408 419
                 {
409 420
                     model.F_Password = row["F_Password"].ToString();
410 421
                 }
411
-                
422
+
412 423
                 if (row["F_ExtensionNumber"] != null)
413 424
                 {
414 425
                     model.F_ExtensionNumber = row["F_ExtensionNumber"].ToString();
@@ -546,6 +557,10 @@ namespace CallCenterApi.DAL
546 557
                 {
547 558
                     model.F_SeartGroup = row["F_SeartGroup"].ToString();
548 559
                 }
560
+                model.StartTime1 = row["F_StartTime1"] == DBNull.Value ? null : (DateTime?)DateTime.Parse(row["F_StartTime1"].ToString());
561
+                model.StartTime2 = row["F_StartTime2"] == DBNull.Value ? null : (DateTime?)DateTime.Parse(row["F_StartTime2"].ToString());
562
+                model.EndTime1 = row["F_EndTime1"] == DBNull.Value ? null : (DateTime?)DateTime.Parse(row["F_EndTime1"].ToString());
563
+                model.EndTime2 = row["F_EndTime2"] == DBNull.Value ? null : (DateTime?)DateTime.Parse(row["F_EndTime2"].ToString());
549 564
             }
550 565
             return model;
551 566
         }
@@ -582,7 +597,7 @@ namespace CallCenterApi.DAL
582 597
         public DataSet GetList(string strWhere)
583 598
         {
584 599
             StringBuilder strSql = new StringBuilder();
585
-            strSql.Append("select F_UserId,F_UserCode,F_Password,F_ExtensionNumber,F_UserName,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup ");
600
+            strSql.Append("select F_UserId,F_UserCode,F_Password,F_ExtensionNumber,F_UserName,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup,F_StartTime1,F_StartTime2,F_EndTime1,F_EndTime2  ");
586 601
             strSql.Append(" FROM T_Sys_UserAccount ");
587 602
             if (strWhere.Trim() != "")
588 603
             {

+ 1 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/CallCenterApi.Interface.csproj

@@ -312,6 +312,7 @@
312 312
     <Compile Include="Models\Filter\FilterUserAccount.cs" />
313 313
     <Compile Include="Models\Filter\FilterProduct.cs" />
314 314
     <Compile Include="Models\Input\BanCallOutInput.cs" />
315
+    <Compile Include="Models\Input\CallInTimeInput.cs" />
315 316
     <Compile Include="Models\Input\CallNumberInput.cs" />
316 317
     <Compile Include="Models\Input\CallPlanInput.cs" />
317 318
     <Compile Include="Models\Input\CategoryInput.cs" />

+ 30 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/UserAccountController.cs

@@ -556,5 +556,35 @@ namespace CallCenterApi.Interface.Controllers
556 556
             return res;
557 557
         }
558 558
 
559
+
560
+        public ActionResult UpdateCallInTime(CallInTimeInput input)
561
+        {
562
+            var model = sysUserAccountBll.GetModel(CurrentUser.UserData.F_UserId);
563
+            if (model == null)
564
+                return Error("当前用户不存在");
565
+            model.StartTime1 = input.StartTime1;
566
+            model.EndTime1 = input.EndTime1;
567
+            model.StartTime2 = input.StartTime2;
568
+            model.EndTime1 = input.EndTime1;
569
+            if (sysUserAccountBll.Update(model))
570
+                return Success("修改成功");
571
+            return Error("修改失败");
572
+        }
573
+
574
+        public ActionResult GetCallInTime(CallInTimeInput input)
575
+        {
576
+            var model = sysUserAccountBll.GetModel(CurrentUser.UserData.F_UserId);
577
+            if (model == null)
578
+                return Error("当前用户不存在");
579
+
580
+            return Success("获取成功", new
581
+            {
582
+                starttime1 = model.StartTime1,
583
+                starttime2 = model.StartTime2,
584
+                endtime1 = model.EndTime1,
585
+                endtime2 = model.EndTime2
586
+            });
587
+        }
588
+
559 589
     }
560 590
 }

+ 1 - 1
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/callout/CallPlanController.cs

@@ -906,7 +906,7 @@ namespace CallCenterApi.Interface.Controllers.callout
906 906
                 {
907 907
                     if (deptCode.Replace("|0|1|", "").Length > 0)
908 908
                     {
909
-                        sql += " and DeptId in (select F_DeptId from T_Sys_Department where F_DeptCode like '" + deptCode + "%') ";
909
+                        sql += $" and DeptId in (select F_ParentId from T_Sys_Department where F_DeptId={deptid}) ";
910 910
                     }
911 911
                 }
912 912
             }

+ 98 - 6
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/customer/CustomerController.cs

@@ -186,6 +186,7 @@ namespace CallCenterApi.Interface.Controllers.customer
186 186
         public ActionResult AddCustomer(CustomerInput input)
187 187
         {
188 188
             Model.T_Cus_CustomerBase model = new Model.T_Cus_CustomerBase();
189
+            Model.T_Cus_CustomerExpand expand = new Model.T_Cus_CustomerExpand();
189 190
             BLL.T_Cus_CustomerBase bll = new BLL.T_Cus_CustomerBase();
190 191
             if (!string.IsNullOrWhiteSpace(input.Id))
191 192
             {
@@ -199,11 +200,55 @@ namespace CallCenterApi.Interface.Controllers.customer
199 200
                 model.F_PhoneNum2 = input.PhoneNum2;
200 201
                 model.F_AddAgentId = CurrentUser.UserData.F_UserId;
201 202
                 model.F_DeptId = CurrentUser.UserData.F_DeptId;
202
-
203
-
204
-
205 203
                 if (bll.Add(model) > 0)
206
-                    return Success("新增成功!");
204
+                {
205
+                    #region 自定义字段
206
+                    expand.F_StrExpand1 = input.F_StrExpand1;
207
+                    expand.F_StrExpand2 = input.F_StrExpand2;
208
+                    expand.F_StrExpand3 = input.F_StrExpand3;
209
+                    expand.F_StrExpand4 = input.F_StrExpand4;
210
+                    expand.F_StrExpand5 = input.F_StrExpand5;
211
+                    expand.F_StrExpand6 = input.F_StrExpand6;
212
+                    expand.F_StrExpand7 = input.F_StrExpand7;
213
+                    expand.F_StrExpand8 = input.F_StrExpand8;
214
+                    expand.F_StrExpand9 = input.F_StrExpand9;
215
+                    expand.F_StrExpand1 = input.F_StrExpand1;
216
+                    expand.F_StrExpand11 = input.F_StrExpand11;
217
+                    expand.F_StrExpand12 = input.F_StrExpand12;
218
+                    expand.F_StrExpand13 = input.F_StrExpand13;
219
+                    expand.F_StrExpand14 = input.F_StrExpand14;
220
+                    expand.F_StrExpand15 = input.F_StrExpand15;
221
+                    expand.F_StrExpand16 = input.F_StrExpand16;
222
+                    expand.F_StrExpand17 = input.F_StrExpand17;
223
+                    expand.F_StrExpand18 = input.F_StrExpand18;
224
+                    expand.F_StrExpand19 = input.F_StrExpand19;
225
+                    expand.F_StrExpand20 = input.F_StrExpand20;
226
+                    expand.F_StrExpand21 = input.F_StrExpand21;
227
+                    expand.F_StrExpand22 = input.F_StrExpand22;
228
+                    expand.F_StrExpand23 = input.F_StrExpand23;
229
+                    expand.F_StrExpand24 = input.F_StrExpand24;
230
+                    expand.F_StrExpand25 = input.F_StrExpand25;
231
+                    expand.F_StrExpand26 = input.F_StrExpand26;
232
+                    expand.F_StrExpand27 = input.F_StrExpand27;
233
+                    expand.F_StrExpand28 = input.F_StrExpand28;
234
+                    expand.F_StrExpand29 = input.F_StrExpand29;
235
+                    expand.F_StrExpand30 = input.F_StrExpand30;
236
+                    expand.F_StrExpand31 = input.F_StrExpand31;
237
+                    expand.F_StrExpand32 = input.F_StrExpand32;
238
+                    expand.F_StrExpand33 = input.F_StrExpand33;
239
+                    expand.F_StrExpand34 = input.F_StrExpand34;
240
+                    expand.F_StrExpand35 = input.F_StrExpand35;
241
+                    expand.F_StrExpand36 = input.F_StrExpand36;
242
+                    expand.F_StrExpand37 = input.F_StrExpand37;
243
+                    expand.F_StrExpand38 = input.F_StrExpand38;
244
+                    expand.F_StrExpand39 = input.F_StrExpand39;
245
+                    expand.F_StrExpand40 = input.F_StrExpand40;
246
+                    #endregion
247
+                    if (customerExpandBLL.Add(expand))
248
+                        return Success("新增成功!");
249
+                    return Error("自定义字段添加失败!");
250
+                }
251
+
207 252
                 return Error("新增失败!");
208 253
 
209 254
             }
@@ -220,7 +265,54 @@ namespace CallCenterApi.Interface.Controllers.customer
220 265
             model.F_PhoneNum1 = input.PhoneNum1;
221 266
             model.F_PhoneNum2 = input.PhoneNum2;
222 267
             if (bll.Update(model))
223
-                return Success("修改成功!");
268
+            {
269
+                #region 自定义字段
270
+                expand.F_StrExpand1 = string.IsNullOrWhiteSpace(input.F_StrExpand1) ? expand.F_StrExpand1 : input.F_StrExpand1;
271
+                expand.F_StrExpand2 = string.IsNullOrWhiteSpace(input.F_StrExpand2) ? expand.F_StrExpand2 : input.F_StrExpand2;
272
+                expand.F_StrExpand3 = string.IsNullOrWhiteSpace(input.F_StrExpand3) ? expand.F_StrExpand3 : input.F_StrExpand3;
273
+                expand.F_StrExpand4 = string.IsNullOrWhiteSpace(input.F_StrExpand4) ? expand.F_StrExpand4 : input.F_StrExpand4;
274
+                expand.F_StrExpand5 = string.IsNullOrWhiteSpace(input.F_StrExpand5) ? expand.F_StrExpand5 : input.F_StrExpand5;
275
+                expand.F_StrExpand6 = string.IsNullOrWhiteSpace(input.F_StrExpand6) ? expand.F_StrExpand6 : input.F_StrExpand6;
276
+                expand.F_StrExpand7 = string.IsNullOrWhiteSpace(input.F_StrExpand7) ? expand.F_StrExpand7 : input.F_StrExpand7;
277
+                expand.F_StrExpand8 = string.IsNullOrWhiteSpace(input.F_StrExpand8) ? expand.F_StrExpand8 : input.F_StrExpand8;
278
+                expand.F_StrExpand9 = string.IsNullOrWhiteSpace(input.F_StrExpand9) ? expand.F_StrExpand9 : input.F_StrExpand9;
279
+                expand.F_StrExpand1 = string.IsNullOrWhiteSpace(input.F_StrExpand1) ? expand.F_StrExpand1 : input.F_StrExpand1;
280
+                expand.F_StrExpand11 = string.IsNullOrWhiteSpace(input.F_StrExpand11) ? expand.F_StrExpand11 : input.F_StrExpand11;
281
+                expand.F_StrExpand12 = string.IsNullOrWhiteSpace(input.F_StrExpand12) ? expand.F_StrExpand12 : input.F_StrExpand12;
282
+                expand.F_StrExpand13 = string.IsNullOrWhiteSpace(input.F_StrExpand13) ? expand.F_StrExpand13 : input.F_StrExpand13;
283
+                expand.F_StrExpand14 = string.IsNullOrWhiteSpace(input.F_StrExpand14) ? expand.F_StrExpand14 : input.F_StrExpand14;
284
+                expand.F_StrExpand15 = string.IsNullOrWhiteSpace(input.F_StrExpand15) ? expand.F_StrExpand15 : input.F_StrExpand15;
285
+                expand.F_StrExpand16 = string.IsNullOrWhiteSpace(input.F_StrExpand16) ? expand.F_StrExpand16 : input.F_StrExpand16;
286
+                expand.F_StrExpand17 = string.IsNullOrWhiteSpace(input.F_StrExpand17) ? expand.F_StrExpand17 : input.F_StrExpand17;
287
+                expand.F_StrExpand18 = string.IsNullOrWhiteSpace(input.F_StrExpand18) ? expand.F_StrExpand18 : input.F_StrExpand18;
288
+                expand.F_StrExpand19 = string.IsNullOrWhiteSpace(input.F_StrExpand19) ? expand.F_StrExpand19 : input.F_StrExpand19;
289
+                expand.F_StrExpand20 = string.IsNullOrWhiteSpace(input.F_StrExpand20) ? expand.F_StrExpand20 : input.F_StrExpand20;
290
+                expand.F_StrExpand21 = string.IsNullOrWhiteSpace(input.F_StrExpand21) ? expand.F_StrExpand21 : input.F_StrExpand21;
291
+                expand.F_StrExpand22 = string.IsNullOrWhiteSpace(input.F_StrExpand22) ? expand.F_StrExpand22 : input.F_StrExpand22;
292
+                expand.F_StrExpand23 = string.IsNullOrWhiteSpace(input.F_StrExpand23) ? expand.F_StrExpand23 : input.F_StrExpand23;
293
+                expand.F_StrExpand24 = string.IsNullOrWhiteSpace(input.F_StrExpand24) ? expand.F_StrExpand24 : input.F_StrExpand24;
294
+                expand.F_StrExpand25 = string.IsNullOrWhiteSpace(input.F_StrExpand25) ? expand.F_StrExpand25 : input.F_StrExpand25;
295
+                expand.F_StrExpand26 = string.IsNullOrWhiteSpace(input.F_StrExpand26) ? expand.F_StrExpand26 : input.F_StrExpand26;
296
+                expand.F_StrExpand27 = string.IsNullOrWhiteSpace(input.F_StrExpand27) ? expand.F_StrExpand27 : input.F_StrExpand27;
297
+                expand.F_StrExpand28 = string.IsNullOrWhiteSpace(input.F_StrExpand28) ? expand.F_StrExpand28 : input.F_StrExpand28;
298
+                expand.F_StrExpand29 = string.IsNullOrWhiteSpace(input.F_StrExpand29) ? expand.F_StrExpand29 : input.F_StrExpand29;
299
+                expand.F_StrExpand30 = string.IsNullOrWhiteSpace(input.F_StrExpand30) ? expand.F_StrExpand30 : input.F_StrExpand30;
300
+                expand.F_StrExpand31 = string.IsNullOrWhiteSpace(input.F_StrExpand31) ? expand.F_StrExpand31 : input.F_StrExpand31;
301
+                expand.F_StrExpand32 = string.IsNullOrWhiteSpace(input.F_StrExpand32) ? expand.F_StrExpand32 : input.F_StrExpand32;
302
+                expand.F_StrExpand33 = string.IsNullOrWhiteSpace(input.F_StrExpand33) ? expand.F_StrExpand33 : input.F_StrExpand33;
303
+                expand.F_StrExpand34 = string.IsNullOrWhiteSpace(input.F_StrExpand34) ? expand.F_StrExpand34 : input.F_StrExpand34;
304
+                expand.F_StrExpand35 = string.IsNullOrWhiteSpace(input.F_StrExpand35) ? expand.F_StrExpand35 : input.F_StrExpand35;
305
+                expand.F_StrExpand36 = string.IsNullOrWhiteSpace(input.F_StrExpand36) ? expand.F_StrExpand36 : input.F_StrExpand36;
306
+                expand.F_StrExpand37 = string.IsNullOrWhiteSpace(input.F_StrExpand37) ? expand.F_StrExpand37 : input.F_StrExpand37;
307
+                expand.F_StrExpand38 = string.IsNullOrWhiteSpace(input.F_StrExpand38) ? expand.F_StrExpand38 : input.F_StrExpand38;
308
+                expand.F_StrExpand39 = string.IsNullOrWhiteSpace(input.F_StrExpand39) ? expand.F_StrExpand39 : input.F_StrExpand39;
309
+                expand.F_StrExpand40 = string.IsNullOrWhiteSpace(input.F_StrExpand40) ? expand.F_StrExpand40 : input.F_StrExpand40;
310
+                #endregion
311
+                if (customerExpandBLL.Update(expand))
312
+                    return Success("修改成功!");
313
+                return Error("自定义字段修改失败!");
314
+            }
315
+
224 316
             return Error("修改失败!");
225 317
         }
226 318
 
@@ -228,7 +320,7 @@ namespace CallCenterApi.Interface.Controllers.customer
228 320
         /// 删除客户
229 321
         /// </summary>
230 322
         /// <param name="ids"></param>
231
-        /// <returns></returns>
323
+        /// <returns></returns> 
232 324
         public ActionResult DelCustomer(string[] ids)
233 325
         {
234 326
             if (ids != null && ids.Length > 0)

+ 17 - 2
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/customer/CustomerFieldController.cs

@@ -17,7 +17,7 @@ namespace CallCenterApi.Interface.Controllers.customer
17 17
 
18 18
 
19 19
         /// <summary>
20
-        /// 系统字段+自定义字段列表
20
+        /// 右侧系统字段+已选择的自定义字段列表
21 21
         /// </summary>
22 22
         /// <param name="filter"></param>
23 23
         /// <returns></returns>
@@ -55,6 +55,11 @@ namespace CallCenterApi.Interface.Controllers.customer
55 55
         //    return Success("", model);
56 56
         //}
57 57
 
58
+        /// <summary>
59
+        /// 添加选中的自定义字段 / 修改已选中的自定义字段
60
+        /// </summary>
61
+        /// <param name="input"></param>
62
+        /// <returns></returns>
58 63
         public ActionResult CreateOrUpdate(CustomerFieldInput input)
59 64
         {
60 65
             Model.T_Cus_CustomerField model = new Model.T_Cus_CustomerField();
@@ -94,6 +99,11 @@ namespace CallCenterApi.Interface.Controllers.customer
94 99
             return Error("参数错误");
95 100
         }
96 101
 
102
+        /// <summary>
103
+        /// 删除已选中的自定义字段
104
+        /// </summary>
105
+        /// <param name="id"></param>
106
+        /// <returns></returns>
97 107
         public ActionResult Delete(int id)
98 108
         {
99 109
             if (customerFieldBLL.Delete(id))
@@ -101,9 +111,14 @@ namespace CallCenterApi.Interface.Controllers.customer
101 111
             return Error("删除成功");
102 112
         }
103 113
 
114
+        /// <summary>
115
+        /// 左侧所有自定义字段
116
+        /// </summary>
117
+        /// <param name="filter"></param>
118
+        /// <returns></returns>
104 119
         public ActionResult GetEntity(FilterExcelTmp filter)
105 120
         {
106
-            var sql = "  and F_DBTableName='T_Cus_CustomerExpand' ";
121
+            var sql = "  and F_DBTableName='T_Cus_CustomerExpand' and F_AttributeId not in (select F_FieldId from T_Cus_CustomerField where F_FieldType=1) ";
107 122
 
108 123
             if (filter.Type > 0)
109 124
             {

+ 77 - 553
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiWorkTotalController.cs

@@ -12,25 +12,20 @@ namespace CallCenterApi.Interface.Controllers.report
12 12
 {
13 13
     public class ZuoXiWorkTotalController : BaseController
14 14
     {
15
+        private readonly BLL.T_Sys_UserAccount userAccountBLL = new BLL.T_Sys_UserAccount();
16
+        private List<string> str = new List<string>() { "公司","部门", "坐席工号", "坐席姓名", "角色", "固话号码",
17
+                             "呼入电话数", "接通量", "接通率", "呼入通话分钟数",
18
+                             "呼出电话数", "呼通量", "呼通率", "呼出通话分钟数",
19
+                             "坐席登录次数", "登录时长分钟数", "工作时长分钟数", "平均每天工作小时数", "休息时长分钟数", "质检平均成绩"
20
+            };
21
+
15 22
         //坐席工作统计
16 23
         //获取表头
17 24
         public ActionResult GetColumnList()
18 25
         {
19 26
             ActionResult res = NoToken("未知错误,请重新登录");
20 27
 
21
-            //String[] str = { "部门", "坐席", "坐席工号","角色" ,"呼入电话数", "坐席接通量", "呼损量"
22
-            //            ,"接通率","呼损率","平均排队时间","接听通话次数","通话分钟数","通话秒数"
23
-            //            ,"平均接听通话秒数","平均振铃秒数","呼入占有率","用户评价","坐席登录次数"
24
-            //            ,"登录时长分钟数","工作时长分钟数","平均每天工作时长(小时)","平均操作分钟数"
25
-            //            ,"置忙次数","休息时长分钟数","平均每天休息时长(小时)"
26
-            //            ,"置忙平均休息分钟数","质检平均成绩"
27
-            //    };
28 28
 
29
-            string[] str = { "公司","部门", "坐席工号", "坐席姓名", "角色", "固话号码",
30
-                             "呼入电话数", "接通量", "接通率", "呼入通话分钟数",
31
-                             "呼出电话数", "呼通量", "呼通率", "呼出通话分钟数",
32
-                             "坐席登录次数", "登录时长分钟数", "工作时长分钟数", "平均每天工作时长(小时)", "休息时长分钟数", "质检平均成绩"
33
-            };
34 29
             res = Success("获取坐席工作统计表头成功", str);
35 30
 
36 31
             return res;
@@ -43,364 +38,30 @@ namespace CallCenterApi.Interface.Controllers.report
43 38
 
44 39
             DataTable dtNew = new DataTable();
45 40
             dtNew = getData(stime, endtime, dpt, dayss, usercode, extensionnumber);
46
-            #region
47
-            //#region
48
-            //DataColumn dc1 = new DataColumn("部门");
49
-            //DataColumn dc2 = new DataColumn("坐席");
50
-            //DataColumn dc3 = new DataColumn("坐席工号");
51
-            //DataColumn dc4 = new DataColumn("呼入电话数");
52
-            //DataColumn dc5 = new DataColumn("坐席接通量");
53
-            //DataColumn dc6 = new DataColumn("呼损量");
54
-            //DataColumn dc7 = new DataColumn("接通率");
55
-            //DataColumn dc8 = new DataColumn("呼损率");
56
-            //DataColumn dc9 = new DataColumn("平均排队时间");
57
-            //DataColumn dc10 = new DataColumn("接听通话次数");
58
-            //DataColumn dc11 = new DataColumn("通话分钟数");
59
-            //DataColumn dc12 = new DataColumn("通话秒数");
60
-            //DataColumn dc13 = new DataColumn("平均接听通话秒数");
61
-            //DataColumn dc14 = new DataColumn("平均振铃秒数");
62
-            //DataColumn dc15 = new DataColumn("呼入占有率");
63
-            //DataColumn dc16 = new DataColumn("用户评价");
64
-            //DataColumn dc17 = new DataColumn("坐席登录次数");
65
-            //DataColumn dc18 = new DataColumn("登录时长分钟数");
66
-            //DataColumn dc19 = new DataColumn("工作时长分钟数");
67
-            //DataColumn dc20 = new DataColumn("平均每天工作时长");
68
-            //DataColumn dc21 = new DataColumn("平均操作分钟数");
69
-            //DataColumn dc22 = new DataColumn("置忙次数");
70
-            //DataColumn dc23 = new DataColumn("休息时长分钟数");
71
-            //DataColumn dc24 = new DataColumn("平均每天休息时长");
72
-            //DataColumn dc25 = new DataColumn("置忙平均休息分钟数");
73
-            //DataColumn dc26 = new DataColumn("质检平均成绩");
74
-
75
-            //dtNew.Columns.Add(dc1);
76
-            //dtNew.Columns.Add(dc2);
77
-            //dtNew.Columns.Add(dc3);
78
-            //dtNew.Columns.Add(dc4);
79
-            //dtNew.Columns.Add(dc5);
80
-            //dtNew.Columns.Add(dc6);
81
-            //dtNew.Columns.Add(dc7);
82
-            //dtNew.Columns.Add(dc8);
83
-            //dtNew.Columns.Add(dc9);
84
-            //dtNew.Columns.Add(dc10);
85
-            //dtNew.Columns.Add(dc11);
86
-            //dtNew.Columns.Add(dc12);
87
-            //dtNew.Columns.Add(dc13);
88
-            //dtNew.Columns.Add(dc14);
89
-            //dtNew.Columns.Add(dc15);
90
-            //dtNew.Columns.Add(dc16);
91
-            //dtNew.Columns.Add(dc17);
92
-            //dtNew.Columns.Add(dc18);
93
-            //dtNew.Columns.Add(dc19);
94
-            //dtNew.Columns.Add(dc20);
95
-            //dtNew.Columns.Add(dc21);
96
-            //dtNew.Columns.Add(dc22);
97
-            //dtNew.Columns.Add(dc23);
98
-            //dtNew.Columns.Add(dc24);
99
-            //dtNew.Columns.Add(dc25);
100
-            //dtNew.Columns.Add(dc26);
101
-            //#endregion
102
-            //int days = 30;
103
-            //string sqltimeCallRecords = "";
104
-            //string strsqlcall = "";
105
-            //if (stime != null && stime.Trim() != "")
106
-            //{
107
-            //    sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
108
-            //    strsqlcall += " and CONVERT(varchar , BeginTime, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
109
-            //}
110
-            //if (endtime != null && endtime.Trim() != "")
111
-            //{
112
-            //    sqltimeCallRecords += " and CONVERT(varchar , TimeAlerting, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
113
-            //    strsqlcall += " and CONVERT(varchar , BeginTime, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
114
-            //}
115
-            //if (dayss != null && dayss.Trim() != "")
116
-            //{
117
-            //    days = int.Parse(dayss.Trim());
118
-            //}
119
-            //#region
120
-            //int ijtcs = 0;//接听通话次数 
121
-            //int ithms = 0;//通话秒数
122
-            //int izlms = 0;//振铃秒数
123
-            //int ipjjtms = 0;//平均接听秒数
124
-            //int ipjzlms = 0;//平均振铃秒数
125
-            //double ihrzyl = 0.00;//呼入占有率
126
-            //int izxdlcs = 0;//坐席登录次数
127
-            //int idlsc = 0;//登录时长
128
-            //int iWorktime = 0;//工作时长
129
-            //int izmcs = 0;//置忙次数
130
-            //int ixxsc = 0;//休息时长
131
-            //int ipjczsc = 0;//平均操作时长
132
-            //int ipjzmxxsc = 0;//平均置忙休息时长
133
-
134
-
135
-            //int itrunkct = 0;//总数
136
-            //int itrunkjj = 0;//总接听
137
-            //int itrunkhs = 0;//呼损量
138
-            //int itrunkpjsc = 0;//平均排队时间
139
-            //double itrunkjtl = 0.00;//接通率
140
-            //double itrunkhsl = 0.00;//互损率
141
-            //double itrunkpjpd = 0.00;//平均排队
142
-            //#endregion
143
-            //DataTable dtdpt = null;
144
-            //if (dpt != null && dpt.Trim() != "")
145
-            //{
146
-            //    dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0 and F_DeptId=" + dpt).Tables[0];
147
-            //}
148
-            //else
149
-            //{
150
-            //    dtdpt = DbHelperSQL.Query("select F_DeptId,F_DeptName,F_Remark from  T_Sys_Department where F_ParentId!=0").Tables[0];
151
-            //}
152
-            //if (dtdpt != null && dtdpt.Rows.Count > 0)
153
-            //{
154
-            //    foreach (DataRow dr in dtdpt.Rows)
155
-            //    {   
156
-            //        DataTable dt = new DataTable();
157
-            //        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";
158
-            //        dt = DbHelperSQL.Query(sql).Tables[0];
159
-            //        for (int i = 0; i < dt.Rows.Count; i++)
160
-            //        {
161
-            //            if (!string.IsNullOrEmpty(dt.Rows[i]["F_WorkNumber"].ToString()))
162
-            //            {
163
-            //                DataRow drNew = dtNew.NewRow();
164
-            //                drNew["部门"] = dr["F_DeptName"].ToString();
165
-            //                drNew["坐席"] = dt.Rows[i]["F_UserName"].ToString();
166
-            //                drNew["坐席工号"] = dt.Rows[i]["F_WorkNumber"].ToString();
167
-            //                if (i == 0)
168
-            //                {//呼入电话
169
-
170
-            //                    string strsql = "";
171
-            //                    if (stime != null && stime.Trim() != "")
172
-            //                    {
173
-            //                        strsql += " and CONVERT(varchar , TimeCallIn, 120)>=CONVERT(varchar , '" + stime.Trim() + " 00:00:01', 120) ";
174
-            //                    }
175
-            //                    if (endtime != null && endtime.Trim() != "")
176
-            //                    {
177
-            //                        strsql += " and CONVERT(varchar , TimeCallIn, 120)<=CONVERT(varchar , '" + endtime.Trim() + " 23:59:59', 120) ";
178
-            //                    }
179
-
180
-            //                    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];
181
-            //                    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];
182
-
183
-            //                    if (dtcall != null && dtcall.Rows.Count > 0)
184
-            //                    {
185
-            //                        if (dtcall.Rows[0]["ct"].ToString() != "")
186
-            //                        {
187
-            //                            itrunkct = int.Parse(dtcall.Rows[0]["ct"].ToString());
188
-            //                        }
189
-            //                        else
190
-            //                        {
191
-            //                            itrunkct = 0;
192
-            //                        }
193
-            //                        if (dtcall.Rows[0]["jt"].ToString() != "")
194
-            //                        {
195
-            //                            itrunkjj = int.Parse(dtcall.Rows[0]["jt"].ToString());
196
-            //                        }
197
-            //                        else
198
-            //                        {
199
-            //                            itrunkjj = 0;
200
-            //                        }
201
-            //                        if (dtTrunk.Rows.Count > 0 && dtTrunk.Rows[0]["dd"].ToString() != "")
202
-            //                        {
203
-            //                            itrunkpjsc = int.Parse(dtTrunk.Rows[0]["dd"].ToString());
204
-            //                        }
205
-            //                        else
206
-            //                        {
207
-            //                            itrunkpjsc = 0;
208
-            //                        }
209
-            //                    }
210
-            //                    itrunkhs = itrunkct - itrunkjj;
211
-            //                    if (itrunkct != 0)
212
-            //                    {
213
-            //                        itrunkjtl = itrunkjj / double.Parse(itrunkct.ToString());
214
-            //                        itrunkhsl = itrunkhs / double.Parse(itrunkct.ToString());
215
-            //                        itrunkpjpd = itrunkpjsc / double.Parse(itrunkct.ToString());
216
-            //                    }
217
-            //                    else
218
-            //                    {
219
-            //                        itrunkjtl = 0.00;
220
-            //                        itrunkhsl = 0.00;
221
-            //                        itrunkpjpd = 0.00;
222
-            //                    }
223
-            //                    drNew["呼入电话数"] = itrunkct;
224
-            //                    drNew["坐席接通量"] = itrunkjj;
225
-            //                    drNew["呼损量"] = itrunkhs;
226
-            //                    drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
227
-            //                    drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
228
-            //                    drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
229
-
230
-            //                }
231
-            //                else
232
-            //                {
233
-            //                    drNew["呼入电话数"] = "0";
234
-            //                    drNew["坐席接通量"] = "0";
235
-            //                    drNew["呼损量"] = "0";
236
-            //                    drNew["接通率"] = "0.00" + "%";
237
-            //                    drNew["呼损率"] = "0.00" + "%";
238
-            //                    drNew["平均排队时间"] = "0.00";
239
-            //                }
240
-
241
-
242
-            //                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];
243
-            //                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];
244
-            //                if (dtCallEvey != null && dtCallEvey.Rows.Count > 0)
245
-            //                {
246
-            //                    if (dtCallEvey.Rows[0]["ct"].ToString() != "")
247
-            //                    {
248
-            //                        ijtcs = int.Parse(dtCallEvey.Rows[0]["ct"].ToString());//接听次数
249
-            //                    }
250
-            //                    else
251
-            //                    {
252
-            //                        ijtcs = 0;
253
-            //                    }
254
-            //                    if (dtCallEvey.Rows[0]["sc"].ToString() != "")
255
-            //                    {
256
-            //                        ithms = int.Parse(dtCallEvey.Rows[0]["sc"].ToString());//通话秒数
257
-            //                    }
258
-            //                    else
259
-            //                    {
260
-            //                        ithms = 0;
261
-            //                    }
262
-            //                    if (dtext.Rows[0]["pa"].ToString() != "")
263
-            //                    {
264
-            //                        izlms = int.Parse(dtext.Rows[0]["pa"].ToString());//振铃秒数
265
-            //                    }
266
-            //                    else
267
-            //                    {
268
-            //                        izlms = 0;
269
-            //                    }
270
-            //                }
271
-            //                drNew["接听通话次数"] = ijtcs.ToString();
272
-            //                drNew["通话分钟数"] = (ithms / 60).ToString();
273
-            //                drNew["通话秒数"] = ithms.ToString();
274
-
275
-            //                if (ijtcs != 0)
276
-            //                {
277
-            //                    ipjjtms = ithms / ijtcs;//平均接通秒数
278
-            //                    ipjzlms = izlms / ijtcs;//平均振铃秒数
279
-            //                }
280
-            //                else
281
-            //                {
282
-            //                    ipjjtms = 0;//平均接通秒数
283
-            //                    ipjzlms = 0;//平均振铃秒数
284
-            //                }
285
-            //                drNew["平均接听通话秒数"] = ipjjtms.ToString();
286
-            //                drNew["平均振铃秒数"] = ipjzlms.ToString();
287
-
288
-            //                //坐席登录次数
289
-            //                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];
290
-            //                if (dtAgent != null && dtAgent.Rows.Count > 0)
291
-            //                {
292
-            //                    if (dtAgent.Rows[0]["dl"] != null && dtAgent.Rows[0]["dl"].ToString() != "")
293
-            //                    {
294
-            //                        izxdlcs = int.Parse(dtAgent.Rows[0]["dl"].ToString());//登录次数
295
-            //                    }
296
-            //                    else
297
-            //                    {
298
-            //                        izxdlcs = 0;
299
-            //                    }
300
-            //                    if (dtAgent.Rows[0]["dlsc"] != null && dtAgent.Rows[0]["dlsc"].ToString() != "")
301
-            //                    {
302
-            //                        idlsc = int.Parse(dtAgent.Rows[0]["dlsc"].ToString());//登录时长
303
-            //                    }
304
-            //                    else
305
-            //                    {
306
-            //                        idlsc = 0;
307
-            //                    }
308
-            //                    if (dtAgent.Rows[0]["zm"] != null && dtAgent.Rows[0]["zm"].ToString() != "")
309
-            //                    {
310
-            //                        izmcs = int.Parse(dtAgent.Rows[0]["zm"].ToString());//置忙次数
311
-            //                    }
312
-            //                    else
313
-            //                    {
314
-            //                        izmcs = 0;
315
-            //                    }
316
-            //                    if (dtAgent.Rows[0]["xx"] != null && dtAgent.Rows[0]["xx"].ToString() != "")
317
-            //                    {
318
-            //                        ixxsc = int.Parse(dtAgent.Rows[0]["xx"].ToString());//休息时长
319
-            //                    }
320
-            //                    else
321
-            //                    {
322
-            //                        ixxsc = 0;
323
-            //                    }
324
-
325
-            //                }
326
-            //                iWorktime = idlsc - ixxsc;//工作时长
327
-            //                if (izxdlcs != 0)
328
-            //                {
329
-            //                    ipjczsc = iWorktime / izxdlcs;//平均操作秒数
330
-            //                }
331
-            //                else
332
-            //                {
333
-            //                    ipjczsc = 0;
334
-            //                }
335
-            //                if (izmcs != 0)
336
-            //                {
337
-            //                    ipjzmxxsc = ixxsc / izmcs;//置忙平均操作时长
338
-            //                }
339
-            //                else
340
-            //                {
341
-            //                    ipjzmxxsc = 0;
342
-            //                }
343
-
344
-            //                //呼入占有率
345
-            //                if (iWorktime != 0)
346
-            //                {
347
-            //                    ihrzyl = ithms / Convert.ToDouble(iWorktime);
348
-            //                }
349
-            //                else
350
-            //                {
351
-            //                    ihrzyl = 0.00;
352
-            //                }
353
-            //                drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
354
-            //                //用户评价
355
-
356
-            //                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);
357
-            //                string myd = "";
358
-            //                if (obj != null)
359
-            //                {
360
-            //                    myd = obj.ToString();
361
-            //                }
362
-            //                drNew["用户评价"] = myd;
363
-            //                drNew["坐席登录次数"] = izxdlcs.ToString();
364
-            //                drNew["登录时长分钟数"] = (idlsc / 60).ToString();
365
-            //                drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
366
-            //                drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
367
-            //                drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
368
-            //                drNew["置忙次数"] = izmcs.ToString();
369
-            //                drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
370
-            //                drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
371
-            //                drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
372
-
373
-            //                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);
374
-            //                int zfs = 0;
375
-            //                if (dszj != null && dszj.Tables.Count > 0)
376
-            //                {
377
-            //                    DataTable dtzj = dszj.Tables[0];
378
-            //                    if (dtzj.Rows.Count > 0 && dtzj.Rows[0]["fs"].ToString() != "" && dtzj.Rows[0]["fsct"].ToString() != "")
379
-            //                    {
380
-            //                        zfs = Convert.ToInt32(dtzj.Rows[0]["fs"].ToString()) / int.Parse(dtzj.Rows[0]["fsct"].ToString());
381
-            //                    }
382
-            //                }
383
-            //                drNew["质检平均成绩"] = zfs.ToString();
384
-
385
-            //                dtNew.Rows.Add(drNew);
386
-            //            }
387
-            //        }
388
-            //    }
389
-            //}
390
-            #endregion
391 41
             res = Success("获取坐席工作统计数据成功", dtNew);
392 42
 
393 43
             return res;
394 44
         }
395 45
 
396
-        //导出数据
397
-        public ActionResult ExptList(string stime, string endtime, string dpt, string dayss)
46
+        /// <summary>
47
+        /// 导出数据
48
+        /// </summary>
49
+        /// <param name="stime">开始时间</param>
50
+        /// <param name="endtime">结束时间</param>
51
+        /// <param name="dpt">部门</param>
52
+        /// <param name="dayss">天数</param>
53
+        /// <param name="indexs">未选中导出的字段索引数组</param>
54
+        /// <returns></returns>
55
+        public ActionResult ExptList(string stime, string endtime, string dpt, string dayss, string indexstr = "")
398 56
         {
399 57
             ActionResult res = NoToken("未知错误,请重新登录");
400 58
             if (Request.IsAuthenticated)
401 59
             {
402 60
                 NPOIHelper npoi = new NPOIHelper();
403
-                DataTable dt = getData(stime, endtime, dpt, dayss);
61
+                List<int> indexs = new List<int>();
62
+                if (!string.IsNullOrWhiteSpace(indexstr))
63
+                    indexs.AddRange(indexstr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList().Select(x => Convert.ToInt32(x)));
64
+                DataTable dt = getData(stime, endtime, dpt, dayss, "", "", indexs);
404 65
                 if (npoi.ExportToExcel("坐席工作数据", dt) == "")
405 66
                 {
406 67
                     return Success("导出成功");
@@ -413,88 +74,19 @@ namespace CallCenterApi.Interface.Controllers.report
413 74
             return res;
414 75
         }
415 76
 
416
-        private DataTable getData(string stime, string endtime, string dpt, string dayss, string _usercode = "", string extensionnumber = "")
77
+        private DataTable getData(string stime, string endtime, string dpt, string dayss, string _usercode = "", string extensionnumber = "", List<int> indexs = null)
417 78
         {
418 79
             DataTable dtNew = new DataTable();
80
+            var columns = dtNew.Columns;
419 81
             #region
420
-            dtNew.Columns.AddRange(new DataColumn[] {
421
-                 new DataColumn("公司"),
422
-                 new DataColumn("部门"),
423
-                 new DataColumn("坐席工号"),
424
-                 new DataColumn("坐席姓名"),
425
-                 new DataColumn("角色"),
426
-                 new DataColumn("固话号码"),
427
-                 new DataColumn("呼入电话数"),
428
-                 new DataColumn("接通量"),
429
-                 new DataColumn("接通率"),
430
-                 new DataColumn("呼入通话分钟数"),
431
-                 new DataColumn("呼出电话数"),
432
-                 new DataColumn("呼通量"),
433
-                 new DataColumn("呼通率"),
434
-                 new DataColumn("呼出通话分钟数"),
435
-                 new DataColumn("坐席登录次数"),
436
-                 new DataColumn("登录时长分钟数"),
437
-                 new DataColumn("工作时长分钟数"),
438
-                 new DataColumn("平均每天工作时长"),
439
-                 new DataColumn("休息时长分钟数"),
440
-                 new DataColumn("质检平均成绩")
441
-            });
442
-
443
-            //DataColumn dc1 = new DataColumn("部门");
444
-            //DataColumn dc2 = new DataColumn("坐席");
445
-            //DataColumn dc3 = new DataColumn("坐席工号");
446
-            //DataColumn dc3_ = new DataColumn("角色");
447
-            //DataColumn dc4 = new DataColumn("呼入电话数");
448
-            //DataColumn dc5 = new DataColumn("坐席接通量");
449
-            //DataColumn dc6 = new DataColumn("呼损量");
450
-            //DataColumn dc7 = new DataColumn("接通率");
451
-            //DataColumn dc8 = new DataColumn("呼损率");
452
-            //DataColumn dc9 = new DataColumn("平均排队时间");
453
-            //DataColumn dc10 = new DataColumn("接听通话次数");
454
-            //DataColumn dc11 = new DataColumn("通话分钟数");
455
-            //DataColumn dc12 = new DataColumn("通话秒数");
456
-            //DataColumn dc13 = new DataColumn("平均接听通话秒数");
457
-            //DataColumn dc14 = new DataColumn("平均振铃秒数");
458
-            //DataColumn dc15 = new DataColumn("呼入占有率");
459
-            //DataColumn dc16 = new DataColumn("用户评价");
460
-            //DataColumn dc17 = new DataColumn("坐席登录次数");
461
-            //DataColumn dc18 = new DataColumn("登录时长分钟数");
462
-            //DataColumn dc19 = new DataColumn("工作时长分钟数");
463
-            //DataColumn dc20 = new DataColumn("平均每天工作时长");
464
-            //DataColumn dc21 = new DataColumn("平均操作分钟数");
465
-            //DataColumn dc22 = new DataColumn("置忙次数");
466
-            //DataColumn dc23 = new DataColumn("休息时长分钟数");
467
-            //DataColumn dc24 = new DataColumn("平均每天休息时长");
468
-            //DataColumn dc25 = new DataColumn("置忙平均休息分钟数");
469
-            //DataColumn dc26 = new DataColumn("质检平均成绩");
470
-
471
-            //dtNew.Columns.Add(dc1);
472
-            //dtNew.Columns.Add(dc2);
473
-            //dtNew.Columns.Add(dc3);
474
-            //dtNew.Columns.Add(dc3_);
475
-            //dtNew.Columns.Add(dc4);
476
-            //dtNew.Columns.Add(dc5);
477
-            //dtNew.Columns.Add(dc6);
478
-            //dtNew.Columns.Add(dc7);
479
-            //dtNew.Columns.Add(dc8);
480
-            //dtNew.Columns.Add(dc9);
481
-            //dtNew.Columns.Add(dc10);
482
-            //dtNew.Columns.Add(dc11);
483
-            //dtNew.Columns.Add(dc12);
484
-            //dtNew.Columns.Add(dc13);
485
-            //dtNew.Columns.Add(dc14);
486
-            //dtNew.Columns.Add(dc15);
487
-            //dtNew.Columns.Add(dc16);
488
-            //dtNew.Columns.Add(dc17);
489
-            //dtNew.Columns.Add(dc18);
490
-            //dtNew.Columns.Add(dc19);
491
-            //dtNew.Columns.Add(dc20);
492
-            //dtNew.Columns.Add(dc21);
493
-            //dtNew.Columns.Add(dc22);
494
-            //dtNew.Columns.Add(dc23);
495
-            //dtNew.Columns.Add(dc24);
496
-            //dtNew.Columns.Add(dc25);
497
-            //dtNew.Columns.Add(dc26);
82
+
83
+
84
+            for (int i = 0; i < str.Count(); i++)
85
+            {
86
+                if (!indexs.Contains(i))
87
+                    dtNew.Columns.Add(new DataColumn(str[i]));
88
+            }
89
+
498 90
             #endregion
499 91
             int days = 30;
500 92
             string sqltimeCallRecords = "";
@@ -603,34 +195,26 @@ namespace CallCenterApi.Interface.Controllers.report
603 195
             {
604 196
                 dtdpt = DbHelperSQL.Query("select t1.F_DeptId,t1.F_DeptName,t1.F_Remark,t2.F_DeptName as ParentName from  T_Sys_Department t1 left join T_Sys_Department t2 ON t1.F_ParentId=t2.F_DeptId where t1.F_ParentId!=0" + deptSQL).Tables[0];
605 197
             }
606
-            //if (dtdpt != null && dtdpt.Rows.Count > 0)
607
-            //{
198
+
199
+            string sql = $"SELECT F_UserCode,F_UserName,F_WorkNumber,F_ExtensionNumber,F_UserId,F_DeptId,T_Sys_RoleInfo.F_RoleName FROM T_Sys_UserAccount left join T_Sys_RoleInfo on T_Sys_RoleInfo.F_RoleId=T_Sys_UserAccount.F_RoleId where f_seatFlag=1 and  F_WorkNumber!='' {usercodeSQL} order by  F_WorkNumber asc";
200
+            var userAccountList = DbHelperSQL.Query(sql).Tables[0];
201
+
608 202
             foreach (DataRow dr in dtdpt.Rows)
609 203
             {
610
-                DataTable dt = new DataTable();
611
-                string sql = $"SELECT F_UserCode,F_UserName,F_WorkNumber,F_ExtensionNumber,F_UserId,T_Sys_RoleInfo.F_RoleName FROM T_Sys_UserAccount left join T_Sys_RoleInfo on T_Sys_RoleInfo.F_RoleId=T_Sys_UserAccount.F_RoleId where f_seatFlag=1 and F_DeptId={dr["F_DeptId"]} and F_WorkNumber!='' {usercodeSQL} order by  F_WorkNumber asc";
612
-                dt = DbHelperSQL.Query(sql).Tables[0];
613
-                for (int i = 0; i < dt.Rows.Count; i++)
204
+                //string sql = $"SELECT F_UserCode,F_UserName,F_WorkNumber,F_ExtensionNumber,F_UserId,T_Sys_RoleInfo.F_RoleName FROM T_Sys_UserAccount left join T_Sys_RoleInfo on T_Sys_RoleInfo.F_RoleId=T_Sys_UserAccount.F_RoleId where f_seatFlag=1 and F_DeptId={dr["F_DeptId"]} and F_WorkNumber!='' {usercodeSQL} order by  F_WorkNumber asc";
205
+                //dt = DbHelperSQL.Query(sql).Tables[0];
206
+                var arr = userAccountList.Select($"F_DeptId={dr["F_DeptId"]}");
207
+                for (int i = 0; i < arr.Length; i++)
614 208
                 {
615
-                    if (!string.IsNullOrEmpty(dt.Rows[i]["F_WorkNumber"].ToString()))
209
+                    if (!string.IsNullOrEmpty(arr[i]["F_WorkNumber"].ToString()))
616 210
                     {
617 211
                         DataRow drNew = dtNew.NewRow();
618
-                        //drNew["部门"] = dr["F_DeptName"].ToString();
619
-                        //drNew["坐席"] = dt.Rows[i]["F_UserName"].ToString();
620
-                        //drNew["坐席工号"] = dt.Rows[i]["F_WorkNumber"].ToString();
621
-                        //drNew["角色"] = dt.Rows[i]["F_RoleName"].ToString();
622
-                        drNew["公司"] = dr["ParentName"].ToString();
623
-                        drNew["部门"] = dr["F_DeptName"].ToString();
624
-                        drNew["坐席工号"] = $"{dt.Rows[i]["F_WorkNumber"].ToString()}";
625
-                        drNew["坐席姓名"] = $"{dt.Rows[i]["F_UserName"].ToString()}";
626
-                        drNew["角色"] = dt.Rows[i]["F_RoleName"].ToString();
627
-                        drNew["固话号码"] = dt.Rows[i]["F_ExtensionNumber"].ToString();
628
-
629
-                        //if (i == 0)
630
-                        //{//呼入电话
631
-
632
-
633
-
212
+                        if (columns.Contains("公司")) { drNew["公司"] = dr["ParentName"].ToString(); }
213
+                        if (columns.Contains("部门")) { drNew["部门"] = dr["F_DeptName"].ToString(); }
214
+                        if (columns.Contains("坐席工号")) { drNew["坐席工号"] = $"{arr[i]["F_WorkNumber"].ToString()}"; }
215
+                        if (columns.Contains("坐席姓名")) { drNew["坐席姓名"] = $"{arr[i]["F_UserName"].ToString()}"; }
216
+                        if (columns.Contains("角色")) { drNew["角色"] = arr[i]["F_RoleName"].ToString(); }
217
+                        if (columns.Contains("固话号码")) { drNew["固话号码"] = arr[i]["F_ExtensionNumber"].ToString(); }
634 218
 
635 219
                         #region 呼入
636 220
 
@@ -645,9 +229,9 @@ namespace CallCenterApi.Interface.Controllers.report
645 229
                         }
646 230
 
647 231
                         //ct=总呼入/呼出次数?   dd=总等待时长
648
-                        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];
232
+                        DataTable dtTrunk = DbHelperSQL.Query("select COUNT(*) as ct,SUM(DATEDIFF(Second,timewantagent,timeconnected)) as dd from rep_trunk_call_in where AgentID='" + arr[i]["F_UserCode"].ToString() + "' " + strsql).Tables[0];
649 233
                         //ct=总呼入次数?   jt=总呼入接通数
650
-                        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];
234
+                        DataTable dtcall = DbHelperSQL.Query("select COUNT(*) as ct,(select COUNT(*) from T_Call_CallRecords where CallState=1 and CallType=0 and  UserCode='" + arr[i]["F_UserCode"].ToString() + "' " + strsqlcall + ") as jt from T_Call_CallRecords where CallType=0 and UserCode='" + arr[i]["F_UserCode"].ToString() + "' " + strsqlcall).Tables[0];
651 235
 
652 236
                         if (dtcall != null && dtcall.Rows.Count > 0)
653 237
                         {
@@ -699,33 +283,15 @@ namespace CallCenterApi.Interface.Controllers.report
699 283
                             itrunkhsl = 0.00;
700 284
                             itrunkpjpd = 0.00;
701 285
                         }
702
-                        //drNew["呼入电话数"] = itrunkct;
703
-                        //drNew["坐席接通量"] = itrunkjj;
704
-                        //drNew["呼损量"] = itrunkhs;
705
-                        //drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
706
-                        //drNew["呼损率"] = (itrunkhsl * 100).ToString("0.00") + "%";
707
-                        //drNew["平均排队时间"] = itrunkpjpd.ToString("0.00");
708
-
709
-
710
-                        drNew["呼入电话数"] = itrunkct;
711
-                        drNew["接通量"] = itrunkjj;
712
-                        drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%";
713
-
714
-                        //}
715
-                        //else
716
-                        //{
717
-                        //    drNew["呼入电话数"] = "0";
718
-                        //    drNew["坐席接通量"] = "0";
719
-                        //    drNew["呼损量"] = "0";
720
-                        //    drNew["接通率"] = "0.00" + "%";
721
-                        //    drNew["呼损率"] = "0.00" + "%";
722
-                        //    drNew["平均排队时间"] = "0.00";
723
-                        //}
286
+                        if (columns.Contains("呼入电话数")) { drNew["呼入电话数"] = itrunkct; }
287
+                        if (columns.Contains("接通量")) { drNew["接通量"] = itrunkjj; }
288
+                        if (columns.Contains("接通率")) { drNew["接通率"] = (itrunkjtl * 100).ToString("0.00") + "%"; }
289
+
724 290
 
725 291
                         //-- ct=总呼入次数?  sc=总通话时长   pa=总xxx
726
-                        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];
292
+                        DataTable dtext = DbHelperSQL.Query("select COUNT(*) as ct,SUM(PeriodTalking) as sc,SUM(PeriodAlerting) as pa from rep_ext_call_in where CalleeAgentID=" + arr[i]["F_WorkNumber"] + " " + sqltimeCallRecords).Tables[0];
727 293
                         //-- ct=总呼入接通次数?  sc=总通话时长
728
-                        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];
294
+                        DataTable dtCallEvey = DbHelperSQL.Query("select COUNT(*) as ct,SUM(TalkLongTime) as sc from T_Call_CallRecords where CallState=1 and  userid=" + arr[i]["F_UserId"] + " " + strsqlcall).Tables[0];
729 295
                         if (dtCallEvey != null && dtCallEvey.Rows.Count > 0)
730 296
                         {
731 297
                             if (dtCallEvey.Rows[0]["ct"].ToString() != "")
@@ -759,31 +325,16 @@ namespace CallCenterApi.Interface.Controllers.report
759 325
                                 izlms = 0;
760 326
                             }
761 327
                         }
762
-                        //drNew["接听通话次数"] = ijtcs.ToString();
763
-                        drNew["呼入通话分钟数"] = (ithms / 60).ToString();
764
-                        //drNew["通话秒数"] = ithms.ToString();
765
-
766
-                        //if (ijtcs != 0)
767
-                        //{
768
-                        //    ipjjtms = ithms / ijtcs;//平均接通秒数
769
-                        //    ipjzlms = izlms / ijtcs;//平均振铃秒数
770
-                        //}
771
-                        //else
772
-                        //{
773
-                        //    ipjjtms = 0;//平均接通秒数
774
-                        //    ipjzlms = 0;//平均振铃秒数
775
-                        //}
776
-                        //drNew["平均接听通话秒数"] = ipjjtms.ToString();
777
-                        //drNew["平均振铃秒数"] = ipjzlms.ToString();
328
+                        if (columns.Contains("呼入通话分钟数")) { drNew["呼入通话分钟数"] = (ithms / 60).ToString(); }
778 329
 
779 330
                         #endregion
780 331
 
781 332
                         #region 呼出
782 333
 
783 334
                         //--ct=呼出总次数   st=呼出总通话时长
784
-                        DataTable dtCallOut = DbHelperSQL.Query($"select count(CallID) as ct,SUM(PeriodTalking) as st from rep_ext_call_out where IsCallOutSucceed = 1 and CallerAgentID ={dt.Rows[i]["F_WorkNumber"].ToString()} {strCallOutSql}").Tables[0];
335
+                        DataTable dtCallOut = DbHelperSQL.Query($"select count(CallID) as ct,SUM(PeriodTalking) as st from rep_ext_call_out where IsCallOutSucceed = 1 and CallerAgentID ={arr[i]["F_WorkNumber"].ToString()} {strCallOutSql}").Tables[0];
785 336
                         //-- ct=呼出接通次数
786
-                        DataTable dtCallOut2 = DbHelperSQL.Query($"select count(CallID) as ct from rep_ext_call_out where IsCallOutSucceed=1 and CallerAgentID={dt.Rows[i]["F_WorkNumber"].ToString()} {strCallOutSql}  and IsCallOutSucceed=1 ").Tables[0];
337
+                        DataTable dtCallOut2 = DbHelperSQL.Query($"select count(CallID) as ct from rep_ext_call_out where IsCallOutSucceed=1 and CallerAgentID={arr[i]["F_WorkNumber"].ToString()} {strCallOutSql}  and IsCallOutSucceed=1 ").Tables[0];
787 338
 
788 339
                         if (dtCallOut.Rows.Count > 0)
789 340
                         {
@@ -797,17 +348,17 @@ namespace CallCenterApi.Interface.Controllers.report
797 348
 
798 349
                         if (callOutCount != 0)
799 350
                         {
800
-                            drNew["呼出电话数"] = callOutCount;
801
-                            drNew["呼通量"] = callOutJTCount;
802
-                            drNew["呼通率"] = (callOutJTCount / callOutCount * 100).ToString("0.00") + "%";
803
-                            drNew["呼出通话分钟数"] = (callOutJTSeconds / 60).ToString();
351
+                            if (columns.Contains("呼出电话数")) { drNew["呼出电话数"] = callOutCount; }
352
+                            if (columns.Contains("呼通量")) { drNew["呼通量"] = callOutJTCount; }
353
+                            if (columns.Contains("呼通率")) { drNew["呼通率"] = (callOutJTCount / callOutCount * 100).ToString("0.00") + "%"; }
354
+                            if (columns.Contains("呼出通话分钟数")) { drNew["呼出通话分钟数"] = (callOutJTSeconds / 60).ToString(); }
804 355
                         }
805 356
                         else
806 357
                         {
807
-                            drNew["呼出电话数"] = 0;
808
-                            drNew["呼通量"] = 0;
809
-                            drNew["呼通率"] = "0%";
810
-                            drNew["呼出通话分钟数"] = 0;
358
+                            if (columns.Contains("呼出电话数")) { drNew["呼出电话数"] = 0; }
359
+                            if (columns.Contains("呼通量")) { drNew["呼通量"] = 0; }
360
+                            if (columns.Contains("呼通率")) { drNew["呼通率"] = "0%"; }
361
+                            if (columns.Contains("呼出通话分钟数")) { drNew["呼出通话分钟数"] = 0; }
811 362
                         }
812 363
 
813 364
                         #endregion
@@ -815,31 +366,8 @@ namespace CallCenterApi.Interface.Controllers.report
815 366
                         #region 登录
816 367
 
817 368
                         #endregion
818
-
819
-                        //                 "呼入电话数", "坐席接通量", "接通率", "通话分钟数",
820
-                        //                 "呼出电话数", "坐席呼通量", "接通率", "呼出分钟数",
821
-
822
-
823
-
824
-
825
-
826
-
827
-
828
-
829
-
830
-
831
-
832
-
833
-
834
-
835
-
836
-
837
-
838
-
839
-
840
-
841 369
                         //坐席登录次数
842
-                        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];
370
+                        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=" + arr[i]["F_WorkNumber"] + " " + sqltimeCallRecords.Replace("TimeAlerting", "TimeLogin")).Tables[0];
843 371
                         if (dtAgent != null && dtAgent.Rows.Count > 0)
844 372
                         {
845 373
                             if (dtAgent.Rows[0]["dl"] != null && dtAgent.Rows[0]["dl"].ToString() != "")
@@ -906,24 +434,18 @@ namespace CallCenterApi.Interface.Controllers.report
906 434
                         //drNew["呼入占有率"] = (ihrzyl * 100).ToString("0.00") + "%";
907 435
                         //用户评价
908 436
 
909
-                        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);
437
+                        object obj = DbHelperSQL.GetSingle("select count(*) from T_Call_CallRecords where MYD is not null and CallState=1 and userid=" + arr[i]["F_UserId"] + strsqlcall);
910 438
                         string myd = "";
911 439
                         if (obj != null)
912 440
                         {
913 441
                             myd = obj.ToString();
914 442
                         }
915
-                        //drNew["用户评价"] = myd;
916
-                        drNew["坐席登录次数"] = izxdlcs.ToString();
917
-                        drNew["登录时长分钟数"] = (idlsc / 60).ToString();
918
-                        drNew["工作时长分钟数"] = (iWorktime / 60).ToString();
919
-                        drNew["平均每天工作时长"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString();
920
-                        //drNew["平均操作分钟数"] = (ipjczsc / 60).ToString();
921
-                        //drNew["置忙次数"] = izmcs.ToString();
922
-                        drNew["休息时长分钟数"] = (ixxsc / 60).ToString();
923
-                        //drNew["平均每天休息时长"] = Math.Round((double.Parse(ixxsc.ToString()) / 60 / 60 / days), 2).ToString();
924
-                        //drNew["置忙平均休息分钟数"] = (ipjzmxxsc / 60).ToString();
925
-
926
-                        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);
443
+                        if (columns.Contains("坐席登录次数")) { drNew["坐席登录次数"] = izxdlcs.ToString(); }
444
+                        if (columns.Contains("登录时长分钟数")) { drNew["登录时长分钟数"] = (idlsc / 60).ToString(); }
445
+                        if (columns.Contains("工作时长分钟数")) { drNew["工作时长分钟数"] = (iWorktime / 60).ToString(); }
446
+                        if (columns.Contains("平均每天工作小时数")) { drNew["平均每天工作小时数"] = Math.Round((double.Parse(iWorktime.ToString()) / 60 / 60 / days), 2).ToString(); }
447
+                        if (columns.Contains("休息时长分钟数")) { drNew["休息时长分钟数"] = (ixxsc / 60).ToString(); }
448
+                        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=" + arr[i]["F_UserId"] + strsqlcall);
927 449
                         int zfs = 0;
928 450
                         if (dszj != null && dszj.Tables.Count > 0)
929 451
                         {
@@ -933,8 +455,10 @@ namespace CallCenterApi.Interface.Controllers.report
933 455
                                 zfs = Convert.ToInt32(dtzj.Rows[0]["fs"].ToString()) / int.Parse(dtzj.Rows[0]["fsct"].ToString());
934 456
                             }
935 457
                         }
936
-                        drNew["质检平均成绩"] = zfs.ToString();
937
-
458
+                        if (columns.Contains("质检平均成绩"))
459
+                        {
460
+                            drNew["质检平均成绩"] = zfs.ToString();
461
+                        }
938 462
                         dtNew.Rows.Add(drNew);
939 463
                     }
940 464
                 }

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

@@ -15,6 +15,7 @@ namespace CallCenterApi.Interface.Controllers.tel
15 15
 {
16 16
     public class CallrecordsController : BaseController
17 17
     {
18
+        private readonly BLL.T_Sys_Department deptBLL = new BLL.T_Sys_Department();
18 19
         //获取通话记录列表
19 20
         public ActionResult GetList(string phone, string usercode)
20 21
         {
@@ -70,9 +71,18 @@ namespace CallCenterApi.Interface.Controllers.tel
70 71
                 {
71 72
                     sql += " and UserCode='" + usercode + "'";
72 73
                 }
73
-                if (!string.IsNullOrWhiteSpace(dept) && Convert.ToInt32(dept) >= 0)
74
+                //if (!string.IsNullOrWhiteSpace(dept) && Convert.ToInt32(dept) >= 0)
75
+                //{
76
+                //    sql += " and UserCode in (select F_UserCode from T_Sys_UserAccount where F_DeptId=" + dept.Trim() + ")";
77
+                //}
78
+
79
+                if (!string.IsNullOrWhiteSpace(dept))
74 80
                 {
75
-                    sql += " and UserCode in (select F_UserCode from T_Sys_UserAccount where F_DeptId=" + dept.Trim() + ")";
81
+                    var deptModel = deptBLL.GetModel(!string.IsNullOrWhiteSpace(dept) ? Convert.ToInt32(dept) : 0);
82
+                    if (deptModel != null)
83
+                    {
84
+                        sql += $" and UserCode in (select F_UserCode from T_Sys_UserAccount where F_DeptId in(select F_DeptId from T_Sys_Department where F_DeptCode like '{deptModel.F_DeptCode}%'))";
85
+                    }
76 86
                 }
77 87
                 if (phone != null && phone.Trim() != "")
78 88
                 {

+ 15 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Input/CallInTimeInput.cs

@@ -0,0 +1,15 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Web;
5
+
6
+namespace CallCenterApi.Interface.Models.Input
7
+{
8
+    public class CallInTimeInput
9
+    {
10
+        public DateTime? StartTime1 { get; set; }
11
+        public DateTime? EndTime1 { get; set; }
12
+        public DateTime? StartTime2 { get; set; }
13
+        public DateTime? EndTime2 { get; set; }
14
+    }
15
+}

+ 4 - 1
CallCenterApi/CallCenterApi.Model/T_Sys_UserAccount.cs

@@ -304,13 +304,16 @@ namespace CallCenterApi.Model
304 304
             set { _f_seartgroup = value; }
305 305
             get { return _f_seartgroup; }
306 306
         }
307
+        public DateTime? StartTime1 { get; set; }
308
+        public DateTime? EndTime1 { get; set; }
309
+        public DateTime? StartTime2 { get; set; }
310
+        public DateTime? EndTime2 { get; set; }
307 311
         #endregion Model
308 312
 
309 313
 
310 314
         #region 接口添加字段
311 315
         public string depname { get; set; }
312 316
         public string zxzname { get; set; }
313
-
314 317
         #endregion
315 318
     }
316 319
 }