lss
4 天以前 9cba325e0d7c30644606e63e5df01faba0c42038
HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/core/WCSCore.cs
@@ -20,7 +20,7 @@
{
    internal class WCSCore
    {
        public static void OperateAgvTaskStatus(AgvTaskState model)
        public static async Task OperateAgvTaskStatus(AgvTaskState model)
        {
            if (string.IsNullOrEmpty(model.task_no))
@@ -30,68 +30,56 @@
            }
            else
            {
                var TN_Task = WCSHelper.GetTask(model.task_no);
                if (TN_Task != null)
                try
                {
                    if (model.state <= 7)
                    var TN_Task = WCSHelper.GetTask(model.task_no);
                    if (TN_Task != null)
                    {
                        //有任务号请求
                        switch (model.state)
                        if (model.state <= 7)
                        {
                            case 1:
                                WCSHelper.Begin(TN_Task, model.forklift_no);
                                break;
                            #region MyRegion
                            case 3:
                                WCSHelper.UpdateAgvNo(TN_Task, model.forklift_no);
                                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, "卸货完成");
                                if (!string.IsNullOrEmpty(TN_Task.S_NOTE) && (TN_Task.S_NOTE.Trim() == "入库" || TN_Task.S_NOTE.Trim() == "空托回库"))
                                {
                                    LocationHelper.UnlockLoc(TN_Task.S_END_LOC);
                                }
                                else
                                {
                                    TaskProcess.OperateStatus(TN_Task, 6);
                                }
                                UpdateWait(TN_Task);
                                break;
                            #endregion
                            case 2:
                                WCSHelper.End(TN_Task);
                                break;
                            case 7:
                                TaskProcess.OperateStatus(TN_Task, 7);
                                WCSHelper.Fail(TN_Task);
                                TaskProcess.CancelTaskSection(TN_Task);
                                break;
                        }
                        WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
                            //有任务号请求
                            switch (model.state)
                            {
                                case 1:
                                    WCSHelper.Begin(TN_Task, model.forklift_no);
                                    break;
                                #region MyRegion
                                case 3:
                                    WCSHelper.UpdateAgvNo(TN_Task, model.forklift_no);
                                    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, "卸货完成");
                                    if (!string.IsNullOrEmpty(TN_Task.S_NOTE) && (TN_Task.S_NOTE.Trim() == "入库" || TN_Task.S_NOTE.Trim() == "空托回库"))
                                    {
                                        LocationHelper.UnlockLoc(TN_Task.S_END_LOC);
                                    }
                                    else
                                    {
                                        TaskProcess.OperateStatus(TN_Task, 6);
                                    }
                                    UpdateWait(TN_Task);
                                    break;
                                #endregion
                                case 2:
                                    WCSHelper.End(TN_Task);
                                    break;
                                case 7:
                                    TaskProcess.OperateStatus(TN_Task, 7);
                                    WCSHelper.Fail(TN_Task);
                                    TaskProcess.CancelTaskSection(TN_Task);
                                    break;
                            }
                            WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
                        //复杂业务线程处理 不影响回报
                            //物料到位通知
                            if ((TN_Task.S_TYPE == "出平库" || TN_Task.S_TYPE == "余料返回") && model.state == 6)
                            {
                                string urlitem = Settings.tableUrls.Find(a => a.id == 5).url;
                                TaskProcess.MESIteminfoback(TN_Task, urlitem);
                            }
                            if ((TN_Task.S_NOTE == "出库" || TN_Task.S_NOTE == "异常库区入库") && !string.IsNullOrEmpty(TN_Task.S_MES_NO) && model.state == 6)
                            {
                                string urlitem = Settings.tableUrls.Find(a => a.id == 5).url;
                                TaskProcess.MESIteminfoback(TN_Task, urlitem);
                            }
                            //任务回报 任务来源 1.钢丝立库  2.胶片库  3.预备库 5.mes下发
                            //TN_Task = WCSHelper.GetTask(TN_Task.S_CODE);
                            string urlstate = Settings.tableUrls.Find(a => a.id == 4).url;
                            TaskProcess.MESReportback(TN_Task, model.state, urlstate);
@@ -169,13 +157,23 @@
                                    break;
                            }
                            //物料到位通知
                            if ((TN_Task.S_TYPE == "出平库" || TN_Task.S_TYPE == "余料返回") && model.state == 6)
                            {
                                string urlitem = Settings.tableUrls.Find(a => a.id == 5).url;
                                TaskProcess.MESIteminfoback(TN_Task, urlitem);
                            }
                            if ((TN_Task.S_NOTE == "出库" || TN_Task.S_NOTE == "异常库区入库") && !string.IsNullOrEmpty(TN_Task.S_MES_NO) && model.state == 6)
                            {
                                string urlitem = Settings.tableUrls.Find(a => a.id == 5).url;
                                TaskProcess.MESIteminfoback(TN_Task, urlitem);
                            }
                    }
                    else
                    {
                        }
                        else
                        {
                            var db = new SqlHelper<TaskAction>().GetInstance();
                            var taskAction = db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == model.task_no && a.N_ACTION_CODE == model.state).First();
                            if (taskAction == null)
@@ -213,10 +211,22 @@
                            {
                                LogHelper.Info($"安全请求:未找到回报地址,请检查配置文件==>{JsonConvert.SerializeObject(Settings.tableUrls)}");
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine(111);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Info("OperateAgvTaskStatus Error:" + ex.ToString());
                    throw;
                }
            }
        }