111
cjs
2025-06-23 8accda250de2a637336a40e04085e1a0cb556c5c
HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
@@ -39,12 +39,12 @@
        /// </summary>
        internal static void Start()
        {
            LogHelper.Info($"作业启动 创建子任务");
            //LogHelper.Info($"作业启动 创建子任务");
            var db = new SqlHelper<object>().GetInstance();
            List<WMSTask> list = WMSHelper.GetWaitingOperationList();
            LogHelper.Info($"获取任务数据 数量{list.Count}");
            if (list.Count > 0)
            {
                LogHelper.Info($"获取任务数据 数量{list.Count}");
                //如果是出库的作业锁定托盘的时候已经明确起点了,如果发货单或分拣单指定了终点,
                //如果没有作业、任务的顺序限制就可以启动,创建子任务了
                foreach (var a in list)
@@ -63,6 +63,23 @@
                                LocationHelper.LockLoc(end.S_CODE, 1);
                                var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == a.S_START_LOC).First();
                                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 = Settings.dXSites.Where(it => it.loc == a.S_END_LOC).First().site;
                                }
                                if(a.S_OP_DEF_NAME == "注塑即产满托下线(瓶坯)")
                                {
                                    endlayer = Settings.dXSites.Where(it => it.loc == a.S_END_LOC).First().site;
                                }
                                if (a.S_OP_DEF_NAME == "接驳位入库" || a.S_OP_DEF_NAME == "瓶盖空托入库")
                                {
                                    startLayer = 1;
                                    endlayer = 1;
                                }
                                var wcsTask = new WCSTask
                                {
                                    S_OP_CODE = a.S_CODE,
@@ -80,7 +97,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))
                                {
@@ -125,8 +146,13 @@
                                    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))
                                {