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

---
 wms/DbExpr.cs |  152 ++++++++------------------------------------------
 1 files changed, 25 insertions(+), 127 deletions(-)

diff --git a/wms/DbExpr.cs b/wms/DbExpr.cs
index 096401d..2d1a631 100644
--- a/wms/DbExpr.cs
+++ b/wms/DbExpr.cs
@@ -15,7 +15,7 @@
     /// </summary>
     public class DbExpr {
         /// <summary>
-        /// 閫氱敤璐т綅绛涢�琛ㄨ揪寮�+        /// 閫氱敤 [ 璐т綅 ] 绛涢�
         /// </summary>
         /// <remarks><code><![CDATA[
         /// l => l.C_ENABLE == "Y" 
@@ -29,18 +29,19 @@
         /// <param name="areas"></param>
         /// <param name="curNum"></param>
         /// <returns></returns>
-        public static Expression<Func<TN_Location, bool>> LocFilter(int @lock = 0, string name = "", List<string> areas = null, int curNum = 0) {
+        public static Expression<Func<TN_Location, bool>> LocFilter(int @lock, string name, List<string> areas, int curNum) {
             Expression<Func<TN_Location, bool>> expr = l => l.C_ENABLE == "Y"; // 宸插惎鐢� 
             if (@lock >= 0) {
-                Expression<Func<TN_Location, bool>> newExpr = l => l.N_LOCK_STATE == @lock && l.S_LOCK_STATE == TN_Location.GetLockStateStr(@lock);
+                Expression<Func<TN_Location, bool>> newExpr = 
+                    l => l.N_LOCK_STATE == @lock && l.S_LOCK_STATE == TN_Location.GetLockStateStr(@lock);
                 expr = Expression.Lambda<Func<TN_Location, bool>>(Expression.AndAlso(expr.Body, newExpr.Body), expr.Parameters[0]);
             }
             if (!string.IsNullOrEmpty(name)) {
                 Expression<Func<TN_Location, bool>> newExpr = l => l.S_CODE == name;
                 expr = Expression.Lambda<Func<TN_Location, bool>>(Expression.AndAlso(expr.Body, newExpr.Body), expr.Parameters[0]);
             }
-            if (areas != null && areas.Count == 0) {
+            if (areas != null && areas.Count > 0) {
                 Expression<Func<TN_Location, bool>> newExpr = l => areas.Contains(l.S_AREA_CODE);
                 expr = Expression.Lambda<Func<TN_Location, bool>>(Expression.AndAlso(expr.Body, newExpr.Body), expr.Parameters[0]);
             }
@@ -66,23 +67,28 @@
         /// <param name="areas"></param>
         /// <returns></returns>
         public static Expression<Func<TN_Location, bool>> StartLocUnbind(string name = "", List<string> areas = null) {
-            Expression<Func<TN_Location, bool>> expr =
-                l => l.C_ENABLE == "Y" && l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.N_CURRENT_NUM == 0;
-
-            if (!string.IsNullOrEmpty(name)) {
-                Expression<Func<TN_Location, bool>> newExpr = l => l.S_CODE == name;
-                expr = Expression.Lambda<Func<TN_Location, bool>>(Expression.AndAlso(expr.Body, newExpr.Body), expr.Parameters[0]);
-            }
-            if (areas != null && areas.Count > 0) {
-                Expression<Func<TN_Location, bool>> newExpr = l => areas.Contains(l.S_AREA_CODE);
-                expr = Expression.Lambda<Func<TN_Location, bool>>(Expression.AndAlso(expr.Body, newExpr.Body), expr.Parameters[0]);
-            }
-
-            return expr;
+            return LocFilter(0, name, areas, 0);
         }
 
         /// <summary>
-        /// 
+        /// 璧风偣璐т綅 ( 宸茬粦瀹�)
+        /// </summary>
+        /// <remarks><code><![CDATA[
+        /// l => l.C_ENABLE == "Y" 
+        ///   && l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃�
+        ///   && l.S_CODE == name
+        ///   && areas.Contains(l.S_AREA_CODE)
+        ///   && l.N_CURRENT_NUM == 1
+        /// ]]></code></remarks>
+        /// <param name="name"></param>
+        /// <param name="areas"></param>
+        /// <returns></returns>
+        public static Expression<Func<TN_Location, bool>> StartLoc(string name = "", List<string> areas = null) {
+            return LocFilter(0, name, areas, 1);
+        }
+
+        /// <summary>
+        /// 缁堢偣璐т綅
         /// </summary>
         /// <remarks><code><![CDATA[
         /// l => l.C_ENABLE == "Y" 
@@ -95,115 +101,7 @@
         /// <param name="areas"></param>
         /// <returns></returns>
         public static Expression<Func<TN_Location, bool>> EndLoc(string name = "", List<string> areas = null) {
-            Expression<Func<TN_Location, bool>> expr = 
-                l => l.C_ENABLE == "Y" && l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.N_CURRENT_NUM == 0;
-
-            if (!string.IsNullOrEmpty(name)) {
-                Expression<Func<TN_Location, bool>> newExpr = l => l.S_CODE == name;
-                expr = Expression.Lambda<Func<TN_Location, bool>>(Expression.AndAlso(expr.Body, newExpr.Body), expr.Parameters[0]);
-            }
-            if (areas != null && areas.Count > 0) {
-                Expression<Func<TN_Location, bool>> newExpr = l => areas.Contains(l.S_AREA_CODE);
-                expr = Expression.Lambda<Func<TN_Location, bool>>(Expression.AndAlso(expr.Body, newExpr.Body), expr.Parameters[0]);
-            }
-
-            return expr;
+            return LocFilter(0, name, areas, 0);
         }
     }
-
-    #region 鏃ф煡璇㈢被 ( 鎼佺疆 )
-    /// <summary>
-    /// [ 鏁版嵁搴撴煡璇�] 甯姪绫�-    /// </summary>
-    /// <remarks><b>[ 鎼佺疆 ]</b> 绫讳笌鏂规硶鏆傛椂璁句负绉佹湁<br/><b>[ 鐞嗙敱 ]</b> 寮曠敤澶栭儴 db 瀛樺湪椋庨櫓 ; 涓嶉�鐢ㄤ簬鑱旇〃鏌ヨ鍦烘櫙 , 涓嶅鐏垫椿</remarks>
-    class DbQuery {
-        /// <summary>
-        /// 鏋勫缓 [ 璐т綅 ] 鏌ヨ琛ㄨ揪寮�: 绛涢�鏉′欢 : 閿佺姸鎬�/ 鍚嶇О / 璐у尯 / 褰撳墠瀹瑰櫒鏁伴噺 ( 榛樿绛涢�宸插惎鐢ㄨ揣浣�)
-        /// </summary>
-        /// <param name="db">璋冪敤鍖哄煙鐨�SqlSugarClient</param>
-        /// <param name="lock">閿佺姸鎬�( 灏忎簬 0 鏃跺拷鐣�)</param>
-        /// <param name="name">璐т綅鍚嶇О ( 涓�null 鎴�"" 鏃跺拷鐣�)</param>
-        /// <param name="areas">鎵�湪搴撳尯鍒楄〃 ( 涓�null 鎴�[] 鏃跺拷鐣�)</param>
-        /// <param name="curNum">褰撳墠鏁伴噺 ( 灏忎簬 0 鏃跺拷鐣�)</param>
-        /// <returns></returns>
-        static ISugarQueryable<TN_Location> Loc(SqlSugarClient db, int @lock, string name, List<string> areas, int curNum) {
-            var query = db.Queryable<TN_Location>().Where(l => l.C_ENABLE == "Y"); // 宸插惎鐢�-
-            if (@lock >= 0) {
-                query = query.Where(l => l.N_LOCK_STATE == @lock && l.S_LOCK_STATE == TN_Location.GetLockStateStr(@lock));
-            }
-            if (!string.IsNullOrEmpty(name)) {
-                query = query.Where(l => l.S_CODE == name);
-            }
-            if (areas != null && areas.Count != 0) {
-                query = query.Where(l => areas.Contains(l.S_AREA_CODE));
-            }
-            if (curNum >= 0) {
-                query = query.Where(l => l.N_CURRENT_NUM == curNum);
-            }
-
-            return query;
-        }
-
-        /// <summary>
-        /// 鏋勫缓 [ 璧风偣璐т綅 ( 缁戝畾鍓�) ] 鏌ヨ琛ㄨ揪寮�: 绛涢�鏉′欢 : 鍚嶇О / 璐у尯 ( 榛樿绛涢� : 宸插惎鐢�/ 鏈笂閿�/ 褰撳墠瀹瑰櫒鏁伴噺 = 0 )
-        /// </summary>
-        /// <param name="db">璋冪敤鍖哄煙鐨�SqlSugarClient</param>
-        /// <param name="name">璐т綅鍚嶇О ( 涓�null 鎴�"" 鏃跺拷鐣�)</param>
-        /// <param name="areas">鎵�湪搴撳尯鍒楄〃 ( 涓�null 鎴�[] 鏃跺拷鐣�)</param>
-        /// <returns></returns>
-        static ISugarQueryable<TN_Location> StartLocUnbind(SqlSugarClient db, string name, List<string> areas) {
-            var query = db.Queryable<TN_Location>().Where(l => l.C_ENABLE == "Y" && l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == TN_Location.GetLockStateStr(0) && l.N_CURRENT_NUM == 0); // 宸插惎鐢�鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0(鍒濆鏈粦瀹氬鍣�
-
-            if (!string.IsNullOrEmpty(name)) {
-                query = query.Where(l => l.S_CODE == name);
-            }
-            if (areas != null && areas.Count != 0) {
-                query = query.Where(l => areas.Contains(l.S_AREA_CODE));
-            }
-
-            return query;
-        }
-
-        /// <summary>
-        /// 鏋勫缓 [ 璧风偣璐т綅 ( 缁戝畾鍚�) ] 鏌ヨ琛ㄨ揪寮�: 绛涢�鏉′欢 : 鍚嶇О / 璐у尯 ( 榛樿绛涢� : 宸插惎鐢�/ 鏈笂閿�/ 褰撳墠瀹瑰櫒鏁伴噺 = 1 )
-        /// </summary>
-        /// <param name="db">璋冪敤鍖哄煙鐨�SqlSugarClient</param>
-        /// <param name="name">璐т綅鍚嶇О ( 涓�null 鎴�"" 鏃跺拷鐣�)</param>
-        /// <param name="areas">鎵�湪搴撳尯鍒楄〃 ( 涓�null 鎴�[] 鏃跺拷鐣�)</param>
-        /// <returns></returns>
-        static ISugarQueryable<TN_Location> StartLoc(SqlSugarClient db, string name, List<string> areas) {
-            var query = db.Queryable<TN_Location>().Where(l => l.C_ENABLE == "Y" && l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == TN_Location.GetLockStateStr(0) && l.N_CURRENT_NUM == 1); // 宸插惎鐢�鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=1(宸茬粦瀹氬鍣�
-
-            if (!string.IsNullOrEmpty(name)) {
-                query = query.Where(l => l.S_CODE == name);
-            }
-            if (areas != null && areas.Count != 0) {
-                query = query.Where(l => areas.Contains(l.S_AREA_CODE));
-            }
-
-            return query;
-        }
-
-        /// <summary>
-        /// 鏋勫缓 [ 缁堢偣璐т綅 ] 鏌ヨ琛ㄨ揪寮�: 绛涢�鏉′欢 : 鍚嶇О / 璐у尯 ( 榛樿绛涢� : 宸插惎鐢�/ 鏈笂閿�/ 褰撳墠瀹瑰櫒鏁伴噺 = 0 )
-        /// </summary>
-        /// <param name="db">璋冪敤鍖哄煙鐨�SqlSugarClient</param>
-        /// <param name="name">璐т綅鍚嶇О ( 涓�null 鎴�"" 鏃跺拷鐣�)</param>
-        /// <param name="areas">鎵�湪搴撳尯鍒楄〃 ( 涓�null 鎴�[] 鏃跺拷鐣�)</param>
-        /// <returns></returns>
-        static ISugarQueryable<TN_Location> EndLoc(SqlSugarClient db, string name, List<string> areas) {
-            var query = db.Queryable<TN_Location>().Where(l => l.C_ENABLE == "Y" && l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == TN_Location.GetLockStateStr(0) && l.N_CURRENT_NUM == 0); // 宸插惎鐢�鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0(鏈粦瀹氬鍣�
-
-            if (!string.IsNullOrEmpty(name)) {
-                query = query.Where(l => l.S_CODE == name);
-            }
-            if (areas != null && areas.Count != 0) {
-                query = query.Where(l => areas.Contains(l.S_AREA_CODE));
-            }
-
-            return query;
-        }
-    } 
-    #endregion
 }

--
Gitblit v1.9.1