using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Enums; using Infrastructure.Model; using Mapster; using Microsoft.AspNetCore.Mvc; using ZR.Admin.WebApi.Extensions; using ZR.Admin.WebApi.Filters; using ZR.Common; using ZR.Service.Business.IBusinessService.Balance; using ZR.Model.Dto.Balance; using ZR.Model.Models.Balance; namespace ZR.Admin.WebApi.Controllers.Balance { /// /// 库存管理/库存明细表Controller /// /// @tableName stk_balance_dtl /// @author admin /// @date 2023-04-27 /// [Verify] [Route("business/StkBalanceDtl")] public class StkBalanceDtlController : BaseController { /// /// 库存管理/库存明细表接口 /// private readonly IStkBalanceDtlService _StkBalanceDtlService; public StkBalanceDtlController(IStkBalanceDtlService StkBalanceDtlService) { _StkBalanceDtlService = StkBalanceDtlService; } /// /// 查询库存管理/库存明细表列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "business:stkbalancedtl:list")] public IActionResult QueryStkBalanceDtl([FromQuery] StkBalanceDtlQueryDto parm) { var response = _StkBalanceDtlService.GetList(parm); return SUCCESS(response); } /// /// 查询库存管理/库存统计列表 /// /// /// [HttpGet("statlist")] [ActionPermissionFilter(Permission = "business:stkbalancedtl:statlist")] public IActionResult StatStkBalanceDtl([FromQuery] StkBalanceDtlQueryDto parm) { var response = _StkBalanceDtlService.StatList(parm); return SUCCESS(response); } /// /// 获取库存关键件非关键件数量 /// /// [HttpGet("KeyStatistics")] [ActionPermissionFilter(Permission = "business:stkbalancedtl:keystatistics")] public IActionResult KeyStatisticsStkBalanceDtl() { var response = _StkBalanceDtlService.GetKeyStatistics(); return SUCCESS(response); } /// /// 获取库存物料类别分别数量 /// /// [HttpGet("CategoryStatistics")] [ActionPermissionFilter(Permission = "business:stkbalancedtl:categorystatistics")] public IActionResult CategoryStatisticsStkBalanceDtl() { var response = _StkBalanceDtlService.GetCategoryStatistics(); return SUCCESS(response); } /// /// 查询库存管理/库存明细表详情 /// /// /// [HttpGet("{BalanceId}")] [ActionPermissionFilter(Permission = "business:stkbalancedtl:query")] public IActionResult GetStkBalanceDtl(int BalanceId) { var response = _StkBalanceDtlService.GetFirst(x => x.BalanceId == BalanceId); return SUCCESS(response); } /// /// 添加库存管理/库存明细表 /// /// [HttpPost] [ActionPermissionFilter(Permission = "business:stkbalancedtl:add")] [Log(Title = "库存管理/库存明细表", BusinessType = BusinessType.INSERT)] public IActionResult AddStkBalanceDtl([FromBody] StkBalanceDtlDto parm) { if (parm == null) { throw new CustomException("请求参数错误"); } var modal = parm.Adapt().ToCreate(HttpContext); var response = _StkBalanceDtlService.AddStkBalanceDtl(modal); return ToResponse(response); } /// /// 更新库存管理/库存明细表 /// /// [HttpPut] [ActionPermissionFilter(Permission = "business:stkbalancedtl:edit")] [Log(Title = "库存管理/库存明细表", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateStkBalanceDtl([FromBody] StkBalanceDtlDto parm) { if (parm == null) { throw new CustomException("请求实体不能为空"); } var modal = parm.Adapt().ToUpdate(HttpContext); var response = _StkBalanceDtlService.UpdateStkBalanceDtl(modal); return ToResponse(response); } /// /// 删除库存管理/库存明细表 /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "business:stkbalancedtl:delete")] [Log(Title = "库存管理/库存明细表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteStkBalanceDtl(string ids) { int[] idsArr = Tools.SpitIntArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _StkBalanceDtlService.Delete(idsArr); return ToResponse(response); } #region 2023 0524 孙亚龙 新增 [HttpGet("GetStkBalanceDtlList")] public IActionResult GetStkBalanceDtlList([FromQuery] GetOutOperateBalanceQueryDto parm) { var response = _StkBalanceDtlService.GetBalanceDtlList(parm); int qty = 0; foreach (var item in response) { if (parm.IsForAssemble) { qty += item.OutQty - item.AssembleQty; } else { qty += item.BalanceQty - item.OutQty; } } return SUCCESS(qty); } #endregion } }