县级监管平台

CountyTelController.cs 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651
  1. 
  2. using CallCenterApi.Common;
  3. using CallCenterApi.DB;
  4. using CallCenterApi.Interface.Controllers.Base;
  5. using System;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.Globalization;
  10. using System.Linq;
  11. using System.Web;
  12. using System.Web.Mvc;
  13. namespace CallCenterApi.Interface.Controllers.County
  14. {
  15. [Authority]
  16. public class CountyTelController : BaseController
  17. {
  18. // GET: CountyTel
  19. /// <summary>
  20. /// 平台展示
  21. /// </summary>
  22. /// <param name="start"></param>
  23. /// <param name="end"></param>
  24. /// <returns></returns>
  25. public ActionResult GetAreaTodayTelShowReport(string branchcode,DateTime? date)
  26. {
  27. if (date == null)
  28. {
  29. date = DateTime.Now;
  30. }
  31. string sqlwhere = " F_IsDelete=0 ";
  32. if (!string.IsNullOrEmpty(branchcode))
  33. {
  34. sqlwhere += " and F_Code='" + branchcode + "'";
  35. }
  36. ArrayList result = new ArrayList();
  37. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  38. string controllername = RouteData.Values["controller"].ToString();
  39. string actionname = RouteData.Values["action"].ToString();
  40. foreach (var l in list)
  41. {
  42. if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url))
  43. {
  44. string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign);
  45. string strparams = "?date=" + date.Value.ToString("yyyy-MM-dd") + "&signcode=" + signcode;
  46. AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject<AjaxResult>();
  47. if (ar.state.ToString() == ResultTypes.success.ToString())
  48. {
  49. var rtlist = ar.data.ToJson().ToList<Dictionary<string, object>>();
  50. result.AddRange(rtlist);
  51. }
  52. }
  53. }
  54. return Success("成功", result);
  55. }
  56. /// <summary>
  57. /// 获取通话记录列表
  58. /// </summary>
  59. /// <param name="phone"></param>
  60. /// <param name="usercode"></param>
  61. /// <returns></returns>
  62. public ActionResult GetAreaTelList(string branchcode, int isdc = 0)
  63. {
  64. string sqlwhere = " F_IsDelete=0 ";
  65. if (!string.IsNullOrEmpty(branchcode))
  66. {
  67. sqlwhere += " and F_Code='" + branchcode + "'";
  68. }
  69. else
  70. {
  71. return Error("请选择区县");
  72. }
  73. //ArrayList result = new ArrayList();
  74. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  75. if (list.Count == 0)
  76. {
  77. return Error("查询失败");
  78. }
  79. string phone = HttpUtility.UrlDecode(RequestString.GetQueryString("phone"));
  80. string usercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  81. string callstate = HttpUtility.UrlDecode(RequestString.GetQueryString("callstate"));
  82. string calltype = HttpUtility.UrlDecode(RequestString.GetQueryString("calltype"));
  83. string starttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  84. string endtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  85. int type = RequestString.GetInt("type", 0);
  86. string strpageindex = RequestString.GetQueryString("page");
  87. int pageindex = 1;
  88. string strpagesize = RequestString.GetQueryString("pagesize");
  89. int pagesize = 10;
  90. if (!string.IsNullOrEmpty(strpageindex) && strpageindex.Trim() != "")
  91. {
  92. pageindex = Convert.ToInt32(strpageindex);
  93. }
  94. if (!string.IsNullOrEmpty(strpagesize) && strpagesize.Trim() != "")
  95. {
  96. pagesize = Convert.ToInt32(strpagesize);
  97. }
  98. string controllername = RouteData.Values["controller"].ToString();
  99. string actionname = RouteData.Values["action"].ToString();
  100. //foreach (var l in list)
  101. //{
  102. // if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url))
  103. // {
  104. // string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign);
  105. // string strparams = "?phone=" + phone + "&usercode=" + usercode + "&callstate=" + callstate + "&calltype=" + calltype
  106. // + "&starttime=" + starttime + "&endtime=" + endtime + "&pageindex=" + pageindex + "&pagesize=" + pagesize + "&signcode=" + signcode;
  107. // AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject<AjaxResult>();
  108. // if (ar.state.ToString() == ResultTypes.success.ToString())
  109. // {
  110. // var rtlist = ar.data.ToJson().ToList<Dictionary<string, object>>();
  111. // result.AddRange(rtlist);
  112. // }
  113. // }
  114. //}
  115. //var obj = new
  116. //{
  117. // state = "success",
  118. // message = "成功",
  119. // rows = result,
  120. // total = 0
  121. //};
  122. if (!string.IsNullOrEmpty(list[0].F_Url))
  123. {
  124. string signcode = CommonHelper.getsigncode(controllername, actionname, list[0].F_Sign);
  125. string strparams = "?phone=" + phone + "&usercode=" + usercode + "&callstate=" + callstate + "&calltype=" + calltype
  126. + "&starttime=" + starttime + "&endtime=" + endtime + "&page=" + pageindex + "&pagesize=" + pagesize + "&signcode=" + signcode;
  127. if (isdc > 0)
  128. {
  129. ArrayList result = new ArrayList();
  130. string strresult = HttpMethods.HttpGet(list[0].F_Url + "/" + controllername + "/" + actionname + strparams + "&isall=1");
  131. result.AddRange(strresult.ToList<Dictionary<string, object>>());
  132. string[] cols = new string[] { "电话号码", "呼叫方向", "呼叫状态", "通话类型", "坐席工号","坐席姓名", "开始时间", "通话开始时间", "通话结束时间",
  133. "通话时长", "振铃时长", "总时长" };
  134. NPOIHelper npoi = new NPOIHelper();
  135. if (npoi.ExportToExcel("通话记录", result, cols) == "")
  136. {
  137. return Success("导出成功");
  138. }
  139. else
  140. {
  141. return Error("导出失败");
  142. }
  143. }
  144. else
  145. {
  146. string result = HttpMethods.HttpGet(list[0].F_Url + "/" + controllername + "/" + actionname + strparams);
  147. return Content(result);
  148. }
  149. }
  150. else
  151. {
  152. var obj = new
  153. {
  154. state = "success",
  155. message = "成功",
  156. rows = new DataTable(),
  157. total = 0
  158. };
  159. return Content(obj.ToJson());
  160. }
  161. }
  162. /// <summary>
  163. /// 座席话务量
  164. /// </summary>
  165. /// <param name="start"></param>
  166. /// <param name="end"></param>
  167. /// <returns></returns>
  168. public ActionResult GetAreaSeatTel(string branchcode, DateTime? start, DateTime? end, int isdc = 0)
  169. {
  170. if (start == null)
  171. {
  172. start = DateTime.Now;
  173. start = new DateTime(start.Value.Year, start.Value.Month, 1);
  174. }
  175. if (end == null)
  176. {
  177. end = DateTime.Now;
  178. }
  179. string sqlwhere = " F_IsDelete=0 ";
  180. if (!string.IsNullOrEmpty(branchcode))
  181. {
  182. sqlwhere += " and F_Code='" + branchcode + "'";
  183. }
  184. ArrayList result = new ArrayList();
  185. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  186. string controllername = RouteData.Values["controller"].ToString();
  187. string actionname = RouteData.Values["action"].ToString();
  188. foreach (var l in list)
  189. {
  190. if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url))
  191. {
  192. string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign);
  193. string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&signcode=" + signcode;
  194. AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject<AjaxResult>();
  195. if (ar.state.ToString() == ResultTypes.success.ToString())
  196. {
  197. var rtlist = ar.data.ToJson().ToList<Dictionary<string, object>>();
  198. result.AddRange(rtlist);
  199. }
  200. }
  201. }
  202. if (isdc > 0)
  203. {
  204. string[] cols = new string[] { "区县名称","姓名", "工号", "呼入量", "呼入接听量", "呼入接听率", "呼入接听时长", "平均呼入接听时长", "呼入呼损量", "呼入呼损率",
  205. "呼出量", "呼出接听量", "呼出接听率", "呼出接听时长", "平均呼出接听时长", "呼出呼损量", "呼出呼损率" };
  206. NPOIHelper npoi = new NPOIHelper();
  207. if (npoi.ExportToExcel("座席话务量报表", result, cols) == "")
  208. {
  209. return Success("导出成功");
  210. }
  211. else
  212. {
  213. return Error("导出失败");
  214. }
  215. }
  216. return Success("成功", result);
  217. }
  218. /// <summary>
  219. /// 话务时日周月报
  220. /// </summary>
  221. /// <returns></returns>
  222. public ActionResult GetAreaHDWMTelReport(string branchcode, string start, string end, int dateType = 1, int isdc = 0)
  223. {
  224. if (string.IsNullOrEmpty(start))
  225. {
  226. switch (dateType)
  227. {
  228. case 1: start = DateTime.Now.ToString("yyyy-MM"); break;
  229. case 2:
  230. GregorianCalendar gc = new GregorianCalendar();
  231. int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
  232. start = DateTime.Now.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
  233. break;
  234. case 3: start = DateTime.Now.ToString("yyyy-MM-dd"); break;
  235. case 4: start = DateTime.Now.ToString("yyyy-MM-dd") + " 00"; break;
  236. }
  237. }
  238. if (string.IsNullOrEmpty(end))
  239. {
  240. switch (dateType)
  241. {
  242. case 1: end = DateTime.Now.ToString("yyyy-MM"); break;
  243. case 2:
  244. GregorianCalendar gc = new GregorianCalendar();
  245. int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
  246. end = DateTime.Now.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
  247. break;
  248. case 3: end = DateTime.Now.ToString("yyyy-MM-dd"); break;
  249. case 4: end = DateTime.Now.ToString("yyyy-MM-dd HH"); break;
  250. }
  251. }
  252. string sqlwhere = " F_IsDelete=0 ";
  253. if (!string.IsNullOrEmpty(branchcode))
  254. {
  255. sqlwhere += " and F_Code='" + branchcode + "'";
  256. }
  257. ArrayList result = new ArrayList();
  258. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  259. string controllername = RouteData.Values["controller"].ToString();
  260. string actionname = RouteData.Values["action"].ToString();
  261. foreach (var l in list)
  262. {
  263. if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url))
  264. {
  265. string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign);
  266. string strparams = "?start=" + start + "&end=" + end + "&dateType=" + dateType + "&signcode=" + signcode;
  267. AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject<AjaxResult>();
  268. if (ar.state.ToString() == ResultTypes.success.ToString())
  269. {
  270. var rtlist = ar.data.ToJson().ToList<Dictionary<string, object>>();
  271. result.AddRange(rtlist);
  272. }
  273. }
  274. }
  275. if (isdc > 0)
  276. {
  277. string[] cols = new string[] { "区县名称", "时间", "呼入量", "呼入接听量", "呼入接听率","呼入通话时长", "平均呼入通话时长", "呼入呼损量", "呼入呼损率",
  278. "呼出量", "呼出接听量", "呼出接听率", "呼出通话时长", "平均呼出通话时长","呼出呼损量", "呼出呼损率" };
  279. NPOIHelper npoi = new NPOIHelper();
  280. if (npoi.ExportToExcel("话务量报表", result, cols) == "")
  281. {
  282. return Success("导出成功");
  283. }
  284. else
  285. {
  286. return Error("导出失败");
  287. }
  288. }
  289. return Success("成功", result);
  290. }
  291. /// <summary>
  292. /// 运营指标时日周月报
  293. /// </summary>
  294. /// <returns></returns>
  295. public ActionResult GetAreaHDWMOpeTelReport(string branchcode, string start, string end, int dateType = 1, int isdc = 0)
  296. {
  297. if (string.IsNullOrEmpty(start))
  298. {
  299. switch (dateType)
  300. {
  301. case 1: start = DateTime.Now.ToString("yyyy-MM"); break;
  302. case 2:
  303. GregorianCalendar gc = new GregorianCalendar();
  304. int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
  305. start = DateTime.Now.Date.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
  306. break;
  307. case 3: start = DateTime.Now.ToString("yyyy-MM-dd"); break;
  308. case 4: start = DateTime.Now.ToString("yyyy-MM-dd") + " 00"; break;
  309. }
  310. }
  311. if (string.IsNullOrEmpty(end))
  312. {
  313. switch (dateType)
  314. {
  315. case 1: end = DateTime.Now.ToString("yyyy-MM"); break;
  316. case 2:
  317. GregorianCalendar gc = new GregorianCalendar();
  318. int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
  319. end = DateTime.Now.Date.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
  320. break;
  321. case 3: end = DateTime.Now.ToString("yyyy-MM-dd"); break;
  322. case 4: end = DateTime.Now.ToString("yyyy-MM-dd HH"); break;
  323. }
  324. }
  325. string sqlwhere = " F_IsDelete=0 ";
  326. if (!string.IsNullOrEmpty(branchcode))
  327. {
  328. sqlwhere += " and F_Code='" + branchcode + "'";
  329. }
  330. ArrayList result = new ArrayList();
  331. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  332. string controllername = RouteData.Values["controller"].ToString();
  333. string actionname = RouteData.Values["action"].ToString();
  334. foreach (var l in list)
  335. {
  336. if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url))
  337. {
  338. string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign);
  339. string strparams = "?start=" + start + "&end=" + end + "&dateType=" + dateType + "&signcode=" + signcode;
  340. AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject<AjaxResult>();
  341. if (ar.state.ToString() == ResultTypes.success.ToString())
  342. {
  343. var rtlist = ar.data.ToJson().ToList<Dictionary<string, object>>();
  344. result.AddRange(rtlist);
  345. }
  346. }
  347. }
  348. if (isdc > 0)
  349. {
  350. string[] cols = new string[] { "区县名称", "时间", "呼入量", "呼入接听量", "呼入接听率", "20s接听量", "20s接听率", "呼入通话时长", "平均呼入通话时长",
  351. "呼入振铃时长", "平均呼入振铃时长", "呼入呼损量", "呼入呼损率" };
  352. NPOIHelper npoi = new NPOIHelper();
  353. if (npoi.ExportToExcel("运营话务量报表", result, cols) == "")
  354. {
  355. return Success("导出成功");
  356. }
  357. else
  358. {
  359. return Error("导出失败");
  360. }
  361. }
  362. return Success("成功", result);
  363. }
  364. /// <summary>
  365. /// 队列统计报表时日周月报
  366. /// </summary>
  367. /// <returns></returns>
  368. public ActionResult GetAreaHDWMQueueTelReport(string branchcode, string start, string end, int dateType = 1, int isdc = 0)
  369. {
  370. if (string.IsNullOrEmpty(start))
  371. {
  372. switch (dateType)
  373. {
  374. case 1: start = DateTime.Now.ToString("yyyy-MM"); break;
  375. case 2:
  376. GregorianCalendar gc = new GregorianCalendar();
  377. int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
  378. start = DateTime.Now.Date.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
  379. break;
  380. case 3: start = DateTime.Now.ToString("yyyy-MM-dd"); break;
  381. case 4: start = DateTime.Now.ToString("yyyy-MM-dd") + " 00"; break;
  382. }
  383. }
  384. if (string.IsNullOrEmpty(end))
  385. {
  386. switch (dateType)
  387. {
  388. case 1: end = DateTime.Now.ToString("yyyy-MM"); break;
  389. case 2:
  390. GregorianCalendar gc = new GregorianCalendar();
  391. int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
  392. end = DateTime.Now.Date.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
  393. break;
  394. case 3: end = DateTime.Now.ToString("yyyy-MM-dd"); break;
  395. case 4: end = DateTime.Now.ToString("yyyy-MM-dd HH"); break;
  396. }
  397. }
  398. string sqlwhere = " F_IsDelete=0 ";
  399. if (!string.IsNullOrEmpty(branchcode))
  400. {
  401. sqlwhere += " and F_Code='" + branchcode + "'";
  402. }
  403. ArrayList result = new ArrayList();
  404. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  405. string controllername = RouteData.Values["controller"].ToString();
  406. string actionname = RouteData.Values["action"].ToString();
  407. foreach (var l in list)
  408. {
  409. if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url))
  410. {
  411. string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign);
  412. string strparams = "?start=" + start + "&end=" + end + "&dateType=" + dateType + "&signcode=" + signcode;
  413. AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject<AjaxResult>();
  414. if (ar.state.ToString() == ResultTypes.success.ToString())
  415. {
  416. var rtlist = ar.data.ToJson().ToList<Dictionary<string, object>>();
  417. result.AddRange(rtlist);
  418. }
  419. }
  420. }
  421. if (isdc > 0)
  422. {
  423. string[] cols = new string[] { "区县名称", "时间", "呼入量", "呼入接听量", "呼入接听率", "呼入通话时长", "平均呼入通话时长","最长通话时长", "最短呼入通话时长",
  424. "呼入振铃时长", "平均呼入振铃时长", "呼入呼损量", "呼入呼损率" };
  425. NPOIHelper npoi = new NPOIHelper();
  426. if (npoi.ExportToExcel("队列统计报表", result, cols) == "")
  427. {
  428. return Success("导出成功");
  429. }
  430. else
  431. {
  432. return Error("导出失败");
  433. }
  434. }
  435. return Success("成功", result);
  436. }
  437. /// <summary>
  438. /// 队列排队等待时长报表时日周月报
  439. /// </summary>
  440. /// <returns></returns>
  441. public ActionResult GetAreaHDWMQueueWaitReport(string branchcode, string start, string end, int dateType = 1, int isdc = 0)
  442. {
  443. if (string.IsNullOrEmpty(start))
  444. {
  445. switch (dateType)
  446. {
  447. case 1: start = DateTime.Now.ToString("yyyy-MM"); break;
  448. case 2:
  449. GregorianCalendar gc = new GregorianCalendar();
  450. int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
  451. start = DateTime.Now.Date.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
  452. break;
  453. case 3: start = DateTime.Now.ToString("yyyy-MM-dd"); break;
  454. case 4: start = DateTime.Now.ToString("yyyy-MM-dd") + " 00"; break;
  455. }
  456. }
  457. if (string.IsNullOrEmpty(end))
  458. {
  459. switch (dateType)
  460. {
  461. case 1: end = DateTime.Now.ToString("yyyy-MM"); break;
  462. case 2:
  463. GregorianCalendar gc = new GregorianCalendar();
  464. int weeks = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
  465. end = DateTime.Now.Date.ToString("yyyy") + "-w" + (weeks < 10 ? "0" + weeks.ToString() : weeks.ToString());
  466. break;
  467. case 3: end = DateTime.Now.ToString("yyyy-MM-dd"); break;
  468. case 4: end = DateTime.Now.ToString("yyyy-MM-dd HH"); break;
  469. }
  470. }
  471. string sqlwhere = " F_IsDelete=0 ";
  472. if (!string.IsNullOrEmpty(branchcode))
  473. {
  474. sqlwhere += " and F_Code='" + branchcode + "'";
  475. }
  476. ArrayList result = new ArrayList();
  477. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  478. string controllername = RouteData.Values["controller"].ToString();
  479. string actionname = RouteData.Values["action"].ToString();
  480. foreach (var l in list)
  481. {
  482. if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url))
  483. {
  484. string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign);
  485. string strparams = "?start=" + start + "&end=" + end + "&dateType=" + dateType + "&signcode=" + signcode;
  486. AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject<AjaxResult>();
  487. if (ar.state.ToString() == ResultTypes.success.ToString())
  488. {
  489. var rtlist = ar.data.ToJson().ToList<Dictionary<string, object>>();
  490. result.AddRange(rtlist);
  491. }
  492. }
  493. }
  494. if (isdc > 0)
  495. {
  496. string[] cols = new string[] { "区县名称", "时间", "0-5秒", "6-10秒", "11-15秒", "16-20秒", "21-25秒","26-30秒", "31-50秒","50秒以上" };
  497. NPOIHelper npoi = new NPOIHelper();
  498. if (npoi.ExportToExcel("队列排队等待时长报表", result, cols) == "")
  499. {
  500. return Success("导出成功");
  501. }
  502. else
  503. {
  504. return Error("导出失败");
  505. }
  506. }
  507. return Success("成功", result);
  508. }
  509. /// <summary>
  510. /// 网点今日话务量数据收集
  511. /// </summary>
  512. /// <param name="start"></param>
  513. /// <param name="end"></param>
  514. /// <returns></returns>
  515. public ActionResult GetAreaTodayTelReport(string branchcode, DateTime? date)
  516. {
  517. if (date == null)
  518. {
  519. date = DateTime.Now;
  520. }
  521. string sqlwhere = " F_IsDelete=0 ";
  522. if (!string.IsNullOrEmpty(branchcode))
  523. {
  524. sqlwhere += " and F_Code='" + branchcode + "'";
  525. }
  526. ArrayList result = new ArrayList();
  527. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  528. string controllername = RouteData.Values["controller"].ToString();
  529. string actionname = RouteData.Values["action"].ToString();
  530. foreach (var l in list)
  531. {
  532. if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url))
  533. {
  534. string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign);
  535. string strparams = "?date=" + date.Value.ToString("yyyy-MM-dd") + "&signcode=" + signcode;
  536. AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject<AjaxResult>();
  537. if (ar.state.ToString() == ResultTypes.success.ToString())
  538. {
  539. var rtlist = ar.data.ToJson().ToList<Dictionary<string, object>>();
  540. result.AddRange(rtlist);
  541. }
  542. }
  543. }
  544. return Success("成功", result);
  545. }
  546. /// <summary>
  547. /// 座席列表
  548. /// </summary>
  549. /// <param name="start"></param>
  550. /// <param name="end"></param>
  551. /// <returns></returns>
  552. public ActionResult GetAreaSeatList(string branchcode)
  553. {
  554. string sqlwhere = " F_IsDelete=0 ";
  555. if (!string.IsNullOrEmpty(branchcode))
  556. {
  557. sqlwhere += " and F_Code='" + branchcode + "'";
  558. }
  559. else
  560. {
  561. return Error("请选择区县");
  562. }
  563. var list = new BLL.T_Branch_List().GetModelList(sqlwhere);
  564. if (list.Count == 0)
  565. {
  566. return Error("查询失败");
  567. }
  568. string controllername = RouteData.Values["controller"].ToString();
  569. string actionname = RouteData.Values["action"].ToString();
  570. string signcode = CommonHelper.getsigncode(controllername, actionname, list[0].F_Sign);
  571. string strparams = "?signcode=" + signcode;
  572. string result = HttpMethods.HttpGet(list[0].F_Url + "/" + controllername + "/" + actionname + strparams);
  573. return Content(result);
  574. }
  575. }
  576. }