using Autofac.Core; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using WIDESEA_Core; using WIDESEA_Core.BaseController; using WIDESEA_DTO.Outbound; using WIDESEA_IOutboundService; using WIDESEA_Model.Models; namespace WIDESEA_WMSServer.Controllers.Outbound { [Route("api/OutboundPicking")] [ApiController] public class OutboundPickingController : ApiBaseController { private readonly ISplitPackageService _splitPackageService; private readonly IOutStockLockInfoService _outStockLockInfoService; public OutboundPickingController(IOutboundPickingService service, ISplitPackageService splitPackageService, IOutStockLockInfoService outStockLockInfoService) : base(service) { _splitPackageService = splitPackageService; _outStockLockInfoService = outStockLockInfoService; } /// /// 获取托盘的锁定信息 /// [HttpPost("GetPalletLockInfos")] public async Task GetPalletLockInfos(string palletCode) { var lockInfos = await _outStockLockInfoService.GetPalletLockInfos(palletCode); return WebResponseContent.Instance.OK(null, lockInfos); } [HttpPost("unpicked-list")] public async Task GetUnpickedList([FromBody] ConfirmPickingDto dto) { var lists= await Service.GetUnpickedList(dto.OrderNo, dto.PalletCode); return WebResponseContent.Instance.OK("", lists); } [HttpPost("picked-list")] public async Task GetPickedList([FromBody] ConfirmPickingDto dto) { var lists = await Service.GetPickedList(dto.OrderNo, dto.PalletCode); return WebResponseContent.Instance.OK("", lists); } [HttpPost("confirm-picking")] public async Task ConfirmPicking([FromBody] ConfirmPickingDto dto) { return await Service.ConfirmPicking(dto.OrderNo, dto.PalletCode, dto.Barcode); } [HttpPost("picking-summary")] public async Task GetPickingSummary([FromBody] ConfirmPickingDto dto) { var data = await Service.GetPickingSummary(dto); return WebResponseContent.Instance.OK("", data); } [HttpPost("split-package")] public async Task SplitPackage([FromBody] SplitPackageDto dto) { return await _splitPackageService.SplitPackage(dto); } [HttpPost("revert-split-package")] public async Task RevertSplitPackage([FromBody] RevertSplitDto dto) { return await _splitPackageService.RevertSplitPackage(dto.OriginalBarcode); } [HttpPost("split-package-info")] public async Task GetSplitPackageInfo([FromBody] ConfirmPickingDto dto) { return await _splitPackageService.GetSplitPackageInfo(dto.OrderNo, dto.PalletCode, dto.Barcode); } [HttpPost("return-to-stock")] public async Task ReturnToStock([FromBody] ConfirmPickingDto dto) { return await Service.ReturnRemaining(dto.OrderNo, dto.PalletCode, ""); } [HttpPost("remove-empty-pallet")] public async Task RemoveEmptyPallet ([FromBody] ConfirmPickingDto dto) { return await Service.RemoveEmptyPallet(dto.OrderNo, dto.PalletCode); } //[HttpPost("direct-outbound")] //public async Task DirectOutbound([FromBody] DirectOutboundRequest dto) //{ // return await Service.DirectOutbound(dto); //} /// /// 撤销拣选 /// [HttpPost("CancelPicking")] public async Task CancelPicking([FromBody] ConfirmPickingDto dto) { return await Service.CancelPicking(dto.OrderNo,dto.PalletCode,dto.Barcode); } [HttpPost,HttpGet, Route("GetAvailablePurchaseOrders"),AllowAnonymous] public WebResponseContent GetAvailablePurchaseOrders() { return Service.GetAvailablePurchaseOrders(); } [HttpPost, HttpGet, Route("GetAvailablePickingOrders"),AllowAnonymous] public WebResponseContent GetAvailablePickingOrders() { return Service.GetAvailablePickingOrders(); } [HttpPost, HttpGet, Route("BarcodeValidate"), AllowAnonymous] public WebResponseContent BarcodeValidate([FromBody] NoStockOutModel noStockOut) { return Service.BarcodeValidate(noStockOut); } [HttpPost, HttpGet, Route("DeleteBarcode"), AllowAnonymous] public WebResponseContent DeleteBarcode([FromBody] NoStockOutModel noStockOut) { return Service.DeleteBarcode(noStockOut); } [HttpPost, HttpGet, Route("NoStockOutSubmit"), AllowAnonymous] public WebResponseContent NoStockOutSubmit([FromBody] NoStockOutSubmit noStockOutSubmit) { return Service.NoStockOutSubmit(noStockOutSubmit); } } }