From 1b6bf29ff7daa1987de65940af52f452cabd6881 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期二, 15 七月 2025 17:27:50 +0800
Subject: [PATCH] 优化AGV任务部分日志、货位绑定内部方法

---
 wms/LocationHelper.cs |   97 +++++++-----------------------------------------
 1 files changed, 15 insertions(+), 82 deletions(-)

diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs
index ef584a3..c31f32c 100644
--- a/wms/LocationHelper.cs
+++ b/wms/LocationHelper.cs
@@ -98,22 +98,6 @@
                         {
                             site = Location.S_AGV_SITE;
                         }
-                        //if (Location.N_CURRENT_NUM == 1)
-                        //{
-                        //    site = Location.S_AGV_SITE2;
-                        //}
-                        //if (Location.N_CURRENT_NUM == 2)
-                        //{
-                        //    site = Location.S_AGV_SITE3;
-                        //}
-                        //if (Location.N_CURRENT_NUM == 3)
-                        //{
-                        //    site = Location.S_AGV_SITE4;
-                        //}
-                        //if (Location.N_CURRENT_NUM == 4)
-                        //{
-                        //    site = Location.S_AGV_SITE5;
-                        //}
                     }
                 }
             }
@@ -124,58 +108,6 @@
         {
             var db = new SqlHelper<object>().GetInstance();
             return db.Queryable<TN_Location>().Where(a => a.S_CODE.Trim() == code).First();
-        }
-
-        /// <summary>
-        /// 鍏ュ簱閿佸畾缁堢偣锛屽嚭搴撻攣瀹氳捣鐐�-        /// 浣犲垱寤轰换鍔¢攣瀹氳揣浣嶇殑鏃跺�锛屾妸閿佺殑鏉ユ簮灏辨槸浠诲姟鍙蜂篃鍐欎笂鍘伙紙鍔犻攣鐨勬柟娉曞姞涓弬鏁帮紝鍙┖鐨勫弬鏁帮級锛岃В閿佺殑鏃跺�鎶婃潵婧愮疆绌恒�
-        /// </summary>
-        /// <param name="loc"></param>
-        /// <param name="lockState">1:鍏ュ簱閿併�2:鍑哄簱閿併�2:鍏跺畠閿�/param>
-        /// <param name="lockSource">閿佺殑鏉ユ簮=浠诲姟鍙�/param>
-        /// <returns></returns>
-        public static bool LockLoc(ref TN_Location loc, int lockState, string lockSource = "") {
-            if (loc == null || loc.N_LOCK_STATE != 0) {
-                return false;
-            }
-
-            if (loc != null && loc.N_LOCK_STATE == 0) {
-                loc.N_LOCK_STATE = lockState;
-                loc.S_LOCK_STATE = TN_Location.GetLockStateStr(lockState);
-                loc.S_LOCK_OP = lockSource;
-                loc.T_MODIFY = System.DateTime.Now;
-            }
-
-            return true;
-        }
-
-        /// <summary>
-        /// 鍏ュ簱閿佸畾缁堢偣锛屽嚭搴撻攣瀹氳捣鐐�-        /// </summary>
-        /// <remarks>
-        /// 鍒涘缓浠诲姟閿佸畾璐т綅鐨勬椂鍊欙紝鎶婇攣鐨勬潵婧愬氨鏄换鍔″彿涔熷啓涓婂幓锛堝姞閿佺殑鏂规硶鍔犱釜鍙傛暟锛屽彲绌虹殑鍙傛暟锛夛紝瑙i攣鐨勬椂鍊欐妸鏉ユ簮缃┖
-        /// </remarks>
-        /// <param name="loc"></param>
-        /// <param name="lockState">1:鍏ュ簱閿併�2:鍑哄簱閿併�3:鍏跺畠閿�/param>
-        /// <param name="lockSource">閿佺殑鏉ユ簮=浠诲姟鍙�/param>
-        /// <returns></returns>
-        public static bool LockLoc(string loc, int lockState, string lockSource = "")
-        {
-            var res = false;
-            var db = new SqlHelper<object>().GetInstance();
-            var model = db.Queryable<TN_Location>().Where(a => a.S_CODE == loc).First();
-            LogHelper.Info($"閿佽揣浣峽loc},鐘舵�{lockState},淇℃伅" + JsonConvert.SerializeObject(model));
-            if (model != null && model.N_LOCK_STATE == 0)
-            {
-                model.N_LOCK_STATE = lockState;
-                model.S_LOCK_STATE = TN_Location.GetLockStateStr(lockState);
-                model.S_LOCK_OP = lockSource;
-                model.T_MODIFY = System.DateTime.Now;
-                res = db.Updateable<TN_Location>(model).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY }).ExecuteCommand() > 0;
-            }
-            LogHelper.Info($"閿佽揣浣峽loc}杩斿洖{res}");
-
-            return res;
         }
 
         /// <summary>
