|
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using System.Threading.Tasks;
|
using WIDESEA_Core;
|
using WIDESEA_DTO.CalcOut;
|
|
namespace WIDESEA_WMSServer.Controllers.Outbound
|
{
|
[Route("api/[controller]")]
|
[ApiController]
|
public class OutboundController : ControllerBase
|
{
|
private readonly WIDESEA_IOutboundService.IOutboundService _outboundService;
|
public OutboundController(WIDESEA_IOutboundService.IOutboundService outboundService)
|
{
|
_outboundService = outboundService;
|
}
|
|
/// <summary>
|
/// 分拣出库操作
|
/// </summary>
|
/// <param name="request">分拣出库请求</param>
|
/// <returns>分拣出库响应</returns>
|
[HttpPost, Route("ProcessPickingOutbound"), AllowAnonymous]
|
public WebResponseContent ProcessPickingOutbound([FromBody] PickingOutboundRequestDTO request)
|
{
|
try
|
{
|
if (!ModelState.IsValid)
|
return WebResponseContent.Instance.Error(string.Join("; ", ModelState.Values
|
.SelectMany(v => v.Errors)
|
.Select(e => e.ErrorMessage)));
|
|
return _outboundService.ProcessPickingOutbound(request);
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error($"分拣出库操作失败: {ex.Message}");
|
}
|
}
|
|
object lockObj = new object();
|
|
[HttpPost, Route("CompleteOutboundWithBarcode"), AllowAnonymous]
|
public WebResponseContent CompleteOutboundWithBarcode([FromBody] OutboundCompleteRequestDTO request)
|
{
|
try
|
{
|
lock (lockObj)
|
{
|
if (!ModelState.IsValid)
|
return WebResponseContent.Instance.Error(string.Join("; ", ModelState.Values
|
.SelectMany(v => v.Errors)
|
.Select(e => e.ErrorMessage)));
|
|
return _outboundService.CompleteOutboundWithBarcode(request);
|
}
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error($"出库扫描操作失败: {ex.Message}");
|
}
|
}
|
|
[HttpPost, Route("CompleteOutboundWithPallet"), AllowAnonymous]
|
public WebResponseContent CompleteOutboundWithPallet([FromBody] OutboundCompletePalletRequestDTO request)
|
{
|
try
|
{
|
lock (lockObj)
|
{
|
if (!ModelState.IsValid)
|
return WebResponseContent.Instance.Error(string.Join("; ", ModelState.Values
|
.SelectMany(v => v.Errors)
|
.Select(e => e.ErrorMessage)));
|
|
return _outboundService.CompleteOutboundWithPallet(request);
|
}
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error($"整箱出库操作失败: {ex.Message}");
|
}
|
}
|
|
[HttpPost,HttpGet, Route("GetOrderInfo"), AllowAnonymous]
|
public WebResponseContent GetOrderInfo(string orderNo)
|
{
|
return _outboundService.GetOrderInfo(orderNo);
|
}
|
|
[HttpPost, Route("QueryPickingTasks"), AllowAnonymous]
|
public WebResponseContent QueryPickingTasks(string palletCode, string orderNo)
|
{
|
return _outboundService.QueryPickingTasks(palletCode, orderNo);
|
}
|
|
[HttpPost, Route("QueryPickedList"), AllowAnonymous]
|
public WebResponseContent QueryPickedList(string orderNo, string palletCode)
|
{
|
return _outboundService.QueryPickedList(orderNo, palletCode);
|
}
|
|
[HttpPost, Route("EmptyBox"), AllowAnonymous]
|
public async Task<WebResponseContent> EmptyBox([FromBody] ReturnToWarehouseDTO returnToWarehouse)
|
{
|
return await _outboundService.EmptyBox(returnToWarehouse.palletCode);
|
}
|
|
[HttpPost, Route("ReturnToWarehouse"), AllowAnonymous]
|
public async Task<WebResponseContent> ReturnToWarehouse([FromBody]ReturnToWarehouseDTO returnToWarehouse)
|
{
|
return await _outboundService.ReturnToWarehouse(returnToWarehouse.palletCode, returnToWarehouse.orderNo, returnToWarehouse.station);
|
}
|
|
[HttpPost, Route("RecheckPicking"), AllowAnonymous]
|
public WebResponseContent RecheckPicking([FromBody] RecheckPickingDTO pickingDTO)
|
{
|
return _outboundService.RecheckPicking(pickingDTO);
|
}
|
|
[HttpPost, Route("PrintFromData"), AllowAnonymous]
|
public WebResponseContent PrintFromData(string barcode)
|
{
|
return _outboundService.PrintFromData(barcode);
|
}
|
}
|
}
|