| | |
| | | |
| | | //查询该巷道并且标志为正常的的储位 |
| | | roadwayList.Add(roadway); |
| | | var locate = GetLocateByRoadways(roadwayList,areaList); |
| | | var locate = GetLocateByRoadways(roadwayList,areaList,true); |
| | | if (locate == null) |
| | | { |
| | | throw new Exception($"{roadwayNo}巷道没有合适的空储位"); |
| | |
| | | /// </summary> |
| | | /// <param name="roadways">巷道集合</param> |
| | | /// <param name="areaList">区域集合</param> |
| | | /// <param name="isRoadway">是否指定巷道</param> |
| | | /// <returns></returns> |
| | | private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList) |
| | | private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false) |
| | | { |
| | | try |
| | | { |
| | |
| | | //取各巷道所有排第一个合适位 |
| | | foreach (var l in roadways) |
| | | { |
| | | //如果上次是当前巷道则跳出 |
| | | if (log != null && l.RoadwayNo == log.RoadwayNo) |
| | | if (!isRoadway) |
| | | { |
| | | continue; |
| | | //如果上次是当前巷道则跳出 |
| | | if (log != null && l.RoadwayNo == log.RoadwayNo) |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | //取当前巷最优位置 |
| | | locate = GetLocateByRoadway(l.RoadwayNo, topOrBom, leftOrRight, areaList); |
| | | //当前巷有位置则退出 |
| | |
| | | } |
| | | } |
| | | //如果跳巷道并且未找到合适空储位,则跳到最后一次使用的巷道查询 |
| | | if (locate == null) |
| | | if (!isRoadway) |
| | | { |
| | | if (log != null) |
| | | if (locate == null) |
| | | { |
| | | locate = GetLocateByRoadway(log.RoadwayNo, topOrBom, leftOrRight, areaList); |
| | | if (log != null) |
| | | { |
| | | locate = GetLocateByRoadway(log.RoadwayNo, topOrBom, leftOrRight, areaList); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | foreach (var item in roadways) |
| | | { |
| | | locate = GetLocateByRoadway(item.RoadwayNo, topOrBom, leftOrRight, areaList); |
| | | if (locate != null) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |