Procházet zdrojové kódy

修改公示接口和县级接口

zhoufan %!s(int64=7) %!d(string=před) roky
rodič
revize
0abd196305

+ 98 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/County/CountyTelController.cs

@@ -19,6 +19,26 @@ namespace CallCenterApi.Interface.Controllers.County
19 19
         // GET: CountyTel
20 20
 
21 21
         /// <summary>
22
+        /// 平台展示
23
+        /// </summary>
24
+        /// <param name="start"></param>
25
+        /// <param name="end"></param>
26
+        /// <returns></returns>
27
+        public ActionResult GetAreaTodayTelShowReport(DateTime? date)
28
+        {
29
+            if (date == null)
30
+            {
31
+                date = DateTime.Now;
32
+            }
33
+
34
+            Dictionary<string, string> paras = new Dictionary<string, string>();
35
+            paras.Add("@date", date.Value.ToString("yyyy-MM-dd"));
36
+            var obj = DbHelperSQL.RunProcedure("P_AreaTodayTelShowReport", paras, "AreaTodayTelShowReport");
37
+
38
+            return Success("成功", obj.Tables[0]);
39
+        }
40
+
41
+        /// <summary>
22 42
         /// 获取通话记录列表
23 43
         /// </summary>
24 44
         /// <param name="phone"></param>
@@ -328,5 +348,83 @@ namespace CallCenterApi.Interface.Controllers.County
328 348
             return Success("成功", obj.Tables[0]);
329 349
         }
330 350
 
351
+        /// <summary>
352
+        /// 队列排队等待时长报表时日周月报
353
+        /// </summary>
354
+        /// <returns></returns>
355
+        public ActionResult GetAreaHDWMQueueWaitReport(string start, string end, int dateType = 1)
356
+        {
357
+            if (string.IsNullOrEmpty(start))
358
+            {
359
+                switch (dateType)
360
+                {
361
+                    case 1: start = DateTime.Now.ToString("yyyy-MM"); break;
362
+                    case 2:
363
+                        GregorianCalendar gc = new GregorianCalendar();
364
+                        int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
365
+                        start = DateTime.Now.Date.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
366
+                        break;
367
+                    case 3: start = DateTime.Now.ToString("yyyy-MM-dd"); break;
368
+                    case 4: start = DateTime.Now.ToString("yyyy-MM-dd") + " 00"; break;
369
+                }
370
+            }
371
+            if (string.IsNullOrEmpty(end))
372
+            {
373
+                switch (dateType)
374
+                {
375
+                    case 1: end = DateTime.Now.ToString("yyyy-MM"); break;
376
+                    case 2:
377
+                        GregorianCalendar gc = new GregorianCalendar();
378
+                        int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
379
+                        end = DateTime.Now.Date.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
380
+                        break;
381
+                    case 3: end = DateTime.Now.ToString("yyyy-MM-dd"); break;
382
+                    case 4: end = DateTime.Now.ToString("yyyy-MM-dd HH"); break;
383
+                }
384
+            }
385
+
386
+            Dictionary<string, string> paras = new Dictionary<string, string>();
387
+            paras.Add("@sdate", start);
388
+            paras.Add("@edate", end);
389
+            paras.Add("@datetype", dateType.ToString());
390
+            var obj = DbHelperSQL.RunProcedure("P_AreaHDWMQueueWaitReport", paras, "AreaHDWMQueueWaitReport");
391
+
392
+            return Success("成功", obj.Tables[0]);
393
+        }
394
+
395
+        /// <summary>
396
+        /// 网点今日话务量数据收集
397
+        /// </summary>
398
+        /// <param name="start"></param>
399
+        /// <param name="end"></param>
400
+        /// <returns></returns>
401
+        public ActionResult GetAreaTodayTelReport(DateTime? date)
402
+        {
403
+            if (date == null)
404
+            {
405
+                date = DateTime.Now;
406
+            }
407
+
408
+            Dictionary<string, string> paras = new Dictionary<string, string>();
409
+            paras.Add("@date", date.Value.ToString("yyyy-MM-dd"));
410
+            var obj = DbHelperSQL.RunProcedure("P_AreaTodayTelReport", paras, "AreaTodayTelReport");
411
+
412
+            return Success("成功", obj.Tables[0]);
413
+        }
414
+
415
+        /// <summary>
416
+        /// 座席列表
417
+        /// </summary>
418
+        /// <param name="start"></param>
419
+        /// <param name="end"></param>
420
+        /// <returns></returns>
421
+        public ActionResult GetAreaSeatList()
422
+        {
423
+            Dictionary<string, string> paras = new Dictionary<string, string>();
424
+            var obj = DbHelperSQL.RunProcedure("P_AreaSeatListReport", paras, "AreaSeatListReport");
425
+
426
+            return Success("成功", obj.Tables[0]);
427
+        }
428
+
331 429
     }
