mengjie лет назад: 7
Родитель
Сommit
f6ff561c63

+ 161 - 0
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/CallOutReportController.cs

@@ -17,6 +17,8 @@ namespace CallCenterApi.Interface.Controllers.report
17 17
         private readonly BLL.T_Call_OutAnswers ansBLL = new BLL.T_Call_OutAnswers();
18 18
         private readonly BLL.T_Ask_QuestionItems questionItemBLL = new BLL.T_Ask_QuestionItems();
19 19
         private readonly BLL.T_Sys_DictionaryValue dvItemBLL = new BLL.T_Sys_DictionaryValue();
20
+        private readonly BLL.T_Call_OutTask otBLL = new BLL.T_Call_OutTask();
21
+
20 22
 
21 23
         #region 获取外呼任务报表查询
22 24
         /// <summary>
@@ -1321,5 +1323,164 @@ namespace CallCenterApi.Interface.Controllers.report
1321 1323
         }
1322 1324
         #endregion
1323 1325
 
1326
+        //2018-7-11
1327
+        #region 不满意报表
1328
+        #region 数据
1329
+        /// <summary>
1330
+        /// 不满意报表
1331
+        /// </summary>
1332
+        /// <param name="TaskID">任务id 必选</param>
1333
+        /// <param name="quesid">问题id 必选</param>
1334
+        /// <param name="ansid">当前问题答案id 可多选</param>
1335
+        /// <param name="sdate">开始时间</param>
1336
+        /// <param name="edate">结束时间</param>
1337
+        /// <returns></returns>
1338
+        public ActionResult GetReportBMY(string TaskID, int quesid, string ansids, string sdate, string edate)
1339
+        {
1340
+            DataTable dtnew = new DataTable();
1341
+            
1342
+            dtnew = getdateBMY(TaskID, quesid, ansids, sdate, edate);
1343
+            return Success("获取详细报表数据成功", dtnew);
1344
+
1345
+        }
1346
+        public DataTable getdateBMY(string TaskID, int quesid, string ansids, string sdate, string edate)
1347
+        {
1348
+            DataTable dtnew = new DataTable();
1349
+            #region 新建输出表
1350
+            dtnew.Columns.Add("name");
1351
+            dtnew.Columns.Add("phone");
1352
+            dtnew.Columns.Add("answer");
1353
+            #endregion
1354
+
1355
+            #region 查询条件
1356
+            string sqlotn = "";
1357
+            string sqlans = " and isnull(F_TaskID,'')='" + TaskID + "' " + " and isnull(F_QID,'')='" + quesid + "' ";
1358
+            if (!string .IsNullOrWhiteSpace(TaskID))
1359
+            { sqlotn = " and isnull(F_TaskID,'')='" + TaskID + "' "; }
1360
+            //string sqlotn = " and isnull(F_TaskID,'')='" + TaskID + "' ";
1361
+            #region 选中答案搜索
1362
+            if (string.IsNullOrWhiteSpace(TaskID))
1363
+            { sqlans = "  and isnull(F_QID,'')='" + quesid + "' "; }
1364
+            //string sqlans = " and isnull(F_TaskID,'')='" + TaskID + "' " + " and isnull(F_QID,'')='" + quesid + "' ";
1365
+            if (!string.IsNullOrWhiteSpace(ansids)&&ansids!="null" )
1366
+            {
1367
+                sqlans += " and F_QIID in (" + ansids.Trim() + ") ";
1368
+            }
1369
+            sqlotn += " and F_Id in (select F_CusTelID from T_Call_OutAnswers where 1=1 " + sqlans + ")";
1370
+            #endregion
1371
+            if (!string.IsNullOrWhiteSpace(sdate))
1372
+                sqlotn += " and DATEDIFF(day,ExpandDatField1,'" + sdate.Trim() + "')<=0";
1373
+            if (!string.IsNullOrWhiteSpace(edate))
1374
+                sqlotn += " and DATEDIFF(day,ExpandDatField1,'" + edate.Trim() + "')>=0";
1375
+            #endregion
1376
+            var otnlist = otnBLL.GetModelList(" 1=1 " + sqlotn);
1377
+
1378
+            if (otnlist.Count > 0)
1379
+            {
1380
+                foreach (var itemotn in otnlist)
1381
+                {
1382
+                    DataRow dr = dtnew.NewRow();
1383
+                    dr["name"] = itemotn.F_CusName;
1384
+                    dr["phone"] = itemotn.F_Phone;
1385
+                    string ans = "";
1386
+                    #region 答案
1387
+                    var anslist = ansBLL.GetModelList(" F_CusTelID=" + itemotn.F_Id + sqlans);
1388
+                    if (anslist.Count > 0)
1389
+                    {
1390
+                        string anan = "";
1391
+                        foreach (var ansitem in anslist)
1392
+                        {
1393
+                            anan += ansitem.F_Answer + ";";
1394
+                        }
1395
+                        ans = anan.Trim(';') + "。";
1396
+                    }
1397
+                    #endregion
1398
+                    dr["answer"] = ans;
1399
+                    dtnew.Rows.Add(dr);
1400
+                }
1401
+            }
1402
+            return dtnew;
1403
+        }
1404
+        #endregion
1405
+        #region 表头
1406
+        public ActionResult GetColoumnBMY(string TaskID, int quesid = 0)
1407
+        {
1408
+            string[] col = getcoloumn(TaskID, quesid);
1409
+
1410
+            return Success("获取详细报表表头成功", col);
1411
+
1412
+        }
1413
+        public string[] getcoloumn(string TaskID, int quesid = 0)
1414
+        {
1415
+            string sqlques = "F_QuestionId=" + quesid;
1416
+            var quesmodel = questionBLL.GetModel(quesid);
1417
+            var ques = "";
1418
+            if (quesmodel != null)
1419
+            {
1420
+                ques = quesmodel.F_Title;
1421
+
1422
+            }
1423
+            string[] col = { "姓名", "电话", ques };
1424
+            return col;
1425
+        }
1426
+        #endregion
1427
+        #region 导出
1428
+        public ActionResult GetReportBMYExpt(string TaskID, string ansids, string sdate, string edate, int quesid )
1429
+        {
1430
+            DataTable dtnew = getdateBMY(TaskID, quesid, ansids, sdate, edate);
1431
+            NPOIHelper npoi = new NPOIHelper();
1432
+            string[] col = getcoloumn(TaskID, quesid);
1433
+            if (npoi.ExportToExcel("详细报表数据", dtnew, col) == "")
1434
+            {
1435
+                return Success("导出成功");
1436
+            }
1437
+            else
1438
+            {
1439
+                return Error("导出失败");
1440
+            }
1441
+        }
1442
+        #endregion
1443
+        #endregion
1444
+
1445
+        #region 下拉框
1446
+        /// <summary>
1447
+        /// 任务列表下拉
1448
+        /// </summary>
1449
+        /// <returns></returns>
1450
+        public ActionResult GetTaskDDL()
1451
+        {
1452
+            var alllist = otBLL.GetModelList(" F_DeleteFlag=0 order by F_TaskID desc");
1453
+            return Success("获取任务列表下拉成功", alllist);
1454
+        }
1455
+        /// <summary>
1456
+        /// 问题列表下拉
1457
+        /// </summary>
1458
+        /// <returns></returns>
1459
+        public ActionResult GetQuesDDL(int taskid = 0)
1460
+        {
1461
+            string sql = "";
1462
+            if (taskid > 0)
1463
+            {
1464
+                sql += " and F_QuestionId IN (select ta.F_QuestionId from  T_Ask_PagerItems ta where ta.F_PagerId=(select F_PagerID from T_Call_OutTask where isnull(F_TaskID,'')='" + taskid + "') )";
1465
+            }
1466
+            var list = questionBLL.GetModelList(" F_Type!=1" + sql);
1467
+            return Success("获取问题列表下拉成功", list);
1468
+        }
1469
+        /// <summary>
1470
+        /// 问题选项列表下拉
1471
+        /// </summary>
1472
+        /// <returns></returns>
1473
+        public ActionResult GetQuesItemDDL(int quesid = 0)
1474
+        {
1475
+            string sql = " 1=1 ";
1476
+            if (quesid > 0)
1477
+            {
1478
+                sql += " and F_QuestionId=" + quesid;
1479
+            }
1480
+            var list = questionItemBLL.GetModelList(sql);
1481
+            return Success("获取问题选项列表下拉成功", list);
1482
+        }
1483
+        #endregion
1484
+
1324 1485
     }
1325 1486
 }