From 23b4700a5a8555684de58b5d80ff06ae387432f2 Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期五, 16 五月 2025 17:24:49 +0800
Subject: [PATCH] 流程开发

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/wms/LocationHelper.cs |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/wms/LocationHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/wms/LocationHelper.cs
index 4e70816..e620c3f 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/wms/LocationHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/wms/LocationHelper.cs
@@ -79,7 +79,7 @@
                     }
                 }
 
-                //绌烘墭鍏ュ簱锛岀浉鍚岀墿鏂欏唴娴嬫帓鐨勮揣浣�+                //鎵樼洏鍏ュ簱锛岀浉鍚岀墿鏂欏唴娴嬫帓鐨勮揣浣�                 var Locs = GetLocByItemCode(areaCode, itemCode, new int[] { 1, 4 }).OrderByDescending(b => b.N_COL).ToList();
 
                 if (Locs.Count > 0)
@@ -115,7 +115,7 @@
                 //濡傛灉娌℃湁鎵惧埌鐩稿悓鐗╂枡鐨勫渚ц揣浣嶏紝鎵句竴涓唴娴嬬┖璐т綅
                 if (location == null)
                 {
-                    location = GetEmptyLocByItemCode(areaCode, new int[] { 1, 4 });
+                    location = GetEmptyLocByItemCode(areaCode, new List<int> { 1, 4 });
                 }
                 return location;
             }
@@ -167,14 +167,24 @@
         /// <param name="areaCode">搴撳尯缂栫爜</param>
         /// <param name="row">璐т綅鎺�/param>
         /// <returns></returns>
-        internal static Location GetEmptyLocByItemCode(string areaCode, int[] row)
+        internal static Location GetEmptyLocByItemCode(string areaCode, List<int> row)
         {
             var db = new SqlHelper<object>().GetInstance();
             Location location = null;
             try
             {
+                //鍒ゆ柇褰撳墠鎺掑彲鐢ㄨ揣浣嶅皬浜� 濡傛灉灏忎簬2鍒欎笉鍏佽鍏�+                for (int i = row.Count(); i < 0; i--)
+                {
+                    var locationNum = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_AREA_CODE == areaCode && a.N_ROW == row[i]).ToList().Count;
+                    if (locationNum <= 2)
+                    {
+                        row.RemoveAt(i);
+                    }
+                }
 
                 location = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_AREA_CODE == areaCode && row.Contains(a.N_ROW)).First();
+
                 return location;
             }
             catch (Exception ex)
@@ -322,7 +332,7 @@
             return result;
 
         }
-
+      
         /// <summary>
         /// 鏍规嵁璐т綅闆嗗悎鑾峰彇鏈夊鍣ㄧ殑璐т綅
         /// </summary>

--
Gitblit v1.9.1