using System; using SqlSugar; using System.Linq; using System.ComponentModel; using System.Collections.Generic; using System.Text.RegularExpressions; namespace Tiger.Model { /// /// 实体:条码规则明细定义 /// [Description("Primary:ID")] [Serializable] [SugarTable("BAS_CODE_DTL")] public class BAS_CODE_DTL : DbEntityWithAuth { #region 构造函数 /// /// 实体:条码规则明细定义 /// public BAS_CODE_DTL() {} #endregion #region 公共属性 /// /// 规则ID /// [DisplayName("规则ID")] public string RULE_ID { get; set; } /// /// 规则顺序(从1开始累计加1) /// [DisplayName("规则顺序(从1开始累计加1)")] public int RULE_SEQ { get; set; } /// /// 明细描述 /// [DisplayName("明细描述")] public string DESCRIPTION { get; set; } /// /// 数据类型(0Character纯字母|1Numeric纯数字|2FixedCode固定值|3SerialCode流水号|4DateCode日期|5TimeCode时间|6DbCheck关联校验|7NoCheck不校验) /// [DisplayName("数据类型(0Character纯字母|1Numeric纯数字|2FixedCode固定值|3SerialCode流水号|4DateCode日期|5TimeCode时间|6DbCheck关联校验|7NoCheck不校验)")] public int DATA_TYPE { get; set; } /// /// 数据选择值(纯字母,日期,时间选择值) /// [DisplayName("数据选择值(纯字母,日期,时间选择值)")] public string DATA_CASE { get; set; } /// /// 数据值(固定值填写值) /// [DisplayName("数据值(固定值填写值)")] public string DATA_VALUE { get; set; } /// /// 流水号最小值 /// [DisplayName("流水号最小值")] public int SERIAL_MIN { get; set; } /// /// 流水号最大值 /// [DisplayName("流水号最大值")] public int SERIAL_MAX { get; set; } /// /// 流水号重置类型(0Default默认|1Year年|2Month月|3Week周|4Day日|5NotReset不重置) /// [DisplayName("流水号重置类型(0Default默认|1Year年|2Month月|3Week周|4Day日|5NotReset不重置)")] public int SERIAL_RESET { get; set; } /// /// 流水号取号间隔 /// [DisplayName("流水号取号间隔")] public int SERIAL_INTERVAL { get; set; } = 1; /// /// 流水号跳号(取号时跳过以设置号码结尾的流水号) /// [DisplayName("流水号跳号(取号时跳过以设置号码结尾的流水号)")] public string SERIAL_IGNORE { get; set; } /// /// 是否不包含固定值(Y/N) /// [DisplayName("是否不包含固定值(Y/N)")] public string FIXED_NOTLIKE { get; set; } /// /// 关联表 /// [DisplayName("关联表")] public string CHECK_TABLE { get; set; } /// /// 关联字段 /// [DisplayName("关联字段")] public string CHECK_FIELD { get; set; } /// /// 校验长度(默认是1) /// [DisplayName("校验长度(默认是1)")] public int CHECK_LENGTH { get; set; } /// /// 匹配次数(默认是1) /// [DisplayName("匹配次数(默认是1)")] public int REPEAT_TIMES { get; set; } /// /// 起始位置(从0开始) /// [DisplayName("起始位置(从0开始)")] public string START_DIGIT { get; set; } /// /// 校验表达式 /// [DisplayName("校验表达式")] public string DATA_REGEX { get; set; } /// /// 备注 /// [DisplayName("备注")] public string REMARK { get; set; } #endregion #region 虚拟属性 /*例子 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ /// /// Regex 对象, 正则表达式:^(DATA_REGEX)$ /// [SugarColumn(IsIgnore = true)] public Regex Regex => new Regex($"^{DATA_REGEX}$"); /// /// 分组的校验表达式,使用RULE_SEQ分组 /// [SugarColumn(IsIgnore = true)] public string DATA_REGEX_WithGroup => $"(?<{RULE_SEQ}>{DATA_REGEX})"; /// /// 校验正则表达式 /// [SugarColumn(IsIgnore = true)] public Regex GroupRegex => new Regex(DATA_REGEX_WithGroup); /// /// 数据值(生成条码时的值) /// [SugarColumn(IsIgnore = true)] public string CodeValue { get; set; } #endregion #region 外键属性 /*例子 //一对一外键导航 [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BAS_CODE_DTL类里面的外键ID字段 public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null //一对多外键导航 [Navigate(NavigateType.OneToMany, nameof(ClassA.BAS_CODE_DTLId))]//ClassA表中的BAS_CODE_DTLId public List ClassAList { get; set; }//注意禁止手动赋值,只能是null //多对多外键导航 [Navigate(typeof(MappingClass), nameof(MappingClass.BAS_CODE_DTLId), nameof(MappingClass.ClassAId))]//注意顺序 public List ClassAList { get; set; } //注意禁止手动赋值,只能是null */ #endregion #region 枚举变量 /// /// 数据类型(0Character纯字母|1Numeric纯数字|2FixedCode固定值|3SerialCode流水号|4DateCode日期|5TimeCode时间|6DbCheck关联校验|7NoCheck不校验) /// public enum DATA_TYPEs { [Description("纯字母")] Character, [Description("纯数字")] Numeric, [Description("固定值")] FixedCode, [Description("流水号")] SerialCode, [Description("日期")] DateCode, [Description("时间")] TimeCode, [Description("关联校验")] DbCheck, [Description("不校验")] NoCheck, } /// /// 大小写(0NotSet不限制|1Upper全大写|2Lower全小写) /// //public enum DATA_CASEs //{ // [Description("不限制")] // NotSet, // [Description("全大写")] // Upper, // [Description("全小写")] // Lower, //} /// /// 流水号重置类型(0Default默认|1Year年|2Month月|3Week周|4Day日|5NotReset不重置) /// public enum SERIAL_RESETs { [Description("默认")] Default, [Description("年")] Year, [Description("月")] Month, [Description("周")] Week, [Description("日")] Day, [Description("不重置")] NotReset, } #endregion #region 公共方法 #endregion }//endClass }