1、序列管理
序列管理主要实现系统用到序列生成规则的配置、主要包含序列配置、序列生产两个功能点。
2、术语说明
序列号:指序列中按步长递进的数字。
序列值:指按规则组合了 “拥有者、序列类型、序列时间、序列号” 的字符串。
重复周期:对应系统枚举SequenceCircles在重复周期内,序号不归零,一般按天、月、季、年为序号周期,也可以无周期,一直递增。
3、支持因子
名称 | 替换符 | 说明 |
拥有者 | {{Owner}} | 序列拥有者,一般不同工厂传入不同工厂代码,此因子一般不用,在实际的序列模板中通过前缀实现标识。 |
序列类型 | {{Kind}} | 对应系统中的SequenceKinds枚举 |
序列时间 | {{Date}} | 对应产生序列的时间,通过格式化支持天、分、秒、毫秒 |
序列号 | {{No}} | 按步长递进的数字 |
4、序列配置
序列配置包含如下字段
字段 | 名称 | 说明 |
MaxNo | 最大序列号 | 长度应与NoLength一致 |
NoLength | 序列号长度 | 产生序号的最大长度 |
NoFormat | 序列号格式符 | 生成序列值时提供序号格式化支持 |
NoRegex | 序号匹配正则 | 从序列值中匹配出序列号正则Pattern,通过组名No,标注匹配出的序列号 |
DateFormat | 日期格式符 | 生成序列值时提供时间格式化支持 |
KindFormat | 类型格式符 | 生成序列值时提供SequenceKinds对应序列类型格式化支持 |
Template | 序列值模板 | 用于因子替换后生成序列值 |
5、序列表(Kernals.SequenceItem)
Code 编码 | Name 名称 | Description 说明 |
SequenceKey | 序列键 | Nvarchar类型主键 |
CurrentValue | 当前值 | 序列周期内的当前分配值 |
InitValue | 初始值 | 序列周期重置时CurrentValue恢复的值 |
ValueStep | 值变化步长 | 序列号递增步长 |
RepeatCircle | 重复周期 | 对应系统枚举SequenceCircles |
ConfigVlaue | 配置值 | 序列化存储 序列配置SequenceConfig 信息 |
ConfigParser | 配置解析器 | JsonParseProvider或XmlParseProvider |
OwnerKind | 拥有者类型 | 当前支持:1=公司,该字段保留,在UI中暂不体现。 |
OwnerKey | 拥有者标识 | 序列拥有者 |
TenantId | 租户Id | |
UpdateTime | 修改日期 | 序列值最后更新时间 |
6、配置列表
主要实现序列配置功能,当前支持拥有者为公司,可以通过拥有者筛选序列后进行配置。
注:SequenceConfig中的属性和序列值生成无直接关系,初始值、步长、周期和序列值生成有关系。
序列列表显示:序列键、初始值、变化步长、重复周期、拥有者。
7、配置窗体
序列配置包含初始值、步长、周期、和ConfigValue对应的SequenceConfig相关属性。
注:详情查看窗体同配置窗体,不能编辑
8、序列生成
序列生成由业务逻辑层负责。具体实现见Logics.Infra Sequences文件夹下相关代码。
通过ISequence seq = SequenceManager.GetSequence(SequenceKinds.BatchSequence, 1, "ownerKey");获取序列接口实例,调用相关方法或属性(如下图示)
属性:
方法:
接口:
文章作者:花生(OutMan) 发布地址:http://www.cnblogs.com/WangHuaiSheng/ 发布时间:2018年1月23日 本文版权归作者和博客园共有,欢迎转载, 但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接。 |