From 0a68c7142da0814044f81b7081e702b0f72078ef Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 12 三月 2025 11:29:01 +0800 Subject: [PATCH] 雅达-修复 WmsTask.cs 中的空引用问题 --- Tiger.Business/DbCache/Biz.CodeRule.cs | 35 ++++++++++++++++++++--------------- 1 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Tiger.Business/DbCache/Biz.CodeRule.cs b/Tiger.Business/DbCache/Biz.CodeRule.cs index f7206cd..6b1800f 100644 --- a/Tiger.Business/DbCache/Biz.CodeRule.cs +++ b/Tiger.Business/DbCache/Biz.CodeRule.cs @@ -14,17 +14,10 @@ using System.Diagnostics; using System.Threading; using System.Data; +using Tiger.IBusiness; namespace Tiger.Business { - public partial class Biz - { - /// <summary> - /// 鑾峰彇鏉$爜瑙勫垯缂撳瓨 - /// </summary> - public static CodeRuleCache CodeRule => DbCacheBus.CodeRuleCache; - } - /// <summary> /// BAS_CODE_RULE 鎵╁睍绫� /// </summary> @@ -38,7 +31,7 @@ /// <returns></returns> public static Result Verify(this BAS_CODE_RULE rule, string sn) { - return Biz.CodeRule.Verify(sn, rule); + return Cache.CodeRule.Verify(sn, rule); } /// <summary> @@ -49,7 +42,7 @@ /// <returns></returns> public static Result Generate(this BAS_CODE_RULE rule, params object?[] args) { - return Biz.CodeRule.Generate(rule.RULE_CODE, args); + return Cache.CodeRule.Generate(rule.RULE_CODE, args); } /// <summary> @@ -60,7 +53,7 @@ /// <returns></returns> public static Result TryGenerate(this BAS_CODE_RULE rule, params object?[] args) { - return Biz.CodeRule.TryGenerate(rule.RULE_CODE, args); + return Cache.CodeRule.TryGenerate(rule.RULE_CODE, args); } }//endClass @@ -95,9 +88,9 @@ /// <summary> /// 鏁版嵁搴撳叧鑱旈獙璇� /// </summary> - public static bool CheckDB(string key, BAS_CODE_DTL rule) + public static bool CheckDB(string key, BAS_CODE_DTL ruleDtl) { - return rule.DATA_TYPE == BAS_CODE_DTL.DATA_TYPEs.DbCheck.GetValue() ? Biz.Db.Queryable(rule.CHECK_TABLE, "t").Where($"{rule.CHECK_FIELD} = '{key}'").Any() : true; + return ruleDtl.DATA_TYPE == BAS_CODE_DTL.DATA_TYPEs.DbCheck.GetValue() ? Biz.Db.Queryable(ruleDtl.CHECK_TABLE, "t").Where($"{ruleDtl.CHECK_FIELD} = '{key}'").Any() : true; } /// <summary> @@ -123,7 +116,19 @@ //鍒ゆ柇娴佹按鍙锋槸鍚︾鍚堣鍒� if (IsMatch && item.DATA_TYPE == BAS_CODE_DTL.DATA_TYPEs.SerialCode.GetValue()) { + //鎸夊彇鍊艰寖鍥村垽鏂綋鍓嶆祦姘村彿鏄惁鍦ㄨ寖鍥村唴 IsMatch &= item.SERIAL_MIN <= item.CodeValue.ToInt32() && item.CodeValue.ToInt32() <= item.SERIAL_MAX; + //褰撳墠娴佹按鍙锋槸鍚︽寜璁剧疆闂撮殧鍥哄畾鏁板�� + IsMatch &= (item.CodeValue.ToInt32() - item.SERIAL_MIN) % item.SERIAL_INTERVAL == 0; + //鍒ゆ柇褰撳墠娴佹按鍙锋槸鍚﹁烦杩囦互璁剧疆鍙风爜缁撳熬鐨勬祦姘村彿 + if (!item.SERIAL_IGNORE.IsNullOrEmpty()) + { + var ignoreList = item.SERIAL_IGNORE.Split(','); + foreach (var num in ignoreList) + { + IsMatch &= !item.CodeValue.EndsWith(num); + } + } } } //鍒ゆ柇鍏宠仈瀛楁鏄惁绗﹀悎瑙勫垯 @@ -175,7 +180,7 @@ public Expression<Func<BAS_CODE_RULE, bool>> Expression { get; set; } public Exception VerifyException { get; set; } private List<RuleVerifier> _Verifiers = new(); - public List<RuleVerifier> Verifiers => _Verifiers.IsNullOrEmpty() ? Biz.CodeRule.Rules.WhereIF(!Predicate.IsNullOrEmpty(), Predicate).Select(q => new RuleVerifier(q)).ToList() : _Verifiers; + public List<RuleVerifier> Verifiers => _Verifiers.IsNullOrEmpty() ? Cache.CodeRule.Rules.WhereIF(!Predicate.IsNullOrEmpty(), Predicate).Select(q => new RuleVerifier(q)).ToList() : _Verifiers; /// <summary> /// 鏄惁瀹屾垚楠岃瘉 /// </summary> @@ -201,7 +206,7 @@ var begin = DateTime.Now; ElapsedTime = 0; //Debug.WriteLine($"{Code} verify begin at {begin:T}"); - _Verifiers = Biz.CodeRule.Rules.WhereIF(!Predicate.IsNullOrEmpty(), Predicate).Select(q => new RuleVerifier(q)).ToList(); + _Verifiers = Cache.CodeRule.Rules.WhereIF(!Predicate.IsNullOrEmpty(), Predicate).Select(q => new RuleVerifier(q)).ToList(); foreach (var item in Verifiers) { Work.DoAsync(() => { item.Verify(Code); }); -- Gitblit v1.9.3