using System;
using System.Security.Claims;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Model.ModelVm;
using Model.ModelVm.BllAsnVm;
using WMS.IBLL.IPdaServer;
namespace WmsApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize]
public class PdaAsnController : ControllerBase
{
#region 依赖注入
private readonly IPdaAsnServer _PdaAsnSvc;
public PdaAsnController(IPdaAsnServer pdaAsnSvc)
{
_PdaAsnSvc = pdaAsnSvc;
}
#endregion
#region 公用方法
///
/// 获取单据列表
///
/// Type:单据类型
///
[HttpPost]
public IActionResult GetArrivalNotices(ArrivalNoticeVm model)
{
try
{
var models = _PdaAsnSvc.GetArrivalNotices(model);
return Ok(new { code = 0, msg = "入库单信息", data = models });
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 判断托盘是否可用
///
/// PalletNo:托盘条码
///
[HttpPost]
public IActionResult IsEnablePalletNo(PalletBindVm model)
{
try
{
var strMsg = _PdaAsnSvc.IsEnablePalletNo(model.PalletNo);
if (strMsg == "")
{
return Ok(new { code = 0, msg = "托盘可用!" });
}
else
{
return Ok(new { code = 1, msg = strMsg });
}
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 获取单据明细列表
///
/// AsnNo:单据号
///
[HttpPost]
public IActionResult GetArrivalNoticeDetails(ArrivalNoticeVm model)
{
try
{
var models = _PdaAsnSvc.GetArrivalNoticeDetails(model);
return Ok(new { code = 0, msg = "入库单明细信息", data = models });
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 根据明细ID获取物料详情
///
/// Id:入库单明细ID
///
[HttpPost]
public IActionResult GetArrivalNoticeDetail(ArrivalNoticeDetailVm model)
{
try
{
var models = _PdaAsnSvc.GetArrivalNoticeDetail(model);
return Ok(new { code = 0, msg = "入库单明细详细信息", data = models });
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 根据托盘号或箱码获取托盘上箱托信息
///
/// PalletNo:托盘号 or BoxNo:箱号
///
[HttpPost]
public IActionResult GetBoxInfos(BoxInfoVm model)
{
try
{
var models = _PdaAsnSvc.GetBoxInfos(model);
return Ok(new { code = 0, msg = "托盘上相托信息", data = models });
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 绑定托盘
///
///
///
[HttpPost]
public IActionResult BindPallet(PdaPalletBindVm model)
{
try
{
var claimsIdentity = this.User.Identity as ClaimsIdentity;
if (claimsIdentity == null)
{
throw new Exception("未获取到用户信息");
}
string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
if (string.IsNullOrWhiteSpace(UserId))
{
throw new Exception("未获取到用户信息");
}
_PdaAsnSvc.BindPallet(model, int.Parse(UserId));
return Ok(new { code = 0, msg = "绑定成功!" });
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 删除箱子信息
///
/// Id:箱子主键
///
[HttpPost]
public IActionResult DelBoxInfo(BoxInfoVm model)
{
try
{
var claimsIdentity = this.User.Identity as ClaimsIdentity;
if (claimsIdentity == null)
{
throw new Exception("未获取到用户信息");
}
string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
if (string.IsNullOrWhiteSpace(UserId))
{
throw new Exception("未获取到用户信息");
}
model.CreateUser = int.Parse(UserId);
var strMsg = _PdaAsnSvc.DelBoxInfo(model);
if (strMsg == "")
{
return Ok(new { code = 0, msg = "删除组托成功!" });
}
else
{
return Ok(new { code = 1, msg = strMsg });
}
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
#endregion
#region 生产入库
#endregion
#region 空托入库
///
/// 绑定空托入库信息
///
/// PalletNo:托盘号 Qty: 数量
///
[HttpPost]
public IActionResult BindNullPallet(PalletBindVm model)
{
try
{
var claimsIdentity = this.User.Identity as ClaimsIdentity;
if (claimsIdentity == null)
{
throw new Exception("未获取到用户信息");
}
string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
if (string.IsNullOrWhiteSpace(UserId))
{
throw new Exception("未获取到用户信息");
}
model.CreateUser = int.Parse(UserId);
var strMsg = _PdaAsnSvc.BindNullPallet(model);
if (strMsg == "")
{
return Ok(new { code = 0, msg = "空托盘组托成功!" });
}
else
{
return Ok(new { code = 1, msg = strMsg });
}
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 解绑空托入库信息
///
/// PalletNo:托盘号 Qty: 数量
///
[HttpPost]
public IActionResult UnBindNullPallet(PalletUnBingVm model)
{
try
{
var claimsIdentity = this.User.Identity as ClaimsIdentity;
if (claimsIdentity == null)
{
throw new Exception("未获取到用户信息");
}
string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
if (string.IsNullOrWhiteSpace(UserId))
{
throw new Exception("未获取到用户信息");
}
model.CreateUser = int.Parse(UserId);
var strMsg = "";//= _PdaAsnSvc.UnBindNullPallet(model);
if (strMsg == "")
{
return Ok(new { code = 0, msg = "空托盘组托成功!" });
}
else
{
return Ok(new { code = 1, msg = strMsg });
}
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
#endregion
#region 平库入库确认
///
/// 平库上架确认
///
/// PalletNo:托盘号 LocatNo: 储位地址
///
[HttpPost]
public IActionResult CompleteInStock(PalletBindVm model)
{
try
{
var claimsIdentity = this.User.Identity as ClaimsIdentity;
if (claimsIdentity == null)
{
throw new Exception("未获取到用户信息");
}
string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
if (string.IsNullOrWhiteSpace(UserId))
{
throw new Exception("未获取到用户信息");
}
model.CreateUser = int.Parse(UserId);
var strMsg = _PdaAsnSvc.CompleteInStock(model);
if (strMsg == "")
{
return Ok(new { code = 0, msg = "上架成功!" });
}
else
{
return Ok(new { code = 1, msg = strMsg });
}
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
#endregion
}
}