From 214000e2677e063284ba21e05af38718f60de9a2 Mon Sep 17 00:00:00 2001
From: zxx <Zxx@HanInfo>
Date: 星期一, 07 七月 2025 14:00:48 +0800
Subject: [PATCH] 1

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

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs
index 4a375c0..07d6121 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs
@@ -1,4 +1,6 @@
 锘縰sing HH.WCS.XiaoMi.util;
+using Newtonsoft.Json;
+using Opc.Ua;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
@@ -341,6 +343,7 @@
             var res = false;
             var db = new SqlHelper<object>().GetInstance();
             var model = db.Queryable<Location>().Where(a => a.S_CODE == loc).First();
+            LogHelper.Info("LockLoc 璐т綅鍙傛暟=====锛� + JsonConvert.SerializeObject(model));
             if (model != null && model.S_LOCK_STATE.Trim() == "鏃�)
             {
                 model.N_LOCK_STATE = lockState;
@@ -404,6 +407,29 @@
             }
             return res;
         }
+        public static bool UnBindingLocHj(string loc, string frame)
+        {
+            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();
+                var count = db.Deleteable<LocCntrRel>().Where(it => frame==it.S_FRAME_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.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
+                db.CommitTran();
+                res = true;
+            }
+            catch (Exception ex)
+            {
+                db.RollbackTran();
+            }
+            return res;
+        }
         /// <summary>
         /// 璐т綅缁戝畾瀹瑰櫒
         /// </summary>
@@ -443,7 +469,42 @@
             }
             return res;
         }
+        /// <summary>
+        /// 璐т綅缁戝畾璐ф灦 灏忕背
+        /// </summary>
+        /// <param name="loc"></param>
+        /// <param name="cntrs"></param>
+        /// <returns></returns>
+        public static bool BindingLocHj(string loc, string frame)
+        {
+            var res = false;
+            var db = new SqlHelper<object>().GetInstance();
+            var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First();
+            try
+            {
+                var lcrList = db.Queryable<LocCntrRel>().Includes(a => a.Container).Where(a => a.S_LOC_CODE.Trim() == loc).ToList();
+                db.BeginTran();
+                int count = 0;
+                if (lcrList.Count(b => b.S_CNTR_CODE.Trim() == frame) == 0)
+                {
+                    db.Insertable<LocCntrRel>(new LocCntrRel { S_LOC_CODE = loc, S_FRAME_CODE = frame }).ExecuteCommand();
+                    count++;
+                }
+                location.N_CURRENT_NUM = lcrList.Count + count;
+                location.N_LOCK_STATE = 0;
+                location.S_LOCK_STATE = "鏃�;
+                db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
 
+                db.CommitTran();
+                res = true;
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.Message);
+                db.RollbackTran();
+            }
+            return res;
+        }
         /// <summary>
         /// 鍒ゆ柇閫昏緫搴撳尯鏄惁鏈夊彲鐢ㄨ揣浣�         /// </summary>

--
Gitblit v1.9.1