| | |
| | | public string AccessingTunnel(int WarehouseId, int LocationType) |
| | | { |
| | | List<Dt_LocationInfo> locationData = BaseDal.QueryData(x => x.WarehouseId == WarehouseId); |
| | | var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.EnableStatus== (int)EnableEnum.Enable).GroupBy(x => x.RoadwayNo) |
| | | var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.EnableStatus== (int)EnableStatusEnum.Normal).GroupBy(x => x.RoadwayNo) |
| | | .Select(g => new |
| | | { |
| | | RoadwayNo = g.Key, |
| | |
| | | if (LocationType == 2) minRequired = 6; |
| | | |
| | | var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired); |
| | | return selectedRoadway.RoadwayNo; |
| | | } |
| | | else |
| | | { |
| | | var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired); |
| | | if(selectedRoadway != null) |
| | | { |
| | | return selectedRoadway.RoadwayNo; |
| | | if(selectedRoadway!=null) return selectedRoadway.RoadwayNo; |
| | | |
| | | } |
| | | else |
| | | { |
| | | var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired); |
| | | if(selectedRoadway == null) |
| | | { |
| | | selectedRoadway = roadwayGroups.FirstOrDefault(g => g.RoadwayNo =="5" && g.LocationCount != 0); |
| | | |
| | | } |
| | | return selectedRoadway.RoadwayNo; |
| | | if(selectedRoadway != null) return selectedRoadway.RoadwayNo; |
| | | } |
| | | |
| | | return "0"; |
| | | } |
| | | |
| | | |
| | |
| | | if (emptyLocations[i].Depth == 1)//夿æ¯å¦1æ·±è´§ä½ |
| | | { |
| | | //æ¥è¯¢æ·±åºä½ |
| | | int emprow = emptyLocations[i].Row == 2 ? 1 : 4; |
| | | //int emprow = emptyLocations[i].Row == 2 ? 1 : 4; |
| | | int emprow = judgmentRow(emptyLocations[i].RoadwayNo,emptyLocations[i].Row); |
| | | |
| | | Dt_LocationInfo? sencondDepthLocationShen = emptyLocations.FirstOrDefault(x => x.Row == emprow && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column); |
| | | if (sencondDepthLocationShen != null && sencondDepthLocationShen.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | |
| | | { |
| | | locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode }); |
| | | return emptyLocations[i]; |
| | | }else if (emptyLocations[i].RoadwayNo=="5" && emptyLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | | { |
| | | locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode }); |
| | | return emptyLocations[i]; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¯¢2深货ä½å¯¹åºç1æ·±è´§ä½æ¯å¦ä¸ºç©º |
| | | int emprow = emptyLocations[i].Row == 4 ? 3 : 2; |
| | | //int emprow = emptyLocations[i].Row == 4 ? 3 : 2; |
| | | int emprow = judgmentRow(emptyLocations[i].RoadwayNo, emptyLocations[i].Row); |
| | | |
| | | Dt_LocationInfo? sencondDepthLocationQian = emptyLocations.FirstOrDefault(x => x.Row == emprow && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column); |
| | | if (sencondDepthLocationQian != null && sencondDepthLocationQian.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | |
| | | } |
| | | } |
| | | |
| | | private int judgmentRow(string RoadwayNo, int locrow) |
| | | { |
| | | if (RoadwayNo == "1" || RoadwayNo == "3") |
| | | { |
| | | if(locrow==1 || locrow == 4) |
| | | { |
| | | return locrow == 1 ? 2 : 3; |
| | | } |
| | | else |
| | | { |
| | | return locrow == 2 ? 1 : 4; |
| | | } |
| | | |
| | | } |
| | | else if (RoadwayNo == "2" || RoadwayNo == "4") |
| | | { |
| | | if (locrow == 5 || locrow == 8) |
| | | { |
| | | return locrow == 5 ? 6 : 7; |
| | | } |
| | | else |
| | | { |
| | | return locrow == 6 ? 5 : 8; |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | public class LocationCache |
| | | { |
| | | public string LocationCode { get; set; } |