From 63e94e068622d4ef843cee0d19d4f2d231316304 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期五, 25 七月 2025 17:20:38 +0800
Subject: [PATCH] 完善查询语句, 日志记录的封装

---
 wms/WCSHelper.cs |  133 ++++++++++++++++++--------------------------
 1 files changed, 55 insertions(+), 78 deletions(-)

diff --git a/wms/WCSHelper.cs b/wms/WCSHelper.cs
index 1e7b40c..63ff4e4 100644
--- a/wms/WCSHelper.cs
+++ b/wms/WCSHelper.cs
@@ -11,6 +11,9 @@
 using System.Threading.Tasks;
 
 namespace HH.WCS.Mobox3.DSZSH.wms {
+    /// <summary>
+    /// [ 閫氱敤涓氬姟 ] 甯姪绫�+    /// </summary>
     internal class WCSHelper {
         internal static string GenerateTaskNo() {
             var id = SYSHelper.GetSerialNumber("浠诲姟鍙�, "TN");
@@ -52,35 +55,12 @@
             return loc == null ? "0" : loc.S_AGV_SITE;
         }
 
+        #region 瀹瑰櫒鐩稿叧淇℃伅 鏌ヨ / 缁戝畾
         /// <summary>
-        /// <!--寮冪敤|鐞嗙敱:涓嶇伒娲�娑夊強涓氬姟杩囦簬鍏蜂綋-->妫�煡瀹瑰櫒绫诲瀷鏄惁姝g‘
-        /// </summary>
-        /// <param name="cntrCode"></param>
-        /// <param name="cntrType"></param>
-        /// <param name="errMsg"></param>
-        /// <returns></returns>
-        private static bool CheckCntrType(string cntrCode, string cntrType, out string errMsg) {
-            var db = new SqlHelper<object>().GetInstance();
-            errMsg = string.Empty;
-
-            var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == cntrType).First();
-            if (cntr == null) {
-                errMsg = $"瀹瑰櫒'{cntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪,璇峰湪鍓嶅彴椤甸潰涓淮鎶�";
-                return false;
-            }
-            if (cntr.S_TYPE != cntrType) {
-                errMsg = $"瀹瑰櫒'{cntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷鏄�{cntr.S_TYPE},涓嶆槸'{cntrType}'!";
-                return false;
-            }
-
-            return true;
-        }
-
-        /// <summary>
-        /// 鏍规嵁瀹瑰櫒鍙�鏌ヨ褰撳墠瀹瑰櫒鍏宠仈鐨刐璐т綅/瀹瑰櫒/鐗╂枡]淇℃伅(鍙煡璇�鏉�
+        /// 鏍规嵁 [ 瀹瑰櫒鍙�] , 鏌ヨ褰撳墠瀹瑰櫒鍏宠仈鐨�[ 璐т綅 ] [ 璐т綅瀹瑰櫒 ] [ 瀹瑰櫒璐у搧 ] 淇℃伅 ( 鍙煡璇�1 鏉�)
         /// </summary>
         /// <param name="cntrCode">瀹瑰櫒鍙�/param>
-        /// <param name="skipCgDetail">鏄惁璺宠繃[鐗╂枡琛╙鐨勬煡璇�褰撳鍣ㄥ彿鏉ヨ嚜[鐗╂枡琛╙鏃�</param>
+        /// <param name="skipCgDetail">鏄惁璺宠繃 [ 瀹瑰櫒璐у搧 ] 鐨勬煡璇�( 褰撳鍣ㄥ彿鏉ヨ嚜 [ 瀹瑰櫒璐у搧 ] 鏃�)</param>
         /// <returns></returns>
         public static LocCntrCg GetLocCntrCg(string cntrCode, bool skipCgDetail = false) {
             var db = new SqlHelper<object>().GetInstance();
@@ -112,35 +92,20 @@
         }
 
         /// <summary>
-        /// [缁戝畾[璐т綅-瀹瑰櫒]淇℃伅](璁剧疆璐т綅鏁伴噺涓�;涓嶄細妫�煡loc鏄惁涓簄ull)
+        /// 缁戝畾 [ 璐т綅瀹瑰櫒 ] 淇℃伅 ( 璁剧疆 [ 璐т綅鏁伴噺 ] = 1 )
         /// </summary>
+        /// <remarks><b>[ 娉ㄦ剰 ]</b> 涓嶄細妫�煡 loc 鈮�null</remarks>
         /// <param name="loc"></param>
         /// <param name="cntrCode"></param>
         /// <returns></returns>
-        public static TN_Loc_Container BindLocCntr(ref TN_Location loc, string cntrCode) {
+        public static TN_Loc_Container BindLocCntr(TN_Location loc, string cntrCode) {
             var locCntrRel = new TN_Loc_Container {
                 S_LOC_CODE = loc.S_CODE,
                 S_CNTR_CODE = cntrCode,
             };
 
             if (loc.N_CURRENT_NUM != 0) {
-                LogHelper.Warn($"缁戝畾璐т綅瀹瑰櫒:绋嬪簭姝e湪灏濊瘯缁橻瀹瑰櫒鏁伴噺]涓嶆槸0鐨勮揣浣�璁剧疆[瀹瑰櫒鏁伴噺]涓�!璐т綅='{loc.S_CODE}',瀹瑰櫒鏁伴噺={loc.N_CURRENT_NUM}");
-            }
-
-            loc.N_CURRENT_NUM = 1;
-            loc.T_MODIFY = DateTime.Now;
-
-            return locCntrRel;
-        }
-
-        public static TN_Loc_Container BindLocCntrs(ref TN_Location loc, List<string> cntrCodes) {
-            var locCntrRel = new TN_Loc_Container {
-                S_LOC_CODE = loc.S_CODE,
-                S_CNTR_CODE = string.Join(",", cntrCodes)
-            };
-
-            if (loc.N_CURRENT_NUM != 0) {
-                LogHelper.Warn($"缁戝畾璐т綅瀹瑰櫒:绋嬪簭姝e湪灏濊瘯缁橻瀹瑰櫒鏁伴噺]涓嶆槸0鐨勮揣浣�璁剧疆[瀹瑰櫒鏁伴噺]涓�!璐т綅='{loc.S_CODE}',瀹瑰櫒鏁伴噺={loc.N_CURRENT_NUM}");
+                LogHelper.Warn($"缁戝畾璐т綅瀹瑰櫒:绋嬪簭姝e湪灏濊瘯缁橻瀹瑰櫒鏁伴噺]涓嶆槸0鐨勮揣浣�璁剧疆[瀹瑰櫒鏁伴噺]涓�!!璐т綅='{loc.S_CODE}',瀹瑰櫒鏁伴噺={loc.N_CURRENT_NUM}");
             }
 
             loc.N_CURRENT_NUM = 1;
@@ -150,9 +115,33 @@
         }
 
         /// <summary>
+        /// 缁戝畾 [ 璐т綅瀹瑰櫒 ] 淇℃伅 ( 璁剧疆 [ 璐т綅鏁伴噺 ] + list.Count )
+        /// </summary>
+        /// <param name="loc"></param>
+        /// <param name="cntrCodes"></param>
+        /// <returns></returns>
+        public static TN_Loc_Container BindLocCntrs(TN_Location loc, List<string> cntrCodes) {
+            var locCntrRel = new TN_Loc_Container {
+                S_LOC_CODE = loc.S_CODE,
+                S_CNTR_CODE = string.Join(",", cntrCodes)
+            };
+
+            if (loc.N_CURRENT_NUM != 0) {
+                LogHelper.Warn($"缁戝畾璐т綅瀹瑰櫒:绋嬪簭姝e湪灏濊瘯缁橻瀹瑰櫒鏁伴噺]涓嶆槸0鐨勮揣浣�璁剧疆[瀹瑰櫒鏁伴噺]涓�!!璐т綅='{loc.S_CODE}',瀹瑰櫒鏁伴噺={loc.N_CURRENT_NUM}");
+            }
+
+            loc.N_CURRENT_NUM = 1;
+            loc.T_MODIFY = DateTime.Now;
+
+            return locCntrRel;
+        } 
+        #endregion
+
+        #region 璧风偣 / 缁堢偣璐т綅閿�+ 鍒涘缓浠诲姟
+        /// <summary>
         /// 璧风偣鍑哄簱閿�         /// </summary>
-        /// <remarks>瑕佹眰: loc != null; 閿佺姸鎬�'鏃�;</remarks>
+        /// <remarks><b>[ 瑕佹眰 ]</b> loc 鈮�null ; 閿佺姸鎬�'鏃� ;</remarks>
         /// <param name="loc"></param>
         /// <param name="lockSource"></param>
         public static void LockStartLoc(TN_Location loc, string lockSource = "") {
@@ -171,7 +160,7 @@
         /// <summary>
         /// 缁堢偣鍏ュ簱閿�         /// </summary>
-        /// <remarks>瑕佹眰: loc != null; 閿佺姸鎬�'鏃�;</remarks>
+        /// <remarks><b>[ 瑕佹眰 ]</b> loc 鈮�null ; 閿佺姸鎬�'鏃� ;</remarks>
         /// <param name="loc"></param>
         /// <param name="lockSource"></param>
         public static void LockEndLoc(TN_Location loc, string lockSource = "") {
@@ -188,17 +177,18 @@
         }
 
         /// <summary>
-        /// [鍒涘缓浠诲姟](闇�‘淇漵tartLoc/endLoc涓嶄负null;涓嶄細妫�煡璐т綅S_CODE,S_AREA_CODE灞炴�鏄惁鍚堟硶)
+        /// 鍒涘缓浠诲姟
         /// </summary>
-        /// <param name="startLoc">璧风偣璐т綅:鑷冲皯鎻愪緵:S_CODE,S_AREA_CODE</param>
-        /// <param name="endLoc">缁堢偣璐т綅:鑷冲皯鎻愪緵:S_CODE,S_AREA_CODE</param>
+        /// <remarks><b>[ 瑕佹眰 ]</b> startLoc / endLoc 鈮�null ; startLoc / endLoc 瀛樺湪 S_CODE , S_AREA_CODE 瀛楁</remarks>
+        /// <param name="startLoc">璧风偣璐т綅 : 鑷冲皯鎻愪緵:S_CODE , S_AREA_CODE</param>
+        /// <param name="endLoc">缁堢偣璐т綅 : 鑷冲皯鎻愪緵:S_CODE , S_AREA_CODE</param>
         /// <param name="cntId">瀹瑰櫒鍙�/param>
-        /// <param name="type">浠诲姟绫诲瀷(鍚嶇О)</param>
+        /// <param name="type">浠诲姟绫诲瀷 ( 鍚嶇О )</param>
         /// <param name="pri">浼樺厛绾�/param>
-        /// <param name="agv">AGV绫诲瀷</param>
+        /// <param name="agv">AGV 绫诲瀷</param>
         /// <returns></returns>
         public static TN_Task BuildTask(TN_Location startLoc, TN_Location endLoc, string cntId, string type, int pri = 3, int agv = 1) {
-            TN_Task TN_Task = new TN_Task() {
+            TN_Task task = new TN_Task() {
                 S_CODE = GenerateTaskNo(),
                 S_START_AREA = startLoc.S_AREA_CODE,
                 S_END_AREA = endLoc.S_AREA_CODE,
@@ -211,43 +201,30 @@
                 N_B_STATE = 0, // 浠诲姟鍒涘缓鏃�榛樿绛夊緟
             };
 
-            LogHelper.Info($"鍒涘缓浠诲姟:浠诲姟鍙�'{TN_Task.S_CODE}'");
+            LogHelper.Info($"鍒涘缓浠诲姟:浠诲姟鍙�'{task.S_CODE}',璧风偣璐т綅='',缁堢偣璐т綅='',瀹瑰櫒鍙�'',浠诲姟绫诲瀷");
 
-            return TN_Task;
+            return task;
         }
 
         /// <summary>
-        /// [ 鍒涘缓浠诲姟,骞朵笂閿�] ( 闇�‘淇漵tartLoc/endLoc涓嶄负null ; 涓嶄細妫�煡璐т綅S_CODE,S_AREA_CODE灞炴�鏄惁鍚堟硶 )
+        /// 鍒涘缓浠诲姟 + 璐т綅閿�         /// </summary>
-        /// <remarks>瑕佹眰 : (1) startLoc / endLoc 鈮�null<br/>(2) startLoc / endLoc 瀛樺湪 S_CODE , S_AREA_CODE</remarks>
+        /// <remarks><b>[ 瑕佹眰 ]</b> (1) startLoc / endLoc 鈮�null ; (2) startLoc / endLoc 瀛樺湪 S_CODE , S_AREA_CODE 瀛楁</remarks>
         /// <param name="startLoc">璧风偣璐т綅 : 鑷冲皯鎻愪緵 : S_CODE , S_AREA_CODE</param>
         /// <param name="endLoc">缁堢偣璐т綅 : 鑷冲皯鎻愪緵 : S_CODE , S_AREA_CODE</param>
         /// <param name="cntId">瀹瑰櫒鍙�/param>
-        /// <param name="type">浠诲姟绫诲瀷(鍚嶇О)</param>
+        /// <param name="type">浠诲姟绫诲瀷 ( 鍚嶇О )</param>
         /// <param name="pri">浼樺厛绾�/param>
-        /// <param name="agv">AGV绫诲瀷</param>
+        /// <param name="agv">AGV 绫诲瀷</param>
         /// <returns></returns>
         public static TN_Task BuildTaskWithLocLock(TN_Location startLoc, TN_Location endLoc, string cntId, string type, int pri = 3, int agv = 1) {
-            TN_Task TN_Task = new TN_Task() {
-                S_CODE = GenerateTaskNo(),
-                S_START_AREA = startLoc.S_AREA_CODE,
-                S_END_AREA = endLoc.S_AREA_CODE,
-                S_START_LOC = startLoc.S_CODE,
-                S_END_LOC = endLoc.S_CODE,
-                S_CNTR_CODE = cntId,
-                S_TYPE = type,
-                N_PRIORITY = pri,
-                N_SCHEDULE_TYPE = agv,
-                N_B_STATE = 0, // 浠诲姟鍒涘缓鏃�榛樿绛夊緟
-            };
+            var task = BuildTask(startLoc, endLoc, cntId, type, pri);
+            LockStartLoc(startLoc, task.S_CODE);
+            LockEndLoc(endLoc, task.S_CODE);
 
-            LogHelper.Info($"鍒涘缓浠诲姟:浠诲姟鍙�'{TN_Task.S_CODE}'");
-
-            LockStartLoc(startLoc, TN_Task.S_CODE);
-            LockEndLoc(endLoc, TN_Task.S_CODE);
-
-            return TN_Task;
-        }
+            return task;
+        } 
+        #endregion
 
         internal static bool CheckActionRecordExist(string no, int code) {
             var db = new SqlHelper<TN_Task_Action>().GetInstance();

--
Gitblit v1.9.1