111
user
3 天以前 802fc04c2d744d08c3e577dd4d91d60a3071e3d7
HH.WCS.Mobox3.NongFuLinZhi/core/WCSCore.cs
@@ -1,7 +1,9 @@
using HH.WCS.Mobox3.NFLZ.dispatch;
using HH.WCS.Mobox3.NFLZ.api;
using HH.WCS.Mobox3.NFLZ.dispatch;
using HH.WCS.Mobox3.NFLZ.process;
using HH.WCS.Mobox3.NFLZ.util;
using HH.WCS.Mobox3.NFLZ.wms;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -12,58 +14,88 @@
        public const string AlterControlSwitch01 = "1";//任务上报MES变更开发 1-开启 0-关闭
        public static void OperateAgvTaskStatus(AgvTaskState model) {
            if (string.IsNullOrEmpty(model.No)) {
            if (string.IsNullOrEmpty(model.task_no)) {
                //无任务号请求(交管)
                //DeviceProcess.Traffic(model.ForkliftNo, model.LockNo, model.State==1023);
            }
            else {
                var TN_Task = WCSHelper.GetTask(model.No);
                var TN_Task = WCSHelper.GetTask(model.task_no);
                if (TN_Task != null) {
                    if (model.State <= 7 && !WCSHelper.CheckActionRecordExist(model.No,model.State)) {
                        //有任务号请求
                        switch (model.State) {
                            case 1:
                                WCSHelper.Begin(TN_Task);
                                break;
                            #region MyRegion
                            case 3:
                                WCSHelper.UpdateStatus(TN_Task, "开始取货");
                                break;
                            case 4:
                                WCSHelper.UpdateStatus(TN_Task, "取货完成");
                                TaskProcess.OperateStatus(TN_Task, 4);
                                break;
                            case 5:
                                WCSHelper.UpdateStatus(TN_Task, "开始卸货");
                                break;
                            case 6:
                                WCSHelper.UpdateStatus(TN_Task, "卸货完成");
                                TaskProcess.OperateStatus(TN_Task, 6);
                                break;
                            #endregion
                            case 2:
                                WCSHelper.End(TN_Task);
                                //sendsencondtask(TN_Task);
                                WMSHelper.End(TN_Task);
                                break;
                            case 7:
                                TaskProcess.OperateStatus(TN_Task, 7);
                                WCSHelper.Fail(TN_Task);
                                //sendsencondtask(TN_Task);
                                //WMSHelper.End(TN_Task);
                                break;
                    if (model.state <= 7)
                    {
                        if (!WCSHelper.CheckActionRecordExist(model.task_no, model.state))
                        {
                            //有任务号请求
                            switch (model.state)
                            {
                                case 1:
                                    WCSHelper.Begin(TN_Task);
                                    break;
                                #region MyRegion
                                case 3:
                                    WCSHelper.UpdateStatus(TN_Task, "开始取货", model.forklift_no);
                                    //if (TN_Task.S_TYPE == "注塑库存满托下线(瓶坯)" || TN_Task.S_TYPE == "注塑即产满托下线(瓶坯)")
                                    //{
                                    //    TaskProcess.writeSignal(TN_Task);
                                    //}
                                    break;
                                case 4:
                                    WCSHelper.UpdateStatus(TN_Task, "取货完成");
                                    if (TN_Task.S_TYPE.Contains("满托下线"))
                                    {
                                        TaskProcess.writeSignal(TN_Task,4);
                                    }
                                    TaskProcess.OperateStatus(TN_Task, 4);
                                    break;
                                case 5:
                                    WCSHelper.UpdateStatus(TN_Task, "开始卸货");
                                    break;
                                case 6:
                                    WCSHelper.UpdateStatus(TN_Task, "卸货完成");
                                    if (TN_Task.S_TYPE.Contains("空托上线"))
                                    {
                                        TaskProcess.writeSignal(TN_Task,6);
                                    }
                                    TaskProcess.OperateStatus(TN_Task, 6);
                                    break;
                                #endregion
                                case 2:
                                    if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
                                    {
                                        TaskProcess.OperateStatus(TN_Task, 4);
                                    }
                                    if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 6))
                                    {
                                        TaskProcess.OperateStatus(TN_Task, 6);
                                    }
                                    WCSHelper.End(TN_Task);
                                    //sendsencondtask(TN_Task);
                                    WMSHelper.End(TN_Task);
                                    break;
                                case 7:
                                    TaskProcess.OperateStatus(TN_Task, 7);
                                    WCSHelper.Fail(TN_Task);
                                    //sendsencondtask(TN_Task);
                                    //WMSHelper.End(TN_Task);
                                    break;
                            }
                            WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
                            //调用第三方接口(如果有)TaskProcess.ReportStatus
                            TaskProcess.ThirdReportStatus(TN_Task, model.state, model.forklift_no);
                            TaskProcess.UpdateAgvNo(TN_Task, model.forklift_no);
                            if (AlterControlSwitch01 == "1") TaskProcess.GeneralInterFaceFunc(TN_Task, model.state.ToString(), model.forklift_no);
                        }
                        WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData);
                        //调用第三方接口(如果有)TaskProcess.ReportStatus
                        TaskProcess.ThirdReportStatus(TN_Task, model.State, model.ForkliftNo);
                        TaskProcess.UpdateAgvNo(TN_Task, model.ForkliftNo);
                        if (AlterControlSwitch01 == "1") TaskProcess.GeneralInterFaceFunc(TN_Task, model.State.ToString(), model.ForkliftNo);
                    }
                    else {
                    else if(model.state == 8)
                    {
                        TaskProcess.cancelTask(TN_Task);
                    }
                    else
                    {
                        LogHelper.Info("安全请求交互");
                        //安全请求等
                        TaskProcess.OperateReq(model.No, model.State, model.ForkliftNo, model.ExtData);
                        WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData);
                        TaskProcess.OperateReq(model.task_no, model.state, model.forklift_no, model.ext_data);
                        WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
                    }
                }
            }