TasksController.cs 6.8 KB

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