using HH.WCS.Mobox3.WeiLi.dispatch; using HH.WCS.Mobox3.WeiLi.process; using HH.WCS.Mobox3.WeiLi.wms; using Newtonsoft.Json; using System.Collections.Generic; using System.Web.Http; using System.Web.Http.Cors; using static HH.WCS.Mobox3.WeiLi.api.ApiModel; using static HH.WCS.Mobox3.WeiLi.api.OtherModel; namespace HH.WCS.Mobox3.WeiLi.api { /// /// mobox3调用,脚本中调用 /// public class MoboxController : System.Web.Http.ApiController { /// /// 任务取消(目前支持ndc) /// /// /// [HttpPost] public SimpleResult CancelTask(MoboxTaskBase model) { var result = new SimpleResult(); var task = WCSHelper.GetTask(model.TaskNo); if (task != null) { var wmsTask = WMSHelper.GetWmsTask(task.S_OP_CODE); if (wmsTask != null) { if (task.N_B_STATE == 0) { //等待直接修改状态为取消 WCSHelper.UpdateStatus(model.TaskNo, 4); wmsTask.N_B_STATE = 6; WMSHelper.UpdateTaskState(wmsTask); LocationHelper.UnLockLoc(task.S_START_LOC); LocationHelper.UnLockLoc(task.S_END_LOC); LocationHelper.UnLockLoc(wmsTask.S_END_LOC); result.resultMsg = "任务等待,直接取消"; } else if (task.N_B_STATE != 3 && task.N_B_STATE != 4) { if (task.S_SCHEDULE_TYPE == "NDC") { //已推送但是没有完成或者取消,通知hosttoagv NDCApi.CancelOrder(task.S_CODE.Trim()); } else { TaskProcess.Cancel(task); TaskProcess.OperateStatus(task, 7); WCSHelper.Fail(task); WMSHelper.Fail(task); } result.resultMsg = "任务取消已经发送给小车"; } else { result.resultCode = 1; result.resultMsg = "任务已结束"; } } else { result.resultCode = 1; result.resultMsg = "任务所处的作业不存在"; } } else { result.resultCode = 1; result.resultMsg = "任务不存在"; } return result; } /// /// 作业取消(目前支持ndc) /// /// /// [HttpPost] public SimpleResult CancelOperation(MoboxOperationBase model) { var result = new SimpleResult(); var op = WMSHelper.GetWmsTask(model.OperationNo); if (op != null) { if (op.N_B_STATE == 0) { //等待直接修改状态为取消 op.N_B_STATE = 3; WMSHelper.UpdateTaskState(op); result.resultMsg = "任务等待,直接取消"; } else if (op.N_B_STATE == 1) { //已推送但是没有完成或者取消,通知hosttoagv //NDCHelper.Cancel(task.S_CODE.Trim()); result.resultCode = 1; result.resultMsg = "该作业有正在执行的任务 前往删除相关任务"; } else { result.resultCode = 1; result.resultMsg = "任务已结束"; } } else { result.resultCode = 1; result.resultMsg = "任务不存在"; } return result; } /// /// 任务强制完成(目前支持ndc) /// /// /// [HttpPost] public SimpleResult CompleteTask(MoboxTaskBase model) { var result = new SimpleResult(); return result; } /// /// 码盘校验 /// /// /// [HttpPost] public SimpleResult PalletSorting(PalletSorting model) { return ApiHelper.PalletSorting(model); } /// /// 码盘校验不带上架(入库)单号 /// /// /// [HttpPost] public SimpleResult PalletSorting1(PalletSorting1 model) { return ApiHelper.PalletSorting1(model); } /// /// pda入库申请 /// /// /// public SimpleResult Instock(InstockInfo model) { return ApiHelper.Instock(model); } /// /// 发货单执行 /// /// /// [HttpPost] public SimpleResult ShippingOrderExecute(ShippingOrderCheck model) { return ApiHelper.ShippingOrderExecute(model); } /// /// 分拣单执行 /// /// /// [HttpPost] public SimpleResult SortingOrderExecute(SortingOrderCheck model) { return ApiHelper.SortingOrderExecute(model); } /// /// 出库单执行 /// /// /// [HttpPost] public SimpleResult OutboundOrderExecute(OutboundOrderCheck model) { return ApiHelper.OutboundOrderExecute(model); } /// /// 分拣结果确认(前端拦截数量不可以超过分拣明细中 F_QTY-F_ACC_SR_QTY的数量) /// /// [HttpPost] public SimpleResult SortingResultCheck(List models) { return ApiHelper.SortingResultCheck(models); } /// /// 判断是否是整托分拣 /// /// /// public SimpleResult CheckSortingWholeCntr(CheckSortingWholeCntr model) { return ApiHelper.CheckSortingWholeCntr(model); } /// /// pda入库申请 /// /// /// [HttpPost] [Route("WeiLiInstock")] public SimpleResult WeiLiInstock(WeiLiInstockInfo model) { LogHelper.Info($"码盘入库接口 入参={JsonConvert.SerializeObject(model)}"); return ApiHelper.WeiLiInstock(model); } /// /// 出库申请 /// /// /// [HttpPost] [Route("WeiLiOutstock")] public SimpleResult WeiLiOutstock(WeiLiOutstockInfo model) { LogHelper.Info($"出库申请 入参={JsonConvert.SerializeObject(model)}"); return ApiHelper.WeiLiOutstock(model); } /// /// pda入库确认 /// /// /// [HttpPost] [Route("WeiLiInstockVerify")] public SimpleResult WeiLiInstockVerify(WeiLiInstockVerify model) { LogHelper.Info($"码盘入库确认接口 入参={JsonConvert.SerializeObject(model)}"); return ApiHelper.WeiLiInstockVerify(model); } /// /// PDA分拣回 /// /// /// [HttpPost] [Route("WeiLiDisbutionIn")] public SimpleResult WeiLiDisbutionIn(WeiLiDisbutionInMolde model) { LogHelper.Info($"分拣回接口 入参={JsonConvert.SerializeObject(model)}"); return ApiHelper.WeiLiDisbutionIn(model); } /// /// PDA分拣回 /// /// /// [HttpPost] [Route("ErrorOperation")] public SimpleResult ErrorOperation(MoboxOperationBase model) { LogHelper.Info($"清除错误作业 入参={JsonConvert.SerializeObject(model)}"); return ApiHelper.ErrorOperation(model); } ///// ///// 呼叫空框 ///// ///// ///// //public SimpleResult WeiLiOutstock(WeiLiOutstockInfo model) //{ // return ApiHelper.WeiLiOutstock(model); // //} } }