Sfoglia il codice sorgente

点击外呼列表展示字段、数据调整
点击外呼导出已接通未接通字段调整
提交呼叫结果、外呼反馈,强制必须填写
任务结果查询字段调整
知识库调整
通话记录数据库操作加锁

yuqian 8 anni fa
parent
commit
38d8795ba5

+ 55 - 1
CallCenterApi/CallCenterApi.BLL/T_Call_TaskTelNum.cs

437
             return modelList;
437
             return modelList;
438
         }
438
         }
439
 
439
 
440
-
440
+        /// <summary>
441
+        /// 获得数据列表(导出号码)
442
+        /// </summary>
443
+        public List<CallCenterApi.Model.T_Call_TaskTelNum> DataTableToListForExport(DataTable dt)
444
+        {
445
+            List<CallCenterApi.Model.T_Call_TaskTelNum> modelList = new List<CallCenterApi.Model.T_Call_TaskTelNum>();
446
+            int rowsCount = dt.Rows.Count;
447
+            var dtColums = dt.Columns;
448
+            if (rowsCount > 0)
449
+            {
450
+                CallCenterApi.Model.T_Call_TaskTelNum model;
451
+                for (int n = 0; n < rowsCount; n++)
452
+                {
453
+                    model = new CallCenterApi.Model.T_Call_TaskTelNum();
454
+                    if (dtColums.Contains("F_Id"))
455
+                    {
456
+                        model.F_Id = Convert.ToInt32(dt.Rows[n]["F_Id"]);
457
+                    }
458
+                    if (dtColums.Contains("F_Phone"))
459
+                    {
460
+                        model.F_Phone = dt.Rows[n]["F_Phone"] == DBNull.Value ? "" : dt.Rows[n]["F_Phone"].ToString();
461
+                    }
462
+                    if (dtColums.Contains("F_HCState"))
463
+                    {
464
+                        model.F_HCState = dt.Rows[n]["F_HCState"] == DBNull.Value ? 0 : Convert.ToInt32(dt.Rows[n]["F_HCState"].ToString());
465
+                    }
466
+                    if (dtColums.Contains("F_YJState"))
467
+                    {
468
+                        model.F_YJState = dt.Rows[n]["F_YJState"] == DBNull.Value ? 0 : Convert.ToInt32(dt.Rows[n]["F_YJState"].ToString());
469
+                    }
470
+                    if (dtColums.Contains("F_UserId"))
471
+                    {
472
+                        model.F_UserId = dt.Rows[n]["F_UserId"] == DBNull.Value ? 0 : Convert.ToInt32(dt.Rows[n]["F_UserId"]);
473
+                    }
474
+                    if (dtColums.Contains("F_FPState"))
475
+                    {
476
+                        model.F_FPState = dt.Rows[n]["F_FPState"] == DBNull.Value ? 0 : Convert.ToInt32(dt.Rows[n]["F_FPState"].ToString());
477
+                    }
478
+                    if (dtColums.Contains("F_Username"))
479
+                    {
480
+                        model.F_UserName = dt.Rows[n]["F_Username"] == DBNull.Value ? "" : dt.Rows[n]["F_Username"].ToString();
481
+                    }
482
+                    if (dtColums.Contains("F_CreateTime"))
483
+                    {
484
+                        model.F_CreateTime = dt.Rows[n]["F_CreateTime"] == DBNull.Value ? (DateTime?)null : DateTime.Parse(dt.Rows[n]["F_CreateTime"].ToString());
485
+                    }
486
+                    if (dtColums.Contains("F_LastCallTime"))
487
+                    {
488
+                        model.F_LastCallTime = dt.Rows[n]["F_LastCallTime"] == DBNull.Value ? (DateTime?)null : DateTime.Parse(dt.Rows[n]["F_LastCallTime"].ToString());
489
+                    }
490
+                    modelList.Add(model);
491
+                }
492
+            }
493
+            return modelList;
494
+        }
441
         /// <summary>
495
         /// <summary>
442
         /// 获得数据列表
496
         /// 获得数据列表
443
         /// </summary>
497
         /// </summary>

File diff suppressed because it is too large
+ 341 - 313
CallCenterApi/CallCenterApi.DAL/T_Call_CallRecords.cs


+ 1 - 1
CallCenterApi/CallCenterApi.DAL/T_Call_TaskTelNum.cs

882
         public DataSet GetPhoneList(string strWhere)
882
         public DataSet GetPhoneList(string strWhere)
