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;
namespace HH.WCS.Mobox3.DSZSH.Controllers {
///
/// Mobox3 调用,脚本中调用(包括 PDA 的接口)
///
[RoutePrefix("api")]
public class MoboxController : ApiController {
#region PDA 接口
///
/// 好运箱-满托下线入库(PDA)
///
///
///
[HttpPost]
[Route("goodpack-offline")]
public SimpleResult GoodpackOffline(GoodpackOfflineInfo model) {
LogHelper.InfoApi("好运箱-满托下线入库(PDA)", model);
return MoboxService.GoodpackOffline(model);
}
/////
///// 空托/空箱入库绑定(PDA)
/////
/////
/////
//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)
///
///
///
[HttpPost]
[Route("empty-inbound")]
public SimpleResult EmptyInbound(EmptyInboundInfo model) {
LogHelper.InfoApi("空托/空箱入库", model);
if (model.CntrType == "托盘") {
return MoboxService.EmptyInboundPallet(model);
}
else if (model.CntrType == "好运箱") {
return MoboxService.EmptyInboundGoodpack(model);
}
else {
return BuildSimpleResult(-1, $"容器类型 '{model.CntrType}' 不合法:应为 '托盘' 或 '好运箱'");
}
}
/////
///// 空托/空箱上线(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_ITEM_CODE == model.ItemCode)
// .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}'");
// }
//}
///
/// 托盘-空托上线(PDA)
///
///
///
[HttpPost]
[Route("empty-online-pallet")]
public SimpleResult EmptyOnlinePallet(EmptyOnlinePalletInfo model) {
return MoboxService.EmptyOnlinePallet(model);
}
///
/// 好运箱-空箱上线(PDA)
///
///
///
[HttpPost]
[Route("empty-online-goodpack")]
public SimpleResult EmptyOnlineGoodpack(EmptyOnlineGoodpackInfo model) {
return MoboxService.EmptyOnlineGoodpack(model);
}
/////
///// 合格回库/不合格移库
/////
/////
/////
//[HttpPost]
//[Route("CheckShift")]
//public SimpleResult CheckShift(CheckShiftInfo model) {
// LogHelper.InfoApi("合格回库/不合格移库", model);
// if (model.Qualified) {
// return MoboxService.QualifiedBack(model);
// }
// else {
// return MoboxService.UnqualifiedShift(model);
// }
//}
///
/// 合格回库(PDA)
///
///
[HttpPost]
[Route("qualified-back")]
public SimpleResult QualifiedBack(QualifiedBackInfo model) {
return MoboxService.QualifiedBack(model);
}
///
/// 不合格移库(PDA)
///
///
[HttpPost]
[Route("unqualified-shift")]
public SimpleResult UnqualifiedShift(UnqualifiedShiftInfo model) {
return MoboxService.UnqualifiedShift(model);
}
///
/// 余料尾箱回库(PDA)
///
///
///
[HttpPost]
[Route("rest-back")]
public SimpleResult RestBack(RestBackInfo model) {
return MoboxService.RestBack(model);
}
///
/// 成品胶出库(PDA)
///
///
///
[HttpPost]
[Route("finished-outbound")]
public SimpleResult FinishedOutbound(FinishedOutboundInfo model) {
LogHelper.InfoApi("成品胶出库(PDA)", model);
if (model.ForcedOut) {
return MoboxService.FinishedOutboundForce(model);
}
else {
return MoboxService.FinishedOutbound(model);
}
}
#endregion
#region Mobox 接口
///
/// 抽检-创建抽检单(WMS)
///
///
///
[HttpPost]
[Route("create-check-order")]
public SimpleResult CreateCheckOrder(CreateCheckOrderInfo model) {
return MoboxService.CreateCheckOrder(model);
}
///
/// 移库-创建移库任务(WMS)
///
///
///
[HttpPost]
[Route("shift-storage")]
public SimpleResult CreateShiftOrder(CreateShiftOrderInfo model) {
return MoboxService.CreateShiftOrder(model);
}
#endregion
}
}