using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Mvc;
|
using Model.ModelDto.DataDto;
|
using Model.ModelVm;
|
using Model.ModelVm.BllAsnVm;
|
using Model.ModelVm.PdaVm;
|
using System;
|
using System.Security.Claims;
|
using WMS.Entity.BllAsnEntity;
|
using WMS.IBLL.IPdaServer;
|
|
namespace Wms.Controllers
|
{
|
[Route("api/[controller]/[action]")]
|
[ApiController]
|
[Authorize]
|
public class PdaAsnController : ControllerBase
|
{
|
#region 依赖注入
|
private readonly IPdaAsnServer _PdaAsnSvc;
|
|
public PdaAsnController(IPdaAsnServer pdaAsnSvc)
|
{
|
_PdaAsnSvc = pdaAsnSvc;
|
}
|
#endregion
|
|
#region 公用方法
|
/// <summary>
|
/// 获取单据列表
|
/// </summary>
|
/// <param name="model">Type:单据类型</param>
|
/// <returns></returns>
|
[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 });
|
}
|
}
|
|
/// <summary>
|
/// 根据入库单获取入库总单信息
|
/// </summary>
|
/// <param name="model">ASNNo:入库单号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetArrivalNotice(ArrivalNoticeVm model)
|
{
|
try
|
{
|
var models = _PdaAsnSvc.GetArrivalNotice(model);
|
|
if (models == null)
|
{
|
return Ok(new { code = 1, msg = "入库单信息", data = models });
|
}
|
else
|
{
|
return Ok(new { code = 0, msg = "入库单信息", data = models });
|
}
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 判断托盘是否可用
|
/// </summary>
|
/// <param name="model">PalletNo:托盘条码</param>
|
/// <returns></returns>
|
[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 });
|
}
|
}
|
|
/// <summary>
|
/// 获取单据明细列表
|
/// </summary>
|
/// <param name="model">AsnNo:单据号</param>
|
/// <returns></returns>
|
[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 });
|
}
|
}
|
|
/// <summary>
|
/// 根据明细ID获取物料详情
|
/// </summary>
|
/// <param name="model">Id:入库单明细ID</param>
|
/// <returns></returns>
|
[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 });
|
}
|
}
|
|
/// <summary>
|
/// 根据托盘号或箱码获取托盘上箱托信息
|
/// </summary>
|
/// <param name="model">PalletNo:托盘号 or BoxNo:箱号</param>
|
/// <returns></returns>
|
[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 });
|
}
|
}
|
|
/// <summary>
|
/// 根据托盘号或箱码获取托盘信息
|
/// </summary>
|
/// <param name="model">PalletNo:托盘号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetPalletBindInfo(BllPalletBind model)
|
{
|
try
|
{
|
var models = _PdaAsnSvc.GetPalletBindInfo(model);
|
|
return Ok(new { code = 0, msg = "托盘信息", data = models });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 删除箱子信息
|
/// </summary>
|
/// <param name="model">Id:箱子主键</param>
|
/// <returns></returns>
|
[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 });
|
}
|
|
}
|
|
/// <summary>
|
/// 删除托盘信息
|
/// </summary>
|
/// <param name="model">ID\托盘号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult DelPalletBind(BllPalletBind 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.DelPalletBind(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 });
|
}
|
|
}
|
|
/// <summary>
|
/// 获取出入库所有单据信息
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
public IActionResult GetNotices()
|
{
|
try
|
{
|
var models = _PdaAsnSvc.GetNotices();
|
|
return Ok(new { code = 0, msg = "单据信息", data = models });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 根据单号获取出入库所有单据信息
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult ByNoGetNotices(NoticeInfo model)
|
{
|
try
|
{
|
var models = _PdaAsnSvc.ByNoGetNotices(model.Code);
|
|
return Ok(new { code = 0, msg = "单据信息", data = models });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
#endregion
|
|
#region 生产入库
|
|
#endregion
|
|
#region 空托入库
|
/// <summary>
|
/// 绑定空托入库信息
|
/// </summary>
|
/// <param name="model">PalletNo:托盘号 Qty: 数量</param>
|
/// <returns></returns>
|
[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 });
|
}
|
}
|
|
/// <summary>
|
/// 解绑空托入库信息
|
/// </summary>
|
/// <param name="model">UpBindPalletNo:解绑托盘号 </param>
|
/// <returns></returns>
|
[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.UpbindPalletNo, model.CreateUser);
|
|
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 平库入库确认
|
|
/// <summary>
|
/// 平库上架确认
|
/// </summary>
|
/// <param name="model">PalletNo:托盘号 LocatNo: 储位地址</param>
|
/// <returns></returns>
|
[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 });
|
}
|
}
|
|
/// <summary>
|
/// 根据托盘号获取入库单号
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetASNNoByPalletNo(PalletBindVm model)
|
{
|
try
|
{
|
var result = _PdaAsnSvc.GetASNNoByPalletNo(model.PalletNo);
|
|
return Ok(new { code = 0, msg = "获取成功!", data = result });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 验证储位(地码)是否可用
|
/// </summary>
|
/// <param name="model">LocatNo储位地址</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult CheckLocatNo(PalletBindVm model)
|
{
|
try
|
{
|
var result = _PdaAsnSvc.CheckLocatNo(model.LocatNo);
|
|
return Ok(new { code = 0, msg = "验证成功!", data = result });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
#endregion
|
|
#region 零箱入库
|
/// <summary>
|
/// 根据箱码获取物料、批次、数量等信息
|
/// </summary>
|
/// <param name="boxNo">托盘号</param>
|
/// <returns></returns>
|
[HttpGet]
|
public IActionResult GetBoxInfoByBoxNo(string boxNo)
|
{
|
try
|
{
|
var list = _PdaAsnSvc.GetBoxInfoByBoxNo(boxNo);
|
if (list == null)
|
{
|
return Ok(new { data = list, code = 1, msg = "无数据" });
|
}
|
return Ok(new { data = list, code = 0, msg = "成功" });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" });
|
}
|
|
}
|
/// <summary>
|
/// 零箱入库
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult CompleteInStockLing(PdaLingAsnVm 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.CompleteInStockLing(model, int.Parse(UserId));
|
|
return Ok(new { code = 0, msg = "入库成功!" });
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
#endregion
|
|
#region 组托
|
/// <summary>
|
/// 根据箱码获取标签箱码信息
|
/// </summary>
|
/// <param name="model">BoxNo:箱号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetBindBoxInfos(BoxInfoVm model)
|
{
|
try
|
{
|
var models = _PdaAsnSvc.GetBindBoxInfos(model);
|
|
return Ok(new { code = 0, msg = "标签箱码信息", data = models });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
[HttpPost]
|
public IActionResult GetBindArrivalNoticeDetails(ArrivalNoticeVm model)
|
{
|
try
|
{
|
var models = _PdaAsnSvc.GetBindArrivalNoticeDetails(model);
|
|
return Ok(new { code = 0, msg = "入库单明细信息", data = models });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 绑定托盘
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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.BindPalletStock(model, int.Parse(UserId), model.Origin);
|
|
return Ok(new { code = 0, msg = "绑定成功!" });
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
#endregion
|
|
#region 平库入库
|
/// <summary>
|
/// 平库确认入库
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult ConfirmInStock(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);
|
_PdaAsnSvc.ConfirmInStock(model);
|
|
return Ok(new { code = 0, msg = "入库成功!" });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
#endregion
|
|
#region 物料取样
|
|
/// <summary>
|
/// 根据箱码获取标签箱码信息
|
/// </summary>
|
/// <param name="boxNo">BoxNo:箱号</param>
|
/// <param name="boxNo3">BoxNo:支号</param>
|
/// <returns></returns>
|
[HttpGet]
|
public IActionResult GetBoxLevel(string boxNo, string boxNo3)
|
{
|
try
|
{
|
var models = _PdaAsnSvc.GetBoxLevel(boxNo, boxNo3);
|
|
return Ok(new { code = 0, msg = "箱码信息", data = models });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 根据箱码获取标签箱码信息
|
/// </summary>
|
/// <param name="palletNo">托盘号</param>
|
/// <returns></returns>
|
[HttpGet]
|
public IActionResult GetPalletInfo(string palletNo)
|
{
|
try
|
{
|
var models = _PdaAsnSvc.GetPalletInfo(palletNo);
|
|
return Ok(new { code = 0, msg = "托盘绑定信息", data = models });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 入库前有码物料取样
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult HaveNoCodeSkuSample(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("未获取到用户信息");
|
}
|
|
if (model.TableType == 0)
|
{
|
_PdaAsnSvc.HaveCodeSkuSample(model, int.Parse(userId));
|
}
|
else if (model.TableType == 1)
|
{
|
_PdaAsnSvc.NoCodeSkuSample(model, int.Parse(userId));
|
}
|
|
|
return Ok(new { code = 0, msg = "取样成功", data = "" });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
|
#endregion
|
}
|
}
|