using System; using System.Collections.Generic; using System.Text.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Pda.Controllers.Stores; /// ///三方库库移请求 /// [ApiController] [Route($"{PdaHostConst.ROOT_ROUTE}store/third-location-request")] public class ThirdLocationRequestController : AbpController { private readonly IThirdLocationRequestAppService _thirdLocationRequestAppService; /// /// /// /// public ThirdLocationRequestController(IThirdLocationRequestAppService ThirdLocationRequestAppService) { _thirdLocationRequestAppService = ThirdLocationRequestAppService; } /// /// 获取申请详情 /// /// /// [HttpGet("{id}")] public virtual async Task> GetAsync(Guid id) { var result = await _thirdLocationRequestAppService.GetAsync(id).ConfigureAwait(false); return Ok(result); } /// /// 三方库库移申请 /// /// /// [HttpPost("")] public virtual async Task CreateAsync(ThirdLocationRequestEditInput input) { _ = await _thirdLocationRequestAppService.CreateAsync(input).ConfigureAwait(false); } /// /// 根据number获取三方库库移申请详情 /// /// /// [HttpGet("get/{number}")] public virtual async Task> GetRequestByNumberAsync(string number) { var result = await _thirdLocationRequestAppService.GetByNumberAsync(number).ConfigureAwait(false); return Ok(result); } /// /// 获取列表 /// /// /// /// [HttpGet("list")] public virtual async Task> GetListAsync(int pageSize, int pageIndex) { var status = new List() { (int)EnumRequestStatus.Handling, (int)EnumRequestStatus.Partial }; var jsonStatus = JsonSerializer.Serialize(status); var request = new SfsStoreRequestInputBase { MaxResultCount = pageSize, SkipCount = (pageIndex - 1) * pageSize, Sorting = $"{nameof(ThirdLocationRequestDTO.CreationTime)} ASC", Condition = new Condition { Filters = new List { new(nameof(ThirdLocationRequestDTO.RequestStatus),jsonStatus,"In") } } }; var list = await _thirdLocationRequestAppService.GetPagedListByFilterAsync(request, true).ConfigureAwait(false); return list; } /// /// 取消三方库请求 /// /// /// [HttpPost("cancel/{id}")] public virtual async Task> CancelAsync(Guid id) { var result = await _thirdLocationRequestAppService.CancelAsync(id).ConfigureAwait(false); return Ok(result); } /// /// 完成三方库请求 /// /// /// [HttpPost("complete/{id}")] public virtual async Task> CompleteAsync(Guid id) { var result = await _thirdLocationRequestAppService.CompleteAsync(id).ConfigureAwait(false); return Ok(result); } }