chengsc
2025-05-11 3a5257be69608f4301fe1a1e207db7d95cc4178c
Wms/WMS.BLL/Logic/AllotLocation.cs
@@ -38,8 +38,8 @@
                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())
            {
                // 判断当前巷道(组)是否有空余储位
                 
@@ -78,18 +78,18 @@
                            
                        }
                    }
                    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;
                    }
                }
            }
@@ -110,7 +110,7 @@
            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);
@@ -145,7 +145,7 @@
            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>
@@ -165,6 +165,17 @@
            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;
@@ -173,17 +184,6 @@
                {
                    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;
                
@@ -380,7 +380,7 @@
        /// <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
            {