lss
2025-06-12 815139c15ba938d79ad2ba14ddae6f635c37b085
HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
@@ -35,14 +35,14 @@
        #region 佳通合肥接口业务
        public static object _lockCreateTask = new object();
        /// <summary>
        /// 立库任务下发=》创建任务
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        internal static Result Createtask(CreateTask model)
        {
            Result result = new Result() { code = "0", msg = "创建成功" };
@@ -159,6 +159,7 @@
                            result.msg = $"Putin==> 任务起点:{taskData.pickStation}找不到对应货位,请检查货位表";
                            LogHelper.Info($"Putin==> {result.msg}");
                            AddErrorInfo("货位查找失败", result.msg, Source);
                            return result;
                        }
                    }
                    else if (taskData.taskType == 2)//入库流程,直接使用起点货位和终点货位生成任务,起点需要有托盘
@@ -598,7 +599,7 @@
                        }
                    }
                }
                return result;
            }
@@ -988,7 +989,6 @@
            string areacode = "";
            var db = new SqlHelper<object>().GetInstance();
            #endregion
            try
            {
@@ -1210,8 +1210,9 @@
                                loc = dploc.FindAll(a => a.N_LOCK_STATE == 0 && a.N_CURRENT_NUM < 6).OrderByDescending(a => a.N_CURRENT_NUM).FirstOrDefault();
                                if (loc == null)
                                {
                                    LogHelper.Info($"三楼货位叠盘位,都已经有锁或者已经叠满,请检查货位状态");
                                    result.code = "1";
                                    result.msg = $"叠盘货位不可用";
                                    result.msg = $"叠盘货位不可用,终点库区没有可用货位,请检查锁状态和数量";
                                    AddErrorInfo("查找库区失败", result.msg, Source);
                                    return result;
                                }
@@ -1222,9 +1223,9 @@
                            }
                            else
                            {
                                // LogHelper.Info($"根据货位楼层:{startloc.N_LAYER},仓库编码:{startloc.S_WH_CODE},货位备注:叠盘,未找到叠盘货位");
                                result.code = "1";
                                result.msg = $"叠盘货位不可用";
                                result.msg = $"叠盘货位不可用,未找到可叠盘货位";
                                LogHelper.Info($"根据货位备注:叠盘,货位楼层:{startloc.N_LAYER},货位仓库:{startloc.S_WH_CODE},找不到叠盘货位");
                                AddErrorInfo("查找货位失败", result.msg, Source);
                                return result;
@@ -1239,8 +1240,9 @@
                                loc = KjDploc.FindAll(a => a.N_LOCK_STATE == 0 && a.N_CURRENT_NUM < 6).OrderByDescending(a => a.N_CURRENT_NUM).FirstOrDefault();
                                if (loc == null)
                                {
                                    LogHelper.Info($"片胶堆叠位,都已经有锁或者已经叠满,请检查货位状态");
                                    result.code = "1";
                                    result.msg = $"叠盘货位不可用";
                                    result.msg = $"叠盘货位不可用,终点库区没有可用货位,请检查锁状态和数量";
                                    AddErrorInfo("查找库区失败", result.msg, Source);
                                    return result;
                                }
@@ -1274,7 +1276,7 @@
                            {
                                result.code = "1";
                                result.msg = $"根据起点仓库编码:{startloc.S_WH_CODE}未找到对应配置文件";
                                LogHelper.Info($"Putin==> {result.msg}");
                                LogHelper.Info($" {result.msg}");
                                AddErrorInfo("查找库区失败", result.msg, Source);
                                return result;
                            }
@@ -1282,14 +1284,18 @@
                            //回库货位计算库区货位
                            loc = StorageCompute(itemcode, areacode);
                            //if (loc == null)
                            //{
                            //    loc = emptyRow(areacode);
                            //    if (loc == null)
                            //    {
                            //        LogHelper.Info($"库区:{areacode}没有空排");
                            //    }
                            //}
                            if (loc == null)
                            {
                                loc = emptyRow(areacode);
                                if (loc == null)
                                {
                                    result.code = "1";
                                    result.msg = $"库区:{areacode}没有可用货位";
                                    LogHelper.Info($" {result.msg}");
                                    AddErrorInfo("查找库区失败", result.msg, Source);
                                    // LogHelper.Info($"库区:{areacode}没有可用货位");
                                }
                            }
                            //else
                            //{
@@ -1404,11 +1410,11 @@
            #region 变量
            string Start = "";
            string End = model.TargetLocation;
            string areacode = "";
            string cntrcode = "";
            Location startloc = new Location();
          //  startloc = LocationHelper.GetLocByAreacode(areacode, model.CarrierType);
            //  startloc = LocationHelper.GetLocByAreacode(areacode, model.CarrierType);
            #endregion
            try
@@ -1434,10 +1440,10 @@
                            AddErrorInfo("查找库区失败", result.msg, Source);
                            return result;
                        }
                        //计算出库托盘
                        startloc = LocationHelper.GetLocByAreacode(areacode,model.CarrierType);
                        startloc = LocationHelper.GetLocByAreacode(areacode, model.CarrierType);
                        if (startloc != null)
                        {
                            var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == startloc.S_CODE).First();
@@ -2374,7 +2380,7 @@
                            }
                        }
                    }
                    else
                    {
@@ -2416,14 +2422,14 @@
            DeviceInfoModel device = new DeviceInfoModel();
            List<DeviceInfos> deviceInfos = new List<DeviceInfos>();//叠盘机报错信息
           // List<AgvInfos> agvInfos = new List<AgvInfos>();//agv报错信息
                                                                    // List<AgvInfos> agvInfos = new List<AgvInfos>();//agv报错信息
            //获取内存中叠盘机的报错信息
            foreach (var dpjInfo in DeviceProcess.DpjInfoDirectory)
            {
                deviceInfos.Add(new DeviceInfos() { Device = dpjInfo.Value.DeviceName, DeviceInfo = dpjInfo.Value.ErrorInfo });
            }
          //  device.DeviceInfos = deviceInfos;
            //  device.DeviceInfos = deviceInfos;
            //获取车辆报警信息
            var agvDeviceInfo = db.Queryable<HangChaAGV>().ToList();
            if (agvDeviceInfo.Count > 0)
@@ -2503,7 +2509,7 @@
        #region 合肥佳通业务方法
        /// <summary>
        /// 托盘入库算法 
        /// </summary>