光大银行年金账户管理系统总体设计.docx
《光大银行年金账户管理系统总体设计.docx》由会员分享,可在线阅读,更多相关《光大银行年金账户管理系统总体设计.docx(91页珍藏版)》请在冰豆网上搜索。
![光大银行年金账户管理系统总体设计.docx](https://file1.bdocx.com/fileroot1/2023-1/5/c4cc9b95-c834-4ef3-acb2-22edd3686d89/c4cc9b95-c834-4ef3-acb2-22edd3686d891.gif)
光大银行年金账户管理系统总体设计
中国光大银行
企业年金基金账户管理信息系统(三期)
总体设计
V1.0
北京用友金融软件系统有限公司
2006年12月
修订控制页
编号
文档版本
修订章节
修订原因
修订日期
修订人
审核人
1
V1.0
全文
创建文档
2006-11
张志辉、胡琛琼、陈宝山、焦文娟
2
V1.0
第一章
涉及到的文档名字有问题
2007-12
陈宝山
第1章引言
1.1文档目的
总体设计是在需求分析的基础上,从设计的角度出发讨论系统的形态、相关的构件,以及根据系统将要运行的软硬件平台进行方案策略的选择和确定、系统的模块化,数据库设计、平台设计、接口设计、以及安装测试等方面的设计。
通过本文档的描述,读者能够获悉整个系统的实施将如何进行并保证最终的实现。
本文读者:
Ø参与本项目的设计人员
Ø参与本项目的开发人员
Ø参与本项目的测试人员
1.2项目背景
待开发软件系统:
中国光大银行企业年金基金账户管理信息系统(三期)。
中国光大银行企业年金中心提出结合光大银行企业年金业务运行特点和运作流程,开发涵盖企业年金账户管理业务并具有集成、统一、安全、高效的企业年金账户管理系统。
系统的总体目标:
基于Internet/Intranet网络技术和先进的信息处理技术,采用浏览器/服务器(Browse/Server)结构的集中式管理模式,结合光大银行企业年金业务特点,开发涵盖企业年金业务的企业年金账户管理系统,以满足中国光大银行总行、分支行、光大银行为之提供年金计划账户服务的不同企业以及光大银行账户管理系统白标签服务的用户要求,实现企业年金信息标准统一、数据集中管理、业务流程控制,实时监督各个分支行、白标签企业的企业年金运行情况,进行多层次数据汇总,实现信息共享。
同时,具有完整全面的数据接口,为企业年金业务运行所需的数据交换提供及时、准确、可靠的数据,实现企业年金业务运行各角色之间数据传输通畅。
1.3名词解释
Ø企业年金:
指企业及其员工在依法参加基本养老保险的基础上,自愿建立的补充养老保险制度。
Ø企业年金基金:
指根据依法制定的企业计划筹集的资金及其投资运营收益形成的企业补充养老保险基金,由下列各项组成:
企业缴费、员工缴费、企业年金基金投资运营收益。
Ø光大银行:
中国光大银行
Ø总行年金中心:
在光大银行总行开展企业年金业务的机构
Ø年金分中心:
在光大银行各分行或支行开展年金业务的机构
Ø系统:
中国光大银行企业年金基金账户管理信息系统
Ø核心系统:
中国光大银行业务核心系统
Ø计划:
年金计划和福利计划等
Ø企业:
参加企业年金基金的企业或机构。
Ø员工:
企业中参加企业年金基金的个人。
Ø复式记账法:
全称为:
借贷复式记账法。
是指对每一项交易或事项所引起的资金增减变动,都以相等的金额同时在两个或两个以上相互联系的账户中进行登记的一种记账方法。
系统中采用此记账方法对企业年金基金进行记账。
Ø业务单据:
在本系统的所有业务处理过程中,业务操作均生成相应的业务单据,记录业务处理的详细过程信息。
Ø正常缴费:
主要指根据缴费规则计算并缴纳企业年金基金的缴费。
Ø特殊缴费:
主要指计划约定的其他缴费。
是指有别于正常缴费,基于奖励等特殊目的临时性缴纳的缴费。
Ø超额缴费:
在企业缴费过程中,实际缴费总额大于本次应缴费总额时称为超额缴费,超额缴费部分记入企业特殊账户。
Ø归属权益:
主要指员工符合企业计划规定的归属条件时,确定该员工企业年金个人账户中企业缴费及投资收益应当取得的权益。
Ø未归属权益:
主要指员工离开本企业时,员工企业年金个人账户中企业缴费及投资收益未归属的权益,可用于抵消企业未来缴费或分给计划成员等。
Ø企业账户:
记录基层单位企业年金基金权益的账户,企业账户余额由企业超额缴费、员工未归属权益和相应的投资收益构成,该账户余额权益不属于员工个人。
Ø员工账户:
记录员工个人企业年金基金权益的账户,其账户由个人子账户部分和企业子账户部分构成,企业子账户由企业缴费和相应产生的投资收益构成,员工账户通过企业年金账号唯一辨识。
Ø保留账户:
员工离开基层单位后,要求账户管理人继续管理其员工账户时,为记录这类员工的缴费、支付及投资收益等信息专门设立的账户。
Ø员工缴费:
企业年金缴费过程中,从员工工资所提取的缴费,该缴费形成的权益完全属于员工个人所有。
1.4参考文档
《光大银行年金账户管理系统--功能说明书》
《光大银行年金账户管理系统--需求分析书》
《用友公司实施方法论》:
用友CMM5程序文件
《用友项目质量保障》:
:
用友CMM5程序文件
第2章总体结构设计
光大企业年金项目技术平台是基于SpringFramework微内核平台,平台既考虑光大企业年金项目具有大型企业应用的一般特征,又考虑到光大年金项目的一些特殊性,如业务需求灵活性较强,业务单据数据交互量较大,业务处理数量较大,与系统接口种类多同时数量较大。
光大企业年金项目技术平台的主要设计思路是:
(1)利用SpringFramework面向方面编程(AOP)来实现事务,远程调用,日志,安全校验等方面,减少代码冗余和技术耦合;
(2)利用SpringFramework的依赖倒置(IOC)技术,降低业务代码与中间件,业务模块之间的耦合;
(3)利用hibernate来出来对象关系映射,减少大量的数据存储代码,统一业务对象的访问模型;
(4)对大数据量业务处理直接使用存储过程来优化,使用SpringFramework数据源事务机制来统一调度hibernate和存储过程;
(5)基于模型驱动开发快速满足频率较高的业务需求变化;
(6)提供灵活统一的数据交换平台实现系统对外接口;
(7)提供统一的流程控制管理机制调度监控复杂的业务。
2.1SpringFramework介绍
Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的轻量级J2RR框架。
“轻量级”是相对于重量级来讲的。
在Spring出现之前,企业级开发一般都采用EJB,因为它提供的事务管理,声明式事务支持,持久化,分布计算等等都简化了企业级应用的开发。
重量级容器是一种入侵式的,也就是说你要用EJB提供的功能就必须在你的代码中体现出来你使用的是EJB,比如继承一个接口,声明一个成员变量。
这样就把你的代码绑定在EJB技术上了,而且EJB需要WEBLOGIC,JBOSS这样的容器支持,所以称之为“重量级”。
相对而言“轻量级”就是非入侵式的,用Spring开发的系统中的类不需要依赖Spring中的类,不需要容器支持(当然Spring本身是一个容器),而且Spring的大小和运行开支都很微量。
Spring框架图:
Spring框架包含许多特性,并被很好地组织在七个模块中。
⏹Core封装包是框架的最基础部分,提供IoC和依赖注入特性。
这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
⏹构建于Core封装包基础上的Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。
Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。
⏹DAO提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。
并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plainoldJavaobjects)都适用。
⏹ORM封装包提供了常用的“对象/关系”映射APIs的集成层。
其中包括JPA、JDO、Hibernate和iBatis。
利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。
⏹Spring的AOP封装包提供了符合AOPAlliance规范的面向方面的编程(aspect-orientedprogramming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。
而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中,这有点象.Net的attribute的概念。
⏹Spring中的Web包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servletlisteners进行IoC容器初始化和针对Web的applicationcontext。
当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。
⏹Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。
Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和webform之间。
并且,还可以借助Spring框架的其他特性。
2.2平台技术框架
2.3业务基础类结构
2.4功能节点开发模型
功能节点的开发主要通过平台的模版配置工具进行业务建模,并实现个性化的管理方案配置和简单功能模块的配置,配置工具管理的数据和模版包括:
元数据、表单模版、表格模版、查询模版、打印模版、输出模版,可配置的简单功能模块的主要包括信息的增、删、改、保存、打印和输出等功能。
可配置的功能模块能够注册到系统功能树中并参与资源分配。
功能模块的开发主要通过平台几大模版的配置来实现,通过表单模版配置实现业务单据和用户的界面的配置;通过查询模版的配置实现查询项目与可支持查询条件的设置;通过输出模版和打印模版的配置可实现基于本模块的输出打印的设置;通过可配置简单功能模版的配置能够完成信息的增加、修改、删除、保存、查询、打印功能设置,将配置的模块注册到系统中即可完成模块的开发。
我们对常用的功能模型进行了抽象,可以快速实现管理型,树卡型,树管理型,多子表型等功能。
同时,系统对各个模版提供灵活的API,对于复杂功能可以方便的进行个性化开发。
2.4.1表单模版
系统基本的业务都通过表单模版实现,表单模版设置可以设置不同的表单模版,为系统中的各表单提供模版样式。
利用表单模版设置工具,可以增加一个新型的表单模版,也可以读取已有的表单模版进行修改,对默认的表单模版进行修改,使表单从根本上更加符合光大银行的实际需要。
2.4.2查询模版
查询模版工具可以定义不同的查询模版,为系统中的各节点设置查询样式,查询模版工具可以进行以下项目的设置:
左括号
上下条件的逻辑关系有:
"并且","或者"
设定要查询字段,比如pk_client查询字段来自表单中包含的原数据。
设定条件的字段,比如企业
操作符,比如等于;大于;小于;大于等于;小于;等于;相似于
是否锁定
参数类型支持字符串、浮点数、参照、下拉等
2.4.3打印模版
打印模版设置可以实现灵活地定义系统的各种打印作业,满足中国光大银行各分支机构不同的打印输出要求。
打印模版可以根据中国光大银行设定的打印格式进行各种数据(包括图片)的预览和打印。
系统提供了方便灵活的打印格式设计工具,并提供多种分页方式供选择,每种都对应了一个常用的数据、格式组织模式。
还可以应用公式解析和多种打印函数进行逻辑分支、数据库取数、变换打印格式等打印数据加工。
支持页面设置,包括页边距、纸张规格和打印方向;可以非常灵活的定义表头、表体和表尾,支持单元格合并;与Excel相似,每一显示项目的名称、位置、行高列宽、字体、边框、颜色打印格式都可以按单元格进行设置,整体布局自由定制;支持打印公式,根据需要自动打印;支持自定义变量,打印模版中的单元格可以设置自定义变量,用以满足特殊的需求,自定义变量的来源包括自定义文本,自定义公式,还可以取自中国光大银行企业年金系统所有基础档案数据表中任何一个单元格对应的数据信息;支持系统变量,包括从组织机构中获取的机构名称、地址、电话、传真、电子邮箱、联系人等信息。
2.4.4开发规范
在多层分布式结构的系统框架之下,为了便于程序的合理部署,提高编码和运行的效率,提高程序可扩展性,有必要建立一种统一的代码构架。
规范的核心思想是将业务代码对象按照功能和分布情况进行分类,定义每一类对象的结构和用途。
定义规范需要考虑的问题:
⏹可维护性,各类对象便于分类整理、部署;
⏹代码重用,抽取较小的独立执行原子进行封装;
⏹运行效率问题,在结构上满足快速开发的基础上兼顾效率问题;
⏹编码效率问题,将对象的静态特征集中描述,重复使用;
⏹与中间件环境的配合;
⏹配合面向对象设计,采用名词为主,事物为辅的对象抽取策略;
前台界面(UI):
包名nc.ui.eprk;
类名为表名去掉eprk_如加UI(PersonUI);
新增按钮在UI中新增方法方法名为on加按钮名称如(onAdd());
单据对象(VO):
包名nc.vo.eprk;
类名为表名去掉eprk_如加VO(PersonVO);
业务对象及接口(BO):
接口包名nc.itf.eprk;
BO包名nc.bs.eprk;
接口类名为表名去掉eprk_如(Person);
BO类名为表名去掉eprk_如(PersonBO);
后台方法名称与按钮的名称相同(如按钮名Save则BO中方法名为save());
BO中方法的参数类型采用强类型(如PersonBO的save(PersonVOvo)方法);
2.4.5基于Springrichclient的客户端开发
光大银行年金计划账户业务涉及到的业务单据具有:
单据间关系繁杂,单据业务数据量大,业务数据涉及到的校验等逻辑规则多的特点。
传统的JSP页面很难在处理速度和界面元素表达上满足这些单据的处理界面的需要。
本系统将采用基于JavaSwing和Spring的客户端开发框架springrichclient。
这一框架的具有很高的可配置型、统一的界面风格、以及强大的客户端业务逻辑表达能力。
同时基于配置的界面开发直接由单据生成工具直接基于PDM生成配置文件,配置文件中定义了:
表单中的数据项,数据项的名称、显示名称、数据类型、最大长度、小数位数、是否可为空、是否换行、提示信息等基本属性和可视性控制、可编辑性控制、可编辑性的控制、显示色彩、布局等高级属性,表单菜单项,菜单按纽显示逻辑。
从而最大限度地降低了代码的开发量提交了开发速度。
使得开发者能专注于业务逻辑的开发。
客户端基础类结构如下。
基于这些基础类可以配置单表管理型界面、主子管理型界面、多子表管理型界面、树卡型界面、树管理型界面。
后台类图:
2.5工作流平台
系统通过平台集成的工作流平台实现业务流程的设计和控制。
工作流平台由工作流引擎、工具集、任务管理器等组件组成。
其中,工作流引擎是流程平台的核心,主要负责工作流过程中流程的流转,管理并序列化相关的流程数据以及提供相应的查询接口管理;工具集负责提供独立的流程可视化工具,包括流程查询工具,流程设计工具,以及流程监控工具;任务管理器无缝访问企业年金系统中的组织机构和应用程序,从而将任务与执行人结合形成流程节点;组件提供工作流引擎与应用程序的调用接口。
工作流平台是一个完全符合WFMC规范的工作流产品。
2.5.1图形化流程设计
工作流平台支持图形化流程设计,通过节点、连线、以及条件的设置,完成业务流程的定义。
方便的流程定义操作可以帮助各个分支机构中的业务管理人员定义符合的业务流程。
流程设计方法可以归纳为:
角色岗位与任务构成流程节点;流程节点与流转条件构成业务流程。
工作流引擎紧密结合组织机构与权限模型,角色、岗位、人员都可以定义为任务执行主体,角色定义的流程节点适用于各部门通用的流程。
2.5.2复杂流程的支持
在中国光大银行企业年金系统中,复杂业务流程可以归纳成两种模式:
主子流程模式(也称为流程嵌套)和流程跳转模式。
工作流平台支持这两种模式复杂流程的自动流转。
工作流引擎能够支持WFMC的标准工作流定义,支持会签或任务抢占、流程分支及流程合并。
2.5.3任务执行模式
工作流引擎在执行相关流程节点时向下一个节点的执行角色发出消息,用户登录系统后会接收到来自任务管理器的任务消息,用户根据工作流消息即可打开相应的任务进行处理。
2.5.4工作流与权限模型结合
工作流配置时根据用户的权限将管理范围内的角色纳入流程设置的角色中,可以实现跨组织机构的流程设置和执行。
流程配置时相应节点的角色在权限管理中应具有功能的操作权限,在流程执行中根据角色的数据权限进行相应任务的处理。
2.5.5工作流与消息中心结合
在中国光大银行企业年金业务流程处理过程中,有些业务的处理消息除了需要当前用户处理外,还需要将相关消息抄送给其他用户,如复核员。
通过消息平台的相关配置,可以实现工作流中事件消息的传递,消息配置可以支持消息发送对象、消息发送格式、消息发送条件、以及消息发送方式配置,也可以配置消息以电子邮件、实时消息和手机短信的方式发送给指定的用户。
2.5.6工作流平台框架图
2.5.7主要功能清单
功能模块
备注
重要程度
技术、标准
工作流设计器
建立和维护工作流定义
A
工作流联盟标准,工作流引擎,JGraph,FlowChart组件
流程监控器
跟综正在进行的工作流
A
JGraph,FlowChart组件
通用表单审批流设计器
对通用表单的审批流根据用户的应用作相应的个性调整。
A
工作流权限
能够对在不同的工作流环节的流程进行相应的权限分配。
A
2.5.8工作流平台运行图
2.5.9对外组件及接口
2.5.9.1WorkflowComponent
概述:
工作流组件主要是负责工作流与功能进行交付的核心组件。
它主要提供工作流流程相关的核心数据,及数据的查询。
⏹初始化接口
setTask(Tasktask);
根据一个Task初始化好所有流程相关数据。
其中包括(流程定义ID,流程实例ID,当前的活动ID,及一些相关的数据)
setWfProcessDefID(StringwfProcessDefID)
设置一个功能的工作流定义ID,(主要是用于在初始化一个工作流的时候使用,采用Task方式的初始化是不需要这项设置。
⏹获得相关数据
可以从一个Task获得相关的业务数据(一般来说是上一步做完的输出数据,是这一部的输入数据)。
⏹流转接口
FlowNext();
工作往下流转
FlowBack();
工作流回退。
startWorkflow();
开始一个工作流。
⏹跟业务相关操作接口
setBizObject(ObjectbizObject);
设置在此步操作过后的业务数据,用于后面的流程的条件判断。
在流转前一定要设置此值。
⏹事件接口
publicinterfaceWorkFlowEvent{
publicvoidbeforeFlowOut(Tasktask);
publicvoidafterFlowOut(Tasktask);
}
⏹定义查询接口
getWFProcess();
取得相应的工作流定义。
2.5.9.2FlowChart
Flowchart流程显示对话框。
可以根据一个WFProcess定义显示相应的流程定义。
setWorkflow(WorkFlowworkflow)
设置相应的工作流定义。
FlowChartInstance显示对话框。
setWorkFlow(WorkFlowworkflow)
设置相应的工作流定义。
setWorkFlowInstance();
2.5.9.3组织机构集成接口
根据某操作员的PK获得他所拥有的所有组织机构元素.
publicOrganizeElement[]getOrganizeTypesAndIDs(Stringpk_corp,StringuserId);
根据一个组织机构元素获得属于这个组织机构元素的所有操作员的PK
publicString[]getOperatorCodes(StringorganizeType,StringorganizeID);
根据一个组织机构元素获得属于这个组织机构元素的所有操作员的PK
publicString[]getOperatorCodes(StringorganizeType,StringorganizeID,String[]corps,String[]depts)。
2.6业务预警平台
提供各个机构对事件控制的需求,通过与各类业务的比较来发出警告性的提示信息,用来提示单位的各种业务管理员针对将来或已经发生的情况采取相应的措施,进行相关处理。
通过对代理的配置和预警类型的定义,以及对预警条目的设置,当系统运行的时候,一旦符合了预警条件,设置的预警信息就会自动弹出来,提示用户。
2.6.1预警平台配置
在预警平台上,定义要进行预警的事件(包括预警触发的条件,预警信息的内容、预警的时间设置等等),预警信息的接收者(用户组、用户、角色)、接收方式等。
用户权限经常发生变化时建议消息接收者为用户组、角色。
预警信息的内容可通过预警的上、下文进行配置,例如:
试用到期预警,展现的内容为:
姓名、试用开始日期、试用期等。
针对各个系统的主要事件,均可以进行预警定义,例如试用到期、离退休到期的预警定义等。
预警事件采用插件注册的方式,因此一些二次开发的预警事件能够轻松的挂接到预警平台。
在定义好预警条件后,预警平台采用后台工作的方式,无须人工干预,按照预定的方式自动产生和发送各类预警信息。
2.6.2预警平台查询
这个功能主要是用来查询预警信息,可以查看到四种预警方式的最新产生的预警信息以及用户已经阅读过的历史预警信息。
2.6.3预警执行
根据设置的预警条件、触发方式,系统自动调度相应的预警任务,如果满足预警条件将相应的消息发送给指定的用户。
预警消息通过消息中心转发。
2.7数据交换平台
应用目标:
提供数据接口实现与其他系统的数据交换。
2.7.1数据交换平台架构
数据交换平台的核心由多格式数据适配器,多数据传输协议,数据校验转换引擎,数据交换处理引擎。
2.7.2数据交换格式
数据交换平台提供多种格式的适配器,包括txt文件,xml,dbf,excel,数据库表,java对象等。
2.7.3多数据传输协议
数据交换平台支持文件扫描/数据库监控/http/Tcp/Udp/FTP/email/消息队列等多种传输协议。
2.7.4数据校验转换机制
外部系统和中国光大银行企业年金系统相互间进行数据传输时,必须要对数据合法性进行校验,数据交换平台提供数据格式定义合法性描述,传输过程中,通过此合法性描述校验的数据才能进行传输。
外部数据和内部数据之间的转换则采