海波 张
昨天 f9ee14fbfe22a0a56350580838bb6e4b57f829dc
dispatch/WcsTask.cs
@@ -12,6 +12,7 @@
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Services.Description;
using Top.Api;
@@ -288,8 +289,6 @@
        {
                //作业流程
                WorkFlow workFlow =null;
                 var item = new MesReturnItem();
@@ -585,13 +584,9 @@
                    default:
                        break;
                }
                return false;
        }
            ///// <summary>
@@ -641,8 +636,8 @@
                     //任务完成
                    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;
@@ -664,10 +659,20 @@
                            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")
                            {
@@ -676,18 +681,9 @@
                                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)
                                    {
@@ -731,6 +727,16 @@
                                        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);
@@ -860,7 +866,7 @@
                    //取货完成
                    case "5":
                        TaskHelper.UpdateStatus(transportTask, "取货完成");
                        LocationHelper.UnBindingLoc(transportTask.S_START_LOC, transportTask.S_CNTR_CODE.Split(',').ToList());
                        TaskProcess.OperateStatus(transportTask, 4);
                        break;
                    //7取消
@@ -1352,7 +1358,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)
                        {
@@ -1428,7 +1434,7 @@
                        {
                            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();