From 87d55df7b7446d7c4c3532a2dd2e78f72574e34b Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-5BIMHQ3>
Date: 星期三, 21 二月 2024 08:23:53 +0800
Subject: [PATCH] Merge branch 'master' into wxw

---
 Wms/WMS.BLL/Logic/AllotLocation.cs |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/Wms/WMS.BLL/Logic/AllotLocation.cs b/Wms/WMS.BLL/Logic/AllotLocation.cs
index 4e7f3a8..eb574c4 100644
--- a/Wms/WMS.BLL/Logic/AllotLocation.cs
+++ b/Wms/WMS.BLL/Logic/AllotLocation.cs
@@ -63,7 +63,7 @@
 
                             //鏌ヨ璇ュ贩閬撳苟涓旀爣蹇椾负姝e父鐨勭殑鍌ㄤ綅
                             roadwayList.Add(roadway);
-                            var locate = GetLocateByRoadways(roadwayList,areaList);
+                            var locate = GetLocateByRoadways(roadwayList,areaList,true);
                             if (locate == null)
                             {
                                 throw new Exception($"{roadwayNo}宸烽亾娌℃湁鍚堥�傜殑绌哄偍浣�");
@@ -107,8 +107,9 @@
         /// </summary>
         /// <param name="roadways">宸烽亾闆嗗悎</param>
         /// <param name="areaList">鍖哄煙闆嗗悎</param>
+        /// <param name="isRoadway">鏄惁鎸囧畾宸烽亾</param>
         /// <returns></returns>
-        private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList)
+        private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false)
         {
             try
             {
@@ -185,11 +186,15 @@
                     //鍙栧悇宸烽亾鎵�鏈夋帓绗竴涓悎閫備綅
                     foreach (var l in roadways)
                     {
-                        //濡傛灉涓婃鏄綋鍓嶅贩閬撳垯璺冲嚭
-                        if (log != null && l.RoadwayNo == log.RoadwayNo)
+                        if (!isRoadway)
                         {
-                            continue;
+                            //濡傛灉涓婃鏄綋鍓嶅贩閬撳垯璺冲嚭
+                            if (log != null && l.RoadwayNo == log.RoadwayNo)
+                            {
+                                continue;
+                            }
                         }
+                        
                         //鍙栧綋鍓嶅贩鏈�浼樹綅缃�
                         locate = GetLocateByRoadway(l.RoadwayNo, topOrBom, leftOrRight, areaList);
                         //褰撳墠宸锋湁浣嶇疆鍒欓��鍑�
@@ -199,11 +204,14 @@
                         }
                     }
                     //濡傛灉璺冲贩閬撳苟涓旀湭鎵惧埌鍚堥�傜┖鍌ㄤ綅,鍒欒烦鍒版渶鍚庝竴娆′娇鐢ㄧ殑宸烽亾鏌ヨ
-                    if (locate == null)
+                    if (!isRoadway)
                     {
-                        if (log != null)
+                        if (locate == null)
                         {
-                            locate = GetLocateByRoadway(log.RoadwayNo, topOrBom, leftOrRight, areaList);
+                            if (log != null)
+                            {
+                                locate = GetLocateByRoadway(log.RoadwayNo, topOrBom, leftOrRight, areaList);
+                            }
                         }
                     }
                 }
@@ -212,6 +220,10 @@
                     foreach (var item in roadways)
                     {
                         locate = GetLocateByRoadway(item.RoadwayNo, topOrBom, leftOrRight, areaList);
+                        if (locate != null)
+                        {
+                            break;
+                        }
                     }
                 }
 
@@ -246,7 +258,7 @@
                 sql += "order by ";
                 sql += topOrBom == 0 ? "Layer desc, " : "Layer, ";
                 sql += leftOrRight == 0 ? "[Column], " : "[Column] desc, ";
-                sql += " Row desc; ";
+                sql += " Row desc Depth desc; ";
 
 
                 var locateList = db.Ado.SqlQuery<SysStorageLocat>(sql);

--
Gitblit v1.8.0