ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:739.04KB ,
资源ID:1306300      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1306300.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编号规则功能详细设计版1解读.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编号规则功能详细设计版1解读.docx

1、编号规则功能详细设计版1解读编号规则模块功能详细设计版本记录日期描述作者svn版本2014/1/22初稿潘微微1 模块说明1.1 模块作用编号规则属于工具模块,在系统的很多业务模块中都存在编号来标识数据,就需要有一个模块能尽量适用各种存在规律的编号的生成,编号规则负责该部分的工作,所以该模块属于工具模块,被各个地方所引用。1.2 名词解释 编号:用于标识一个业务实例、数据条目的有一定业务规则的字串,业务称谓上通常由前缀、主号码、后缀等组成。整个编号字串从技术称谓上可以分为的一个或多个部份 ,这些部份叫“编号片段”,每个“编号片段”由一个原子级的编号规则构成。 编号规则:本设计框架支持一套可扩展

2、的编号规则库。目前本设计预制了以下几种规则:固定字串、自增(减)序号、枚举形序号库、年月日时分秒格式数字、当前账户组织单元属性、当前账户部门属性、当前账户人员属性、自定义参数注入。本系统将按这些规则实现不同的“规则提供器”。 序号实例:对于自增(减)序号、枚举形序号规则系统建立序号实例库;这两种规则,需要根据不同的参数形成不同的序号实例。每个序号实例条目记录了:实例区分组合字串、当前序号最大(小)值等。1.3 原理与算法1.3.1 编号引擎1.3.2 规则定义说明规则定义分为:规则和规则明细定义。规则定义用于定义一个规则类型,用于识别不同的业务类型调用不同的编号规则。外部业务通过“单据类型编号

3、”(TypeId)调用不同的编号规则。规则明细定义了编号片断的组成规则和需要配置的项目。规则明细以规则定义为表头。按排列顺序形成编号的组成规则。固定字段规则生成器:配置一个固定字串自增(减)序号:是按数字递增(简)规则产生编号片断的。可以配置数字格式如:“#”(缺位需用0补齐)或“#,#”(戴格式的数字)可以配置数字起步值、最大值、步长(负步长表示递减)。序号实例区分参数:支持的参数包括全部(除当前明细)的规则明细,这些明细可以按顺序配制成一个字串组合。当运行时,系统按当前请求根据这些参数组成一个字串,然后到“序号实例”库表里查找,如果没有找到,则创建数据条目并从本规则明细的数字起步值开始记录

4、当前序号。如果找到,则从此条目当前序号加步长记录当前序号。此规则还可以通过“序号实例”界面查看当前所有序号实例条目数据,并支持单独维护(实例区分组合字串、当前参数值下的序号的实际值)。还可以配置是否强制连续序号:如果需要强制连续序号,则系统不再自主递增(减)序号,需要外部API来提交递增(减)序号。且如果跳号,则会抛错(具体算法见后面说明)。枚举形序号库:是按预定义好的序号库来输出编号片断的,比如:“A,B,C.”的字母顺序,当前如果是B了,则下次调用则产生C字母。序号库配置定义在规则明细上,采用“,”区分枚举项。还可以配置正序、倒序。仍可以配置“序号实例区分参数”和“配置是否强制连续序号”。

5、(具体实现方案可以参照自增(减)序号规则提供器)年月日时分秒格式数字:从当前服务器时钟里获得编号片断的规则提供器。可以配置年月日时分秒的格式输出形式。当前账户组织单元属性、当前账户部门属性、当前账户人员属性:将从当前账户登录系统后形成的session里提取这些信息。系统支持“classname.propertyname”形式配置提取信息。自定义参数注入:根据系统调用API的定义,支持从调用直接带入参数用于编号片断。系统支持前台ajaxAPI调用参数,基于json串识别参数名,参数值。后台map识别参数名,参数值。本规则可以配置一个参数名。还可以配置直接从:session、request、里提取

6、参数。1.3.3 配置是否强制连续序号算法实现说明配置是否强制连续序号用于实现采用“由于自增(减)序号、枚举形序号库”的规则生成器。下面用是强制、否强制来简化称谓。否强制:系统将在调用编号请求API时就对序号进行自增(减)并持久化到序号实例库内。好处是使用简单,基本不用考虑序号重复问题。接近于随机数发生器。缺点是序号不连续(当产生时不提交业务或提交失败)。是强制:系统不会在调用编号请求API时就对序号进行自增(减),而是需要通过与业务提交同事务内的更新API来驱动对序号进行自增(减)并持久化到序号实例库内。举例某纯Integer数字递增序号提供器具体算法如下: 调用时API分为初始化sessi

7、on缓存和获得编号两个API;假定获得编号时有两个session都要请求序号,而当前序号为4;则两个session内通过初始化API(用“实例区分组合字串”作为属性key)放入4(假定“实例区分组合字串”相同)。调用API时(此API从session里创建新序号)各装入(session1:567;session2:56789)则当前:session1最大序号值为7;session2为9。(如果界面都没有提交,则下次界面打开时需再次调用初始化API恢复真实序号最大值4)。如果提交业务,则需要调用更新写入序号API(提交编号API只能是后台API),对于session1,如上图:如果满足要持久化更