332 430
 }

+ 170 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/InfoController.cs

@@ -790,6 +790,53 @@ namespace CallCenterApi.Interface.Controllers
790 790
         }
791 791
 
792 792
         /// <summary>
793
+        /// 获取来源数量百分比
794
+        /// </summary>
795
+        /// <param name="start"></param>
796
+        /// <param name="end"></param>
797
+        /// <returns></returns>
798
+        public ActionResult GetSourceByDate(DateTime? start, DateTime? end)
799
+        {
800
+            string where = " and F_IsDelete=0";
801
+            if (start == null && end == null)
802
+            {
803
+                where += " and datediff(day,F_CreateTime,getdate())=0";
804
+            }
805
+            else
806
+            {
807
+                if (start == null) { start = DateTime.Now; }
808
+                if (end == null) { end = DateTime.Now; }
809
+                where += $" and datediff(day,F_CreateTime,'{start.Value.ToString("yyyy-MM-dd")}')<=0 and datediff(day,F_CreateTime,'{end.Value.ToString("yyyy-MM-dd")}')>=0 ";
810
+            }
811
+            string sql = " select F_ValueId Id,F_Value Source,(select COUNT(1) from T_Bus_WorkOrder where  F_InfoSource=F_ValueId " + where
812
+                + ") Count from  dbo.T_Sys_DictionaryValue where F_ItemId=1 and F_State=0 ";
813
+            DataTable dt = DbHelperSQL.Query(sql).Tables[0];
814
+
815
+            int n = Int32.Parse(DbHelperSQL.GetSingle("select COUNT(1) from T_Bus_WorkOrder where 1=1 " + where).ToString());
816
+
817
+            dt.Columns.Add("Percent", typeof(object));
818
+            foreach (DataRow drnew in dt.Rows)
819
+            {
820
+                if (n > 0)
821
+                {
822
+                    drnew["Percent"] = Math.Round((double.Parse(drnew["Count"].ToString()) * 100 / n), 2) + "%";
823
+                }
824
+                else
825
+                {
826
+                    drnew["Percent"] = "";
827
+                }
828
+            }
829
+
830
+            DataRow dr = dt.NewRow();
831
+            dr["Source"] = "总计";
832
+            dr["Count"] = n;
833
+            dr["Percent"] = "100%";
834
+            dt.Rows.Add(dr);
835
+
836
+            return Success("加载成功", dt);
837
+        }
838
+
839
+        /// <summary>
793 840
         /// 获取受理区域数量
794 841
         /// </summary>
795 842
         /// <param name="start"></param>
@@ -950,6 +997,45 @@ namespace CallCenterApi.Interface.Controllers
950 997
         }
951 998
 
952 999
         /// <summary>
1000
+        /// 接单情况汇总(月份)
1001
+        /// </summary>
1002
+        /// <param name="start"></param>
1003
+        /// <param name="end"></param>
1004
+        /// <returns></returns>
1005
+        public ActionResult GetStateCountByMonth(string month)
1006
+        {
1007
+            if (string.IsNullOrEmpty(month))
1008
+            {
1009
+                month = DateTime.Now.ToString("yyyy-MM");
1010
+            }
1011
+            month = month + "-01";
1012
+
1013
+            //int[] stateList = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
1014
+            int[] stateList = Enumerable.Range(0, 10).ToArray<int>();
1015
+            string[] nameList = { "新工单", "待交办", "待查收", "退回审核中", "办理中", "延时审核中", "已办理", "已回访", "重办中", "已结案" };
1016
+
1017
+            DataTable dt = new DataTable();
1018
+            dt.Columns.Add("State", typeof(string));
1019
+            dt.Columns.Add("Name", typeof(string));
1020
+            dt.Columns.Add("Count", typeof(string));
1021
+            foreach (var state in stateList)
1022
+            {
1023
+                string sql = " select count(1) from dbo.T_Bus_WorkOrder where F_IsDelete = 0 and F_WorkState=" + state
1024
+                    + " and datediff(month,F_CreateTime,getdate())=0 ";
1025
+                int n = int.Parse(DbHelperSQL.GetSingle(sql).ToString());
1026
+
1027
+                DataRow dr = dt.NewRow();
1028
+                dr["State"] = state;
1029
+                dr["Name"] = nameList[state];
1030
+                dr["Count"] = n;
1031
+
1032
+                dt.Rows.Add(dr);
1033
+            }
1034
+
1035
+            return Success("加载成功", dt);
1036
+        }
1037
+
1038
+        /// <summary>
953 1039
         /// 单位受理处理时间分布(小时)
954 1040
         /// </summary>
955 1041
         /// <param name="start"></param>
@@ -1050,6 +1136,32 @@ namespace CallCenterApi.Interface.Controllers
1050 1136
             return Success("加载成功", dt);
1051 1137
         }
1052 1138
 
