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 {
///
/// Mobox3 调用,脚本中调用(包括 PDA 的接口)
///
[RoutePrefix("api")]
public class MoboxController : ApiController {
#region PDA 接口
///
/// 好运箱-满托下线入库(PDA)
///
///
///
[HttpPost]
[Route("GoodpackOffline")]
public SimpleResult GoodpackOffline(GoodpackOfflineInfo model) {
LogHelper.InfoApi("好运箱-满托下线入库(PDA)", model);
return MoboxService.GoodpackOffline(model);
}
///
/// 空托/空箱绑定
///
///
///
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}'");
}
}
///
/// 空托/空箱入库(PDA)
///
///
///
public SimpleResult EmptyInbound(EmptyInboundInfo model) {
LogHelper.InfoApi("空托/空箱入库", model);
var db = DbHelper.GetDbClient();
var locCntrRel = db.Queryable()
.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}'");
}
}
///
/// 空托/空箱上线(PDA)
///
///
/// 人工使用PDA扫码,根据物料类型判断上线空托/空箱
///
public SimpleResult EmptyOnline(EmptyOnlineInfo model) {
var db = DbHelper.GetDbClient();
var locCntrRel = db.Queryable()
.LeftJoin((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}'");
}
}
///
/// 创建抽检单
///
///
///
public SimpleResult CreateCheckOrder(CreateCheckOrderInfo model) {
return MoboxService.CreateCheckOrder(model);
}
#endregion
#region Mobox 接口
///
/// 成品胶出库(WMS)
///
///
///
public SimpleResult FinishedOutbound(FinishedOutboundInfo model) {
LogHelper.InfoApi("成品胶出库(WMS)", model);
if (model.Forced) {
return MoboxService.FinishedOutboundForce(model);
}
return MoboxService.FinishedOutbound(model);
}
#endregion
}
}