TasksController.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. using Microsoft.AspNetCore.Mvc;
  2. using Newtonsoft.Json;
  3. using System.Data;
  4. using System.Web;
  5. using WMS.BZModels.Dto.CP.BillInvDtos;
  6. using WMS.BZModels.Dto.CP.TaskDtos;
  7. using WMS.BZServices.CP;
  8. using WMS.Core;
  9. using WMS.Info;
  10. using WMS.Util;
  11. namespace WMS.BZWeb.Areas.CPManager.Controllers
  12. {
  13. [Area("CPManager")]
  14. public class TasksController : MvcControllerBase
  15. {
  16. private readonly WCSTaskOldService _wCSTaskOldService;
  17. private readonly TaskInfoService _taskInfoService;
  18. private readonly TaskDtlService _taskDtlService;
  19. public TasksController(WCSTaskOldService wCSTaskOldService, TaskInfoService taskInfoService, TaskDtlService taskDtlService)
  20. {
  21. _wCSTaskOldService = wCSTaskOldService;
  22. _taskInfoService = taskInfoService;
  23. _taskDtlService = taskDtlService;
  24. }
  25. #region 视图功能
  26. public IActionResult Index()
  27. {
  28. return View();
  29. }
  30. public IActionResult Form()
  31. {
  32. ViewBag.CPWCSWebAPIUrl = ConfigHelper.GetConfig().CPWCSWebAPIUrl;
  33. return View();
  34. }
  35. public IActionResult CurrentTaskIndex()
  36. {
  37. ViewBag.CPWCSWebAPIUrl = ConfigHelper.GetConfig().CPWCSWebAPIUrl;
  38. return View();
  39. }
  40. #endregion
  41. public ActionResult GetPageList(string pagination, string queryJson)
  42. {
  43. Pagination paginationobj = InitPagination(pagination);
  44. var query = new WCSTaskoldQueryDto();
  45. if (!string.IsNullOrEmpty(queryJson))
  46. {
  47. query = JsonConvert.DeserializeObject<WCSTaskoldQueryDto>(queryJson);
  48. }
  49. var lists = _wCSTaskOldService.GetPageList(paginationobj, query ?? new WCSTaskoldQueryDto());
  50. var jsonData = new
  51. {
  52. rows = lists.Result,
  53. total = lists.TotalPage,
  54. page = lists.PageIndex,
  55. records = lists.TotalNum
  56. };
  57. return Success(jsonData);
  58. }
  59. public ActionResult GetCurrentTaskPageList(string pagination, string queryJson)
  60. {
  61. Pagination paginationobj = InitPagination(pagination);
  62. var query = new WCSTaskinfoQueryDto();
  63. if (!string.IsNullOrEmpty(queryJson))
  64. {
  65. query = JsonConvert.DeserializeObject<WCSTaskinfoQueryDto>(queryJson);
  66. }
  67. var lists = _taskInfoService.GetPageList(paginationobj, query ?? new WCSTaskinfoQueryDto());
  68. var jsonData = new
  69. {
  70. rows = lists.Result,
  71. total = lists.TotalPage,
  72. page = lists.PageIndex,
  73. records = lists.TotalNum
  74. };
  75. return Success(jsonData);
  76. }
  77. public ActionResult GetTaskItem(string taskid, string adddate)
  78. {
  79. if (string.IsNullOrEmpty(taskid))
  80. {
  81. return Fail("任务号不能为空");
  82. }
  83. if (!DateTime.TryParse(adddate, out DateTime date))
  84. {
  85. return Fail("任务时间错误");
  86. }
  87. var list = _taskDtlService.GetDtlById(Convert.ToInt32(taskid), date);
  88. return Success(list);
  89. }
  90. [HttpPost]
  91. public IActionResult ExportExcel(string fileName, string queryJson, string exportField)
  92. {
  93. var query = new WCSTaskoldQueryDto();
  94. try
  95. {
  96. if (!string.IsNullOrEmpty(queryJson))
  97. {
  98. query = JsonConvert.DeserializeObject<WCSTaskoldQueryDto>(queryJson);
  99. }
  100. }
  101. catch (Exception ex)
  102. {
  103. }
  104. //设置导出格式
  105. ExcelConfig excelconfig = new ExcelConfig();
  106. excelconfig.Title = HttpUtility.UrlDecode(fileName);
  107. excelconfig.TitleFont = "微软雅黑";
  108. excelconfig.TitlePoint = 15;
  109. excelconfig.FileName = HttpUtility.UrlDecode(fileName) + ".xls";
  110. excelconfig.IsAllSizeColumn = true;
  111. excelconfig.ColumnEntity = new List<ColumnModel>();
  112. List<jfGridModel> columnList = exportField.ToList<jfGridModel>();
  113. if (columnList.Count == 0)
  114. {
  115. throw new Exception("未找到表头");
  116. }
  117. //行数据
  118. var lists = _wCSTaskOldService.GetList(query ?? new WCSTaskoldQueryDto());
  119. var dataJson = JsonConvert.SerializeObject(lists);
  120. DataTable rowData = dataJson.ToTable();
  121. //写入Excel表头
  122. Dictionary<string, string> exportFieldMap = new Dictionary<string, string>();
  123. if (!string.IsNullOrEmpty(exportField))
  124. {
  125. string[] exportFields = exportField.Split(',');
  126. foreach (var field in exportFields)
  127. {
  128. if (!exportFieldMap.ContainsKey(field))
  129. {
  130. exportFieldMap.Add(field, "1");
  131. }
  132. }
  133. }
  134. foreach (var columnModel in columnList)
  135. {
  136. excelconfig.ColumnEntity.Add(new ColumnModel()
  137. {
  138. // Column =string.IsNullOrEmpty(columnModel.sortname)? columnModel.name: columnModel.sortname,
  139. Column = columnModel.name,
  140. ExcelColumn = columnModel.label,
  141. Alignment = columnModel.align,
  142. Width = columnModel.name.Length
  143. });
  144. }
  145. return File(ExcelHelper.NewExportMemoryStream(rowData, excelconfig), "application/ms-excel", excelconfig.FileName);
  146. }
  147. [HttpPost]
  148. public ActionResult Priority(string data)
  149. {
  150. TaskPriorityDto taskpriority = new TaskPriorityDto();
  151. if (!string.IsNullOrEmpty(data))
  152. {
  153. taskpriority = JsonConvert.DeserializeObject<TaskPriorityDto>(data);
  154. }
  155. _taskInfoService.Priority(taskpriority);
  156. return Success();
  157. }
  158. [HttpPost]
  159. public ActionResult ReScanCode(string data)
  160. {
  161. TaskPriorityDto tasks = new TaskPriorityDto();
  162. if (!string.IsNullOrEmpty(data))
  163. {
  164. tasks = JsonConvert.DeserializeObject<TaskPriorityDto>(data);
  165. }
  166. var userid = WebUtil.GetItem("userId");
  167. if (tasks != null) { tasks.User = userid?.ToString(); }
  168. _taskInfoService.ReScanCode(tasks);
  169. return Success();
  170. }
  171. }
  172. }