Admin
2026-01-16 d5fe80c5cb7dc0b209d8fea9faa84c7ca5b20324
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs
@@ -1,4 +1,5 @@
using HslCommunication.WebSocket;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
@@ -10,6 +11,7 @@
using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
@@ -156,24 +158,40 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public string AccessingTunnel(int WarehouseId, int LocationType)
        {
            List<Dt_LocationInfo> locationData = BaseDal.QueryData(x => x.WarehouseId == WarehouseId);
            var roadwayGroups = locationData
                .Where(x => x.LocationType == LocationType)
                .GroupBy(x => x.RoadwayNo)
                .Select(g => new
                {
                    RoadwayNo = g.Key,
                    LocationCount = g.Count(),
                    AllLocations = g.ToList()
                })
                .OrderByDescending(g => g.LocationCount)  // æ”¹ä¸ºé™åºæŽ’序
                .FirstOrDefault();  // å–第一个(数量最多的)
            var roadwayGroups = locationData.Where(x => x.LocationType == LocationType).GroupBy(x => x.RoadwayNo)
            .Select(g => new
            {
                RoadwayNo = g.Key,
                LocationCount = g.Count(),
            }).OrderByDescending(g => g.LocationCount).ToList();
            return roadwayGroups.RoadwayNo;
            int minRequired = 15;
            if(WarehouseId== (int)WarehouseEnum.YMYL)
            {
                if (LocationType == 2) minRequired = 6;
                var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired);
                return selectedRoadway.RoadwayNo;
            }
            else
            {
                var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired);
                if(selectedRoadway != null)
                {
                    return selectedRoadway.RoadwayNo;
                }
                else
                {
                    selectedRoadway = roadwayGroups.FirstOrDefault(g => g.RoadwayNo =="5" && g.LocationCount != 0);
                }
                return selectedRoadway.RoadwayNo;
            }
        }