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