| | |
| | | List<string> lockLocationCodes = locationCaches_CSJ.Select(x => x.LocationCode).ToList(); |
| | | |
| | | List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == roadwayNo); |
| | | //è·åææçè´§ä½ |
| | | List<Dt_LocationInfo> locationInfoDepth = Repository.QueryData(x => x.RoadwayNo == roadwayNo); |
| | | if (locationInfos == null || locationInfos.Count == 0) |
| | | { |
| | | throw new Exception($"æªæ¾å°è¯¥å··éçè´§ä½ä¿¡æ¯,å··éå·:{roadwayNo}"); |
| | |
| | | Dt_LocationInfo? locationInfo = GetUsableLocation_CSJ(locationInfos, undefinedTypeEmptyLocation, palletType); |
| | | if (locationInfo != null) |
| | | { |
| | | if (locationInfo.Depth < locationInfoDepth.Max(x => x.Depth)) |
| | | { |
| | | Dt_LocationInfo? locationInfoExist = null; |
| | | int Column = locationInfo.Column; |
| | | if (locationInfo.Row < locationInfoDepth.Max(x => x.Depth)) |
| | | { |
| | | locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount==2 ? (locationInfo.Row - 2): (locationInfo.Row - 1)) && x.Column == Column && x.Layer == locationInfo.Layer); |
| | | } |
| | | else |
| | | { |
| | | locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row + 2) : (locationInfo.Row + 1)) && x.Column == Column && x.Layer == locationInfo.Layer); |
| | | } |
| | | //è·åæ·±ä½è´§ä½ç±»å |
| | | if (locationInfoExist == null) |
| | | { |
| | | continue; |
| | | } |
| | | Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType); |
| | | if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | Dt_LocationInfo? locationInfoExist = null; |
| | | int Column = locationInfo.Column; |
| | | if (locationInfo.Row % locationInfoDepth.Max(x => x.Depth)==0) |
| | | { |
| | | locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row - 2) : (locationInfo.Row - 1)) && x.Column == Column && x.Layer == locationInfo.Layer); |
| | | } |
| | | else |
| | | { |
| | | locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row + 2) : (locationInfo.Row + 1)) && x.Column == Column && x.Layer == locationInfo.Layer); |
| | | } |
| | | //è·åæ·±ä½è´§ä½ç±»å |
| | | if (locationInfoExist == null) |
| | | { |
| | | continue; |
| | | } |
| | | Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType); |
| | | if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount) |
| | | { |
| | | continue; |
| | | } |
| | | if (locationInfoExist.LocationStatus != LocationStatusEnum.Free.ObjToInt() || locationInfoExist.EnableStatus != EnableStatusEnum.Normal.ObjToInt()) |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | locationCaches_CSJ.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now }); |
| | | return locationInfo; |
| | | } |
| | |
| | | Dt_LocationInfo? locationInfo = GetUsableLocation_CSJ(locationInfos, definedTypeEmptyLocation, palletType); |
| | | if (locationInfo != null) |
| | | { |
| | | if (locationInfo.Depth < locationInfoDepth.Max(x => x.Depth)) |
| | | { |
| | | Dt_LocationInfo? locationInfoExist = null; |
| | | int Column = locationInfo.Column; |
| | | if (locationInfo.Row < locationInfoDepth.Max(x => x.Depth)) |
| | | { |
| | | locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row - 2) : (locationInfo.Row - 1)) && x.Column == Column && x.Layer == locationInfo.Layer); |
| | | } |
| | | else |
| | | { |
| | | locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row + 2) : (locationInfo.Row + 1)) && x.Column == Column && x.Layer == locationInfo.Layer); |
| | | } |
| | | //è·åæ·±ä½è´§ä½ç±»å |
| | | if (locationInfoExist == null) |
| | | { |
| | | continue; |
| | | } |
| | | Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType); |
| | | if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount) |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Dt_LocationInfo? locationInfoExist = null; |
| | | int Column = locationInfo.Column; |
| | | if (locationInfo.Row % locationInfoDepth.Max(x => x.Depth) == 0) |
| | | { |
| | | locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row - 2) : (locationInfo.Row - 1)) && x.Column == Column && x.Layer == locationInfo.Layer); |
| | | } |
| | | else |
| | | { |
| | | locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row + 2) : (locationInfo.Row + 1)) && x.Column == Column && x.Layer == locationInfo.Layer); |
| | | } |
| | | //è·åæ·±ä½è´§ä½ç±»å |
| | | if (locationInfoExist == null) |
| | | { |
| | | continue; |
| | | } |
| | | Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType); |
| | | if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount) |
| | | { |
| | | continue; |
| | | } |
| | | if (locationInfoExist.LocationStatus != LocationStatusEnum.Free.ObjToInt() || locationInfoExist.EnableStatus != EnableStatusEnum.Normal.ObjToInt()) |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | locationCaches_CSJ.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now }); |
| | | return locationInfo; |
| | | } |