1139
+        /// <summary>
1140
+        /// 获取承办单位数量(new)
1141
+        /// </summary>
1142
+        /// <param name="start"></param>
1143
+        /// <param name="end"></param>
1144
+        /// <returns></returns>
1145
+        public ActionResult GetDeptCountByDateNew(DateTime? start, DateTime? end, int deptid = 0)
1146
+        {
1147
+            if (start == null)
1148
+            {
1149
+                start = DateTime.Now;
1150
+            }
1151
+            if (end == null)
1152
+            {
1153
+                end = DateTime.Now;
1154
+            }
1155
+
1156
+            Dictionary<string, string> paras = new Dictionary<string, string>();
1157
+            paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd"));
1158
+            paras.Add("@edate", end.Value.ToString("yyyy-MM-dd"));
1159
+            paras.Add("@deptid", deptid.ToString());
1160
+            var obj = DbHelperSQL.RunProcedure("P_Info_DeptAcceptCount", paras, "P_Info_DeptAcceptCount");
1161
+
1162
+            return Success("成功", obj.Tables[0]);
1163
+        }
1164
+
1053 1165
         #endregion
1054 1166
 
1055 1167
         #region 投诉举报
@@ -1162,6 +1274,33 @@ namespace CallCenterApi.Interface.Controllers
1162 1274
             return Success("加载成功", dt);
1163 1275
         }
1164 1276
 
1277
+        /// <summary>
1278
+        /// 获取关键词数量(new)
1279
+        /// </summary>
1280
+        /// <param name="start"></param>
1281
+        /// <param name="end"></param>
1282
+        /// <returns></returns>
1283
+        public ActionResult GetKeyCountByDateNew(DateTime? start, DateTime? end, int keyid = 0)
1284
+        {
1285
+            if (start == null)
1286
+            {
1287
+                start = DateTime.Now;
1288
+                //start = new DateTime(start.Value.Year, start.Value.Month, 1);
1289
+            }
1290
+            if (end == null)
1291
+            {
1292
+                end = DateTime.Now;
1293
+            }
1294
+
1295
+            Dictionary<string, string> paras = new Dictionary<string, string>();
1296
+            paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd"));
1297
+            paras.Add("@edate", end.Value.ToString("yyyy-MM-dd"));
1298
+            paras.Add("@keyid", keyid.ToString());
1299
+            var obj = DbHelperSQL.RunProcedure("P_Info_KeyCount", paras, "P_Info_KeyCount");
1300
+
1301
+            return Success("成功", obj.Tables[0]);
1302
+        }
1303
+
1165 1304
         #endregion
1166 1305
 
1167 1306
         #region 话务数量
@@ -1403,6 +1542,37 @@ namespace CallCenterApi.Interface.Controllers
1403 1542
         }
1404 1543
 
1405 1544
         /// <summary>
1545
+        /// 工单类型各数量(new)
1546
+        /// </summary>
1547
+        /// <param name="start"></param>
1548
+        /// <param name="end"></param>
1549
+        /// <returns></returns>
1550
+        public ActionResult GetTypeCountNew()
1551
+        {
1552
+            int n = Int32.Parse(DbHelperSQL.GetSingle("select COUNT(1) from T_Bus_WorkOrder where F_IsDelete=0 and isnull(F_InfoType,0)!=0").ToString());
1553
+
1554
+            string sql = " select F_Value TypeName,(select COUNT(1) from T_Bus_WorkOrder where F_IsDelete=0 and  datediff(day,F_CreateTime,getdate())=0"
1555
+                + "and F_InfoType=F_ValueId) DayCount, (select COUNT(1) from T_Bus_WorkOrder where F_IsDelete=0 and  datediff(month,F_CreateTime,getdate())=0"
1556
+                + "and F_InfoType=F_ValueId) MonthCount, (select COUNT(1) from T_Bus_WorkOrder where F_IsDelete=0 "
1557
+                + "and F_InfoType=F_ValueId) TotalCount from dbo.T_Sys_DictionaryValue where F_ItemId=2 and F_State=0 ";
1558
+            DataTable dt = DbHelperSQL.Query(sql).Tables[0];
1559
+            dt.Columns.Add("Percent", typeof(object));
1560
+            foreach (DataRow drnew in dt.Rows)
1561
+            {
1562
+                if (n > 0)
1563
+                {
1564
+                    drnew["Percent"] = Math.Round((double.Parse(drnew["TotalCount"].ToString()) * 100 / n), 2) + "%";
1565
+                }
1566
+                else
1567
+                {
1568
+                    drnew["Percent"] = "";
1569
+                }
1570
+            }
1571
+
1572
+            return Success("加载成功", dt);
1573
+        }
1574
+
1575
+        /// <summary>
1406 1576
         /// 接通率统计
1407 1577
         /// </summary>
1408 1578
         /// <param name="start"></param>