wangxinhui
16 小时以前 39d468b76e60c05ffcdf749f7ed1d3c443d542f8
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs
@@ -29,7 +29,7 @@
        /// <summary>
        /// åˆ†é…è´§ä½
        /// </summary>
        public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId, Dt_StockInfo? stockInfo = null)
        public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId, Dt_StockInfo? stockInfo = null, Dt_ProStockInfo? proStockInfo=null)
        {
            Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId);
            if (warehouse == null)
@@ -47,7 +47,7 @@
            return warehouse.WarehouseCode switch
            {
                "LLDCP" or  "LLDFL" => AssignLocation(roadwayNo),
                "LLDCP" or  "LLDFL" => AssignLocation(roadwayNo, proStockInfo),
                "LLDYL" => AssignLocationYL(roadwayNo, palletTypeInfo, stockInfo),
                _ => throw new Exception($"未找到仓库货位分配方法")
            };
@@ -61,7 +61,7 @@
        /// </summary>
        /// <param name="roadwayNo"></param>
        /// <returns></returns>
        public Dt_LocationInfo? AssignLocation(string roadwayNo)
        public Dt_LocationInfo? AssignLocation(string roadwayNo,Dt_ProStockInfo proStockInfo)
        {
            lock (_locker)
            {
@@ -81,8 +81,15 @@
                    { nameof(Dt_LocationInfo.Depth),OrderByType.Desc },
                    { nameof(Dt_LocationInfo.Row),OrderByType.Asc }
                };
                return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//查询空货位信息并排除5分钟内分配的货位,根据层、列、深度、行排序
                if (proStockInfo?.ProHeight>0 && proStockInfo?.ProHeight <= 1500)
                {
                    return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//查询空货位信息并排除5分钟内分配的货位,根据层、列、深度、行排序
                }
                else
                {
                    return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && x.Layer != 1 && x.Layer != 8 && !lockLocations.Contains(x.LocationCode), orderBy);//查询空货位信息并排除5分钟内分配的货位,根据层、列、深度、行排序
                }
            }
        }
        /// <summary>
@@ -125,10 +132,15 @@
                        }
                        //查询空货位信息并排除5分钟内分配的货位,根据层、列、深度、行排序
                        List<Dt_LocationInfo> locationInfosMedium = BaseDal.QueryData(x => x.LocationType == LocationTypeEnum.MediumPallet.ObjToInt() && x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);
                        Dt_LocationInfo locationInfo = new Dt_LocationInfo();
                        Dt_LocationInfo? locationInfo = null;
                        foreach (var item in locationInfosMedium)
                        {
                            if (item.Layer == 7 || item.Layer == 8)
                            if (LayerLimit && (item.Layer == 7 || item.Layer == 8))
                            {
                                locationInfo = item;
                                break;
                            }
                            if (!LayerLimit && item.Columns<=6 && item.Layer != 7 && item.Layer != 8)
                            {
                                locationInfo = item;
                                break;