From af42a9904d1d3939da7fa0a00c3a7a2ced78258e Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期三, 21 五月 2025 17:26:18 +0800
Subject: [PATCH] 佳通问题优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs
index eeff55c..4f6d9a9 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs
@@ -210,6 +210,7 @@
                     .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);
 
+           // LogHelper.Info($"GetLocByItemCode=>鏍规嵁搴撳尯缂栫爜:{areaCode}锛岀墿鏂欑紪鐮�{ItemCode},鐗╂枡浼樺厛绾э紝鐗╂枡绛夌骇璁$畻鍑烘湁鎵樼洏璐т綅{JsonConvert.SerializeObject(queryable.ToList())}");
             //鍒ゆ柇闇�笉闇�鐗╂枡绛夌骇鏌ユ壘锛屽苟浼樺厛鍑哄簱浣欐枡
             if (string.IsNullOrEmpty(lev))
             {
@@ -219,9 +220,15 @@
             {
                 locs = queryable.Where((a, b, c) => c.LEV == lev && c.S_BS_TYPE == "浣欐枡").ToList();
             }
+           // LogHelper.Info($"GetLocByItemCode=>鏌ユ壘浣欐枡,{JsonConvert.SerializeObject(locs)}");
+
             //娌℃湁浣欐枡鍒欏鎵惧叏閮ㄧ墿鏂�             if (locs.Count == 0)
             {
+                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 && c.S_ITEM_CODE == ItemCode);
                 if (string.IsNullOrEmpty(lev))
                 {
                     locs = queryable.ToList();
@@ -230,6 +237,7 @@
                 {
                     locs = queryable.Where((a, b, c) => c.LEV == lev).ToList();
                 }
+               // LogHelper.Info($"GetLocByItemCode=>鏃犱綑鏂�鏌ユ壘鍏ㄩ儴{JsonConvert.SerializeObject(locs)}");
             }
 
             return locs;
@@ -521,6 +529,33 @@
             }
             return res;
         }
+
+        /// <summary>
+        /// 瑙i攣璐т綅
+        /// </summary>
+        /// <param name="loc"></param>
+        /// <returns></returns>
+        public static bool UnlockLoc(string loc)
+        {
+            var res = false;
+            var db = new SqlHelper<object>().GetInstance();
+            var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First();
+            try
+            {
+                db.BeginTran();
+                var lcrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == loc).ToList();
+                location.S_LOCK_STATE = "鏃�;
+                location.N_LOCK_STATE = 0;
+                db.Updateable(location).UpdateColumns(it => new {  it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
+                db.CommitTran();
+                res = true;
+            }
+            catch (Exception ex)
+            {
+                db.RollbackTran();
+            }
+            return res;
+        }
         /// <summary>
         /// 璐т綅缁戝畾瀹瑰櫒
         /// </summary>

--
Gitblit v1.9.1