| | |
| | | } |
| | | } |
| | | |
| | | var balanceLocList = RoadWayBalance(locations); |
| | | |
| | | |
| | | foreach (var item in locations) |
| | | foreach (var item in balanceLocList) |
| | | { |
| | | if (item.S_LOCK_STATE=="无" && item.N_CURRENT_NUM==0) |
| | | { |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 巷道均衡策略 |
| | | /// </summary> |
| | | /// <param name="lstTrueLocation">可用的货位信息数据</param> |
| | | /// <returns>计算后返回的实体</returns> |
| | | public static List<Location> RoadWayBalance(List<Location> lstTrueLocation) |
| | | { |
| | | //指定计算后返回的实体 |
| | | List<Location> location_roadray = new List<Location>(); |
| | | |
| | | //按照巷道分组 并获得巷道中可用货位的数据 |
| | | //之后进行倒叙 找到可用货位最多的巷道 |
| | | var v = lstTrueLocation.GroupBy(x => x.N_ROADWAY).Select(g => (new |
| | | { |
| | | roadWay = g.Key, |
| | | qty = g.Count() |
| | | })).OrderByDescending(o => o.qty); |
| | | |
| | | //倒叙排列后的巷道 循环 |
| | | foreach (var item in v) |
| | | { |
| | | //取得巷道列表中可用货位最多的巷道 并获取巷道中所有货位 |
| | | location_roadray = lstTrueLocation.Where(o => o.N_ROADWAY == item.roadWay).ToList(); |
| | | |
| | | if (location_roadray != null && location_roadray.Count > 0) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | return location_roadray; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 找终点可用空货位排除不可用巷道 |
| | | /// </summary> |