lss
2025-06-06 e638b99adf48183d173dec500c9cf29020947354
HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WMSCore.cs
@@ -1,4 +1,5 @@
using HH.WCS.DaYang.wms;
using HH.WCS.DaYang.util;
using HH.WCS.DaYang.wms;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -45,6 +46,7 @@
            List<WMSTask> list = WMSHelper.GetWaitingOperationList();
            if (list.Count > 0)
            {
                var db = new SqlHelper<WCSTask>().GetInstance();
                //空托回库任务创建
                list.ForEach(a =>
                {
@@ -96,6 +98,43 @@
                    }
                    else if (a.N_TYPE == 2)
                    {
                        #region MyRegion
                        //判断外侧有没有托盘,需不需要移库
                        var StartLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_START_AREA && b.S_CODE == a.S_START_LOC).First();
                        var OutLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == StartLoc.S_AREA_CODE && b.N_LAYER == StartLoc.N_LAYER && b.N_POS == 1 && b.N_CURRENT_NUM == 1 && b.N_LOCK_STATE == 0).First();
                        if (OutLoc != null)
                        {
                            var YiKuLoc = LocationHelper.InStorage(OutLoc);
                            if (YiKuLoc != null)
                            {
                                var wcsTask = new WCSTask
                                {
                                    S_OP_CODE = a.S_CODE,
                                    S_OP_NAME = "出库",
                                    S_CODE = WCSHelper.GenerateTaskNo(),
                                    S_TYPE = "移库",
                                    S_START_LOC = OutLoc.S_CODE,
                                    S_END_LOC = YiKuLoc.S_CODE,
                                    N_SCHEDULE_TYPE = 2,
                                    N_CNTR_COUNT = 1,
                                    S_CNTR_CODE = a.S_CNTR_CODE,
                                };
                                if (WCSHelper.CreateTask(wcsTask) )
                                {
                                    //更新作业状态为执行
                                    LocationHelper.LockLoc(OutLoc.S_CODE, 2);
                                    LocationHelper.LockLoc(YiKuLoc.S_CODE, 1);
                                }
                            }
                            else
                            {
                                LogHelper.Info($"作业:{a.S_CODE}外侧货位{OutLoc.S_CODE},未计算到移库货位,作业不启动");
                                return;
                            }
                            ;
                        }
                        #endregion
                        string JbwLoc = "";
@@ -138,7 +177,6 @@
                            WMSHelper.UpdateTaskState(a);
                        }
                    }
                });