| | |
| | | using iWareModel; |
| | | using iWareCommon.Common.Globle; |
| | | using XiGang.Core.Model; |
| | | using iWareSql.WmsDBModel; |
| | | |
| | | namespace iWareSql.DataAccess |
| | | { |
| | |
| | | } |
| | | |
| | | #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里执行 |
| | |
| | | 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> |
| | | /// 根据库位号查找库位对象 |