@@ -223,7 +155,6 @@
                     LogHelper.Info($"璐т綅鏃犻渶瑙g粦瀹瑰櫒锛屽湪鏁版嵁搴撲腑鏈壘鍒皗JsonConvert.SerializeObject(cntrs)}鐩稿叧鐨勮揣浣嶅鍣ㄥ叧绯昏〃淇℃伅");
                 }
                 cntrs = lcrList.Select(a => a.S_CNTR_CODE).ToList();
-
 
                 var log = JsonConvert.SerializeObject(cntrs);
                 var location = db.Queryable<TN_Location>().First(a => a.S_CODE == loc);
@@ -290,34 +221,36 @@
             var logs = $"璐т綅锛歿loc}锛屽鍣細{JsonConvert.SerializeObject(cntrs)}";
             try
             {
+                // 鍒犻櫎宸茬粡缁戝畾杩囩殑瀹瑰櫒璁板綍
                 var lcrList = db.Queryable<TN_Loc_Container>().Where(a => cntrs.Contains(a.S_CNTR_CODE) && a.S_LOC_CODE == loc).ToList();
-
-                if (lcrList.Count > 0)
-                {
+                if (lcrList.Count > 0) {
                     cntrs = cntrs.Except(lcrList.Select(a => a.S_CNTR_CODE).ToList()).ToList();
                 }
 
                 var bindLocCntList = new List<TN_Loc_Container>();
-                foreach (var item in cntrs)
-                {
-                    bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item });
-                }
+                foreach (var item in cntrs) {
+                    // 閽堝瀹瑰櫒绫诲瀷娣诲姞鐨勬柊閫昏緫
+                    var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == item).First();
 
+                    if (cntr == null) {
+                        LogHelper.Info($"璐т綅瑙g粦鏃讹紝瀹瑰櫒{item}娌℃湁鍦ㄥ鍣ㄤ俊鎭〃涓煡鍒帮紝涓嶈褰曞鍣ㄧ被鍨�);
+                        bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item });
+                    }
+                    else {
+                        bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item, S_CNTR_TYPE = cntr.S_TYPE });
+                    }
+                }
 
                 var log = JsonConvert.SerializeObject(bindLocCntList);
 
                 using (var tran = db.Ado.UseTran())
                 {
-                    if (db.Insertable<TN_Loc_Container>(bindLocCntList).ExecuteCommand() > 0)
-                    {
-                        LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔燂紝{log}");
-                    }
-                    else
-                    {
+                    if (db.Insertable<TN_Loc_Container>(bindLocCntList).ExecuteCommand() <= 0) {
                         db.RollbackTran();
                         LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐ワ紝{log}");
                         return "璐т綅缁戝畾瀹瑰櫒澶辫触锛� + logs;
                     }
+                    LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔燂紝{log}");
 
                     var location = db.Queryable<TN_Location>().First(a => a.S_CODE == loc);
                     if (location != null)

--
Gitblit v1.9.1