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/ 发布时间:2017-12-02 本文版权归作者和博客园共有,欢迎转载, 但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接。 |