资源描述
中国光大银行企业年金基金账户管理信息系统(三期)总体设计V1.0用友金融软件系统2006年12月修订控制页编号文档版本修订章节修订原因修订日期修订人审核人1V1.0全文创建文档2006-11志辉、胡琛琼、宝山、焦文娟2V1.0第一章涉与到的文档名字有问题2007-12宝山目 录第1章引言71.1文档目的71.2项目背景71.3名词解释81.4参考文档9第2章总体结构设计102.1Spring Framework介绍102.2平台技术框架122.3业务基础类结构142.4功能节点开发模型142.4.1表单模版152.4.2查询模版152.4.3打印模版162.4.4开发规162.4.5基于Spring rich client的客户端开发172.5工作流平台192.5.1图形化流程设计202.5.2复杂流程的支持202.5.3任务执行模式202.5.4工作流与权限模型结合202.5.5工作流与消息中心结合202.5.6工作流平台框架图212.5.7主要功能清单212.5.8工作流平台运行图222.5.9对外组件与接口222.6业务预警平台242.6.1预警平台配置252.6.2预警平台查询252.6.3预警执行252.7数据交换平台252.7.1数据交换平台架构262.7.2数据交换格式262.7.3多数据传输协议272.7.4数据校验转换机制272.7.5大数据量处理272.8查询引擎272.8.1查询引擎框架图282.8.2查询引擎结构282.8.3技术特点282.8.4数据加工滤镜282.8.5查询定义292.9组织机构模型和权限服务292.9.1静态图302.9.2权限运行流程312.10数据管理解决方案312.10.1历史数据管理解决方案312.10.2高性能高并发解决方案312.10.3大数据量解决方案322.10.4数据库优化方案322.11数据库分布332.12开发环境332.13运行环境34第3章总体功能设计353.1功能结构图353.1.1基本档案管理353.1.2计划管理363.1.3企业管理393.1.4个人管理423.1.5企业特别账户管理453.1.6缴费管理463.1.7集团缴费管理543.1.8个人缴费管理553.1.9转移管理553.1.10投资管理583.1.11归属管理603.1.12支付管理633.1.13调账管理713.1.14抹账管理733.1.15接口批量导入733.1.16接口管理733.1.17账户管理费管理743.1.18档案管理753.1.19报表管理763.1.20综合查询773.1.21系统管理783.1.22客户端子系统793.2功能设计803.2.1基本档案管理803.2.2计划管理813.2.3企业管理813.2.4个人管理823.2.5企业特别账户管理833.2.6缴费管理833.2.7集团缴费管理833.2.8个人缴费管理833.2.9转移管理833.2.10投资管理843.2.11归属管理843.2.12支付管理853.2.13调账管理853.2.14抹账处理853.2.15接口批量导入处理863.2.16账户管理费管理863.2.17档案管理863.2.18报表管理873.2.19综合查询883.2.20系统管理893.2.21客户端子系统893.3核心业务处理类设计903.4接口设计913.4.1与核心系统接口913.4.2网上查询服务913.4.3呼叫中心服务923.4.4电子服务943.4.5ATM机查询943.4.6短信服务953.4.7与托管人接口963.4.8与资产核算系统接口973.4.9与受托人接口97第4章数据库设计1024.1业务数据类型1024.2系统管理1024.2.1数据库表1024.3计划、企业和个人管理1044.3.1实体关系图1044.3.2数据库表1044.4缴费管理1064.4.1实体关系图1064.4.2数据库表1064.5收益分配管理1074.5.1实体关系图1074.5.2数据库表1074.6归属管理1084.6.1实体关系图1084.6.2数据库表1084.7支付管理1094.7.1实体关系图1094.7.2数据库表1094.8账户、流水与凭证管理1104.8.1实体关系图1104.8.2数据库表1104.9摸账处理1104.9.1数据库表1104.10转移管理1114.10.1数据库表1114.11调账管理1114.11.1数据库表1114.12投资转换管理1124.12.1数据库表112第5章容错处理1135.1出错信息1135.2补救措施113第1章 引言1.1 文档目的总体设计是在需求分析的基础上,从设计的角度出发讨论系统的形态、相关的构件,以与根据系统将要运行的软硬件平台进行方案策略的选择和确定、系统的模块化,数据库设计、平台设计、接口设计、以与安装测试等方面的设计。通过本文档的描述,读者能够获悉整个系统的实施将如何进行并保证最终的实现。本文读者: 参与本项目的设计人员 参与本项目的开发人员 参与本项目的测试人员1.2 项目背景待开发软件系统:中国光大银行企业年金基金账户管理信息系统(三期)。中国光大银行企业年金中心提出结合光大银行企业年金业务运行特点和运作流程,开发涵盖企业年金账户管理业务并具有集成、统一、安全、高效的企业年金账户管理系统。系统的总体目标:基于Internet/Intranet网络技术和先进的信息处理技术,采用浏览器/服务器(Browse/Server)结构的集中式管理模式,结合光大银行企业年金业务特点,开发涵盖企业年金业务的企业年金账户管理系统,以满足中国光大银行总行、分支行、光大银行为之提供年金计划账户服务的不同企业以与光大银行账户管理系统白标签服务的用户要求,实现企业年金信息标准统一、数据集中管理、业务流程控制,实时监督各个分支行、白标签企业的企业年金运行情况,进行多层次数据汇总,实现信息共享。同时,具有完整全面的数据接口,为企业年金业务运行所需的数据交换提供与时、准确、可靠的数据,实现企业年金业务运行各角色之间数据传输通畅。1.3 名词解释 企业年金:指企业与其员工在依法参加基本养老保险的基础上,自愿建立的补充养老保险制度。 企业年金基金:指根据依法制定的企业计划筹集的资金与其投资运营收益形成的企业补充养老保险基金,由下列各项组成:企业缴费、员工缴费、企业年金基金投资运营收益。 光大银行:中国光大银行 总行年金中心:在光大银行总行开展企业年金业务的机构 年金分中心:在光大银行各分行或支行开展年金业务的机构 系统:中国光大银行企业年金基金账户管理信息系统 核心系统:中国光大银行业务核心系统 计划:年金计划和福利计划等 企业:参加企业年金基金的企业或机构。 员工:企业中参加企业年金基金的个人。 复式记账法:全称为:借贷复式记账法。是指对每一项交易或事项所引起的资金增减变动,都以相等的金额同时在两个或两个以上相互联系的账户中进行登记的一种记账方法。系统中采用此记账方法对企业年金基金进行记账。 业务单据:在本系统的所有业务处理过程中,业务操作均生成相应的业务单据,记录业务处理的详细过程信息。 正常缴费:主要指根据缴费规则计算并缴纳企业年金基金的缴费。 特殊缴费:主要指计划约定的其他缴费。是指有别于正常缴费,基于奖励等特殊目的临时性缴纳的缴费。 超额缴费:在企业缴费过程中,实际缴费总额大于本次应缴费总额时称为超额缴费,超额缴费部分记入企业特殊账户。 归属权益:主要指员工符合企业计划规定的归属条件时,确定该员工企业年金个人账户中企业缴费与投资收益应当取得的权益。 未归属权益:主要指员工离开本企业时,员工企业年金个人账户中企业缴费与投资收益未归属的权益,可用于抵消企业未来缴费或分给计划成员等。 企业账户:记录基层单位企业年金基金权益的账户,企业账户余额由企业超额缴费、员工未归属权益和相应的投资收益构成,该账户余额权益不属于员工个人。 员工账户:记录员工个人企业年金基金权益的账户,其账户由个人子账户部分和企业子账户部分构成,企业子账户由企业缴费和相应产生的投资收益构成,员工账户通过企业年金账号唯一辨识。 保留账户:员工离开基层单位后,要求账户管理人继续管理其员工账户时,为记录这类员工的缴费、支付与投资收益等信息专门设立的账户。 员工缴费:企业年金缴费过程中,从员工工资所提取的缴费,该缴费形成的权益完全属于员工个人所有。1.4 参考文档光大银行年金账户管理系统-功能说明书光大银行年金账户管理系统-需求分析书用友公司实施方法论:用友CMM5程序文件用友项目质量保障:用友CMM5程序文件第2章 总体结构设计光大企业年金项目技术平台是基于Spring Framework微核平台,平台既考虑光大企业年金项目具有大型企业应用的一般特征,又考虑到光大年金项目的一些特殊性,如业务需求灵活性较强,业务单据数据交互量较大,业务处理数量较大,与系统接口种类多同时数量较大。光大企业年金项目技术平台的主要设计思路是:(1)利用Spring Framework面向方面编程(AOP)来实现事务,远程调用,日志,安全校验等方面,减少代码冗余和技术耦合;(2)利用Spring Framework的依赖倒置(IOC)技术,降低业务代码与中间件,业务模块之间的耦合;(3)利用hibernate来出来对象关系映射,减少大量的数据存储代码,统一业务对象的访问模型;(4)对大数据量业务处理直接使用存储过程来优化,使用Spring Framework数据源事务机制来统一调度hibernate和存储过程;(5)基于模型驱动开发快速满足频率较高的业务需求变化;(6)提供灵活统一的数据交换平台实现系统对外接口;(7)提供统一的流程控制管理机制调度监控复杂的业务。2.1 Spring Framework介绍Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的轻量级J2RR框架。“轻量级”是相对于重量级来讲的。在Spring出现之前,企业级开发一般都采用E,因为它提供的事务管理,声明式事务支持,持久化,分布计算等等都简化了企业级应用的开发。重量级容器是一种入侵式的,也就是说你要用E提供的功能就必须在你的代码中体现出来你使用的是E,比如继承一个接口,声明一个成员变量。这样就把你的代码绑定在E技术上了,而且E需要WEBLOGIC,OSS这样的容器支持,所以称之为“重量级”。相对而言“轻量级”就是非入侵式的,用Spring开发的系统中的类不需要依赖Spring中的类,不需要容器支持(当然Spring本身是一个容器),而且Spring的大小和运行开支都很微量。Spring框架图:Spring框架包含许多特性,并被很好地组织在七个模块中。n Core 封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。n 构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。n DAO 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC 封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。 n ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。n Spring的 AOP 封装包提供了符合 AOP Alliance规的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中,这有点象.Net的attribute的概念。n Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的application context。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。n Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种 清晰的 分离模型,在领域模型代码和web form之间。并且,还可以借助Spring框架的其他特性。2.2 平台技术框架2.3 业务基础类结构2.4 功能节点开发模型功能节点的开发主要通过平台的模版配置工具进行业务建模,并实现个性化的管理方案配置和简单功能模块的配置,配置工具管理的数据和模版包括:元数据、表单模版、表格模版、查询模版、打印模版、输出模版,可配置的简单功能模块的主要包括信息的增、删、改、保存、打印和输出等功能。可配置的功能模块能够注册到系统功能树中并参与资源分配。功能模块的开发主要通过平台几大模版的配置来实现,通过表单模版配置实现业务单据和用户的界面的配置;通过查询模版的配置实现查询项目与可支持查询条件的设置;通过输出模版和打印模版的配置可实现基于本模块的输出打印的设置;通过可配置简单功能模版的配置能够完成信息的增加、修改、删除、保存、查询、打印功能设置,将配置的模块注册到系统中即可完成模块的开发。我们对常用的功能模型进行了抽象,可以快速实现管理型,树卡型,树管理型,多子表型等功能。同时,系统对各个模版提供灵活的API,对于复杂功能可以方便的进行个性化开发。2.4.1 表单模版系统基本的业务都通过表单模版实现,表单模版设置可以设置不同的表单模版,为系统中的各表单提供模版样式。利用表单模版设置工具,可以增加一个新型的表单模版,也可以读取已有的表单模版进行修改,对默认的表单模版进行修改,使表单从根本上更加符合光大银行的实际需要。2.4.2 查询模版查询模版工具可以定义不同的查询模版,为系统中的各节点设置查询样式,查询模版工具可以进行以下项目的设置: 左括号 上下条件的逻辑关系 有 :并且, 或者 设定要查询字段 ,比如pk_client 查询字段来自表单中包含的原数据。 设定条件的字段,比如 企业 操作符,比如 等于;大于;小于;大于等于;小于;等于;相似于 是否锁定 参数类型支持字符串、浮点数、参照、下拉等2.4.3 打印模版打印模版设置可以实现灵活地定义系统的各种打印作业,满足中国光大银行各分支机构不同的打印输出要求。打印模版可以根据中国光大银行设定的打印格式进行各种数据(包括图片)的预览和打印。系统提供了方便灵活的打印格式设计工具,并提供多种分页方式供选择,每种都对应了一个常用的数据、格式组织模式。还可以应用公式解析和多种打印函数进行逻辑分支、数据库取数、变换打印格式等打印数据加工。支持页面设置,包括页边距、纸规格和打印方向;可以非常灵活的定义表头、表体和表尾,支持单元格合并;与Excel相似,每一显示项目的名称、位置、行高列宽、字体、边框、颜色打印格式都可以按单元格进行设置,整体布局自由定制;支持打印公式,根据需要自动打印;支持自定义变量,打印模版中的单元格可以设置自定义变量,用以满足特殊的需求,自定义变量的来源包括自定义文本,自定义公式,还可以取自中国光大银行企业年金系统所有基础档案数据表中任何一个单元格对应的数据信息;支持系统变量,包括从组织机构中获取的机构名称、地址、 、电子、联系人等信息。2.4.4 开发规在多层分布式结构的系统框架之下,为了便于程序的合理部署,提高编码和运行的效率,提高程序可扩展性,有必要建立一种统一的代码构架。规的核心思想是将业务代码对象按照功能和分布情况进行分类,定义每一类对象的结构和用途。定义规需要考虑的问题:n 可维护性,各类对象便于分类整理、部署;n 代码重用,抽取较小的独立执行原子进行封装;n 运行效率问题,在结构上满足快速开发的基础上兼顾效率问题;n 编码效率问题,将对象的静态特征集中描述,重复使用;n 与中间件环境的配合;n 配合面向对象设计,采用名词为主,事物为辅的对象抽取策略;前台界面(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(PersonVO vo)方法);2.4.5 基于Spring rich client的客户端开发光大银行年金计划账户业务涉与到的业务单据具有:单据间关系繁杂,单据业务数据量大,业务数据涉与到的校验等逻辑规则多的特点。传统的JSP页面很难在处理速度和界面元素表达上满足这些单据的处理界面的需要。本系统将采用基于Java Swing 和 Spring的客户端开发框架spring rich client。这一框架的具有很高的可配置型、统一的界面风格、以与强大的客户端业务逻辑表达能力。同时基于配置的界面开发直接由单据生成工具直接基于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组件流程监控器跟综正在进行的工作流AJGraph,FlowChart组件通用表单审批流设计器对通用表单的审批流根据用户的应用作相应的个性调整。A工作流权限 能够对在不同的工作流环节的流程进行相应的权限分配。A2.5.8 工作流平台运行图2.5.9 对外组件与接口2.5.9.1 Workflow Component概述: 工作流组件主要是负责工作流与功能进行交付的核心组件。它主要提供工作流流程相关的核心数据,与数据的查询。n 初始化接口setTask(Task task);根据一个Task初始化好所有流程相关数据。其中包括(流程定义ID,流程实例ID,当前的活动ID,与一些相关的数据)setWfProcessDefID(String wfProcessDefID)设置一个功能的工作流定义ID,(主要是用于在初始化一个工作流的时候使用,采用Task方式的初始化是不需要这项设置。n 获得相关数据可以从一个Task获得相关的业务数据(一般来说是上一步做完的输出数据,是这一部的输入数据)。n 流转接口FlowNext();工作往下流转FlowBack();工作流回退。startWorkflow();开始一个工作流。n 跟业务相关操作接口setBizObject(Object bizObject);设置在此步操作过后的业务数据,用于后面的流程的条件判断。在流转前一定要设置此值。n 事件接口public interface WorkFlowEvent public void beforeFlowOut(Task task);public void afterFlowOut(Task task);n 定义查询接口getWFProcess();取得相应的工作流定义。2.5.9.2 FlowChartFlowchart 流程显示对话框。可以根据一个WFProcess定义显示相应的流程定义。setWorkflow(WorkFlow workflow)设置相应的工作流定义。FlowChartInstance 显示对话框。setWorkFlow(WorkFlow workflow)设置相应的工作流定义。setWorkFlowInstance();2.5.9.3 组织机构集成接口根据某操作员的PK获得他所拥有的所有组织机构元素.public OrganizeElement getOrganizeTypesAndIDs(String pk_corp, String userId);根据一个组织机构元素获得属于这个组织机构元素的所有操作员的PKpublic String getOperatorCodes(String organizeType, String organizeID);根据一个组织机构元素获得属于这个组织机构元素的所有操作员的PKpublic String getOperatorCodes(String organizeType, String organizeID, 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 多数据传输协议数据交换平台支持文件扫描/数据库监控/ /Tcp/Udp/FTP/email/消息队列等多种传输协议。2.7.4 数据校验转换机制外部系统和中国光大银行企业年金系统相互间进行数据传输时,必须要对数据合法性进行校验,数据交换平台提供数据格式定义合法性描述,传输过程中,通过此合法性描述校验的数据才能进行传输。外部数据和部数据之间的转换则采用XLST标准。2.7.5 大数据量处理对于大数据量处理,提供以下方式:n 分批导入n 后台异步处理n 在前台进行格式转换,降低服务器压力2.8 查询引擎查询引擎是一个查询建模产品,全面支持复杂查询的设计和个性化的报表展现。查询引擎依据查询的定义,获得数据库返回的关系结构的数据,在此基础上,查询引擎提供数据处理与分析能力,支持对这些数据进行加工处理,最终生成满足用户要求的数据结果。这种处理由于是在结果集之后的处理,具有很高的性能和数据可重用性。2.8.1 查询引擎框架图2.8.2 查询引擎结构查询引擎的结构基础是描述业务数据的数据字典,在此基础上通过查询模型和界面模型,配合各种查询技术,利用查询模型定义的可视化工具完成查询的定义,最终用户可以在Web平台上查询和生成报表。2.8.3 技术特点查询引擎是一个独立的平台,运行在J2EE服务器中,其中报表处理和逻辑运算均在服务器端实现,集中管理数据源、语义层、查询和报表等资源,主要技术特点体现在:支持发布HTML主页方式的报表,支持输出包括表、图表、标识、图片和其他图象等的合成报表,报表还可以转换为PDF、Excel文档格式;支持基于服务器的报表输出计划管理功能,可以一次处理批量产生多报表;支持任意复杂的报表输出格式,支持表头、表体、表尾的显示容和格式的定义。2.8.4 数据加工滤镜支持复杂数据加工的代码嵌入,这种方式称为加工滤镜。查询引擎置了一些数据加工滤镜,根据需要开发嵌入新的加工滤镜。这种插件方式能够很灵活地支持复杂数据加工的要求。2.8.5 查询定义查询引擎中提供的查询定义向导,能够支持在数据字典围进行查询定义。2.9 组织机构模型和权限服务组织模型为中国光大银行提供复杂组织结构的支持,与之配套的权限服务,基于组织模型中的人员、分组、角色、组织机构等元素,实现机构部门、功能节点、操作动作、以与数据行列三个层面上的权限控制,从而为中国光大银行建立统一的后台管理软件平台提供一个统一的组织机构框架和权限服务机制。在中国光大银行年金集中应用的模式中,根据管理的需要进行权限设置,从而使上级机构的管理人员查询下级机构的数据。2.9.1 静态图2.9.2 权限运行流程2.10 数据管理解决方案2.10.1 历史数据管理解决方案历史数据管理根据具体的业务需求来确定,在数据库设计上针对需要保存历史数据的信息增加表示开始时间和结束时间的相关字段,对于具体的业务在查询的时候加上时间参数,根据时间参数进行日期过滤。2.10.2 高性能高并发解决方案一、系统设立事务缓存和二级缓存。事务缓存,对于系统中每次会话我们在数据库采用的是乐观锁的机制,所以对于一个事务的任务根据业务对象的主键进行缓存,那么在同一会话中避免程序的复杂后,多次重复的读取同一数据。二级缓存主要缓存系统中重要但是变化不快的信息,我们在系统中缓存如下信息(数据字典,组织机构,通用的流程定义,系统元数据)这些信息在系统中用jndi的方式进行查找。二、对大数据量的访问加入了分页的模式,具体实现是通过jdbc2.0接口可以给每次系统读取数据设定取值围。每次读取小量数据,对于一些耗时的业务配置在相对空闲的时间里处理,这样可以满足大数据的访问。所以在设计的时候采用懒惰加载的原则,每次取得的数据尽量少,以减少每个用户的响应时间。三、由于系统报表比较耗用资源,在部署的时候可以把报表单独部署在一台机器上,避免应用高峰时期对正常业务的操作,从而保证系统稳定的并发响应数。四、在数据库设计上利用数据库本身的分区和系统存储设备,提供数据库的I/O访问,最大限度的提高数据库的并发数。2.10.3 大数据量解决方案一、在数据库的设计上,对于系统大的数据量表,采用分区到不同的磁盘存储上,提高数据库的I/O,用以加快系统的响应速度。二、在数据库重点表,根据数据分布特点采用相应的分区机制,用以提高数据的检索速度。三、随着时间的推移,可以按人事司实际要求把系统中的历史数据导出,建立专用的历史数据查询站点,可以加快应用系统速度。2.10.4 数据库优化方案在设计开发中采用以下方法加快数据库效率:一、优化sql语句,在开发团队中成立专门的数据库专家,用压力测试的方法找出有效率问题的sql语句并进行相应的修改。二、在表的设计过程中,对于重点表,必要的时候冗余部分信息,以空间换时间的方式加快查询速度。三、系统中可以利用缓存策略,对于频繁访问数据进行缓存。具体实施方案:(1)利用数据分区机制,在系统中对数据量大的表,采用数据库的分区机制,可以把表建立在不同的分区上,以提高数据的检索速度。(2)数据库的分区尽量部署到不同的物理磁盘上,这样数据库在进行I/O操作的时候,能够提高数据的I/O读取速度。(3)根据用户的具体应用,调整相应的数据库运行参数,让数据库在最佳状态运行。(4)系统运行一段时间后对数据库重点表进行相应数据库命令的数据分析,可以对数据库的sql执行方案调优。(5)根据需要对历史数据建立查询数据库,分担业务数据库运行压力,减小运行的响应时间。2.11 数据库分布n 基础数据自定义档案数据字典系统定义模板n 业务数据各业务模块数据业务节点模板n 过程数据业务计算过程数据2.12 开发环境n 开发工具Eclipse 3.1n 版本控制Sub Versionn 数据库工具SQuirreL SQL ClientPLSQL Developern 建模工具PowerDesigner 10Microsoft Office Visio 2003Rational Rose 20032.13 运行环境n 服务器运行环境硬件平台:IBM小型机操作系统平台:IBM AIX 数据库平台:Oracle 9i网络环境: 本系统属于网络应用系统,数据库和应用服务器连接在高速网络n 客户端运行环境推荐配置:CPU:PIII800以上,256M存,3G多余硬盘空间浏览器:IE6.0以上操作系统平台:windows2000, windows xp, windows 2003 系列等;网络:客户端广域网最小连接: 10K 第3章 总体功能设计3.1 功能结构图3.1.1 基本档案管理基本档案信息是保障系统实现业务功能正常运行所必须的基础信息,包括企业年金运作过程中涉与的账户信息、规则信息、机构信息等容。3.1.1.1 公用档案管理公用档案是年金中心开展业务所必须的信息,不同的年金分中心可以引用此信息。此信息由总行统一管理和维护。3.1.1.2 机构档案管理机构档案是开展企业年金业务所必须的信息,主要维护企业年金运行时各个角色信息。此信息由总行年金中心统立和维护。3.1.2 计划管理企业年金账户管理人是企业年金业务运行的五大角色(受托人、托管人、账户管理人、投资管理人、委托人)之一,主要负责对企业和个人明细账户的管理,企业年金的运作是通过企业整体参加计划来实现的,因此在账户管理系统中必须实现对计划管理,此信息的建立和维护由总行年金中心负责,主要包括以下几个方面。3.1.2.1 计划建立对计划属性信息进行录入,包括对计划基本信息、缴费规则、归属规则、投资组合信息等的录入。对每个投资组合的净值信息进行管理和维护,此信息在工作日初进行接收并自动导入系统,支持手工修改和查询净值信息3.1.2.2 计划建立流程图3.1.2.3 计划信息维护此功能完成计划基本信息的维护,包括缴费规则、归属标准、支付规则、缴费周期、收益分配周期、支付日、支付周期等计划信息。当计划信息变更时,通过此功能录入变更的信息,确认无误后,调整计划基本信息。3.1.2.4 计划变更对计划冻结、计划解冻、计划暂停缴费等业务处理。3.1.3 企业管理当计划建立成功后,企业即可参加计划,即提交参加计划的相关材料。委托人(企业)应按受托管理合同规定,将企业账户信息提交受托人,受托人确认后提交账户管理人。委托人也可按受托管理合同规定,将企业账户信息提交受托人委托的账户管理人,账户管理人对提交信息的真实性、合法性和完整性进行审核,审核无误后通知受托人。受托人审核确认后由账户管理人录入。由于一个企业可以参加多个计划,因此企业在参加计划时首先应建立基本信息,然后选择企业所参加的计划,企业可以继承计划原有的参数,包括计划的投资组合信息、投资比例,计划的规则信息;企业也可以在参加计划时修改这些参数。3.1.3.1 企业参加计划在企业计划的运作过程中,企业参加计划是一个重要过程。只有企业参加计划后,企业中的员工才能参加计划;之后才能进行相关的业务运作,包括缴费、收益分配、支付等。因此企业和计划的关系决定着计划的运作模式和企业的参与方式。3.1.3.2 企业参加计划流程图3.1.3.3 企业信息维护主要维护和管理企业的基本信息和企业计划信息。3.1.3.4 企业账户管理3.1.4 个人管理员工在参加计划的时候首先要保存个人基本信息,个人基本信息可以在系统中录入也可以导入,也可以通过接口从核心系统中获取。如果是从核心系统中获得个人基本信息,那么员工可以通过传客户号给核心系统,然后核心系统通过客户号返回个人基本信息。系统的个人关键基本信息(包括证件类型、证件、性别、)必须以核心系统中为准,非关键信息在年金系统中可以不和核心系统一样。3.1.4.1 个人参加计划系统提供对批量个人统一参加计划的功能,可以全部选择,也可以部分选择后参加计划,个人在此功能中参加计划后,个人与计划关系信息在个人计划信息功能中进行查看。3.1.4.2 个人参加计划流程图3.1.4.3 个人信息维护包括对个人基本信息与个人计划信息的维护。3.1.4.4 个人账户管理3.1.5 企业特别账户管理此功能完成对企业特别账户的灵活业务处理,包括对此账户下不同子账户的的缴费、支取、投资申购、投资赎回等业务操作。企业特别账户子账户主要包括超额缴费账户、未归属账户等。3.1.6 缴费管理此功能完成参加计划的企业和员工进行缴费的业务。系统根据计划或企业约定的缴费周期、缴费规则等信息,生成缴费明细单,提供给企业进行核对,或直接接收企业的缴费明细单;当企业缴费到账后根据托管人提供的缴费到账单进行入账和分配;入账完成后根据计划或企业设置的投资信息对资金进行投资,根据缴费投资情况在系统进行记录。3.1.6.1 缴费流程功能结构图:3.1.6.2 缴费到账处理流程根据企业年金运行规定,企业缴费到账时存在以下几种情况,不同的情况对应的处理方式也不同:(1)企业全额缴费,即按照缴费单中企业缴费总额进行的缴费;处理方式如下:首先,根据托管银行提供的缴费到账单在系统中增加缴费到账单,并选择对应的缴费单(通过单据流水号进行关联),录入外部单据号、到账日期、实际缴费金额等信息。其次,复核此缴费到账单据,并交受托人进行确认。再次,确认完成后,产生资金流水(企业资金流水、员工资金流水),根据资金流水调整企业、员工资金账户信息,并冻结账户中本次变动金额数;同时系统根据企业计划关系和个人计划关系生成缴费投资单和缴费投资指令。缴费投资单中记录每个企业和员工投资账户的投资金额,而缴费投资指令是记录缴费金额投资到每个投资组合的情况,日终处理时对所有的投资指令进行汇总。(2)企业超额缴费,即缴费实际到账金额大于缴费单中企业缴费总额的缴费;对于超额缴费情况,根据企业计划运行时设置的多缴部分入账方案进行入账;处理方式如下:首先,根据托管银行提供的缴费到账单在系统中增加缴费到账单,选择对应的缴费单(通过单据号进行选择),录入外部单据号、到账日期、实际缴费金额等信息;选择多缴部分入账方案,系统目前提供超额缴费部分可以进入企业任意特别账户,并可以选择多个特别账户,例如企业超额缴费账户、未归属账户等。其次,复核此缴费到账单据,并交受托人进行核对。再次,核对完成后,产生资金流水明细,包括企业资金流水明细和员工资金流水明细,然后根据资金流水明细调整企业、员工资金账户信息,多缴部分根据超额缴费入账方案记录到企业资金账户的特别账户中,并冻结账户中本次变动金额数。如果选择多个特别账户,对应的企业资金流水应该根据特别账户类型产生多条。同时根据企业计划信息和个人计划信息中的投资计划生成缴费投资单和缴费投资指令,缴费投资单中记录每个企业和员工投资账户的投资金额,而缴费投资指令是记录缴费金额投资到每个投资组合的情况,日终处理时对所有的投资指令进行汇总。(3)当企业缴费不足额时,少缴部分通过企业特殊资金账户冲缴,并且企业特别资金账户资产余额大于少缴部分;处理方式如下:首先,根据托管银行提供的缴费到账单在系统中增加缴费到账单,选择对应的缴费单(通过单据号进行选择),录入外部单据号、到账日期、实际缴费金额等信息;选择不足额部分入账方案。系统目前提供不足额部分可以通过企业特别账户冲缴,并可以选择多个类型的特别账户,例如企业超额缴费账户、未归属账户等,但企业特别账户资金总额必须大于等于本次不足额部分,否则不能冲缴。(分期缴费通过其他功能记录每次到账信息,全部到账之后系统中入账)其次,复核此缴费到账单据,并交受托人进行核对。再次,核对完成后,产生资金流水明细,包括企业资金流水明细和员工资金流水明细,然后根据资金流水明细调整企业、员工资金账户信息,不足额部分根据入账方案扣减相应的企业资金账户的特别账户,并冻结账户中本次变动金额数。如果选择多个特别账户,对应的企业资金流水应该根据特别账户类型产生多条。同时根据企业计划信息和个人计划信息中的投资计划生成缴费投资单和缴费投资指令,缴费投资单中记录每个企业和员工投资账户的投资金额,而缴费投资指令是记录缴费金额投资到每个投资组合的情况,日终处理时对所有的投资指令进行汇总。(4)当企业缴费不足额时,在使用特殊账户仍然不足的情况下,到账资金只记录在特殊账户,全部资金到账后再投资;具体处理步骤如下:1)根据托管银行提供的缴费到账单在系统中增加缴费到账单,选择对应的缴费单(通过单据号进行选择),录入外部单据号、到账日期、实际缴费金额等信息。2)复核此缴费到账单据,并交受托人进行核对。3)核对完成后,产生企业资金流水明细,对企业资金账户进行入账,员工资金账户不入账。根据企业资金流水明细调整企业资金账户信息,并冻结账户中本次变动金额数,不足额部分等待补缴。4)企业补缴费到账时,增加新的缴费到账单,这种情况出现一个缴费账单对应多个缴费到账单,最后一个缴费到账单经过企业核对后,从企业特别账户的临时账户将整个缴费资金分配到员工资金账户,多缴部分企业产生资金流水明细,包括企业资金流水明细和员工资金流水明细,然后根据资金流水明细调整企业、员工资金账户信息,不足额部分根据入账方案扣减相应的企业资金账户的特别账户,并冻结账户中本次变动金额数。如果选择多个特别账户,对应的企业资金流水应该根据特别账户类型产生多条。同时根据企业计划信息和个人计划信息中的投资计划生成缴费投资单和缴费投资指令,缴费投资单中记录每个企业和员工投资账户的投资金额,而缴费投资指令是记录缴费金额投资到每个投资组合的情况,日终处理时对所有的投资指令进行汇总。具体处理流程图如下:3.1.6.3 缴费投资处理流程当投资缴费投资指令返回时,将投资分配到员工投资账户和企业特殊投资账户,并汇总企业投资账户,具体处理过程如下:(1)根据缴费投资指令查询出要进行分配处理的缴费投资单;(2)将托管人返回的申购的投资组合份额按照个人投入得资金比例分配到对应的企业和个人投资账户,具体处理办法:1)按照托管人返回的投资组合的申购成功的份额和企业整体在该组合中投入的资金计算申购价格2)根据投资组合的申购价计算每个员工不同账户投到此投资组合的投资份额,企业特别中不同账户(除尾差账户)投到此投资组合的投资份额;3)汇总每个员工不同账户的投资份额和企业特别账户不同账户(除尾差账户)的投资份额;4)判断员工不同账户汇总投资份额与企业特别投资账户(除尾差账户)的投资份额之和是否等于投资总份额;如果不等,差额部分记录到企业特别账户的尾差账户中。举例说明:未分配前缴费投资单信息:企业A投资组合:zh1投资金额:1000(元)其中:企业特别账户的超额缴费账户:100;员工正常汇总账户:900员工1:投资组合:zh1员工正常账户投资金额:400(元)员工2:投资组合:zh1员工正常账户投资金额:500(元)返回缴费投资指令信息:投资组合:zh1投资金额:1000投资份额:998.0808单位净值信息:投资组合:zh1单位净值(赎回价):1.002,实际净值1000/998.0808分配后缴费到账单信息:企业A投资组合:zh1投资金额:1000(元),投资份额:998.0808其中:企业特别账户的超额缴费账户:100,投资份额:99.8003;企业特别账户的尾差账户:0.0771员工正常汇总账户:900, 投资份额:898.2034员工1:投资组合:zh1员工正常账户投资金额:400(元), 投资份额:399.2015员工2:投资组合:zh1员工正常账户投资金额:500(元), 投资份额:499.0019(5)以投资组合为单位,根据分配好的缴费投资单生成员工投资流水和企业投资流水,员工资金流水和企业资金流水;(6)根据员工投资流水和企业投资流水调整员工投资账户和企业投资账户,根据员工资金流水和企业资金流水调整员工资金账户和企业资金账户。缴费投资处理流程图:3.1.7 集团缴费管理此功能完成集团型企业的缴费业务处理,包括集团缴费账单生成、集团缴费到账等业务操作。3.1.8 个人缴费管理此功能完成对企业特别账户的灵活业务处理,包括对此账户下不同子账户的的缴费、支取、投资申购、投资赎回等业务操作。企业特别账户子账户主要包括超额缴费账户、未归属账户等。3.1.9 转移管理包括对计划转移、计划终止、企业转移、个人转移的处理。3.1.9.1 计划转出系统提供计划整体转出功能,主要是
展开阅读全文