|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | namespace WIDESEA_BasicRepository | 
|---|
|  |  |  | { | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// è´§ä½ä»å¨å®ç°å± | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | public class LocationInfoRepository : RepositoryBase<Dt_LocationInfo>, ILocationInfoRepository | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public LocationInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// è·ååç»ææè´§ä½ | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="roadway"></param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public List<LocationGroupDTO> GetAllLocationGroups(string roadway) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return QueryTabs<Dt_LocationInfo, Dt_LocationInfo, LocationGroupDTO>((a, b) => a.Column == b.Column && a.Layer == b.Layer && a.Row != b.Row && SqlFunc.Abs(a.Row - b.Row) == 1, (a, b) => new LocationGroupDTO { DepthA = a.Depth, DepthB = b.Depth, EnableStatusA = a.EnableStatus, EnableStatusB = b.EnableStatus, IdA = a.Id, IdB = b.Id, LocationCodeA = a.LocationCode, LocationCodeB = b.LocationCode, LocationStatusA = a.LocationStatus, LocationStatusB = b.LocationStatus, LocationTypeA = a.LocationType, LocationTypeB = b.LocationType }, a => a.Depth == 1 && a.RoadwayNo == roadway, b => b.Depth == 2 && b.RoadwayNo == roadway, x => true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// æ ¹æ®ç¶æè·ååç»è´§ä½ | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="roadway"></param> | 
|---|
|  |  |  | /// <param name="locationAStatus"></param> | 
|---|
|  |  |  | /// <param name="locationBStatus"></param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public List<LocationGroupDTO> GetLocationGroups(string roadway, LocationStatusEnum locationAStatus, LocationStatusEnum locationBStatus) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return QueryTabs<Dt_LocationInfo, Dt_LocationInfo, LocationGroupDTO>( | 
|---|
|  |  |  | (a, b) => a.Column == b.Column && a.Layer == b.Layer && a.Row != b.Row && SqlFunc.Abs(a.Row - b.Row) == 1, | 
|---|
|  |  |  | (a, b) => new LocationGroupDTO { DepthA = a.Depth, DepthB = b.Depth, EnableStatusA = a.EnableStatus, EnableStatusB = b.EnableStatus, IdA = a.Id, IdB = b.Id, LocationCodeA = a.LocationCode, LocationCodeB = b.LocationCode, LocationStatusA = a.LocationStatus, LocationStatusB = b.LocationStatus, LocationTypeA = a.LocationType, LocationTypeB = b.LocationType }, | 
|---|
|  |  |  | a => a.Depth == 1 && a.RoadwayNo == roadway && a.LocationStatus == locationAStatus.ObjToInt(), | 
|---|
|  |  |  | b => b.Depth == 2 && b.RoadwayNo == roadway && b.LocationStatus == locationBStatus.ObjToInt(), | 
|---|
|  |  |  | (a, b) => a.Column == b.Column && a.Layer == b.Layer && a.Row != b.Row && SqlFunc.Abs(a.Row - b.Row) == 1, | 
|---|
|  |  |  | (a, b) => new LocationGroupDTO { DepthA = a.Depth, DepthB = b.Depth, EnableStatusA = a.EnableStatus, EnableStatusB = b.EnableStatus, IdA = a.Id, IdB = b.Id, LocationCodeA = a.LocationCode, LocationCodeB = b.LocationCode, LocationStatusA = a.LocationStatus, LocationStatusB = b.LocationStatus, LocationTypeA = a.LocationType, LocationTypeB = b.LocationType }, | 
|---|
|  |  |  | a => a.Depth == 1 && a.RoadwayNo == roadway && a.LocationStatus == locationAStatus.ObjToInt(), | 
|---|
|  |  |  | b => b.Depth == 2 && b.RoadwayNo == roadway && b.LocationStatus == locationBStatus.ObjToInt(), | 
|---|
|  |  |  | x => true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public override bool UpdateData(Dt_LocationInfo entity) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return base.UpdateData(entity); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<string> GetCanOutLocationCodes(List<string> roadways, List<int> areaIds) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return QueryData(x => x.LocationCode, x => roadways.Contains(x.RoadwayNo) && (areaIds.Contains(x.AreaId) || x.AreaId == 0) && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// æ ¹æ®è´§ä½ç¼å·éåè·åè´§ä½ä¿¡æ¯ | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="locationCodes"></param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public List<Dt_LocationInfo> GetLocationInfos(List<string> locationCodes) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return QueryData(x => locationCodes.Contains(x.LocationCode)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// æ¹éä¿®æ¹è´§ä½ç¶æ | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="locationInfos"></param> | 
|---|
|  |  |  | /// <param name="locationStatus"></param> | 
|---|
|  |  |  | public void UpdateLocationStatus(List<Dt_LocationInfo> locationInfos, LocationStatusEnum locationStatus) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | locationInfos.ForEach(x => | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | UpdateData(locationInfos); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// è·åå¯åºåºè´§ä½ç¼å· | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="warehouseId"></param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public List<string> GetCanOutLocationCodes(int warehouseId) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return QueryData(x => x.LocationCode, x => x.WarehouseId == warehouseId && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// è·åå¯åºåºè´§ä½ç¼å· | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="warehouseId"></param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public List<string> PPGetCanOutLocationCodes(int warehouseId) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return QueryData(x => x.LocationCode, x => x.WarehouseId == warehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// è·åMESæå®å¯åºåºè´§ä½ç¼å· | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="warehouseId"></param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public List<string> GetCanOutLocationCodes(string locationcode) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return QueryData(x => x.LocationCode, x => x.LocationCode == locationcode && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|