333
schangxiang@126.com
2024-12-23 71f890c1c7f40d2605f9eabfe787e5ac287162fc
CC/iWareSql/DataAccess/StationHandler.cs
@@ -16,6 +16,7 @@
using iWareModel;
using iWareCommon.Common.Globle;
using XiGang.Core.Model;
using iWareSql.WmsDBModel;
namespace iWareSql.DataAccess
{
@@ -112,30 +113,7 @@
        }
        #region 锁定库位的方法
        /// <summary>
        /// 判断寻找到的库位是否被锁定了( 供  配板余料回库线程、RGV提前配板任务创建时,成品料回库线程、原料入库线程使用)
        /// </summary>
        /// <returns></returns>
        private static bool ValidateFindPlaceIsLocked(Base_Station validatePlace, string lockReason)
        {
            lock (lockObject)
            {
                if (validatePlace == null)
                {
                    return false;
                }
                if (lockPlaceDict.ContainsKey(validatePlace.Id))
                {
                    Log4NetHelper.WriteInfoLog(LogType.SrmTheadService, "lockPlaceDict已经有该锁了,validatePlace.Id:" + validatePlace.Id + ",字典中的原因是:" + lockPlaceDict[validatePlace.Id] + ",本次原因是:" + lockReason);
                    return true;
                }
                else
                {
                    lockPlaceDict.Add(validatePlace.Id, lockReason + ",库位号:" + validatePlace.SrmStationCode);
                    return false;
                }
            }
        }
        /// <summary>
        /// 在事务处理完毕后,释放被锁定的库位( 供  配板余料回库线程、RGV提前配板任务创建时,成品料回库线程、原料入库线程使用)
        /// 一定要放到finaly里执行
@@ -737,6 +715,24 @@
            return edm.Base_Station.Where(x => x.Id == placeId).FirstOrDefault();
        }
        /// <summary>
        /// 根据库位ID查找库位对象
        /// </summary>
        /// <returns></returns>
        public static wms_base_place GetPlaceByPlaceId(long placeId, WmsDBModel.WmsDBModel edm)
        {
            return edm.wms_base_place.Where(x => x.Id == placeId).FirstOrDefault();
        }
        /// <summary>
        /// 根据库位编号查找库位对象
        /// </summary>
        /// <returns></returns>
        public static wms_base_place GetPlaceByPlaceCode(string placeCode, WmsDBModel.WmsDBModel edm)
        {
            return edm.wms_base_place.Where(x => x.PlaceCode == placeCode).FirstOrDefault();
        }
        /// <summary>
        /// 根据库位号查找库位对象