using HH.WCS.Mobox3.RiDong.apiMethod; using HH.WCS.Mobox3.RiDong.generalMethod; using HH.WCS.Mobox3.RiDong.process; using HH.WCS.Mobox3.RiDong.util; using HH.WCS.Mobox3.RiDong.wms; using static HH.WCS.Mobox3.RiDong.util.ApiModel; namespace HH.WCS.Mobox3.RiDong.core; internal class WCSCore { public static void OperateAgvTaskStatus(AgvTaskState model) { LogHelper.Info($"agv请求接口,任务号:{model.No}、请求状态{model.State}"); if (string.IsNullOrEmpty(model.No)) { // 无任务号请求(交管) DeviceProcess.Traffic(model.ForkliftNo, model.LockNo, model.State); } else { var task = WCSHelper.GetTask(model.No); if (task != null) { if (model.State <= 7) { //有任务号请求 switch (model.State) { case 1: WCSHelper.Begin(task); break; case 3: WCSHelper.UpdateStatus(task, "开始取货"); break; case 4: WCSHelper.UpdateStatus(task, "取货完成"); // 货位解锁 EnterWareHouseService.LocationUnlock(task); break; case 5: WCSHelper.UpdateStatus(task, "开始卸货"); break; case 6: // 修改状态 WCSHelper.UpdateStatus(task, "卸货完成"); break; case 2: WCSHelper.End(task); // 仓库量表,容器货品等数据添加 EnterWareHouseService.CarTaskFinished(task); break; case 7: TaskProcess.OperateStatus(task, 7); WCSHelper.Fail(task); break; } WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData); //调用第三方接口(如果有)TaskProcess.ReportStatus } else { //安全请求等 AGVMethod.OperateReq(task, model.State); } } } } }