883
         {
883
         {
884
             StringBuilder strSql = new StringBuilder();
884
             StringBuilder strSql = new StringBuilder();
885
-            strSql.Append("select F_Phone ");
885
+            strSql.Append("select F_Id,F_Phone,F_FPState,F_HCState,F_YJState,F_UserId,F_CreateTime, F_LastCallTime ");
886
             strSql.Append(" FROM T_Call_TaskTelNum ");
886
             strSql.Append(" FROM T_Call_TaskTelNum ");
887
             if (strWhere.Trim() != "")
887
             if (strWhere.Trim() != "")
888
             {
888
             {

+ 36 - 7
CallCenterApi/CallCenterApi.DAL/T_RepositoryInformation.cs

50
         {
50
         {
51
             StringBuilder strSql = new StringBuilder();
51
             StringBuilder strSql = new StringBuilder();
52
             strSql.Append("insert into T_RepositoryInformation(");
52
             strSql.Append("insert into T_RepositoryInformation(");
53
-            strSql.Append("F_CategoryId,F_CustomerId,F_CustomerName,F_ManId,F_ManName,F_Title,F_Content,F_Description,F_Comments,F_Url,F_KeyWords,F_Expand1,F_Expand2,F_IntExpand1,F_CreateOn,F_CreateBy,F_CreateName,F_ModifyOn,F_ModifyBy,F_ModifyName,F_DeleteFlag)");
53
+            strSql.Append("F_CategoryId,F_CustomerId,F_CustomerName,F_ManId,F_ManName,F_Title,F_Content,F_Description,F_Comments,F_Url,F_KeyWords,F_Expand1,F_Expand2,F_IntExpand1,F_CreateOn,F_CreateBy,F_CreateName,F_ModifyOn,F_ModifyBy,F_ModifyName,F_DeleteFlag,F_CanLastLong,F_StartTime,F_EndTime)");
54
             strSql.Append(" values (");
54
             strSql.Append(" values (");
55
-            strSql.Append("@F_CategoryId,@F_CustomerId,@F_CustomerName,@F_ManId,@F_ManName,@F_Title,@F_Content,@F_Description,@F_Comments,@F_Url,@F_KeyWords,@F_Expand1,@F_Expand2,@F_IntExpand1,@F_CreateOn,@F_CreateBy,@F_CreateName,@F_ModifyOn,@F_ModifyBy,@F_ModifyName,@F_DeleteFlag)");
55
+            strSql.Append("@F_CategoryId,@F_CustomerId,@F_CustomerName,@F_ManId,@F_ManName,@F_Title,@F_Content,@F_Description,@F_Comments,@F_Url,@F_KeyWords,@F_Expand1,@F_Expand2,@F_IntExpand1,@F_CreateOn,@F_CreateBy,@F_CreateName,@F_ModifyOn,@F_ModifyBy,@F_ModifyName,@F_DeleteFlag,@F_CanLastLong,@F_StartTime,@F_EndTime)");
56
             strSql.Append(";select @@IDENTITY");
56
             strSql.Append(";select @@IDENTITY");
57
             SqlParameter[] parameters = {
57
             SqlParameter[] parameters = {
58
                     new SqlParameter("@F_CategoryId", SqlDbType.Int,4),
58
                     new SqlParameter("@F_CategoryId", SqlDbType.Int,4),
75
                     new SqlParameter("@F_ModifyOn", SqlDbType.DateTime),
75
                     new SqlParameter("@F_ModifyOn", SqlDbType.DateTime),
76
                     new SqlParameter("@F_ModifyBy", SqlDbType.Int,4),
76
                     new SqlParameter("@F_ModifyBy", SqlDbType.Int,4),
77
                     new SqlParameter("@F_ModifyName", SqlDbType.NVarChar,200),
77
                     new SqlParameter("@F_ModifyName", SqlDbType.NVarChar,200),
78
-                    new SqlParameter("@F_DeleteFlag", SqlDbType.SmallInt,2)};
78
+                    new SqlParameter("@F_DeleteFlag", SqlDbType.SmallInt,2),
79
+                    new SqlParameter("@F_CanLastLong", SqlDbType.Int),
80
+                    new SqlParameter("@F_StartTime", SqlDbType.DateTime),
81
+                    new SqlParameter("@F_EndTime", SqlDbType.DateTime)
82
+
83
+
84
+            };
79
             parameters[0].Value = model.F_CategoryId;
85
             parameters[0].Value = model.F_CategoryId;
80
             parameters[1].Value = model.F_CustomerId;
86
             parameters[1].Value = model.F_CustomerId;
81
             parameters[2].Value = model.F_CustomerName;
87
             parameters[2].Value = model.F_CustomerName;
97
             parameters[18].Value = model.F_ModifyBy;
103
             parameters[18].Value = model.F_ModifyBy;
98
             parameters[19].Value = model.F_ModifyName;
104
             parameters[19].Value = model.F_ModifyName;
99
             parameters[20].Value = model.F_DeleteFlag;
105
             parameters[20].Value = model.F_DeleteFlag;
106
+            parameters[21].Value = model.F_CanLastLong;
107
+            parameters[22].Value = model.F_StartTime;
108
+            parameters[23].Value = model.F_EndTime;
109
+
100
 
110
 
101
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
111
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
102
             if (obj == null)
112
             if (obj == null)
159
                     new SqlParameter("@F_ModifyBy", SqlDbType.Int,4),
169
                     new SqlParameter("@F_ModifyBy", SqlDbType.Int,4),
160
                     new SqlParameter("@F_ModifyName", SqlDbType.NVarChar,200),
170
                     new SqlParameter("@F_ModifyName", SqlDbType.NVarChar,200),
161
                     new SqlParameter("@F_DeleteFlag", SqlDbType.SmallInt,2),
171
                     new SqlParameter("@F_DeleteFlag", SqlDbType.SmallInt,2),
172
+                    new SqlParameter("@F_CanLastLong", SqlDbType.Int),
173
+                    new SqlParameter("@F_StartTime", SqlDbType.DateTime),
174
+                    new SqlParameter("@F_EndTime", SqlDbType.DateTime),
162
                     new SqlParameter("@F_RepositoryId", SqlDbType.Int,4)};
175
                     new SqlParameter("@F_RepositoryId", SqlDbType.Int,4)};
163
             parameters[0].Value = model.F_CategoryId;
176
             parameters[0].Value = model.F_CategoryId;
164
             parameters[1].Value = model.F_CustomerId;
177
             parameters[1].Value = model.F_CustomerId;
181
             parameters[18].Value = model.F_ModifyBy;
194
             parameters[18].Value = model.F_ModifyBy;
182
             parameters[19].Value = model.F_ModifyName;
195
             parameters[19].Value = model.F_ModifyName;
183
             parameters[20].Value = model.F_DeleteFlag;
196
             parameters[20].Value = model.F_DeleteFlag;
184
-            parameters[21].Value = model.F_RepositoryId;
197
+            parameters[21].Value = model.F_CanLastLong;
198
+            parameters[22].Value = model.F_StartTime;
199
+            parameters[23].Value = model.F_EndTime;
200
+            parameters[24].Value = model.F_RepositoryId;
185
 
201
 
186
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
202
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
187
             if (rows > 0)
203
             if (rows > 0)
247
         {
263
         {
248
 
264
 
249
             StringBuilder strSql = new StringBuilder();
265
             StringBuilder strSql = new StringBuilder();
250
-            strSql.Append("select  top 1 F_RepositoryId,F_CategoryId,F_CustomerId,F_CustomerName,F_ManId,F_ManName,F_Title,F_Content,F_Description,F_Comments,F_Url,F_KeyWords,F_Expand1,F_Expand2,F_IntExpand1,F_CreateOn,F_CreateBy,F_CreateName,F_ModifyOn,F_ModifyBy,F_ModifyName,F_DeleteFlag from T_RepositoryInformation ");
266
+            strSql.Append("select  top 1 F_RepositoryId,F_CategoryId,F_CustomerId,F_CustomerName,F_ManId,F_ManName,F_Title,F_Content,F_Description,F_Comments,F_Url,F_KeyWords,F_Expand1,F_Expand2,F_IntExpand1,F_CreateOn,F_CreateBy,F_CreateName,F_ModifyOn,F_ModifyBy,F_ModifyName,F_DeleteFlag,F_CanLastLong,F_StartTime,F_EndTime from T_RepositoryInformation ");
251
             strSql.Append(" where F_RepositoryId=@F_RepositoryId");
267
             strSql.Append(" where F_RepositoryId=@F_RepositoryId");
252
             SqlParameter[] parameters = {
268
             SqlParameter[] parameters = {
253
                     new SqlParameter("@F_RepositoryId", SqlDbType.Int,4)
269
                     new SqlParameter("@F_RepositoryId", SqlDbType.Int,4)
363
                 {
379
                 {
364
                     model.F_DeleteFlag = int.Parse(row["F_DeleteFlag"].ToString());
380
                     model.F_DeleteFlag = int.Parse(row["F_DeleteFlag"].ToString());
365
                 }
381
                 }
382
+                if (row["F_CanLastLong"] != null && row["F_CanLastLong"].ToString() != "")
383
+                {
384
+                    model.F_CanLastLong = row["F_CanLastLong"] == DBNull.Value ? 0 : int.Parse(row["F_CanLastLong"].ToString());
385
+                }
386
+                if (row["F_StartTime"] != null && row["F_StartTime"].ToString() != "")
387
+                {
388
+                    model.F_StartTime = row["F_StartTime"] == DBNull.Value ? (DateTime?)null : Convert.ToDateTime(row["F_StartTime"]);
389
+                }
390
+                if (row["F_EndTime"] != null && row["F_EndTime"].ToString() != "")
391
+                {
392
+                    model.F_EndTime = row["F_EndTime"] == DBNull.Value ? (DateTime?)null : Convert.ToDateTime(row["F_EndTime"]);
393
+                }
394
+
366
             }
395
             }
367
             return model;
396
             return model;
368
         }
397
         }
373
         public DataSet GetList(string strWhere)
402
         public DataSet GetList(string strWhere)
374
         {
403
         {
375
             StringBuilder strSql = new StringBuilder();
404
             StringBuilder strSql = new StringBuilder();
376
-            strSql.Append("select F_RepositoryId,F_CategoryId,F_CustomerId,F_CustomerName,F_ManId,F_ManName,F_Title,F_Content,F_Description,F_Comments,F_Url,F_KeyWords,F_Expand1,F_Expand2,F_IntExpand1,F_CreateOn,F_CreateBy,F_CreateName,F_ModifyOn,F_ModifyBy,F_ModifyName,F_DeleteFlag ");
405
+            strSql.Append("select F_RepositoryId,F_CategoryId,F_CustomerId,F_CustomerName,F_ManId,F_ManName,F_Title,F_Content,F_Description,F_Comments,F_Url,F_KeyWords,F_Expand1,F_Expand2,F_IntExpand1,F_CreateOn,F_CreateBy,F_CreateName,F_ModifyOn,F_ModifyBy,F_ModifyName,F_DeleteFlag,F_CanLastLong,F_StartTime,F_EndTime ");
377
             strSql.Append(" FROM T_RepositoryInformation ");
406
             strSql.Append(" FROM T_RepositoryInformation ");
378
             if (strWhere.Trim() != "")
407
             if (strWhere.Trim() != "")
379
             {
408
             {
393
             {
422
             {
394
                 strSql.Append(" top " + Top.ToString());
423
                 strSql.Append(" top " + Top.ToString());
395
             }
424
             }
396
-            strSql.Append(" F_RepositoryId,F_CategoryId,F_CustomerId,F_CustomerName,F_ManId,F_ManName,F_Title,F_Content,F_Description,F_Comments,F_Url,F_KeyWords,F_Expand1,F_Expand2,F_IntExpand1,F_CreateOn,F_CreateBy,F_CreateName,F_ModifyOn,F_ModifyBy,F_ModifyName,F_DeleteFlag ");
425
+            strSql.Append(" F_RepositoryId,F_CategoryId,F_CustomerId,F_CustomerName,F_ManId,F_ManName,F_Title,F_Content,F_Description,F_Comments,F_Url,F_KeyWords,F_Expand1,F_Expand2,F_IntExpand1,F_CreateOn,F_CreateBy,F_CreateName,F_ModifyOn,F_ModifyBy,F_ModifyName,F_DeleteFlag,F_CanLastLong,F_StartTime,F_EndTime  ");
397
             strSql.Append(" FROM T_RepositoryInformation ");
426
             strSql.Append(" FROM T_RepositoryInformation ");
398
             if (strWhere.Trim() != "")
427
             if (strWhere.Trim() != "")
399
             {
428
             {

+ 57 - 10
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/callout/CallPlanController.cs

23
         private readonly BLL.T_Call_TaskTelNum taskTellNumBLL = new BLL.T_Call_TaskTelNum();
23
         private readonly BLL.T_Call_TaskTelNum taskTellNumBLL = new BLL.T_Call_TaskTelNum();
24
         private readonly BLL.T_Sys_DictionaryValue dictValueBLL = new BLL.T_Sys_DictionaryValue();
24
         private readonly BLL.T_Sys_DictionaryValue dictValueBLL = new BLL.T_Sys_DictionaryValue();
25
         private readonly BLL.T_CTI_TaskAgent taskAgentBLL = new BLL.T_CTI_TaskAgent();
25
         private readonly BLL.T_CTI_TaskAgent taskAgentBLL = new BLL.T_CTI_TaskAgent();
26
-        private readonly BLL.T_Sys_UserAccount userAccount = new BLL.T_Sys_UserAccount();
26
+        private readonly BLL.T_Sys_UserAccount userAccountBLL = new BLL.T_Sys_UserAccount();
27
         private readonly BLL.T_CTI_TaskRecord taskRecordBLL = new BLL.T_CTI_TaskRecord();
27
         private readonly BLL.T_CTI_TaskRecord taskRecordBLL = new BLL.T_CTI_TaskRecord();
28
         private readonly BLL.CallResult callResultBLL = new BLL.CallResult();
28
         private readonly BLL.CallResult callResultBLL = new BLL.CallResult();
29
         private readonly BLL.T_CTI_TaskDaily taskDailyBLL = new BLL.T_CTI_TaskDaily();
29
         private readonly BLL.T_CTI_TaskDaily taskDailyBLL = new BLL.T_CTI_TaskDaily();
85
             //查询坐席组
85
             //查询坐席组
86
             var agentGroupList = seatGroupBLL.DataTableToList(seatGroupBLL.GetList("").Tables[0]);
86
             var agentGroupList = seatGroupBLL.DataTableToList(seatGroupBLL.GetList("").Tables[0]);
87
             //查询坐席
87
             //查询坐席
88
-            var agentList = userAccount.DataTableToList(userAccount.GetList(" F_DeleteFlag=0 ").Tables[0]);
88
+            var agentList = userAccountBLL.DataTableToList(userAccountBLL.GetList(" F_DeleteFlag=0 ").Tables[0]);
89
             //查询部门
89
             //查询部门
90
             var deptList = departmentBLL.DataTableToList(departmentBLL.GetList(" F_State=1 ").Tables[0]);
90
             var deptList = departmentBLL.DataTableToList(departmentBLL.GetList(" F_State=1 ").Tables[0]);
91
             foreach (var model in modelList)
91
             foreach (var model in modelList)
92
             {
92
             {
93
+                if (model.TaskID == 154)
94
+                {
95
+
96
+                    var a = 0;
97
+                }
98
+
93
                 //计算数据
99
                 //计算数据
94
                 string calledRate = "0";
100
                 string calledRate = "0";
95
                 var allcount = model.y_HMCount ?? 0;
101
                 var allcount = model.y_HMCount ?? 0;
182
             //查询坐席组
188
             //查询坐席组
183
             var agentGroupList = seatGroupBLL.DataTableToList(seatGroupBLL.GetList("").Tables[0]);
189
             var agentGroupList = seatGroupBLL.DataTableToList(seatGroupBLL.GetList("").Tables[0]);
184
             //查询坐席
190
             //查询坐席
185
-            var agentList = userAccount.DataTableToList(userAccount.GetList(" F_DeleteFlag=0 ").Tables[0]);
191
+            var agentList = userAccountBLL.DataTableToList(userAccountBLL.GetList(" F_DeleteFlag=0 ").Tables[0]);
186
 
192
 
187
 
193
 
188
             var agentGroupStr = model.AgentGroupId == -999 ? "不转坐席" : "";
194
             var agentGroupStr = model.AgentGroupId == -999 ? "不转坐席" : "";
742
         /// <returns></returns>
748
         /// <returns></returns>
743
         public ActionResult GetPhoneResultHead(FilterCallPhone filter)
749
         public ActionResult GetPhoneResultHead(FilterCallPhone filter)
744
         {
750
         {
745
-            var headList1 = new List<string>() { "序号", "外呼计划", "号码Id", "号码", "分配坐席", "呼叫状态", "接通状态", "呼叫结果", "结果反馈", "导入时间", "呼出时间" };
751
+            var headList1 = new List<string>() { "号码Id", "外呼计划", "号码", "是否分配", "分配坐席", "呼叫状态", "接通状态", "呼叫结果", "结果反馈", "导入时间", "呼出时间" };
746
             //根据任务id查问卷
752
             //根据任务id查问卷
747
             var task = taskBLL.GetModel(filter.Id);
753
             var task = taskBLL.GetModel(filter.Id);
748
             if (task == null)
754
             if (task == null)
769
         /// <returns></returns>
775
         /// <returns></returns>
770
         public ActionResult GetPhoneResult(FilterCallPhone filter)
776
         public ActionResult GetPhoneResult(FilterCallPhone filter)
771
         {
777
         {
772
-            var headList1 = new List<string>() { "序号", "外呼计划", "号码Id", "号码", "分配坐席", "呼叫状态", "接通状态", "呼叫结果", "结果反馈", "导入时间", "呼出时间" };
778
+            var headList1 = new List<string>() { "号码Id", "外呼计划", "号码", "是否分配", "分配坐席", "呼叫状态", "接通状态", "呼叫结果", "结果反馈", "导入时间", "呼出时间" };
773
             //根据任务id查问卷
779
             //根据任务id查问卷
774
             var task = taskBLL.GetModel(filter.Id);
780
             var task = taskBLL.GetModel(filter.Id);
775
             if (task == null)
781
             if (task == null)
862
             {
868
             {
863
                 var answer = answerList.Where(x => (x.F_CusTelID?.ToString() ?? "") == item.id).GroupBy(x => x.F_QID).ToList();
869
                 var answer = answerList.Where(x => (x.F_CusTelID?.ToString() ?? "") == item.id).GroupBy(x => x.F_QID).ToList();
864
                 var itemList = new List<string>();
870
                 var itemList = new List<string>();
865
-                itemList.AddRange(new string[] { item.id, item.taskname, item.phone, item.agent, item.isallot, item.iscalled, item.isconnected, item.hjjg, item.yhfk, item.createtime, item.lastcalltime });
871
+                itemList.AddRange(new string[] { item.id, item.taskname, item.phone, item.isallot, item.agent, item.iscalled, item.isconnected, item.hjjg, item.yhfk, item.createtime, item.lastcalltime });
866
                 if (answer.Count() > 0)
872
                 if (answer.Count() > 0)
867
                 {
873
                 {
868
                     foreach (var i in answer)
874
                     foreach (var i in answer)
1121
         {
1127
         {
1122
             if (input.Id <= 0)
1128
             if (input.Id <= 0)
1123
                 return Error("提交失败,当前号码不存在");
1129
                 return Error("提交失败,当前号码不存在");
1130
+            if (input.HJJG <= 0)
1131
+                return Error("提交失败,请选择呼叫结果");
1132
+            if (input.YHFK <= 0)
1133
+                return Error("提交失败,请选择用户反馈");
1134
+
1124
             var otnModel = taskTellNumBLL.GetModel(input.Id);
1135
             var otnModel = taskTellNumBLL.GetModel(input.Id);
1125
             if (otnModel.F_HCState <= 0)
1136
             if (otnModel.F_HCState <= 0)
1126
                 return Error("提交失败,号码未进行呼叫");
1137
                 return Error("提交失败,号码未进行呼叫");
1138
+
1127
             int cc = 0;
1139
             int cc = 0;
1128
             var ansModel = new Model.T_Call_Answers();
1140
             var ansModel = new Model.T_Call_Answers();
1129
             string askqids = "";
1141
             string askqids = "";
1348
         {
1360
         {
1349
             //if (!Request.IsAuthenticated)
1361
             //if (!Request.IsAuthenticated)
1350
             //    return NoToken("未知错误,请重新登录");
1362
             //    return NoToken("未知错误,请重新登录");
1363
+            List<string> headList = new List<string>() { "序号", "号码", "是否分配", "分配坐席", "呼叫状态", "接通状态", "导入时间", "呼叫时间" };
1364
+            var userAccountList = userAccountBLL.DataTableToList(userAccountBLL.GetList("").Tables[0]);
1351
             NPOIHelper npoi = new NPOIHelper();
1365
             NPOIHelper npoi = new NPOIHelper();
1352
             var task = taskBLL.GetModel(taskId);
1366
             var task = taskBLL.GetModel(taskId);
1353
             if (task == null)
1367
             if (task == null)
1355
             switch (type)
1369
             switch (type)
1356
             {
1370
             {
1357
                 case 1:
1371
                 case 1:
1358
-                    var dt1 = taskTellNumBLL.GetPhoneList(" F_TaskId=" + task.TaskID + "  and F_HCState=1 and  (F_YJState=0 or F_YJState is null) ").Tables[0];
1359
-                    var msg1 = npoi.ExportToExcel(DateTime.Now.ToString("yyyyMMdd") + task.TaskName + "导出未接通号码", dt1);
1372
+                    var list1 = taskTellNumBLL.DataTableToListForExport(taskTellNumBLL.GetPhoneList(" F_TaskId=" + task.TaskID + "  and F_HCState=1 and  (F_YJState=0 or F_YJState is null) ").Tables[0]);
1373
+                    List<List<string>> resList1 = new List<List<string>>();
1374
+                    foreach (var item in list1)
1375
+                    {
1376
+                        var user = userAccountList.SingleOrDefault(x => x.F_UserId == item.F_UserId);
1377
+                        resList1.Add(new List<string>
1378
+                        {
1379
+                            item.F_Id.ToString(),
1380
+                            item.F_Phone,
1381
+                            (item.F_FPState==null ||item.F_FPState<=0)?"未分配":"已分配",
1382
+                            user == null ? "": $"{user.F_UserCode }-{user.F_UserName}",
1383
+                            (item.F_HCState==null || item.F_HCState<=0)?"未呼叫":"已呼叫",
1384
+                            (item.F_YJState==null || item.F_YJState<=0)?"未接通":"已接通",
1385
+                            item.F_CreateTime?.ToString("yyyy-MM-dd HH:mm:ss")??"",
1386
+                            item.F_LastCallTime?.ToString("yyyy-MM-dd HH:mm:ss")??"",
1387
+                        });
1388
+                    }
1389
+                    var msg1 = npoi.ExportToExcel(task.TaskName + "导出未接通号码" + DateTime.Now.ToString("yyyyMMdd"), resList1, headList.ToArray());
1360
                     return !string.IsNullOrWhiteSpace(msg1) ? Error(msg1) : Success("导出成功");
1390
                     return !string.IsNullOrWhiteSpace(msg1) ? Error(msg1) : Success("导出成功");
1361
                 case 2:
1391
                 case 2:
1362
-                    var dt2 = taskTellNumBLL.GetPhoneList(" F_TaskId=" + task.TaskID + " and F_HCState=1 and  F_YJState=1 ").Tables[0];
1363
-                    var msg2 = npoi.ExportToExcel(DateTime.Now.ToString("yyyyMMdd") + task.TaskName + "导出已接通号码", dt2);
1392
+                    var list2 = taskTellNumBLL.DataTableToListForExport(taskTellNumBLL.GetPhoneList(" F_TaskId=" + task.TaskID + " and F_HCState=1 and  F_YJState=1 ").Tables[0]);
1393
+                    List<List<string>> resList2 = new List<List<string>>();
1394
+                    foreach (var item in list2)
1395
+                    {
1396
+                        var user = userAccountList.SingleOrDefault(x => x.F_UserId == item.F_UserId);
1397
+                        resList2.Add(new List<string>
1398
+                        {
1399
+                            item.F_Id.ToString(),
1400
+                            item.F_Phone,
1401
+                            (item.F_FPState==null ||item.F_FPState<=0)?"未分配":"已分配",
1402
+                            user == null ? "": $"{user.F_UserCode }-{user.F_UserName}",
1403
+                            (item.F_HCState==null || item.F_HCState<=0)?"未呼叫":"已呼叫",
1404
+                            (item.F_YJState==null || item.F_YJState<=0)?"未接通":"已接通",
1405
+                            item.F_CreateTime?.ToString("yyyy-MM-dd HH:mm:ss")??"",
1406
+                            item.F_LastCallTime?.ToString("yyyy-MM-dd HH:mm:ss")??"",
1407
+                        });
1408
+                    }
1409
+
1410
+                    var msg2 = npoi.ExportToExcel(task.TaskName + "导出已接通号码" + DateTime.Now.ToString("yyyyMMdd"), resList2, headList.ToArray());
1364
                     return !string.IsNullOrWhiteSpace(msg2) ? Error(msg2) : Success("导出成功");
1411
                     return !string.IsNullOrWhiteSpace(msg2) ? Error(msg2) : Success("导出成功");
1365
             }
1412
             }
1366
             return Error("参数错误");
1413
             return Error("参数错误");

+ 21 - 2
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/knowledge/KnowledgeController.cs

36
                 sql += " and (F_Content like '%" + keywords.Trim() + "%' or F_Title like '%"
36
                 sql += " and (F_Content like '%" + keywords.Trim() + "%' or F_Title like '%"
37
                     + keywords.Trim() + "%' or F_KeyWords like '%" + keywords.Trim() + "%')";
37
                     + keywords.Trim() + "%' or F_KeyWords like '%" + keywords.Trim() + "%')";
38
             }
38
             }
39
+            sql += $" and  ( F_CanLastLong>0 or (DateDiff(s,F_StartTime,'{DateTime.Now}')>0  and DateDiff(s,'{DateTime.Now}',F_EndTime)>0)  )";
39
             if (strpageindex.Trim() != "")
40
             if (strpageindex.Trim() != "")
40
             {
41
             {
41
                 pageindex = Convert.ToInt32(strpageindex);
42
                 pageindex = Convert.ToInt32(strpageindex);
111
 
112
 
112
         //[Authority]
113
         //[Authority]
113
         //添加知识库
114
         //添加知识库
114
-        public ActionResult AddInfo(string title, string key, string con, string pid)
115
+        public ActionResult AddInfo(string title, string key, string con, string pid, DateTime? start, DateTime? end, int canlastlong = 1)
115
         {
116
         {
116
             ActionResult res = NoToken("未知错误,请重新登录");
117
             ActionResult res = NoToken("未知错误,请重新登录");
117
             if (Request.IsAuthenticated)
118
             if (Request.IsAuthenticated)
118
             {
119
             {
120
+                if (canlastlong <= 0)
121
+                {
122
+                    start = start ?? DateTime.Now.Date;
123
+                    end = end ?? DateTime.Now.Date.AddDays(8).AddSeconds(-1);
124
+                }
125
+
119
 
126
 
120
                 Model.T_RepositoryInformation dModel = new Model.T_RepositoryInformation();
127
                 Model.T_RepositoryInformation dModel = new Model.T_RepositoryInformation();
121
                 if (pid.Trim() != "")
128
                 if (pid.Trim() != "")
137
                 dModel.F_ModifyOn = DateTime.Now;
144
                 dModel.F_ModifyOn = DateTime.Now;
138
                 dModel.F_CreateBy = CurrentUser.UserData.F_UserId;
145
                 dModel.F_CreateBy = CurrentUser.UserData.F_UserId;
139
                 dModel.F_DeleteFlag = 0;
146
                 dModel.F_DeleteFlag = 0;
147
+                dModel.F_CanLastLong = canlastlong;
148
+                dModel.F_StartTime = start;
149
+                dModel.F_EndTime = end;
150
+
140
                 int b = new BLL.T_RepositoryInformation().Add(dModel);
151
                 int b = new BLL.T_RepositoryInformation().Add(dModel);
141
                 if (b > 0)
152
                 if (b > 0)
142
                 {
153
                 {
152
         }
163
         }
153
         //[Authority]
164
         //[Authority]
154
         //编辑知识库
165
         //编辑知识库
155
-        public ActionResult EditInfo(string infoid, string title, string key, string con, string pid)
166
+        public ActionResult EditInfo(string infoid, string title, string key, string con, string pid, DateTime? start, DateTime? end, int canlastlong = 1)
156
         {
167
         {
157
             ActionResult res = NoToken("未知错误,请重新登录");
168
             ActionResult res = NoToken("未知错误,请重新登录");
158
             if (Request.IsAuthenticated)
169
             if (Request.IsAuthenticated)
187
 
198
 
188
                         dModel.F_ModifyBy = CurrentUser.UserData.F_UserId;
199
                         dModel.F_ModifyBy = CurrentUser.UserData.F_UserId;
189
                         dModel.F_ModifyOn = DateTime.Now;
200
                         dModel.F_ModifyOn = DateTime.Now;
201
+                        if (canlastlong <= 0)
202
+                        {
203
+                            start = start ?? DateTime.Now.Date;
204
+                            end = end ?? DateTime.Now.Date.AddDays(8).AddSeconds(-1);
205
+                        }
206
+                        dModel.F_CanLastLong = canlastlong;
207
+                        dModel.F_StartTime = start;
208
+                        dModel.F_EndTime = end;
190
                         bool b = dBLL.Update(dModel);
209
                         bool b = dBLL.Update(dModel);
191
                         if (b)
210
                         if (b)
192
                         {
211
                         {

+ 4 - 0
CallCenterApi/CallCenterApi.Model/T_RepositoryInformation.cs

213
             set { _f_deleteflag = value; }
213
             set { _f_deleteflag = value; }
214
             get { return _f_deleteflag; }
214
             get { return _f_deleteflag; }
215
         }
215
         }
216
+        public int? F_CanLastLong { get; set; }
217
+        public DateTime? F_StartTime { get; set; }
218
+        public DateTime? F_EndTime { get; set; }
219
+
216
         #endregion Model
220
         #endregion Model
217
     }
221
     }
218
 }
222
 }