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("GetPalletOutboundStatus")] public async Task GetPalletOutboundStatus(string palletCode) { return await Service.GetPalletOutboundStatus(palletCode); } /// /// 获取托盘的锁定信息 /// [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( ) { var data= ""; return WebResponseContent.Instance.OK("", data); } [HttpPost("direct-outbound")] public async Task DirectOutbound([FromBody] DirectOutboundRequest dto) { return await Service.DirectOutbound(dto); } ///// ///// 拣选确认 ///// //[HttpPost("ConfirmPicking")] //public async Task ConfirmPicking([FromBody] PickingConfirmRequest request) //{ // return await Service.ConfirmPicking(request); //} /// /// 验证条码并获取物料信息 /// [HttpGet("ValidateBarcode")] public async Task ValidateBarcode(string barcode) { return await Service.ValidateBarcode(barcode); } ///// ///// 直接出库 ///// //[HttpPost("DirectOutbound")] //public async Task DirectOutbound([FromBody] DirectOutboundRequest request) //{ // return await Service.DirectOutbound(request); //} /// /// 获取拣选历史 /// [HttpGet("GetPickingHistory")] public async Task GetPickingHistory(int orderId) { var history = await Service.GetPickingHistory(orderId); return WebResponseContent.Instance.OK(null, history); } /// /// 撤销拣选 /// [HttpPost("CancelPicking")] public async Task CancelPicking([FromBody] ConfirmPickingDto dto) { return await Service.CancelPicking(dto.OrderNo,dto.PalletCode,dto.Barcode); } } }