From c7e7901305b9c2182a1faf52eb2bdc0481468e10 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期三, 28 八月 2024 21:23:42 +0800
Subject: [PATCH] 优化条码规则,增加固定值可以设置为不包含;增加流水号取号支持设置取号间隔和跳号规则

---
 Tiger.Business/DbCache/Biz.CodeRule.cs |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/Tiger.Business/DbCache/Biz.CodeRule.cs b/Tiger.Business/DbCache/Biz.CodeRule.cs
index f7206cd..b6c2ed3 100644
--- a/Tiger.Business/DbCache/Biz.CodeRule.cs
+++ b/Tiger.Business/DbCache/Biz.CodeRule.cs
@@ -95,9 +95,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 +123,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);
+                                }
+                            }
                         }
                     }
                     //鍒ゆ柇鍏宠仈瀛楁鏄惁绗﹀悎瑙勫垯

--
Gitblit v1.9.3