111
cjs
2 天以前 64d2bad5e5d8440a40a80baad0ab41d7a65e8675
HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
@@ -51,6 +51,37 @@
                {
                    try
                    {
                        if(a.S_OP_DEF_NAME == "接驳位入库")
                        {
                            if (!Monitor.B_FLAGE)
                            {
                                Monitor.B_FLAGE = true;
                                //判断当前是否有等待或者错误的接驳位入库任务,并且起点货位在当前货位的外面
                                var taskList = db.Queryable<WMSTask>().Where(b => b.S_OP_DEF_NAME == "接驳位入库" && b.S_ID != a.S_ID && (b.N_B_STATE == 0 || b.N_B_STATE == 3)).ToList();
                                if(taskList.Count > 0)
                                {
                                    bool task_flage = false;
                                    foreach(var x in taskList)
                                    {
                                        var startLocInfo = db.Queryable<Location>().Where(y => y.S_CODE == x.S_START_LOC).First();
                                        var startLocInfoTwo = db.Queryable<Location>().Where(y => y.S_CODE == a.S_START_LOC).First();
                                        if(startLocInfo.N_ROW == startLocInfoTwo.N_ROW && startLocInfo.N_COL > startLocInfoTwo.N_COL)
                                        {
                                            task_flage = true;
                                            break;
                                        }
                                    }
                                    if (task_flage)
                                    {
                                        continue;
                                    }
                                }
                            }
                            else
                            {
                                continue;
                            }
                        }
                        if (a.N_TYPE == 1)
                        {
                            //查询托盘所在位置
@@ -65,11 +96,7 @@
                                var endinfo = db.Queryable<Location>().Where(it => it.S_CODE == end.S_CODE).First();
                                int startLayer = startinfo.N_CURRENT_NUM;
                                int endlayer = endinfo.N_CURRENT_NUM + 1;
                                if (a.S_OP_DEF_NAME == "接驳位入库" || a.S_OP_DEF_NAME == "瓶盖空托入库" || a.S_OP_DEF_NAME == "瓶坯非急产补满框" || a.S_OP_DEF_NAME == "瓶盖非急产补满框")
                                {
                                    startLayer = 1;
                                    endlayer = 1;
                                }
                                var wcsTask = new WCSTask
                                {
                                    S_OP_CODE = a.S_CODE,
@@ -87,7 +114,11 @@
                                    N_CNTR_COUNT = 1,
                                    S_CNTR_CODE = a.S_CNTR_CODE,
                                    N_START_LAYER = startinfo.N_CURRENT_NUM,
                                    N_END_LAYER = endinfo.N_CURRENT_NUM + 1
                                    N_END_LAYER = endinfo.N_CURRENT_NUM + 1,
                                    S_TRAY_TYPE = a.S_TRAY_TYPE,
                                    S_WORK_NO = a.S_WORK_NO,
                                    S_ITEM_CODE = a.S_ITEM_CODE,
                                    S_NOTE = a.S_NOTE
                                };
                                if (WCSHelper.CreateTask(wcsTask))
                                {
@@ -153,6 +184,10 @@
                                LogHelper.Info($"作业{a.S_CODE} 获取终点失败");
                            }
                        }
                        if (a.S_OP_DEF_NAME == "接驳位入库")
                        {
                            Monitor.B_FLAGE = false;
                        }
                    }
                    catch (Exception ex)
                    {