From 4dd24c39a6c0e598b72c1a22eebec3ef6f66bbef Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 10 一月 2025 11:49:03 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs |   71 ++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 26 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
index 5fc6872..614a589 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
@@ -93,7 +93,7 @@
                     { nameof(Dt_LocationInfo.Row),OrderByType.Asc }
                 };
 
-                return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
+                return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
             }
         }
 
@@ -165,6 +165,10 @@
                 }
 
                 Dt_LocationInfo? nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
+                if(location.RoadwayNo == "SC01_BC")
+                {
+                    nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
+                }
                 if (nearLocation != null)
                 {
                     List<Dt_LocationInfo> nearLocations = GetGroupLocations(locationInfos, nearLocation);
@@ -337,39 +341,48 @@
                         nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
                     }
 
+                    if (location.RoadwayNo == "SC01_BC")
+                    {
+                        nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
+                    }
+
                     if (nearLocation != null)
                     {
                         List<Dt_LocationInfo> nearLocations = GetGroupLocations(locationInfos, nearLocation);
                         for (int i = 0; i < nearLocations.Count; i++)
                         {
-                            if (nearLocations[i].LocationType != palletType)
+                            List<int> palletTypes = palletTypeInfos.Select(x => x.PalletType).ToList();
+                            palletTypes.Add(0);
+                            if (palletTypes.Contains(nearLocations[i].LocationType))
                             {
-                                nearLocations[i].LocationType = palletType;
-                            }
+                                if (nearLocations[i].LocationType != palletType)
+                                {
+                                    nearLocations[i].LocationType = palletType;
+                                }
 
-                            if (locationStatus == LocationStatusEnum.Lock)
-                            {
-                                if (nearLocations[i].LocationStatus == LocationStatusEnum.InStock.ObjToInt())
+                                if (locationStatus == LocationStatusEnum.Lock)
                                 {
-                                    nearLocations[i].LocationStatus = LocationStatusEnum.InStockLock.ObjToInt();
+                                    if (nearLocations[i].LocationStatus == LocationStatusEnum.InStock.ObjToInt())
+                                    {
+                                        nearLocations[i].LocationStatus = LocationStatusEnum.InStockLock.ObjToInt();
+                                    }
+                                    else if (nearLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt())
+                                    {
+                                        nearLocations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt();
+                                    }
                                 }
-                                else if (nearLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt())
+                                else if (locationStatus == LocationStatusEnum.Free || locationStatus == LocationStatusEnum.InStock)
                                 {
-                                    nearLocations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt();
+                                    if (nearLocations[i].LocationStatus == LocationStatusEnum.InStockLock.ObjToInt())
+                                    {
+                                        nearLocations[i].LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+                                    }
+                                    else if (nearLocations[i].LocationStatus == LocationStatusEnum.FreeLock.ObjToInt())
+                                    {
+                                        nearLocations[i].LocationStatus = LocationStatusEnum.Free.ObjToInt();
+                                    }
                                 }
                             }
-                            else if (locationStatus == LocationStatusEnum.Free || locationStatus == LocationStatusEnum.InStock)
-                            {
-                                if (nearLocations[i].LocationStatus == LocationStatusEnum.InStockLock.ObjToInt())
-                                {
-                                    nearLocations[i].LocationStatus = LocationStatusEnum.InStock.ObjToInt();
-                                }
-                                else if (nearLocations[i].LocationStatus == LocationStatusEnum.FreeLock.ObjToInt())
-                                {
-                                    nearLocations[i].LocationStatus = LocationStatusEnum.Free.ObjToInt();
-                                }
-                            }
-
                         }
                         locations.AddRange(nearLocations);
                     }
@@ -430,9 +443,11 @@
         {
             List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location };
             int maxDepth = locationInfos.Max(x => x.Depth);
+            int row = location.Row;
             for (int j = location.Depth + 1; j <= maxDepth; j++)
             {
-                Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer);
+                row += 1;
+                Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
                 if (locationInfo != null)
                 {
                     groupLocations.Add(locationInfo);
@@ -441,7 +456,8 @@
 
             for (int j = location.Depth - 1; j >= 1; j--)
             {
-                Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer);
+                row -= 1;
+                Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
                 if (locationInfo != null)
                 {
                     groupLocations.Add(locationInfo);
@@ -461,9 +477,11 @@
 
             List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location };
             int maxDepth = locationInfos.Max(x => x.Depth);
+            int row = location.Row;
             for (int j = location.Depth + 1; j <= maxDepth; j++)
             {
-                Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer);
+                row += 1;
+                Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
                 if (locationInfo != null)
                 {
                     groupLocations.Add(locationInfo);
@@ -472,7 +490,8 @@
 
             for (int j = location.Depth - 1; j >= 1; j--)
             {
-                Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer);
+                row -= 1;
+                Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row);
                 if (locationInfo != null)
                 {
                     groupLocations.Add(locationInfo);

--
Gitblit v1.9.3