using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.BackRecord; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService; using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.Values; namespace WMS.Web.Api.Controllers { /// /// 出入库回退上下架:接口 /// [Route("api/[controller]")] [ApiController] public class BackRecordController : ControllerBase { private readonly ILoginService _loginService; private readonly IBackRecordService _backRecordService; private readonly IBackRecordRepositories _backRecordRepositories; public BackRecordController(ILoginService loginService, IBackRecordRepositories backRecordRepositories, IBackRecordService backRecordService) { this._loginService = loginService; this._backRecordService = backRecordService; this._backRecordRepositories = backRecordRepositories; } /// /// 列表 /// /// /// [HttpPost] [Route("GetList")] public async Task> GetPagedList([FromBody] BackRecordQueryRequest dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) return ResultPagedList.ReFailure(ResultCodes.Token_Invalid_Error); var result = await _backRecordRepositories.GetPagedList(dto); return result; } /// /// 出库回退上架-pda /// /// /// [HttpPost] [Route("OnShelf")] public async Task OnShelf([FromBody] SaveBackRecordRequest dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) return Result.ReFailure(ResultCodes.Token_Invalid_Error); return await _backRecordService.BackShelf(dto, BackRecordType.OutstockOn, loginInfo); } /// /// 入库回退下架-pda /// /// /// [HttpPost] [Route("OffShelf")] public async Task OffShelf([FromBody] SaveBackRecordRequest dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) return Result.ReFailure(ResultCodes.Token_Invalid_Error); return await _backRecordService.BackShelf(dto, BackRecordType.InstockOff, loginInfo); } } }