From 2f8733caf7ae5c94483fa332e0d3af69b61a0eb0 Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期四, 03 七月 2025 23:09:25 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs |   44 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 40 insertions(+), 4 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 0d6c69c..6238641 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs
@@ -332,7 +332,7 @@
             Dictionary<int, string> dics = new Dictionary<int, string>();
             foreach (var deviceInfo in devices)
             {
-                int mst = db.Queryable<WCSTask>().Where(a => a.S_TYPE.Contains("鐢垫") && state.Contains(a.S_B_STATE)).Count();
+                int mst = db.Queryable<WCSTask>().Where(a => a.S_TYPE.Contains("鐢垫") && state.Contains(a.S_B_STATE) && a.S_END_LOC == deviceInfo.TN_Location).Count();
                 dics.Add(mst, deviceInfo.TN_Location);
             }
             if (dics.Count > 0)
@@ -662,7 +662,7 @@
         {
             var res = false;
             var db = new SqlHelper<object>().GetInstance();
-          
+
             try
             {
                 var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First();
@@ -681,7 +681,7 @@
                 var count = db.Deleteable<LocCntrRel>().Where(it => cntrs.Contains(it.S_CNTR_CODE.Trim()) && it.S_LOC_CODE.Trim() == loc).ExecuteCommand();
                 LogHelper.Info($"Clear锛氬紑濮嬪垹闄ゅ鍣細{JsonConvert.SerializeObject(cntrs)}");
                 db.Deleteable<Container>().Where(it => cntrs.Contains(it.S_CODE)).ExecuteCommand();
-            
+
                 location.N_CURRENT_NUM = lcrList.Count - count;
                 location.S_LOCK_STATE = "鏃�;
                 location.N_LOCK_STATE = 0;
@@ -708,7 +708,43 @@
             }
             return res;
         }
-
+        /// <summary>
+        /// 瑙i攣璐т綅锛屽垹闄よ揣浣嶆墭鐩�+        /// </summary>
+        /// <param name="loc"></param>
+        /// <returns></returns>
+        public static bool UnlockLocDeleteCntrs(string loc)
+        {
+            var res = false;
+            var db = new SqlHelper<object>().GetInstance();
+            List<string> cntrs = null;int count = 0;
+            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();            
+                if (lcrList.Count > 0)
+                {
+                    cntrs = lcrList.Select(a => a.S_CNTR_CODE).ToList();
+                    LogHelper.Info($"UnlockLocDeleteCntrs锛氳揣浣峽loc}锛氭煡璇㈢粦瀹氭墭鐩榹cntrs}");
+                    LogHelper.Info($"UnlockLocDeleteCntrs锛氬紑濮嬪垹闄ゅ鍣細{JsonConvert.SerializeObject(cntrs)}");
+                    count = db.Deleteable<LocCntrRel>().Where(it => cntrs.Contains(it.S_CNTR_CODE.Trim()) && it.S_LOC_CODE.Trim() == loc).ExecuteCommand();
+                   
+                }
+             
+                location.N_CURRENT_NUM = lcrList.Count - count;
+                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>
         /// 瑙i攣璐т綅
         /// </summary>

--
Gitblit v1.9.1