wangxinhui
昨天 67348f250a1b7970059698002949a5e0a5f3c52f
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs
@@ -33,32 +33,25 @@
            {
                throw new Exception($"未找到仓库信息");
            }
            Dt_PalletTypeInfo? palletTypeInfo = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.PalletType == palletType && x.WarehouseId == warehouseId);
            if (palletTypeInfo == null)
            {
                if (warehouse.WarehouseCode == WarehouseEnum.HA153.ToString() && warehouse.WarehouseCode == WarehouseEnum.HA71.ToString() && warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
                {
                    palletTypeInfo = new Dt_PalletTypeInfo()
                    {
                        LocaitonCount = 1,
                        PalletType = 0,
                        IsOdd = false,
                    };
                }
                else
                    throw new Exception($"请配置托盘类型信息");
            }
            //Dt_PalletTypeInfo? palletTypeInfo = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.PalletType == palletType && x.WarehouseId == warehouseId);
            //if (palletTypeInfo == null)
            //{
            //    if (warehouse.WarehouseCode == WarehouseEnum.HA153.ToString() && warehouse.WarehouseCode == WarehouseEnum.HA71.ToString() && warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
            //    {
            //        palletTypeInfo = new Dt_PalletTypeInfo()
            //        {
            //            LocaitonCount = 1,
            //            PalletType = 0,
            //            IsOdd = false,
            //        };
            //    }
            //    else
            //        throw new Exception($"请配置托盘类型信息");
            //}
            return warehouse.WarehouseCode switch
            {
                "HA57" => AssignLocation_BC(roadwayNo, palletType, palletTypeInfo, beRelocationCode, heightType),
                "HA58" => AssignLocation_PP(roadwayNo, palletType, palletTypeInfo, beRelocationCode),
                "HA152" => AssignLocation_GM(roadwayNo, palletType, palletTypeInfo, beRelocationCode),
                "HA64" => AssignLocation_CSJ(roadwayNo, palletType, palletTypeInfo, beRelocationCode),
                "HA154" => AssignLocation_ZH(roadwayNo, palletType, palletTypeInfo, beRelocationCode),
                "HA153" => AssignLocation(roadwayNo),
                "HA71" or "HA72" or "HA73" => AssignLocation(roadwayNo),
                "HA60" => AssignLocation(roadwayNo),
                "LLDCP" or "LLDYL"=> AssignLocation(roadwayNo),
                _ => throw new Exception($"未找到仓库货位分配方法")
            };
        }
@@ -87,8 +80,9 @@
                Dictionary<string, OrderByType> orderBy = new Dictionary<string, OrderByType>()
                {
                    { nameof(Dt_LocationInfo.Column),OrderByType.Desc },
                    { nameof(Dt_LocationInfo.Layer),OrderByType.Asc },
                    { nameof(Dt_LocationInfo.Column),OrderByType.Asc },
                    { nameof(Dt_LocationInfo.Depth),OrderByType.Desc },
                    { nameof(Dt_LocationInfo.Row),OrderByType.Asc }
                };
@@ -273,21 +267,21 @@
            List<Dt_PalletTypeInfo> palletTypeInfos = _basicRepository.PalletTypeInfoRepository.QueryData(x => x.WarehouseId == warehousId);
            Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehousId);
            Dt_PalletTypeInfo? palletTypeInfo = palletTypeInfos.FirstOrDefault(x => x.PalletType == palletType && x.WarehouseId == warehousId);
            if (palletTypeInfo == null || warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
            {
                if (warehouse.WarehouseCode == WarehouseEnum.HA153.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA71.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
                {
                    palletTypeInfo = new Dt_PalletTypeInfo()
                    {
                        LocaitonCount = 1,
                        PalletType = 0,
                        IsOdd = false,
                    };
                }
                else
                    throw new Exception($"请配置托盘类型信息");
            }
            //Dt_PalletTypeInfo? palletTypeInfo = palletTypeInfos.FirstOrDefault(x => x.PalletType == palletType && x.WarehouseId == warehousId);
            //if (palletTypeInfo == null || warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
            //{
            //    if (warehouse.WarehouseCode == WarehouseEnum.HA153.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA71.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
            //    {
            //        palletTypeInfo = new Dt_PalletTypeInfo()
            //        {
            //            LocaitonCount = 1,
            //            PalletType = 0,
            //            IsOdd = false,
            //        };
            //    }
            //    else
            //        throw new Exception($"请配置托盘类型信息");
            //}
            List<Dt_LocationInfo> locations = GetGroupLocations(locationInfos, location);
            if (locationInfos.Max(x => x.Depth) < 3)
            {
@@ -332,14 +326,14 @@
                if (palletTypeInfos.FirstOrDefault(x => x.LocaitonCount == 2) != null)
                {
                    Dt_LocationInfo? nearLocation;
                    if (palletTypeInfo.IsOdd)
                    {
                        nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
                    }
                    else
                    {
                    //if (palletTypeInfo.IsOdd)
                    //{
                    //    nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
                    //}
                    //else
                    //{
                        nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
                    }
                    //}
                    if (nearLocation!=null && location.RoadwayNo.Contains("BC"))
                    {