using HH.WCS.Mobox3.ZS7412.dispatch; using HH.WCS.Mobox3.ZS7412.process; using HH.WCS.Mobox3.ZS7412.util; using HH.WCS.Mobox3.ZS7412.wms; using Newtonsoft.Json; using System.Collections.Generic; using System.Reflection; using System.Web.Http; using static HH.WCS.Mobox3.ZS7412.api.ApiModel; using static HH.WCS.Mobox3.ZS7412.api.OtherModel; namespace HH.WCS.Mobox3.ZS7412.api { /// /// mobox3调用,脚本中调用 /// public class MoboxController : System.Web.Http.ApiController { /// /// 任务取消(目前支持ndc) /// /// /// [HttpPost] public SimpleResult CancelTask(MoboxTaskBase model) { LogHelper.Info("CancelTask Request:" + JsonConvert.SerializeObject(model), "ZS7412"); var result = new SimpleResult(); var task = WCSHelper.GetTask(model.TaskNo); if (task != null) { if (task.N_B_STATE == 0) { //等待直接修改状态为取消 WCSHelper.UpdateStatus(model.TaskNo, "取消"); LocationHelper.UnLockLoc(task.S_START_LOC); LocationHelper.UnLockLoc(task.S_END_LOC); //货位容器解绑 LocationHelper.UnBindingLoc(task.S_START_LOC, new List { task.S_CNTR_CODE }); result.resultMsg = "任务等待,直接取消"; } else if (task.N_B_STATE < 3) { //已推送但是没有完成或者取消,通知hosttoagv NDCHelper.Cancel(task.S_CODE); result.resultMsg = "任务取消已经发送给小车"; } else { result.resultCode = 1; result.resultMsg = "任务已结束"; } } else { result.resultCode = 1; result.resultMsg = "任务不存在"; } LogHelper.Info("CancelTask response:" + JsonConvert.SerializeObject(result), "ZS7412"); return result; } /// /// 强制完成(目前支持ndc) 补充强制完成不需要,取消或者强制完成都是发取消给车子,根据车子返回的状态做处理 /// /// /// //[HttpPost] //public SimpleResult CompleteTask(MoboxTaskBase model) { // var result = new SimpleResult(); // return result; //} /// /// 强制取消,正常取消收到车子返回7,判断已经取货的判定为完成 /// 强制取消的意思是车子取货了,人工拉走了,任务还是取消,直接标记任务为取消,后续收到任务状态7也不再处理 /// /// /// [HttpPost] public SimpleResult ForceCancelTask(MoboxTaskBase model) { LogHelper.Info("ForceCancelTask Request:" + JsonConvert.SerializeObject(model), "ZS7412"); var result = new SimpleResult(); var task = WCSHelper.GetTask(model.TaskNo); if (task != null) { if (task.N_B_STATE < 3) { //修改状态为取消 WCSHelper.UpdateStatus(model.TaskNo, "取消"); //给车子发送取消请求 NDCHelper.Cancel(task.S_CODE); //起点终点解锁 LocationHelper.UnLockLoc(task.S_START_LOC); LocationHelper.UnLockLoc(task.S_END_LOC); //货位容器解绑 LocationHelper.UnBindingLoc(task.S_START_LOC, new List { task.S_CNTR_CODE }); LocationHelper.UnBindingLoc(task.S_END_LOC, new List { task.S_CNTR_CODE }); //同时添加一条动作记录 WCSHelper.AddActionRecord(task.S_CODE, 17, null, null); result.resultMsg = "任务强制取消,已经发送给小车"; } else { result.resultCode = 1; result.resultMsg = "任务已结束"; } } else { result.resultCode = 1; result.resultMsg = "任务不存在"; } LogHelper.Info("ForceCancelTask response:" + JsonConvert.SerializeObject(result), "ZS7412"); return result; } /// /// pda入库申请 /// /// /// public SimpleResult Instock(InstockInfo model) { var result = new SimpleResult(); LogHelper.Info("Instock Request:" + JsonConvert.SerializeObject(model), "ZS7412"); result = ApiHelper.Instock(model); LogHelper.Info("Instock response:" + JsonConvert.SerializeObject(result), "ZS7412"); return result; } /// /// pda移库申请 /// /// public SimpleResult shiftStock(ShiftStockInfo model) { var result = new SimpleResult(); LogHelper.Info("shiftStock Request:" + JsonConvert.SerializeObject(model), "ZS7412"); result = ApiHelper.shiftStock(model); LogHelper.Info("shiftStock response:" + JsonConvert.SerializeObject(result), "ZS7412"); return result; } } }