From 39d468b76e60c05ffcdf749f7ed1d3c443d542f8 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期四, 30 四月 2026 17:13:05 +0800
Subject: [PATCH] 一堆需要求新增及更改

---
 项目代码/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
index 408d4bf..56ba257 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/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,7 +132,7 @@
                         }
                         //鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎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))
@@ -133,6 +140,11 @@
                                 locationInfo = item;
                                 break;
                             }
+                            if (!LayerLimit && item.Columns<=6 && item.Layer != 7 && item.Layer != 8)
+                            {
+                                locationInfo = item;
+                                break;
+                            }
                             //鑾峰彇鏇存敼搴撲綅
                             Dt_LocationInfo? nearLocation1;
                             Dt_LocationInfo? nearLocation2;

--
Gitblit v1.9.3