为了实现与办公自动化管理平台(简称OA)的系统需求,需要开发薪酬管理系统做为OA的重要组成部分。薪酬管理系统主要功能包括用户管理,部门管理,岗位性质管理,所得税税率管理,评分标准管理,工资序列设置,指标维护,请假类型管理,条线参数设置,相关基数,考勤管理,评分设置,调节工资,薪资发放,请假申请,请假核假,请假审批,薪资查询,调节工资查询,灵活查询,概览等功能。通过薪酬管理系统可方便的对员工薪资进行制作,是OA的重要组成部分。本软件采用B/S架构,人机交互界面采用ExtJS+JQuery技术开发。
《薪酬管理系统系统设计》的编写目的是为了阐明薪酬管理系统的总体构想,明确系统建设的主要目标和主要功能,详细阐述技术方案、设计思路和相应的技术途径,确定薪酬管理系统的体系结构和组成。
1) 《薪酬管理系统考勤部分要求》
2) 《薪酬管理系统调节工资部分要求》
3) 《薪酬管理系统薪资计算要求》
4) 《薪酬管理系统需求分析》
目前软件系统体系结构分为2种:
1) C/S结构,即Client/Server (客户机/服务器)结构。该结构由客户机和服务器两部分组成,需要在客户机上安装特定的客户端应用程序,与服务器上的数据库管理系统进行直接交互。
2) B/S结构,即Browser/Server (浏览器/服务器)结构。它是随着Internet技术的兴起,对C/S结构的一种优化或者改进的结构。在这种结构下,绝大部分事务逻辑由web服务器上的web应用服务实现,客户端只需要通过Web浏览器访问Web应用服务即可进行业务处理。
两种结构的对比分析如下表所示:
对比项目 | C/S结构 | B/S结构 |
客户机响应速度 | 高。客户端应用程序参与业务处理 | 低。浏览器只进行显示,不参与处理 |
运行环境兼容性 | 一般。针对不同类型或版本的操作系统需开发不同的客户端应用程序 | 较好。可直接利用操作系统自带的web浏览器,无需安装其他程序 |
显示效果和用户体验 | 效果丰富,交互体验好 | 效果一般,交互体验一般 |
维护和升级 | 复杂,需维护每一台客户机 | 简单,只需维护服务器 |
数据传输方式 | 通过TCP(Transmission Control Protocol,传输控制协议)建立连接并保持 | 客户机的web浏览器通过HTTP(HyperText Transfer Protocol,超文本传输协议)与服务器交互 |
数据传输效率 | 高,由于保持与客户机的连接,服务器可直接推送数据至客户机 | 一般,每次传输时客户机需要重新建立与服务器的连接并发送请求 |
支持用户并发数 | 低。客户端的应用程序直接与数据库交互,并一直保持与数据库的连接,使用户并发数扩充受到限制 | 高。交互完即释放连接以供复用,支持用户并发数高 |
适用场景 | 小范围内部局域网络 | 大规模网络应用系统 |
本系统拟部署运行在公司内部局域网络中,涉及的计算机终端多,相比之下,B/S结构在各方面的对比上更具优势,因此采用B/S结构进行建设更为合适。
Java是一种高级编程语言,由Sun Microsystems(现在是Oracle Corporation)于1995年推出。它是一种面向对象的编程语言,具有简单、可移植、安全和高性能等特点。Java语言的设计目标是让开发者能够编写一次代码,然后在不同的平台上运行,这也是Java的平台无关性的特点之一。
Java语言的核心是Java虚拟机(Java Virtual Machine,JVM),它是Java程序运行的环境。Java程序首先被编译成字节码(bytecode),然后由JVM解释执行或者即时编译成机器码执行。这种机制使得Java程序可以在不同的操作系统上运行,只需安装相应的JVM即可。
Java语言广泛应用于各个领域,包括企业级应用开发、移动应用开发、嵌入式系统开发、大数据处理、云计算等。Java拥有庞大的开发者社区和丰富的类库和工具,使得开发者可以快速开发高质量的应用程序。。
Java的特点包括:
简单易学:Java语言的语法相对简单,易于理解和学习,适合初学者入门。
面向对象:Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性,使得代码更加模块化、可重用和易于维护。
平台无关性:Java语言通过虚拟机(JVM)实现了平台无关性,可以在不同的操作系统上运行,只需编写一次代码,就可以在多个平台上运行。
强大的生态系统:Java拥有丰富的类库和工具,可以满足各种开发需求,开发者可以利用这些类库和工具快速开发应用程序。
安全性:Java语言具有强大的安全性特性,如内存管理、异常处理和安全检查等,可以有效防止程序的崩溃和安全漏洞。
多线程支持:Java语言内置了多线程支持,可以方便地实现多线程编程,提高程序的并发性能。
开源性:Java语言是开源的,拥有庞大的开发者社区,可以获取到大量的开源代码和工具,方便开发者进行学习和交流。
可移植性:由于Java语言的平台无关性,可以将程序轻松地从一个平台迁移到另一个平台,提高了程序的可移植性。
高性能:Java语言通过即时编译技术(Just-In-Time Compilation)实现了高性能的执行,可以快速执行大规模的计算任务。
大数据和云计算支持:Java语言在大数据和云计算领域有广泛的应用,如Hadoop、Spark等大数据框架和云计算平台都是用Java语言开发的。
ExtJS是一种基于JavaScript的前端开发框架,由Sencha公司开发和维护。它提供了丰富的UI组件和工具,用于构建富客户端的Web应用程序。
ExtJS的特点包括:
强大的UI组件库:ExtJS提供了大量的可重用的UI组件,如表格、表单、菜单、窗口等,可以快速构建出功能丰富、交互性强的用户界面。
数据驱动的开发模式:ExtJS采用了数据驱动的开发模式,通过数据绑定和模型驱动的方式,实现了数据与界面的自动同步,简化了开发流程。
MVC架构:ExtJS采用了MVC(Model-View-Controller)架构,将应用程序的逻辑分离成模型、视图和控制器三个部分,提高了代码的可维护性和可扩展性。
跨浏览器兼容性:ExtJS具有良好的跨浏览器兼容性,可以在主流的浏览器上运行,并提供了一致的用户体验。
高度定制化:ExtJS提供了丰富的主题和样式,可以根据需求进行定制,使得应用程序具有独特的外观和风格。
数据处理和表单验证:ExtJS提供了强大的数据处理和表单验证功能,可以方便地进行数据的增删改查操作,并对用户输入进行验证和处理。
扩展性和插件机制:ExtJS具有良好的扩展性,可以通过插件机制来扩展框架的功能,满足特定的需求。
Struts是一种基于Java的开源Web应用程序开发框架,它采用了MVC(Model-View-Controller)架构模式。Struts框架由Apache软件基金会开发和维护,旨在简化Web应用程序的开发过程。
Struts框架的核心组件包括:
控制器(Controller):负责接收用户请求并将其分派给相应的处理程序。在Struts中,控制器由ActionServlet实现。
模型(Model):表示应用程序的数据和业务逻辑。在Struts中,模型通常由JavaBean或POJO(Plain Old Java Object)表示。
视图(View):负责呈现模型数据给用户。在Struts中,视图通常由JSP(JavaServer Pages)或FreeMarker等模板引擎实现。
Struts框架的优点包括:
分离关注点:Struts采用MVC架构,将应用程序的不同部分分离开来,使得代码更加模块化、可维护和可扩展。开发者可以专注于业务逻辑和用户界面的开发,而不必关注底层的请求处理和数据管理。
提供了丰富的功能组件:Struts提供了许多功能组件,如表单验证、国际化支持、文件上传等,可以快速开发出功能完善的Web应用程序。
易于学习和使用:Struts的设计目标是简化Web应用程序的开发过程,它提供了清晰的开发模式和规范,使得开发者可以快速上手并高效地开发应用程序。
社区支持和文档丰富:Struts是一个开源框架,拥有庞大的开发者社区和丰富的文档资源,开发者可以从社区中获取支持和分享经验。
可扩展性:Struts框架具有良好的扩展性,可以通过自定义的拦截器、标签库和插件来扩展框架的功能,满足特定的需求。
MySQL是一种开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现在由Oracle公司维护和支持。MySQL广泛应用于各种规模的应用程序和网站,是最流行的开源数据库之一。
MySQL的优点包括:
开源和免费:MySQL是开源软件,可以免费使用和修改,降低了成本并且具有灵活性。
跨平台性:MySQL可以在多个操作系统上运行,包括Windows、Linux、Mac等,具有很好的平台兼容性。
高性能:MySQL具有高效的查询和处理能力,可以处理大规模的数据和高并发访问。
可扩展性:MySQL支持水平和垂直扩展,可以通过添加更多的服务器节点或者增加硬件资源来提高性能和容量。
安全性:MySQL提供了多种安全机制,包括用户认证、权限管理、数据加密等,保护数据的安全性和完整性。
简单易用:MySQL的安装和配置相对简单,具有直观的命令行和图形界面工具,易于学习和使用。
大型社区支持:MySQL拥有庞大的开发者社区,提供了丰富的文档、教程和支持资源,开发者可以从社区中获取帮助和分享经验。
备份和恢复:MySQL提供了多种备份和恢复机制,可以对数据进行定期备份,并在需要时快速恢复数据。
基于HTTP的通信方案是一种基于超文本传输协议(HTTP)的通信方式,用于在客户端和服务器之间传输数据。它是一种无状态的协议,即每个请求和响应之间是独立的,服务器不会保留任何关于客户端的信息。
基于HTTP的通信方案通常包括以下几个步骤:
1. 客户端发起请求:客户端通过发送HTTP请求向服务器请求数据。请求包括请求方法(如GET、POST等)、请求头(包含一些元数据,如Content-Type、User-Agent等)和请求体(可选,用于传输数据)。
2. 服务器处理请求:服务器接收到请求后,根据请求的方法和路径,执行相应的处理逻辑。这可能包括从数据库中获取数据、处理业务逻辑等。
3. 服务器发送响应:服务器处理完请求后,会生成一个HTTP响应,包括响应状态码(如200表示成功、404表示未找到等)、响应头(包含一些元数据,如Content-Type、Content-Length等)和响应体(包含实际的数据)。
4. 客户端接收响应:客户端接收到服务器的响应后,根据响应的状态码和响应头进行处理。如果状态码表示成功,客户端可以从响应体中获取到所需的数据。
基于HTTP的通信方案具有以下特点:
简单易用:HTTP协议的语义简单明了,易于理解和使用。
平台无关性:HTTP协议是基于文本的,不依赖于具体的操作系统或编程语言,可以在不同平台上进行通信。
可扩展性:HTTP协议支持扩展,可以通过自定义的请求头或响应头来传递额外的信息。
可靠性:HTTP协议使用TCP作为传输层协议,保证了数据的可靠传输。
无状态性:HTTP协议是无状态的,每个请求和响应之间是独立的,服务器不会保留任何关于客户端的信息。这使得服务器可以更好地进行负载均衡和扩展。
基于HTTP的通信方案广泛应用于Web开发、API接口设计等领域,是互联网通信的重要基础。
本软件的设计思路如下:
1) 多源融合、多维一体
结合薪酬管理系统多样化的数据和应用需求,确保各类文档全面综合的接入、管理、分析,形成各类信息有机融合。
2) 突出重点、综合集成
对薪酬管理系统各类数据信息融合系统统筹规划,进行顶层设计,统一技术体制和标准规范,对接OA数据标准化体系。
3) 网络化、服务化体系
基于面向服务的体制搭建薪酬管理系统,实现系统、安全、友好、可扩展,满足未来自动化和智能化要求。
4) 基于平台和构件架构,兼容优秀操作系统,实现系统的统筹规划
薪酬管理系统在架构设计上遵循“统筹统一、兼容并顾”的原则,依据相应的标准,薪酬管理系统可以快速方便的实现与其他系统对接,实现用户的按需使用,数据统一管理,提供统一的访问视图,能够根据用户需求快速检索、获取及灵活组装、实现数据层面的按需获取。
主要设计基础设置、请假流程管理、薪资发放管理、查询及概览等核心模块;整体软件的层次体系架构应当结构清晰、层次分明,体系的各组成要素、功能组件划分合理;系统内外接口应遵循标准技术体制和规范;应用软件设计模块化、标准化和便于扩展,可进行灵活组合。
薪酬管理系统是OA的重要组成部分,针对用户需求,薪酬管理系统主要由数据库访问、用户认证、用户管理,角色管理,菜单管理,权限管理,文档管理,文档训练,文档对话等功能等11个模块组成,如下表所示。
序号 | 配置项名称 | 配置项英文代号 | 配置项功能简要说明 |
1. | 数据库访问 | DatabaseConn | 数据库连接 |
2. | 用户管理 | UserManagement | 管理系统的使用用户 |
3. | 部门管理 | DepartmentManagement | 管理公司的部门 |
4. | 地域管理 | AreaManagement | 维护行政区划和邮编 |
5. | 岗位性质管理 | PositionManagement | 对公司岗位性质进行管理 |
6. | 所得税税率管理 | PrivateTaxRateManagement | 配置个人所得税税率 |
7. | 评分标准管理 | MarkRateManagement | 对需要评分的岗位性质设置评分标准 |
8. | 工资序列管理 | SalaryLevelManagement | 按照管理和专业序列对薪酬等级进行维护 |
9. | 指标管理 | FieldInfoManagement | 工资项管理 |
10. | 条线参数管理 | OperationTypeParameterManagement | 设置预发基本工资比率,岗位补贴比率,考核工资比率,绩效考核工资比率等 |
11. | 导出模版管理 | ExportTemplateManagement | 对薪资项进行组合成不同的导出模版 |
12. | 评分设置 | PerformanceManagement | 按月给员工进行评分 |
13. | 考勤管理 | LeaveManagement | 按月给员工进行考勤维护 |
14. | 薪资发放 | SalaryManagement | 制作薪资,计算个税等等 |
15. | 全局参数设置 | GlobalParameterManagement | 全局参数设置,例如月工作日,迟到和早退扣款 |
16. | 自定义查询 | CustomQueryManagement | 根据情况组合各种查询条件进行查询 |
17. | 请假申请 | VacationManagement | 员工提交请假申请 |
18. | 考勤类型管理 | VacationTypeManagement | 考勤类型维护,例如事假、年假、婚假等等 |
19. | 考勤报表 | VacationReportManagement | 对录入的考勤数据形成考勤登记表 |
20. | 调节工资管理 | AdjustSalaryManagement | 按月对相关人员进行调节工资设置 |
21. | 查询及概览 | QueryManagement | 按照既定调节对薪资数据进行查询或查看图表 |
薪酬管理系统按照上述配置项划分,系统总体功能设计如下图所示:
系统从总体功能上面划分为数据层、核心功能层。
▪心数据层用来存储数据,按照业务数据的类型可以包括人员组织信息、短信模版、导出excel模版、评分标准、工资序列、相关基数、个税税率、评分结果、考勤结果、调节工资结果、当月薪资等。
▪核心功能层主要实现系统的核心功能及需要展现的页面元素和相关支持数据显示以及统计分析。
系统在物理上分为操作前端部分和服务后端部分,其中操作终端承载人机操作界面及部分业务逻辑,服务器端主要负责通用核心的业务功能以及数据持久化功能,具体如下图所示:
薪酬管理系统的主要业务流程首先是登录认证,其次是相关基础数据录入,然后是每月考勤及评分及调节工资设置,最后就是薪资发放了,下述步骤详细描述了整个系统数据流:
用户登录:通过用户名和密码登录系统,用户登录将调用统一的用户认证系统进行登录。
基础数据管理:维护员工信息、部门信息、评分标准信息、工资序列等等。
考勤/评分/调节工资管理:每月根据实际情况录入员工考勤数据,给员工打分,及调节工资分配。
薪资发放:薪资制作,计算个税,薪资复核及审批等等。
该模块的功能为软件的底层组件,负责与数据库的通信,任何与数据库访问的相关操作都需要通过该模块进行。数据库的连接是通过配置文件获取,当获取到连接信息后,通过代码动态设置数据库的连接相关信息进行数据库连接池创建。
任何需要与数据库的操作。
1) 通过配置文件得到相关的连接信息;
2) 建立与数据库的连接池;
3) 通过数据库连接调用对应的数据库语句;
4) 数据库返回执行结果到数据库访问组件;
执行完数据库相关语句的结果,结果内容包括:
1) 数据库语句执行成功或失败;
2) 数据库语句执行的异常信息;
3) 数据库语句执行所返回的结果集;
该模块的功能是为了对软件的操作者进行权限认证,以提高系统的安全性。
1) 用户名
2) 密码
用户输入用户名和密码后,通过调用用户认证接口及权限管理服务验证当前登录用户的有效性,并返回验证结果。
当操作某一具体的功能模块时,权限认证服务向权限管理服务提交请求验证是否具有相关的访问权限,并返回结果。请求时的信息包括功能编号、用户账号等。
返回成功或失败的信息。
该模块的功能主要是为了管理基础数据,例如员工信息,部门信息,兼职部门信息,地域相关信息,岗位性质管理,所得税税率管理,评分标准管理,工资序列管理,工资项指标管理,请假类型管理,短信模版管理,导出模版管理,参数设置,条线参数设置,从业资格管理等等。
以上各个子模块都是为了计算工资服务,都是计算工资的基础数据。例如工资序列管理,明确的定义了管理序列和专业序列对应的薪资等级;所得税税率管理是按照最新的国家规定维护个税税率;工资项指标管理是用来维护工资项,工资项信息包括是否关联评分,是否包含公式等等。
1) 各个子模块对应的属性字段信息
2) 个别子模块包含上传文件功能
录入完相关信息后,点击“提交”按钮,服务器端会根据录入数据进行数据校验,如过校验没有问题,则把相关数据存储到对应的数据库表中。
返回成功或失败的信息。
该模块包含请假申请、部门负责人审批、请假申请核假、办公室负责人审批、分管行长审批、分行行长审批、考勤登记表、短信模版设置等多个子模块。此模块的主要功能就是完成整个考勤的申请到审批的过程。
1) 各个子模块对应的属性字段信息
2) 请假申请时相关的附件
由相关人员发起请假申请,申请时录入相关信息,例如请假人、请假类型、开始及结束时间、工作交接人、联系电话、请假天数、请假事由、对应附件等。
对应部门负责人进行审批,如果审批拒绝则退回到请假人手中,拒绝时可录入对应的拒绝原因。如果通过,则转移到下一个环节。
办公室相关人员进行请假核假,如果不通过则退回到请假人方。如果通过,则转移到办公室负责人审批。
办公室负责人审批时,可根据情况选择是否需要分管行长审批,如果需要分管行长审批,选择对应的分管行长并点击通过。如果不需要分管行长审批,则通过时流程最终完结。
分管行长看见申请后,点击通过则转交到分行行长进行审批,如果不通过,则直接退回到申请人方。
分行行长可拒绝请假申请,如果拒绝则退回到申请人方,如果通过,则审批流程最终完结。
返回成功或失败的信息。
薪资管理模块包含相关基数设置,考勤管理,评分设置,网点绩效,调节工资,助理以上调节工资,分配调节工资,薪资发放,工资复核,工资审批等模块。此模块的主要功能是完成整个当月薪资的制作过程。
1) 各个子模块对应的属性字段信息。
2) 薪资相关的导入文件。
总体流程为每月初录入或者设置相关的数据,然后通过薪资发放功能生成当月工资,审批完成后完成薪资制作过程。详细流程如下:
调整相关基数,每个员工的社保基数、住房公积金基数、住房补贴基数都不同,需要在发工资前进行调整。
录入考勤相关数据,月初录入上个月的相关考勤数据,例如年假多少天,事假多少天,迟到多少次等等。
评分设置,月初需要录入上个月所有工资和评分相关的人员的考核评分,需支持导入。每个人员的评分都是从绩效系统里面算出来后经过人工调整所得。
初始化调节工资,调节工资分为助理以上调节工资、客户经理条线调节工资、综合柜员条线调节工资以及其他条线调节工资。每月初根据规则初始化调节工资,相关人员根据KPI数据计算并设置出各个部门或者个人的可调节工资总额。
分配调节工资,部门领导人,根据部门情况把调节工资按照规则分配到部门员工。
以上所有信息准备完毕后,可通过初始化当月工资及生成工资得到当月工资数据,如果有特殊工资项,可通过导入方式进行导入,导入完毕后进行重新算税即可。所有的工资项都是基础设置功能模块中维护的,有的工资项带有公式或者复杂的计算规则,需要程序单独处理。
工资制作完毕后,需相关人员进行复核和审批,最终无误后可进行实际工资发放。
返回成功或失败的信息。
为了保证数据安全,系统在选型时充分的考虑了冗余配置,在数据存储层采用了RAID技术,支持RAID5等多级别冗余方案;在数据存储部分,磁盘阵列支持双控制器配置,保证了数据访问的可靠性;在数据库层采用主从方式,保证了数据库的数据安全性。
系统采用http协议进行数据的传输和信息的交互,出于对数据安全的考虑,可选择SSL进行加密,以保证数据传输的安全性。
系统设计时首先要提供身份认证和访问控制,防止内部人员(也就是合法用户)滥用权力。用户对系统进行重要的和不可修复的操作时系统需要完整记录用户的操作日志,并提供一定的容错能力,保证在系统故障时可以恢复数据。
数据库服务器安装数据库服务端软件,提供数据的存储与管理服务,从而为上层的数据备份、恢复等服务提供相应的基础;磁盘阵列为测距任务相关数据的存储提供存储空间,从而可以实现数据的集中式存储,而且,该种方式具有较好的扩展性。除此之外,磁盘阵列采用了RAID技术和热插拔等技术可以在一定程度上保证数据存储的可靠性。
数据库的备份与恢复是保障系统运行的可靠性功能之一,通过备份策略进行周期性的数据库备份,在出现极端异常的情况下通过备份数据进行数据库恢复。
软件可靠性设计技术一般是指软件整个生命周期中所采用的以保证和提高软件可靠性为主要目标的软件技术。主要的软件可靠性设计技术可归结为以下三种类型:
a)避错、排错设计,即从多方面来避免错误和排除错误,保证软件的质量和可靠性,使之尽量不出错,这是目前提高软件可靠性的主要方法;
b)容错设计,使软件系统即使有错也能正常工作,完成规定的功能。这是在硬件容错技术突飞猛进的影响下出现的软件可靠性设计技术;
c)信息保护设计,信息是程序操作的对象和结果,是软件的重要组成部分。只有确保计算机中信息资源安全可靠,才能确保软件系统的可靠。
软件开发阶段需要对任何可能出现异常的地方进行异常捕获,同时所有的异常信息要抛出到最顶端进行处理。需要按照一定的方式对异常信息进行分类,另外需要定义出通用的错误编码及错误信息提醒给操作员进行人工判断。对于无人值守的任务出现异常时,要设计出异常分级及通知机制进行告警。所有的异常信息都要记录到日志文件中或数据库中,方便运维人员进行跟踪及解决问题。
a) 出错信息
用一览表的方式说明每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
b) 补救措施
补救措施是说明故障出现后可能采取的变通措施,包括:
1) 当原始系统数据万一丢失时可启用副本数据进行恢复;
2) 当一台关键服务器宕机时,热备机器能自动启动;
3) 当软件运行时出现严重异常信息时,操作员能及时得到通知并通过相关日志文件和错误信息进行人工干预;
扫码关注不迷路!!!
郑州升龙商业广场B座25层
service@iqiqiqi.cn
联系电话:400-8049-474
联系电话:187-0363-0315
联系电话:199-3777-5101