| | |
| | | |
| | | //查询该巷道并且标志为正常的的储位 |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | sql += "order by "; |
| | | sql += topOrBom == 0 ? "Layer desc, " : "Layer, "; |
| | | sql += leftOrRight == 0 ? "[Column], " : "[Column] desc, "; |
| | | sql += " Row desc; "; |
| | | sql += " Row desc, Depth desc; "; |
| | | |
| | | |
| | | var locateList = db.Ado.SqlQuery<SysStorageLocat>(sql); |