| | |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | using System.Web.Services.Description; |
| | | using Top.Api; |
| | |
| | | { |
| | | //作业流程 |
| | | WorkFlow workFlow =null; |
| | | |
| | | |
| | | |
| | | var item = new MesReturnItem(); |
| | | |
| | |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | ///// <summary> |
| | |
| | | //任务完成 |
| | | case "2": |
| | | LogHelper.Info($"任务{taskNo}完成", "Wcs任务执行通知"); |
| | | TaskProcess.OperateStatus(transportTask, 4); |
| | | TaskProcess.OperateStatus(transportTask, 6); |
| | | LocationHelper.UnLockLoc(transportTask.S_END_LOC); |
| | | TaskHelper.End(transportTask); |
| | | LocationHelper.CreateUpAndDown(transportTask); |
| | | break; |
| | |
| | | RfidChek.S_OLDTRAY_CODE = transportTask.S_CNTR_CODE; |
| | | RfidChek.S_JBWBIT = transportTask.S_START_LOC; |
| | | |
| | | var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); |
| | | if (agvTask==null) |
| | | { |
| | | LogHelper.Info($"RFID校验失败,没找到对应{transportTask.S_OP_CODE}的agv任务", "Wcs任务执行通知"); |
| | | throw new Exception($"RFID校验失败,没找到对应{transportTask.S_OP_CODE}的agv任务"); |
| | | } |
| | | |
| | | if (model.code=="0") |
| | | { |
| | | LogHelper.Info($"RFID校验码成功", "Wcs任务执行通知"); |
| | | RfidChek.S_RESULT = "RFID校验成功"; |
| | | LogHelper.Info($"任务号={agvTask.S_CODE},等待交管成功,修改参数6为1,4为0", "安全交互"); |
| | | NDCApi.ChangeOrderParam(agvTask.S_CODE, 4, "0"); |
| | | NDCApi.ChangeOrderParam(agvTask.S_CODE, 6, "1"); |
| | | } |
| | | if (model.code == "1") |
| | | { |
| | |
| | | RfidChek.S_RESULT = "RFID校验失败"; |
| | | if (WcsCancellTask(transportTask)) |
| | | { |
| | | |
| | | TaskHelper.Fail(transportTask); |
| | | TaskProcess.OperateStatus(transportTask, 7); |
| | | |
| | | var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); |
| | | |
| | | if (agvTask == null) |
| | | { |
| | | LogHelper.Info($"RFID校验失败,没找到对应{transportTask.S_OP_CODE}的agv任务", "Wcs任务执行通知"); |
| | | throw new Exception($"RFID校验失败,没找到对应{transportTask.S_OP_CODE}的agv任务"); |
| | | } |
| | | |
| | | WmsTaskAction ac7 = TaskHelper.GetActionRecord(agvTask.S_CODE, "7"); |
| | | if (ac7!=null) |
| | | { |
| | |
| | | throw new Exception("修改任务表失败"); |
| | | } |
| | | newDb.CommitTran(); |
| | | |
| | | var startSite = LocationHelper.GetAgvSiteZc(agvTask.S_END_LOC); |
| | | var endSite = LocationHelper.GetAgvSiteZc(end.S_CODE); |
| | | LogHelper.Info($"任务{agvTask.S_CODE}RFID校验失败,改参数1为{startSite},改参数2为{endSite},参数4为0,6为1", "安全交互"); |
| | | NDCApi.ChangeOrderParam(agvTask.S_CODE, 1, startSite); |
| | | NDCApi.ChangeOrderParam(agvTask.S_CODE, 2, endSite); |
| | | NDCApi.ChangeOrderParam(agvTask.S_CODE, 4, "0"); |
| | | Thread.Sleep(1000); |
| | | NDCApi.ChangeOrderParam(agvTask.S_CODE, 6, "2"); |
| | | |
| | | |
| | | var agvTask1 = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); |
| | | TaskHelper.opMesTask(agvTask1, 3); |
| | |
| | | //取货完成 |
| | | case "5": |
| | | TaskHelper.UpdateStatus(transportTask, "取货完成"); |
| | | LocationHelper.UnBindingLoc(transportTask.S_START_LOC, transportTask.S_CNTR_CODE.Split(',').ToList()); |
| | | TaskProcess.OperateStatus(transportTask, 4); |
| | | break; |
| | | |
| | | //7取消 |
| | |
| | | TaskHelper.Fail(task); |
| | | |
| | | TaskProcess.OperateStatus(task, 7); |
| | | LocationHelper.updateLocLock(task.S_START_LOC, 3, "其他锁"); |
| | | LocationHelper.updateLocLock(task.S_START_LOC, 3, "其它锁"); |
| | | var agvTask = TaskHelper.GetTaskByWorkNo(task.S_OP_CODE, "agv"); |
| | | if (agvTask != null) |
| | | { |
| | |
| | | { |
| | | newDb.BeginTran(); |
| | | endLoc.N_LOCK_STATE = 3; |
| | | endLoc.S_LOCK_STATE = "其他锁"; |
| | | endLoc.S_LOCK_STATE = "其它锁"; |
| | | newDb.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand(); |
| | | task.S_END_LOC = end.S_CODE; |
| | | newDb.Updateable(task).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand(); |