MacRunDataController.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. using Cksoft.Data;
  2. using Cksoft.Data.Repository;
  3. using Cksoft.Unity;
  4. using DllEapCommon.NPOI;
  5. using DllEapDal.OFILM;
  6. using DllEapEntity.Dtos;
  7. using DllEapEntity.OFILM;
  8. using Microsoft.AspNetCore.Authorization;
  9. using Microsoft.AspNetCore.Mvc;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.IO;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. namespace DllEapBll.OFILM
  16. {
  17. [Route("eap/api/[controller]/[action]")]
  18. [ApiController]
  19. [Authorize]
  20. public class MacRunDataController : ControllerBase
  21. {
  22. public EapResponse GetData(DateTime startTime, DateTime endTime, string filter, string sort, int pageIndex = 1, int pageSize = 5, string sortField = "FCOde", string sortOrder = "ascend")
  23. {
  24. if (sortOrder == "descend")
  25. {
  26. sortOrder = "desc";
  27. }
  28. else
  29. {
  30. sortOrder = "asc";
  31. }
  32. int start, end;
  33. start = (pageIndex - 1) * pageSize + 1;
  34. end = start + pageSize;
  35. string errorinfo = string.Empty;
  36. int total = 0;
  37. var res = new EapResponse() { Code = 1, Msg = string.Empty };
  38. using (IDatabase db = DbFactory.Base("eapslave"))
  39. {
  40. var dal = new MacRunDataDal(db);
  41. // endTime = endTime.AddHours(1);
  42. var data = dal.GetComplexData(startTime, endTime, filter, start,
  43. pageSize, ref errorinfo, out total);
  44. res.Data = data;
  45. res.Total = total;
  46. return res;
  47. }
  48. }
  49. [HttpGet]
  50. public LayuiModel<CountTotal> GetCountWeek(DateTime startTime, DateTime endTime, string filter, string sort, int pageIndex = 1, int pageSize = 5)
  51. {
  52. using (IDatabase db = DbFactory.Base("eapslave"))
  53. {
  54. var dal = new MacRunDataDal(db);
  55. int total = 0;
  56. return dal.GetCountWeek(startTime, endTime, filter, pageIndex, pageSize, out total);
  57. }
  58. }
  59. [HttpPost]
  60. public async Task<IActionResult> ExportWeek([FromBody] dynamic queryData)
  61. {
  62. var startTime = Convert.ToDateTime(queryData.startTime);
  63. var endTime = Convert.ToDateTime(queryData.endTime);
  64. var filter = Convert.ToString(queryData.filter);
  65. string errorinfo = string.Empty;
  66. int total = 0;
  67. using (IDatabase db = DbFactory.Base("eapslave"))
  68. {
  69. var dal = new MacRunDataDal(db);
  70. // endTime = endTime.AddHours(1);
  71. IEnumerable<CountTotal> data = dal.GetCountWeek(startTime, endTime, filter, 1,
  72. 1000000, out total).data;
  73. if (data == null)
  74. {
  75. return null;
  76. }
  77. var buffer = DataExportHelper.ExportWeek(data, ref errorinfo);
  78. MemoryStream ms = new MemoryStream();
  79. buffer.Write(ms);
  80. ms.Dispose();
  81. ms.Close();
  82. await Task.CompletedTask;
  83. return File(ms.ToArray(), "application/octet-stream");
  84. }
  85. }
  86. [HttpPost]
  87. public IActionResult Export([FromBody] dynamic queryData)
  88. {
  89. var startTime = Convert.ToDateTime(queryData.startTime);
  90. var endTime = Convert.ToDateTime(queryData.endTime);
  91. var filter = Convert.ToString(queryData.filter);
  92. string errorinfo = string.Empty;
  93. int total = 0;
  94. using (IDatabase db = DbFactory.Base("eapslave"))
  95. {
  96. var dal = new MacRunDataDal(db);
  97. // endTime = endTime.AddHours(1);
  98. var data = dal.GetComplexData(startTime, endTime, filter, 1,
  99. 1000000, ref errorinfo, out total);
  100. if (data == null)
  101. {
  102. return null;
  103. }
  104. var buffer = DataExportHelper.ExportRunDataToExcel(data, ref errorinfo);
  105. if (buffer == null)
  106. {
  107. return null;
  108. }
  109. MemoryStream ms = new MemoryStream();
  110. ms.Position = 0;
  111. ms.Write(buffer, 0, buffer.Length);
  112. ms.Dispose();
  113. ms.Close();
  114. return File(buffer, "application/octet-stream");
  115. }
  116. }
  117. }
  118. }