吴玉凤
一、背景
随着计算机技术的飞速发展,利用计算机实现人事工资的管理势在必行。工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力。用计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。
二、用户功能的需求分析
1.学院的工资发放标准
a.应发工资包括以下几部分:基本工资、职务工资、教学津贴、科研津贴等。
b.代扣代缴包括以下几个部分:保险金、住房公积金、代扣所得税。
c.其他:职工实发工资 = 应发工资 - 代扣代缴 + 其他各项补发。
2.具体需求
a.提供各项数据的录入、修改、查询功能。包括部门信息、职工信息、工资的发放标准以及教师每月课时登记;自动生成每月的应发工资,由操作人员填入各项代扣代缴费用后,自动生成实发工资。
b.要求提供的报表
基本报表: 每月工资发放表、教职工花名册、部门各职称职工人数统计表。
综合报表:分部门各职称工资构成统计表。
3.系统维护
提供简单的用户管理的功能,如增加、删除用户,设置、修改用户口令。为了兼顾安全性和方便性,在用户管理上针对不同的角色,实现不同的操作权限。
三、功能划分
根据需求分析,将系统划分为7个功能模块,分别为用户登录、系统管理、数据录入、数据查询、基本报表生成、综合报表生成、用户管理。
四、数据描述
1.静态数据
数据库中表单的个数和表单中数据属性的个数是静态数据。
2.动态数据
建立数据库时输入的数据,对数据库进行查询时输出的数据都属于动态数据。
3.数据库描述
本系统的数据库由8个表组成,分别为部门信息表、职工信息表、职称信息表、职务信息表、教学津贴发放标准、科研津贴发放标准、人工资信息表、用户表。
4.数据采集
数据来源:数据主要来源于职工,即职工是数据源,职工的基本信息,职务信息,职称信息等作为数据源输入。其他的教学津贴发放标准、科研津贴发放标准、职称工资标准由学校统一录入。
数据出路:主要是反馈给各个院系和学校领导以及职工个人等。
五、总体设计
本软件是基于Web的工资管理系统,开发结构为数据库/应用服务器/客户端的三层结构,即数据层/逻辑层/表示层,系统在J2EE[1]平台上得以实现;考虑到实际情况,本系统的用户可能是财务管理者,也可能是普通职员,为了兼顾安全性和方便性,在用户管理上针对不同的角色,实现不同的操作权限。
六、实现功能
通过努力,本软件能基本上完成需求中的功能。实现工资和人事管理的初级应用。
程序中遇到的问题和解决办法[2]:
1.由于操作员口令直接存放在数据库中,在系统运行时数据库文件必须存在,这样,人们可以通过直接获取操作员口令,给系统的安全性带来了比较大的隐患。
解决办法:对口令进行加密,加密的思路是,规定口令最长为10位,逐位取出来后,让每位字符的ASCII码值作二进制的异或运算,然后重新组合来新的口令。用二进制异或运算作加密算法的好处是,由于同一个异或运算两次就成了原来的,只需将密文再加一个密,这样在编程上就比较容易实现。在程序编制完成后,可将有关源程序删除,编译成可执行文件,这样,口令就不容易被泄密。
2.由于系统对数据库操作比较频繁,而连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证、安全上下文配置这类任务,因而往往成为最为耗时的操作。
解决办法:使用tomcat的自带连接池。多个请求共享一个连接,减少了连接数据库的开销。
3.代码优化方面,jsp[3]代码中大量的使用scriptlet,使代码晦涩难懂,增加了代码的维护困难。
解决办法:使用jstl标准的标签。
4.报表输出时,原来采用的是直接在网页中画表格。这样做无法实现用户的手动定制。比如设置表格大小、字体等。
解决办法:使用微软自带的web控件。这个控件在网页中显示的样式跟excel类似。可以控制显示大小,排序等功能,最主要的是它能将数据导入到excel,使用excel进行编辑和打印。
参考文献
[1] 飞思科技产品研发中心.J2EE应用开发(WebLogic+Jbuilder)[M].北京:电子工业出版社.2003.
[2] James W.Cooper.Java Design Patterns[M].北京:中国电力出版社.2003.
[3] David Flanagan.Javascript权威指南[M].北京:机械工业出版社.2003.