lss
2025-06-05 71129e21a35a2d4be75ee0f1e96e2c51ced5f23b
HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
@@ -143,6 +143,7 @@
        private static object lockObj = new object();
        /// <summary>
        /// 创建任务
        /// </summary>
@@ -167,7 +168,6 @@
            {
                try
                {
                    // 1 空托回库
                    if (model.TaskType == "1")
                    {
@@ -234,6 +234,65 @@
                                LocationHelper.LockLoc(startloc.S_CODE, 2);
                                LocationHelper.LockLoc(endloc.S_CODE, 1);
                                LogHelper.Info("创建作业成功");
                                //空托回库成功,如果存在物料数据,删除
                                var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).First();
                                if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).ExecuteCommand(); }
                                LogHelper.Info("创建任务成功");
                            }
                        }
                        #endregion
                    }
                    // 2 出库
                    if (model.TaskType == "2")
                    {
                        Type = "出库";
                        #region 获取终点信息
                        startloc = LocationHelper.GetLoc(model.endBit);
                        if (startloc == null)
                        {
                            result.Code = -1;
                            result.Msg = $"根据终点:{model.startBit}未找到货位信息";
                            LogHelper.Info($"creattask:{result.Msg}");
                            return result;
                        }
                        #endregion
                        #region 根据物料计算出库托盘,先进先出,优先出外侧
                        //先计算内侧货位,判断是否有单组托盘
                        var locations = LocationHelper.GetLocByItemCodeOrderyTime("", model.ItemCode);
                        if (locations.Count > 0)
                        {
                            endloc = locations.OrderBy(a => a.N_COL).First();
                        }
                        #endregion
                        #region 创建作业
                        if (startloc != null && endloc != null)
                        {
                            //创建作业
                            var wcsTask = new WMSTask
                            {
                                S_CODE = WMSHelper.GenerateTaskNo(),
                                S_TYPE = Type,
                                N_TYPE = int.Parse(model.TaskType),
                                S_START_LOC = start,
                                S_END_LOC = endloc.S_CODE,
                                S_CNTR_CODE = cntrcode,
                                S_END_WH = endloc.S_WH_CODE,
                                S_START_WH = startloc.S_WH_CODE,
                                S_START_AREA = startloc.S_AREA_CODE,
                                S_END_AREA = endloc.S_AREA_CODE,
                            };
                            LogHelper.Info("创建作业:" + JsonConvert.SerializeObject(wcsTask), "CreateTask");
                            if (WMSHelper.CreateTask(wcsTask))
                            {
                                LocationHelper.LockLoc(startloc.S_CODE, 2);
                                LocationHelper.LockLoc(endloc.S_CODE, 1);
                                LogHelper.Info("创建作业成功");
                            }
                        }
                        #endregion
@@ -246,8 +305,6 @@
                        LogHelper.Info($"creattask:{result.Msg}");
                        return result;
                    }
                    return result;
                }