| | |
| | | /// <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> |
| | |
| | | //判断流水号是否符合规则 |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //判断关联字段是否符合规则 |