InventorysController.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. using Microsoft.AspNetCore.Mvc;
  2. using Newtonsoft.Json;
  3. using ServiceStack;
  4. using System.Data;
  5. using System.Net;
  6. using System.Web;
  7. using WMS.BZModels;
  8. using WMS.BZModels.Dto.SX.BillInvDtos;
  9. using WMS.BZServices.SX;
  10. using WMS.Core;
  11. using WMS.Info;
  12. using WMS.Util;
  13. namespace WMS.BZWeb.Areas.SXManager.Controllers
  14. {
  15. [Area("SXManager")]
  16. public class InventorysController : MvcControllerBase
  17. {
  18. private readonly BaseInvService baseInvService;
  19. public InventorysController(BaseInvService bll)
  20. {
  21. baseInvService = bll;
  22. }
  23. #region 视图功能
  24. public IActionResult Index()
  25. {
  26. return View();
  27. }
  28. public IActionResult InvManualOut()
  29. {
  30. ViewBag.SXWMSWebAPIUrl = ConfigHelper.GetConfig().SXWMSWebAPIUrl;
  31. return View();
  32. }
  33. public IActionResult Form()
  34. {
  35. ViewBag.SXWMSWebAPIUrl = ConfigHelper.GetConfig().SXWMSWebAPIUrl;
  36. return View();
  37. }
  38. public IActionResult ForceOutPalletIndex()
  39. {
  40. ViewBag.SXWMSWebAPIUrl = ConfigHelper.GetConfig().SXWMSWebAPIUrl;
  41. return View();
  42. }
  43. public IActionResult InvManualPalletizingOut()
  44. {
  45. ViewBag.SXWMSWebAPIUrl = ConfigHelper.GetConfig().SXWMSWebAPIUrl;
  46. return View();
  47. }
  48. #endregion
  49. public ActionResult GetPageList(string pagination, string queryJson)
  50. {
  51. Pagination paginationobj = InitPagination(pagination);
  52. var query = new BillInvNowQueryDto();
  53. if (!string.IsNullOrEmpty(queryJson))
  54. {
  55. query = JsonConvert.DeserializeObject<BillInvNowQueryDto>(queryJson);
  56. }
  57. var lists = baseInvService.GetPageList(paginationobj, query ?? new BillInvNowQueryDto());
  58. var jsonData = new
  59. {
  60. rows = lists.Result,
  61. total = lists.TotalPage,
  62. page = lists.PageIndex,
  63. records = lists.TotalNum
  64. };
  65. return Success(jsonData);
  66. }
  67. public ActionResult GetPageList2(string pagination, string queryJson)
  68. {
  69. Pagination paginationobj = InitPagination(pagination);
  70. var query = new BillInvNowQueryDto2();
  71. if (!string.IsNullOrEmpty(queryJson))
  72. {
  73. query = JsonConvert.DeserializeObject<BillInvNowQueryDto2>(queryJson);
  74. }
  75. var lists = baseInvService.GetPageList2(paginationobj, query ?? new BillInvNowQueryDto2());
  76. var jsonData = new
  77. {
  78. rows = lists.Result,
  79. total = lists.TotalPage,
  80. page = lists.PageIndex,
  81. records = lists.TotalNum
  82. };
  83. return Success(jsonData);
  84. }
  85. [HttpPost]
  86. public IActionResult ExportExcel(string fileName, string queryJson, string exportField)
  87. {
  88. var query = new BillInvNowQueryDto();
  89. try
  90. {
  91. if (!string.IsNullOrEmpty(queryJson))
  92. {
  93. query = JsonConvert.DeserializeObject<BillInvNowQueryDto>(queryJson);
  94. }
  95. }
  96. catch (Exception ex)
  97. {
  98. }
  99. //设置导出格式
  100. ExcelConfig excelconfig = new ExcelConfig();
  101. excelconfig.Title = HttpUtility.UrlDecode(fileName);
  102. excelconfig.TitleFont = "微软雅黑";
  103. excelconfig.TitlePoint = 15;
  104. excelconfig.FileName = HttpUtility.UrlDecode(fileName) + ".xls";
  105. excelconfig.IsAllSizeColumn = true;
  106. excelconfig.ColumnEntity = new List<ColumnModel>();
  107. List<jfGridModel> columnList = exportField.ToList<jfGridModel>();
  108. if (columnList.Count == 0)
  109. {
  110. throw new Exception("未找到表头");
  111. }
  112. //行数据
  113. var lists = baseInvService.GetList(query ?? new BillInvNowQueryDto());
  114. var dataJson = JsonConvert.SerializeObject(lists);
  115. DataTable rowData = dataJson.ToTable();
  116. //写入Excel表头
  117. Dictionary<string, string> exportFieldMap = new Dictionary<string, string>();
  118. if (!string.IsNullOrEmpty(exportField))
  119. {
  120. string[] exportFields = exportField.Split(',');
  121. foreach (var field in exportFields)
  122. {
  123. if (!exportFieldMap.ContainsKey(field))
  124. {
  125. exportFieldMap.Add(field, "1");
  126. }
  127. }
  128. }
  129. foreach (var columnModel in columnList)
  130. {
  131. excelconfig.ColumnEntity.Add(new ColumnModel()
  132. {
  133. // Column =string.IsNullOrEmpty(columnModel.sortname)? columnModel.name: columnModel.sortname,
  134. Column = columnModel.name,
  135. ExcelColumn = columnModel.label,
  136. Alignment = columnModel.align,
  137. Width = columnModel.name.Length
  138. });
  139. }
  140. return File(ExcelHelper.NewExportMemoryStream(rowData, excelconfig), "application/ms-excel", excelconfig.FileName);
  141. }
  142. }
  143. }