using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Model.InterFaceModel;
using Model.ModelDto.BllAsnDto;
using Model.ModelDto.DataDto;
using Model.ModelVm;
using Model.ModelVm.BllAsnVm;
using Model.ModelVm.PdaVm;
using Newtonsoft.Json;
using System;
using System.Security.Claims;
using Utility;
using Utility.Tools;
using WMS.BLL.LogServer;
using WMS.Entity.BllAsnEntity;
using WMS.Entity.DataEntity;
using WMS.IBLL.IPdaServer;
namespace Wms.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize]
public class PdaAsnController : ControllerBase
{
private readonly IPdaAsnServer _PdaAsnSvc;
public PdaAsnController(IPdaAsnServer pdaAsnSvc)
{
_PdaAsnSvc = pdaAsnSvc;
}
#region JC34
//---------------------------------------------组托收货页面----------------------------------------------------------------------
///
/// 绑定托盘
///
///
///
[HttpPost]
[UnitOfWork]
public IActionResult BindPallet(PdaPalletBindVm model)
{
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.BindPalletPasteCode(model, int.Parse(UserId));
}
else if (model.TableType == 1)
{
_PdaAsnSvc.BindPalletNoPasteCode(model, int.Parse(UserId));
}
return Ok(new { code = 0, msg = "绑定成功!" });
}
///
/// 获取需要贴标签的入库单 单据号集合
///
///
[HttpPost]
public IActionResult GetPasteAsnNoStrList()
{
try
{
var models = _PdaAsnSvc.GetPasteAsnNoStrList();
return Ok(new { code = 0, msg = "入库单信息", data = models });
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 获取不需要贴标签的入库单 单据号集合
///
///
[HttpPost]
public IActionResult GetNoPasteAsnNoStrList()
{
try
{
var models = _PdaAsnSvc.GetNoPasteAsnNoStrList();
return Ok(new { code = 0, msg = "入库单信息", data = models });
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
///
/// 根据单据号获取贴标的入库单据信息(ID-物料-批次)
///
/// AsnNo:单据号
///
[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 });
}
}
///
/// 根据单据号获取不贴标的入库单据信息(ID-物料-批次)
///
/// 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获取物料详情 (PDA物料批次选项数据)
///
/// 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 });
}
}
///
/// 根据箱码获取标签箱码信息
///
/// BoxNo:箱号
///
[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 });
}
}
///
/// 判断托盘是否可用 公用方法
///
/// 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:入库单、ASNDetailNo:入库单明细号
///
[HttpPost]
public IActionResult GetBoxCountByAsn(PalletBindVm model)
{
try
{
var list = _PdaAsnSvc.GetBoxCountByAsn(model.ASNNo,model.ASNDetailNo);
return Ok(new { code = 0, msg = "根据单据获取标签数量", data= list});
}
catch (Exception e)
{
return Ok(new { code = 1, msg = e.Message });
}
}
//---------------------------------------------申请入库页面----------------------------------------------------------------------
#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 });
}
}
///
/// 根据入库单获取入库总单信息
///
/// ASNNo:入库单号
///
[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 });
}
}
///
/// 根据托盘号或箱码获取托盘上箱托信息
///
/// 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 });
}
}
///
/// 根据托盘号或箱码获取托盘信息
///
/// PalletNo:托盘号
///
[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 });
}
}
///
/// 删除箱子信息
///
/// 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 });
}
}
///
/// 删除托盘信息
///
/// ID\托盘号
///
[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 });
}
}
///
/// 获取出入库所有单据信息
///
///
[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 });
}
}
///
/// 根据单号获取出入库所有单据信息
///
///
[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 空托入库
///
/// 绑定空托入库信息
///
/// 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 });
}
}
///
/// 解绑空托入库信息
///
/// UpBindPalletNo:解绑托盘号
///
[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 平库入库确认
///
/// 平库上架确认
///
/// 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 });
}
}
///
/// 根据托盘号获取入库单号
///
///
///
[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 });
}
}
///
/// 验证储位(地码)是否可用
///
/// LocatNo储位地址
///
[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 零箱入库
///
/// 根据箱码获取物料、批次、数量等信息
///
/// 托盘号
///
[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}" });
}
}
///
/// 零箱入库
///
///
///
[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 平库入库
///
/// 平库确认入库
///
///
///
[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 物料取样
///
/// 根据箱码获取标签箱码信息
///
/// BoxNo:箱号
/// BoxNo:支号
///
[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 });
}
}
///
/// 根据箱码获取标签箱码信息
///
/// 托盘号
///
[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 });
}
}
///
/// 入库前有码物料取样
///
///
///
[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
}
}