StkBalanceDtlController.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  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 ZR.Service.Business.IBusinessService.Balance;
  11. using ZR.Model.Dto.Balance;
  12. using ZR.Model.Models.Balance;
  13. namespace ZR.Admin.WebApi.Controllers.Balance
  14. {
  15. /// <summary>
  16. /// 库存管理/库存明细表Controller
  17. ///
  18. /// @tableName stk_balance_dtl
  19. /// @author admin
  20. /// @date 2023-04-27
  21. /// </summary>
  22. [Verify]
  23. [Route("business/StkBalanceDtl")]
  24. public class StkBalanceDtlController : BaseController
  25. {
  26. /// <summary>
  27. /// 库存管理/库存明细表接口
  28. /// </summary>
  29. private readonly IStkBalanceDtlService _StkBalanceDtlService;
  30. public StkBalanceDtlController(IStkBalanceDtlService StkBalanceDtlService)
  31. {
  32. _StkBalanceDtlService = StkBalanceDtlService;
  33. }
  34. /// <summary>
  35. /// 查询库存管理/库存明细表列表
  36. /// </summary>
  37. /// <param name="parm"></param>
  38. /// <returns></returns>
  39. [HttpGet("list")]
  40. [ActionPermissionFilter(Permission = "business:stkbalancedtl:list")]
  41. public IActionResult QueryStkBalanceDtl([FromQuery] StkBalanceDtlQueryDto parm)
  42. {
  43. var response = _StkBalanceDtlService.GetList(parm);
  44. return SUCCESS(response);
  45. }
  46. /// <summary>
  47. /// 查询库存管理/库存统计列表
  48. /// </summary>
  49. /// <param name="parm"></param>
  50. /// <returns></returns>
  51. [HttpGet("statlist")]
  52. [ActionPermissionFilter(Permission = "business:stkbalancedtl:statlist")]
  53. public IActionResult StatStkBalanceDtl([FromQuery] StkBalanceDtlQueryDto parm)
  54. {
  55. var response = _StkBalanceDtlService.StatList(parm);
  56. return SUCCESS(response);
  57. }
  58. /// <summary>
  59. /// 获取库存关键件非关键件数量
  60. /// </summary>
  61. /// <returns></returns>
  62. [HttpGet("KeyStatistics")]
  63. //[ActionPermissionFilter(Permission = "business:stkbalancedtl:keystatistics")]
  64. public IActionResult KeyStatisticsStkBalanceDtl()
  65. {
  66. var response = _StkBalanceDtlService.GetKeyStatistics();
  67. return SUCCESS(response);
  68. }
  69. /// <summary>
  70. /// 获取库存物料类别分别数量
  71. /// </summary>
  72. /// <returns></returns>
  73. [HttpGet("CategoryStatistics")]
  74. //[ActionPermissionFilter(Permission = "business:stkbalancedtl:categorystatistics")]
  75. public IActionResult CategoryStatisticsStkBalanceDtl()
  76. {
  77. var response = _StkBalanceDtlService.GetCategoryStatistics();
  78. return SUCCESS(response);
  79. }
  80. /// <summary>
  81. /// 查询库存管理/库存明细表详情
  82. /// </summary>
  83. /// <param name="BalanceId"></param>
  84. /// <returns></returns>
  85. [HttpGet("{BalanceId}")]
  86. [ActionPermissionFilter(Permission = "business:stkbalancedtl:query")]
  87. public IActionResult GetStkBalanceDtl(int BalanceId)
  88. {
  89. var response = _StkBalanceDtlService.GetFirst(x => x.BalanceId == BalanceId);
  90. return SUCCESS(response);
  91. }
  92. /// <summary>
  93. /// 添加库存管理/库存明细表
  94. /// </summary>
  95. /// <returns></returns>
  96. [HttpPost]
  97. [ActionPermissionFilter(Permission = "business:stkbalancedtl:add")]
  98. [Log(Title = "库存管理/库存明细表", BusinessType = BusinessType.INSERT)]
  99. public IActionResult AddStkBalanceDtl([FromBody] StkBalanceDtlDto parm)
  100. {
  101. if (parm == null)
  102. {
  103. throw new CustomException("请求参数错误");
  104. }
  105. var modal = parm.Adapt<StkBalanceDtl>().ToCreate(HttpContext);
  106. var response = _StkBalanceDtlService.AddStkBalanceDtl(modal);
  107. return ToResponse(response);
  108. }
  109. /// <summary>
  110. /// 更新库存管理/库存明细表
  111. /// </summary>
  112. /// <returns></returns>
  113. [HttpPut]
  114. [ActionPermissionFilter(Permission = "business:stkbalancedtl:edit")]
  115. [Log(Title = "库存管理/库存明细表", BusinessType = BusinessType.UPDATE)]
  116. public IActionResult UpdateStkBalanceDtl([FromBody] StkBalanceDtlDto parm)
  117. {
  118. if (parm == null)
  119. {
  120. throw new CustomException("请求实体不能为空");
  121. }
  122. var modal = parm.Adapt<StkBalanceDtl>().ToUpdate(HttpContext);
  123. var response = _StkBalanceDtlService.UpdateStkBalanceDtl(modal);
  124. return ToResponse(response);
  125. }
  126. /// <summary>
  127. /// 删除库存管理/库存明细表
  128. /// </summary>
  129. /// <returns></returns>
  130. [HttpDelete("{ids}")]
  131. [ActionPermissionFilter(Permission = "business:stkbalancedtl:delete")]
  132. [Log(Title = "库存管理/库存明细表", BusinessType = BusinessType.DELETE)]
  133. public IActionResult DeleteStkBalanceDtl(string ids)
  134. {
  135. int[] idsArr = Tools.SpitIntArrary(ids);
  136. if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
  137. var response = _StkBalanceDtlService.Delete(idsArr);
  138. return ToResponse(response);
  139. }
  140. #region 2023 0524 孙亚龙 新增
  141. [HttpGet("GetStkBalanceDtlList")]
  142. public IActionResult GetStkBalanceDtlList([FromQuery] GetOutOperateBalanceQueryDto parm)
  143. {
  144. var response = _StkBalanceDtlService.GetBalanceDtlList(parm);
  145. int qty = 0;
  146. foreach (var item in response)
  147. {
  148. if (parm.IsForAssemble)
  149. {
  150. qty += item.OutQty - item.AssembleQty;
  151. }
  152. else
  153. {
  154. qty += item.BalanceQty - item.OutQty;
  155. }
  156. }
  157. return SUCCESS(qty);
  158. }
  159. #endregion
  160. }
  161. }