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}'"); } } #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 } }