8、新的编号个数与最大号是连续的,则进行持久化,按最大编号值更新序号实例库相应条目。对于session2假定8的序号由于业务没有使用,则需要更新5679,会因最大号与编号个数不一致抛出异常。由于与业务提交处于相同事务,则保证序号连续的一致性。如果session1和session2都正常提交了,提交API需要先从数据库内读取当前真实序号情况,然后识别当前提交是否是在当前序号基础上连续递增(减)的,如果不是则此事务也抛出异常。注意,初始化、获得、提交更新API都是以typeid为参数的,所以:session里应以typeid为key构建一个Map,再以编号明细的key为内部MAP构建值对象;对于序号类

9、的规则,内部MAP的值为当前序号值。这套session内的数据结构用于维护一个事务中连续创建编号的情况(强制要求联号配置下)。1.4 参考文档1.5 模块注册表:模块名称模块ID上级模块说明编号规则(2014版)49970ad981c611e39ef4cddb3cb243e2systemManage2 相关页面界面说明2.1 编号规则入口页面2.1.1 /jsp/systemsettings/numBill/numBill/NumBillList.jsp列表结构:双表结构,主表为编号类别,子表为编号规则1) 编号类别的列表页面的数据来源于Num_NumBill表2) 编号规则的列表页面的数据来

10、源于Num_NumRuler表3) 下面为页面格式查询条件:1) 主查询:类别编号 2) 高级查询:类别编号、类别名称 新建:通过“新建”可以创建编号类别,填写基本信息。 调用页面/jsp/systemsettings/numBill/numBill/NumBillEdit.jsp 进行编号类别的编辑工作。 修改:通过修改可以维护基本信息。选择一条记录调用getObj方法获得记录,展示到编辑界面。调用numBillManagerAction.getObj方法 删除:通过删除按钮能够删除编号类别 调用numBillManagerAction.delete 新建规则明细:只通过该按钮可以创建子表数

11、据(编号规则),点击该按钮会弹出下拉框选择创建的规则,创建不同的规则进入不同的的编辑页面。 调用:/numRulerManagerAction.do?method=getObj方法,需要传入编号类别主键以及规则类别 子表修改: 通过该按钮可以修改创建的规则。 调用/numRulerManagerAction.do?method=getObj 子表删除:调用该方法,可以删除规则 调用删除方法:/numRulerManagerAction.do?method=delete查看规则实例:只有自增减型字串、枚举型字串两种会存在规则实例,当业务调用编号规则主键时,会保存或者更新当前的编号实例库,记录当前

12、使用的规则实例。通过“查看规则实例”按钮就能查看到生成的编号实例列表。 调用/jsp/systemsettings/numBill/numRulerSub/NumRulerSubList.jsp? numRulerId=,传入规则类别的主键引用:/jsp/systemsettings/numBill/numBill/NumBillList.jsp资源注册及权限表:资源名称资源ID所属模块说明编号规则Num_NumBill49970ad981c611e39ef4cddb3cb243e2所属“编号规则(2014版)”操作点名称操作点ID数据过滤器说明维护9133900e81c611e39ef4cd

13、db3cb243e22.1.2 /jsp/systemsettings/numBill/numBill/NumBillEdit.jsp保存:点击“保存”调用js中ajax方法,将数据更新或者保存到后台,保存成功后返回列表页面,调用NumBillEdit.js文件中的保存方法。规则类别编号:记录所属业务,用英文编制。编号类别名称:所属业务的描述。 创建人:默认当前人,从sessionScope中获取。创建时间:默认系统当前时间。状态类com.targ.systemsettings.numBill.numBill.uti.NumBillState.java草稿:0生效:1调用/numBillMan

14、agerAction.save(保存)/numBillManagerAction.update(更新)取消:取消返回编号规则的列表页面引用js: /jsp/systemsettings/numBill/numBill/NumBillEdit.js2.1.3 /jsp/systemsettings/numBill/numRuler/NumRulerEdit.jsp使用该页面文件的规则类别是:固定字串、时间字串、当前用户字串,其中的区分不大保存:点击“保存”调用js中ajax方法,将数据更新或者保存到后台,保存成功后返回列表页面,调用NumRulerEdit.js文件中的保存方法。规则类别编号:记

15、录所属业务,从主表规则类别中代入展示。编号类别名称:所属业务的描述,从主表规则类别中代入展示。 规则类别:记录所属的规则类别的描述。固定字串:记录类别为“固定字串”规则中的描述,直接写字串即可。日期:可以选择日期,主要应用于记录规则复位的时间。日期格式:可以选择时间字串的日期格式,如果存在该格式会以选择的格式,进行格式化生成编号。当前用户信息:主要是从sesion中获取当前的用户的信息。是否输出:是否输出代表在生成编号的时候是否将生成的编号片段按顺序拼接到编号上。针对自增减字串、枚举型字串规则类别中的复合字串的拼接中不存在该区分。对应类:com.targ.systemsettings.numBill.numRuler.util.NumRulerEnum.java输出:true(拼接)不输出:false(不拼接)排序:排序是数字,按照编号规则的排序序号正序排序生成编号。创建人:默认当前人,从sessionScope中获取。创建时间:默认系统当前时间。调用/ numRulerManagerAction.save(保存)/ numRul

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1