From 71129e21a35a2d4be75ee0f1e96e2c51ced5f23b Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期四, 05 六月 2025 17:25:46 +0800
Subject: [PATCH] 大洋原材料库开发

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/wms/LocationHelper.cs |   49 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 6 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 08c8a63..dec8e19 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)
@@ -127,12 +127,47 @@
 
         }
 
-
-
         #endregion
 
         /// <summary>
-        /// 鏍规嵁鐗╂枡鑾峰緱瀵瑰簲鐨勫唴娴嬭揣浣�+        /// 鏍规嵁鐗╂枡鍜屾帓鍙疯幏寰楀搴旂殑鏈攣瀹氭墭鐩樿揣浣�+        /// </summary>
+        /// <param name="areaCode">搴撳尯缂栫爜</param>
+        /// <param name="row">璐т綅鎺�/param>
+        /// <param name="ItemCode">鐗╂枡缂栫爜</param>
+        /// <returns></returns>
+        internal static List<Location> GetLocByItemCodeOrderyTime(string areaCode, string ItemCode)
+        {
+            List<Location> locs;
+            var db = new SqlHelper<object>().GetInstance();
+           
+            try
+            {
+                locs = db.Queryable<Location>()
+                   .LeftJoin<LocCntrRel>((a, b) => a.S_CODE == b.S_LOC_CODE)
+                   .LeftJoin<CntrItemDetail>((a, b, c) => b.S_CNTR_CODE == c.S_CNTR_CODE)
+                   .Where((a, b, c) => a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.S_AREA_CODE == areaCode 
+                    && c.S_ITEM_CODE == ItemCode && a.N_LOCK_STATE == 0)
+                   .GroupBy((a, b, c) => new { a.S_CODE, c.T_INBOUND_TIME ,a.N_POS })
+             
+                   .OrderBy((a, b, c) => c.T_INBOUND_TIME)
+                   .OrderByDescending((a, b, c) => a.N_POS)
+                   .ToList();
+
+       
+
+                return locs;
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info($"GetLocByItemCode Error:{ex}");
+                throw;
+            }
+
+        }
+
+        /// <summary>
+        /// 鏍规嵁鐗╂枡鍜屾帓鍙疯幏寰楀搴旂殑鏈攣瀹氭墭鐩樿揣浣�骞舵寜鎵樼洏鐗╂枡琛ㄦ椂闂村垎缁�         /// </summary>
         /// <param name="areaCode">搴撳尯缂栫爜</param>
         /// <param name="row">璐т綅鎺�/param>
@@ -147,7 +182,7 @@
                 var queryable = db.Queryable<Location>()
                    .LeftJoin<LocCntrRel>((a, b) => a.S_CODE == b.S_LOC_CODE)
                    .LeftJoin<CntrItemDetail>((a, b, c) => b.S_CNTR_CODE == c.S_CNTR_CODE)
-                   .Where((a, b, c) => a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.S_AREA_CODE == areaCode && row.Contains(a.N_ROW) && c.S_ITEM_CODE == ItemCode);
+                   .Where((a, b, c) => a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.S_AREA_CODE == areaCode && row.Contains(a.N_ROW) && c.S_ITEM_CODE == ItemCode && a.N_LOCK_STATE == 0);
 
                 locs = queryable.ToList();
 
@@ -171,6 +206,7 @@
         {
             var db = new SqlHelper<object>().GetInstance();
             Location location = null;
+
             try
             {
                 //鍒ゆ柇褰撳墠鎺掑彲鐢ㄨ揣浣嶅皬浜� 濡傛灉灏忎簬2鍒欎笉鍏佽鍏�@@ -332,7 +368,7 @@
             return result;
 
         }
-      
+
         /// <summary>
         /// 鏍规嵁璐т綅闆嗗悎鑾峰彇鏈夊鍣ㄧ殑璐т綅
         /// </summary>
@@ -470,6 +506,7 @@
                 model.S_LOCK_STATE = Location.GetLockStateStr(lockState);
                 res = db.Updateable(model).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0;
             }
+
             return res;
         }
 

--
Gitblit v1.9.1