BasBinController.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. using Infrastructure;
  2. using Infrastructure.Attribute;
  3. using Infrastructure.Enums;
  4. using Infrastructure.Model;
  5. using Mapster;
  6. using Microsoft.AspNetCore.Mvc;
  7. using ZR.Admin.WebApi.Extensions;
  8. using ZR.Admin.WebApi.Filters;
  9. using ZR.Common;
  10. using Microsoft.AspNetCore.Authorization;
  11. using MiniExcelLibs;
  12. using ZR.Model.System;
  13. using ZR.Service.Business;
  14. using ZR.Service.Business.IBusinessService.BaseSet;
  15. using ZR.Model.Dto.BaseSet;
  16. using ZR.Model.Models.BaseSet;
  17. namespace ZR.Admin.WebApi.Controllers.BaseSet
  18. {
  19. /// <summary>
  20. /// 基础资料/库位信息表Controller
  21. ///
  22. /// @tableName bas_bin
  23. /// @author admin
  24. /// @date 2023-04-11
  25. /// </summary>
  26. [Verify]
  27. [Route("business/BasBin")]
  28. public class BasBinController : BaseController
  29. {
  30. /// <summary>
  31. /// 基础资料/库位信息表接口
  32. /// </summary>
  33. private readonly IBasBinService _BasBinService;
  34. /// <summary>
  35. /// 库位信息控制器
  36. /// </summary>
  37. /// <param name="BasBinService"></param>
  38. public BasBinController(IBasBinService BasBinService)
  39. {
  40. _BasBinService = BasBinService;
  41. }
  42. /// <summary>
  43. /// 查询基础资料/库位信息表列表
  44. /// </summary>
  45. /// <param name="parm"></param>
  46. /// <returns></returns>
  47. [HttpGet("list")]
  48. [ActionPermissionFilter(Permission = "business:basbin:list")]
  49. public IActionResult QueryBasBin([FromQuery] BasBinQueryDto parm)
  50. {
  51. var response = _BasBinService.GetList(parm);
  52. return SUCCESS(response);
  53. }
  54. /// <summary>
  55. /// 查询基础资料/库位信息表详情
  56. /// </summary>
  57. /// <param name="BinId"></param>
  58. /// <returns></returns>
  59. [HttpGet("{BinId}")]
  60. [ActionPermissionFilter(Permission = "business:basbin:query")]
  61. public IActionResult GetBasBin(long BinId)
  62. {
  63. var response = _BasBinService.GetFirst(x => x.BinId == BinId);
  64. return SUCCESS(response);
  65. }
  66. /// <summary>
  67. /// 添加基础资料/库位信息表
  68. /// </summary>
  69. /// <returns></returns>
  70. [HttpPost]
  71. [ActionPermissionFilter(Permission = "business:basbin:add")]
  72. [Log(Title = "基础资料/库位信息表", BusinessType = BusinessType.INSERT)]
  73. public IActionResult AddBasBin([FromBody] BasBinDto parm)
  74. {
  75. if (parm == null)
  76. {
  77. throw new CustomException("请求参数错误");
  78. }
  79. var modal = parm.Adapt<BasBin>().ToCreate(HttpContext);
  80. var response = _BasBinService.AddBasBin(modal);
  81. return ToResponse(response);
  82. }
  83. /// <summary>
  84. /// 更新基础资料/库位信息表
  85. /// </summary>
  86. /// <returns></returns>
  87. [HttpPut]
  88. [ActionPermissionFilter(Permission = "business:basbin:edit")]
  89. [Log(Title = "基础资料/库位信息表", BusinessType = BusinessType.UPDATE)]
  90. public IActionResult UpdateBasBin([FromBody] BasBinDto parm)
  91. {
  92. if (parm == null)
  93. {
  94. throw new CustomException("请求实体不能为空");
  95. }
  96. var modal = parm.Adapt<BasBin>().ToUpdate(HttpContext);
  97. var response = _BasBinService.UpdateBasBin(modal);
  98. return ToResponse(response);
  99. }
  100. /// <summary>
  101. /// 删除基础资料/库位信息表
  102. /// </summary>
  103. /// <returns></returns>
  104. [HttpDelete("{ids}")]
  105. [ActionPermissionFilter(Permission = "business:basbin:delete")]
  106. [Log(Title = "基础资料/库位信息表", BusinessType = BusinessType.DELETE)]
  107. public IActionResult DeleteBasBin(string ids)
  108. {
  109. int[] idsArr = Tools.SpitIntArrary(ids);
  110. if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败 Id 不能为空")); }
  111. var response = _BasBinService.Delete(idsArr);
  112. return ToResponse(response);
  113. }
  114. /// <summary>
  115. /// 导入
  116. /// </summary>
  117. /// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
  118. /// <returns></returns>
  119. [HttpPost("importData")]
  120. [Log(Title = "库位导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = false)]
  121. [ActionPermissionFilter(Permission = "business:basbin:import")]
  122. public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
  123. {
  124. List<BasBin> bins = new();
  125. using (var stream = formFile.OpenReadStream())
  126. {
  127. bins = stream.Query<BasBin>().ToList();
  128. }
  129. string msg = _BasBinService.ImportDatas(bins);
  130. //TODO 业务逻辑,自行插入数据到db
  131. return SUCCESS(bins);
  132. }
  133. /// <summary>
  134. /// 用户导入模板下载
  135. /// </summary>
  136. /// <returns></returns>
  137. [HttpGet("importTemplate")]
  138. [Log(Title = "库位模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = false, IsSaveResponseData = false)]
  139. [AllowAnonymous]
  140. public IActionResult ImportTemplateExcel()
  141. {
  142. List<BasBinImportTemplate> bin = new();
  143. MemoryStream stream = new();
  144. var fileInfo = DownloadImportTemplate(bin, stream, "库位列表");
  145. //2023年4月25日 下载的文件有问题,弃用 赵
  146. //return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"{sFileName}");
  147. return ExportExcel(fileInfo.Item1, fileInfo.Item2);
  148. }
  149. /// <summary>
  150. /// 库位导出
  151. /// </summary>
  152. /// <returns></returns>
  153. [HttpGet("export")]
  154. [ActionPermissionFilter(Permission = "business:basbin:export")]
  155. [Log(Title = "库位导出", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
  156. public IActionResult Export()
  157. {
  158. var list = _BasBinService.GetAll();
  159. string sFileName = ExportExcel(list, "Basregion", "库位");
  160. return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
  161. }
  162. }
  163. }