From 00e64cba66377cb75c9c947908627fe9f631746e Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期三, 21 一月 2026 13:53:14 +0800
Subject: [PATCH] '手动上传'

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs |   59 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 48 insertions(+), 11 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
index c03fd0e..2b89e47 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
@@ -163,7 +163,7 @@
         public string AccessingTunnel(int WarehouseId, int LocationType)
         {
             List<Dt_LocationInfo> locationData = BaseDal.QueryData(x => x.WarehouseId == WarehouseId);
-            var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.EnableStatus== (int)EnableEnum.Enable).GroupBy(x => x.RoadwayNo)
+            var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.EnableStatus== (int)EnableStatusEnum.Normal).GroupBy(x => x.RoadwayNo)
             .Select(g => new
             {
                 RoadwayNo = g.Key,
@@ -176,22 +176,21 @@
                 if (LocationType == 2) minRequired = 6;
 
                 var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired);
-                return selectedRoadway.RoadwayNo;
+                if(selectedRoadway!=null) return selectedRoadway.RoadwayNo;
+
             }
             else
             {
                 var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired);
-                if(selectedRoadway != null)
+                if(selectedRoadway == null)
                 {
-                    return selectedRoadway.RoadwayNo;
+                    selectedRoadway = roadwayGroups.FirstOrDefault(g => g.RoadwayNo == "5" && g.LocationCount != 0);
 
                 }
-                else
-                {
-                    selectedRoadway = roadwayGroups.FirstOrDefault(g => g.RoadwayNo =="5" && g.LocationCount != 0);
-                }
-                return selectedRoadway.RoadwayNo;
+                if(selectedRoadway != null) return selectedRoadway.RoadwayNo;
             }
+
+            return "0";
         }
 
 
@@ -227,7 +226,8 @@
                     if (emptyLocations[i].Depth == 1)//鍒ゆ柇鏄惁1娣辫揣浣�
                     {
                         //鏌ヨ娣卞簱浣�
-                        int emprow = emptyLocations[i].Row == 2 ? 1 : 4;
+                        //int emprow = emptyLocations[i].Row == 2 ? 1 : 4;
+                        int emprow = judgmentRow(emptyLocations[i].RoadwayNo,emptyLocations[i].Row);
 
                         Dt_LocationInfo? sencondDepthLocationShen = emptyLocations.FirstOrDefault(x => x.Row == emprow && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column);
                         if (sencondDepthLocationShen != null && sencondDepthLocationShen.LocationStatus == LocationStatusEnum.Free.ObjToInt())
@@ -242,13 +242,18 @@
                             {
                                 locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode });
                                 return emptyLocations[i];
+                            }else if (emptyLocations[i].RoadwayNo=="5" && emptyLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt())
+                            {
+                                locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode });
+                                return emptyLocations[i];
                             }
                         }
                     }
                     else
                     {
                         //鏌ヨ2娣辫揣浣嶅搴旂殑1娣辫揣浣嶆槸鍚︿负绌�
-                        int emprow = emptyLocations[i].Row == 4 ? 3 : 2;
+                        //int emprow = emptyLocations[i].Row == 4 ? 3 : 2;
+                        int emprow = judgmentRow(emptyLocations[i].RoadwayNo, emptyLocations[i].Row);
 
                         Dt_LocationInfo? sencondDepthLocationQian = emptyLocations.FirstOrDefault(x => x.Row == emprow && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column);
                         if (sencondDepthLocationQian != null && sencondDepthLocationQian.LocationStatus == LocationStatusEnum.Free.ObjToInt())
@@ -262,6 +267,38 @@
             }
         }
 
+        private int judgmentRow(string RoadwayNo, int locrow)
+        {
+            if (RoadwayNo == "1" || RoadwayNo == "3")
+            {
+                if(locrow==1 || locrow == 4)
+                {
+                    return locrow == 1 ? 2 : 3;
+                }
+                else
+                {
+                    return locrow == 2 ? 1 : 4;
+                }
+               
+            }
+            else if (RoadwayNo == "2" || RoadwayNo == "4")
+            {
+                if (locrow == 5 || locrow == 8)
+                {
+                    return locrow == 5 ? 6 : 7;
+                }
+                else
+                {
+                    return locrow == 6 ? 5 : 8;
+                }
+                    
+            }
+            else
+            {
+                return 0;
+            }
+        }
+
         public class LocationCache
         {
             public string LocationCode { get; set; }

--
Gitblit v1.9.3