| | |
| | | |
| | | //查询该巷道并且标志为正常的的储位 |
| | | roadwayList.Add(roadway); |
| | | var locate = GetLocateByRoadways(roadwayList,areaList,true); |
| | | var locate = GetLocateByRoadways(roadwayList,areaList,true,houseNo); |
| | | if (locate == null) |
| | | { |
| | | throw new Exception($"{roadwayNo}巷道没有合适的空储位"); |
| | |
| | | { |
| | | var roadwayList = db.Queryable<SysStorageRoadway>().Where(m => m.WareHouseNo == houseNo && m.Status == "0" && roadList.Contains(m.RoadwayNo)).OrderBy(m => new { m.Priority, m.RoadwayNo }).ToList(); |
| | | |
| | | var locate = GetLocateByRoadways(roadwayList,areaList); |
| | | var locate = GetLocateByRoadways(roadwayList,areaList,false, houseNo); |
| | | if (locate == null) |
| | | { |
| | | throw new Exception($"{houseNo}仓库已启用的巷道中没有合适的空储位"); |
| | | } |
| | | return locate; |
| | | } |
| | | //指定巷道 |
| | | case "密集库" when !string.IsNullOrWhiteSpace(roadwayNo): |
| | | { |
| | | var roadwayList = new List<SysStorageRoadway>(); |
| | | var roadway = db.Queryable<SysStorageRoadway>().First(m => m.RoadwayNo == roadwayNo); |
| | | if (roadway == null) |
| | | { |
| | | throw new Exception($"未查询到{roadwayNo}巷道信息"); |
| | | } |
| | | |
| | | if (!roadList.Contains(roadwayNo)) |
| | | { |
| | | throw new Exception("当前物料存放区域未在指定巷道中"); |
| | | } |
| | | if (roadway.Status == "1") |
| | | { |
| | | throw new Exception($"{roadwayNo}巷道已停用"); |
| | | } |
| | | |
| | | //查询该巷道并且标志为正常的的储位 |
| | | roadwayList.Add(roadway); |
| | | var locate = GetLocateByRoadways(roadwayList, areaList, true); |
| | | if (locate == null) |
| | | { |
| | | throw new Exception($"{roadwayNo}巷道没有合适的空储位"); |
| | | } |
| | | return locate; |
| | | } |
| | |
| | | /// <param name="areaList">区域集合</param> |
| | | /// <param name="isRoadway">是否指定巷道</param> |
| | | /// <returns></returns> |
| | | private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false) |
| | | private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false ,string houseNo = "W01") |
| | | { |
| | | try |
| | | { |
| | |
| | | |
| | | SysStorageLocat locate = null; // 储位信息 |
| | | //SysStorageLocat log = db.Ado.SqlQuerySingle<SysStorageLocat>("select * from SysStorageLocat where LocatNo = (select Top(1) LocatNo from BllPalletBind order by CreateTime desc)"); //巷道最后一次使用记录 |
| | | SysRoadwayUseLog log= db.Ado.SqlQuerySingle<SysRoadwayUseLog>("select Top(1) * from SysRoadwayUseLog where IsDel=0 order by CreateTime desc"); //巷道最后一次使用记录 |
| | | SysRoadwayUseLog log= db.Ado.SqlQuerySingle<SysRoadwayUseLog>($"select Top(1) * from SysRoadwayUseLog where IsDel=0 and WareHouseNo ='{houseNo}' order by CreateTime desc"); //巷道最后一次使用记录 |
| | | |
| | | if (laneAllot == 0)//跳巷道平均分配 |
| | | { |
| | | //如果同级巷道有多条则查上次位置日志 |
| | | if (roadways.Count > 1) |
| | | { |
| | | log = db.Queryable<SysRoadwayUseLog>().OrderByDescending(l => l.Id).First(); |
| | | log = db.Queryable<SysRoadwayUseLog>().Where(m=>m.WareHouseNo == houseNo).OrderByDescending(l => l.Id).First(); |
| | | } |
| | | //取各巷道所有排第一个合适位 |
| | | foreach (var l in roadways) |