using System.Web.Http;
|
|
using HH.WCS.Mobox3.DSZSH.Consts;
|
using HH.WCS.Mobox3.DSZSH.Helpers;
|
using HH.WCS.Mobox3.DSZSH.Models;
|
using HH.WCS.Mobox3.DSZSH.Services;
|
|
using Newtonsoft.Json;
|
|
using static HH.WCS.Mobox3.DSZSH.Dtos.Request.MoboxRequest;
|
using static HH.WCS.Mobox3.DSZSH.Dtos.Response.MoboxResponse;
|
using static HH.WCS.Mobox3.DSZSH.Helpers.ResultHelper;
|
|
namespace HH.WCS.Mobox3.DSZSH.Controllers {
|
/// <summary>
|
/// Mobox3 调用,脚本中调用(包括 PDA 的接口)
|
/// </summary>
|
[RoutePrefix("api")]
|
public class MoboxController : ApiController {
|
|
#region PDA 接口
|
/// <summary>
|
/// 好运箱-满托下线入库(PDA)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
[Route("GoodpackOffline")]
|
public SimpleResult GoodpackOffline(GoodpackOfflineInfo model) {
|
LogHelper.InfoApi("好运箱-满托下线入库(PDA)", model);
|
return MoboxService.GoodpackOffline(model);
|
}
|
|
/// <summary>
|
/// 空托/空箱绑定
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public SimpleResult EmptyBind(EmptyBindInfo model) {
|
LogHelper.InfoApi("空托/空箱绑定", model);
|
|
if (model.CntrType == "托盘") {
|
//LogHelper.Info($"触发API:空托绑定 " + JsonConvert.SerializeObject(model), "API");
|
return MoboxService.EmptyBindPallet(model);
|
}
|
else if (model.CntrType == "好运箱") {
|
//LogHelper.Info($"触发API:空箱绑定 " + JsonConvert.SerializeObject(model), "API");
|
return MoboxService.EmptyBindGoodpack(model);
|
}
|
else {
|
return BuildSimpleResult(-1, $"不合法的容器类型:'{model.CntrType}'");
|
}
|
}
|
|
/// <summary>
|
/// 空托/空箱入库(PDA)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public SimpleResult EmptyInbound(EmptyInboundInfo model) {
|
LogHelper.InfoApi("空托/空箱入库", model);
|
|
var db = DbHelper.GetDbClient();
|
var locCntrRel = db.Queryable<TN_Loc_Container>()
|
.Where(lc => lc.S_LOC_CODE == model.LocCode).First();
|
|
if (locCntrRel == null) {
|
return BuildSimpleResult(-1, $"不存在已绑定容器的货位号:'{model.LocCode}'");
|
}
|
|
if (locCntrRel.S_CNTR_TYPE == "托盘") {
|
|
return MoboxService.EmptyInboundPallet(new EmptyInboundDetailInfo {
|
StartLoc = locCntrRel.S_LOC_CODE,
|
CntId = locCntrRel.S_CNTR_TYPE
|
});
|
}
|
else if (locCntrRel.S_CNTR_TYPE == "好运箱") {
|
|
return MoboxService.EmptyInboundGoodpack(new EmptyInboundDetailInfo {
|
StartLoc = locCntrRel.S_LOC_CODE,
|
CntId = locCntrRel.S_CNTR_TYPE
|
});
|
}
|
else {
|
return BuildSimpleResult(-2, $"不合法的容器类型:'{locCntrRel.S_CNTR_CODE}'");
|
}
|
}
|
|
/// <summary>
|
/// 空托/空箱上线(PDA)
|
/// </summary>
|
/// <returns>
|
/// 人工使用PDA扫码,根据物料类型判断上线空托/空箱
|
/// </returns>
|
public SimpleResult EmptyOnline(EmptyOnlineInfo model) {
|
var db = DbHelper.GetDbClient();
|
var locCntrRel = db.Queryable<TN_Loc_Container>()
|
.LeftJoin<TN_CG_Detail>((lc, cd) => lc.S_CNTR_CODE == cd.S_CNTR_CODE)
|
.Where((lc, cd) => cd.S_CG_ID == model.CgId)
|
.First();
|
|
if (locCntrRel.S_CNTR_TYPE == "托盘") {
|
|
return MoboxService.EmptyOnlinePallet(new EmptyOnlinePalletInfo {
|
CntId = locCntrRel.S_CNTR_CODE,
|
EndLoc = model.EndLoc
|
});
|
}
|
else if (locCntrRel.S_CNTR_TYPE == "好运箱") {
|
|
return MoboxService.EmptyOnlineGoodpack(new EmptyOnlineGoodpackInfo {
|
CntId = locCntrRel.S_CNTR_CODE,
|
EndLoc = model.EndLoc
|
});
|
}
|
else {
|
return BuildSimpleResult(-1, $"不合法的容器类型:'{locCntrRel.S_CNTR_CODE}'");
|
}
|
}
|
|
/// <summary>
|
/// 创建抽检单
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public SimpleResult CreateCheckOrder(CreateCheckOrderInfo model) {
|
|
return MoboxService.CreateCheckOrder(model);
|
}
|
|
#endregion
|
|
#region Mobox 接口
|
/// <summary>
|
/// 成品胶出库(WMS)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public SimpleResult FinishedOutbound(FinishedOutboundInfo model) {
|
LogHelper.InfoApi("成品胶出库(WMS)", model);
|
if (model.Forced) {
|
return MoboxService.FinishedOutboundForce(model);
|
}
|
return MoboxService.FinishedOutbound(model);
|
}
|
#endregion
|
}
|
}
|