| | |
| | | dataStock = dataStock.Where(m => m.LotNo == lotNo); |
| | | } |
| | | //库存查找相同物料/批次的巷道 |
| | | var yiYouRoad = dataStock.GroupBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).OrderBy(m => m).ToList(); |
| | | foreach (var l in yiYouRoad) |
| | | var yiYouRoad = dataStock.GroupBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList(); |
| | | foreach (var l in yiYouRoad.OrderBy(m=>m).ToList()) |
| | | { |
| | | // 判断当前巷道(组)是否有空余储位 |
| | | |
| | |
| | | //获取库存内已有物料的巷道 |
| | | var dataStockRoad = db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.WareHouseNo == house).GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList(); |
| | | //排除掉已有物料的巷道 |
| | | |
| | | roadways = roadways.Where(m => !dataStockRoad.Contains(m)).ToList(); |
| | | foreach (var l in roadways) |
| | | { |
| | |
| | | |
| | | } |
| | | } |
| | | if (bl) |
| | | } |
| | | if (bl) |
| | | { |
| | | // 判断当前巷道(组)是否有空余储位 |
| | | |
| | | var locateCount = db.Queryable<SysStorageLocat>().Count(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l); |
| | | |
| | | var bindNum = db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.EndRoadway == l) |
| | | .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count(); |
| | | if (locateCount - bindNum > 0) |
| | | { |
| | | // 判断当前巷道(组)是否有空余储位 |
| | | |
| | | var locateCount = db.Queryable<SysStorageLocat>().Count(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l); |
| | | |
| | | var bindNum = db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.EndRoadway == l) |
| | | .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count(); |
| | | if (locateCount - bindNum > 0) |
| | | { |
| | | return l; |
| | | } |
| | | return l; |
| | | } |
| | | } |
| | | } |
| | |
| | | var db = DataContext.Db; |
| | | |
| | | // 判断当前巷道(组)是否有空余储位 |
| | | var locateList = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == roadwayNo && areaList.Contains(m.AreaNo)).ToList(); |
| | | var locateList = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == roadwayNo && areaList.Contains(m.AreaNo) && m.Status == "0").ToList(); |
| | | if (locateList.Count(m => m.Status == "0") > 0) |
| | | { |
| | | var bl = GetLocateASCOrDesc(roadwayNo); |
| | |
| | | var locate = db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.RoadwayNo == roadStr); |
| | | var a = locate.LocatNo.Substring(2,2);//储位列 |
| | | var b = locate.AisleOne.Substring(2, 2);//通道口列 |
| | | return int.Parse(a) < int.Parse(b); |
| | | return int.Parse(a) > int.Parse(b); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | var locatList2 = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == locate.RoadwayNo && m.Column > a).ToList(); |
| | | if (bl) |
| | | { |
| | | if (locatList1.Count(m => str2.Contains(m.Status)) > 0) |
| | | { |
| | | return false; |
| | | } |
| | | if (locatList2.Count(m => str1.Contains(m.Status)) > 0) |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (locatList1.Count(m => str1.Contains(m.Status)) > 0) |
| | | { |
| | | return false; |
| | |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (locatList1.Count(m => str2.Contains(m.Status)) > 0) |
| | | { |
| | | return false; |
| | | } |
| | | if (locatList2.Count(m => str1.Contains(m.Status)) > 0) |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | |
| | |
| | | /// <param name="areaList">区域集合</param> |
| | | /// <param name="isRoadway">是否指定巷道</param> |
| | | /// <returns></returns> |
| | | private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false ,string houseNo = "W01") |
| | | private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false ,string houseNo = "W02") |
| | | { |
| | | try |
| | | { |