| | |
| | | /// <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) |
| | |
| | | |
| | | return warehouse.WarehouseCode switch |
| | | { |
| | | "LLDCP" or "LLDFL" => AssignLocation(roadwayNo), |
| | | "LLDCP" or "LLDFL" => AssignLocation(roadwayNo, proStockInfo), |
| | | "LLDYL" => AssignLocationYL(roadwayNo, palletTypeInfo, stockInfo), |
| | | _ => throw new Exception($"æªæ¾å°ä»åºè´§ä½åé
æ¹æ³") |
| | | }; |
| | |
| | | /// </summary> |
| | | /// <param name="roadwayNo"></param> |
| | | /// <returns></returns> |
| | | public Dt_LocationInfo? AssignLocation(string roadwayNo) |
| | | public Dt_LocationInfo? AssignLocation(string roadwayNo,Dt_ProStockInfo proStockInfo) |
| | | { |
| | | lock (_locker) |
| | | { |
| | |
| | | { 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> |
| | |
| | | } |
| | | //æ¥è¯¢ç©ºè´§ä½ä¿¡æ¯å¹¶æé¤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 (LayerLimit && (item.Layer == 7 || item.Layer == 8)) |
| | |
| | | locationInfo = item; |
| | | break; |
| | | } |
| | | if (!LayerLimit && item.Columns<=6 && item.Layer != 7 && item.Layer != 8) |
| | | { |
| | | locationInfo = item; |
| | | break; |
| | | } |
| | | //è·åæ´æ¹åºä½ |
| | | Dt_LocationInfo? nearLocation1; |
| | | Dt_LocationInfo? nearLocation2; |