基于Java的工资管理系统的设计与实现

2023-06-21 02:15张莹莹
现代信息科技 2023年1期

摘  要:科学技术的迅猛发展使计算机在企业管理中迅速普及。随着企业规模的扩大,员工工资考核形式变得更加多样化,单靠人工不可避免地会出现错误。而工资管理系统可以弥补人工的不足,在企业管理中发挥着重要作用。采用自頂而下的结构化分析方法,使用Java语言,SQL Server 2005数据库。管理员实现了员工信息、绩效考核、薪酬福利的录入、查询、删除和修改功能。而员工模块实现了个人信息和工资的查询功能,以及工资单的打印功能,极大地提高了企业人员工作效率。

关键词:工资管理系统;Java;SQL Server

中图分类号:TP311 文献标识码:A  文章编号:2096-4706(2023)01-0040-04

Design and Implementation of Salary Management System Based on Java

ZHANG Yingying

(Jiyuan Transportation Comprehensive Administrative Law Enforcement Detachment, Jiyuan  459000, China)

Abstract: The rapid development of science and technology has made computers rapidly popular in enterprise management. With the expansion of the scale of enterprises, the form of employee salary appraisal has become more diversified, and mistakes will inevitably occur by relying on labor alone. The salary management system can make up for the lack of labor and play an important role in enterprise management. It adopts a top-down structured analysis method, uses the Java language, SQL Server 2005 database. The administrator implements the functions of entering, querying, deleting, and modifying employee information, performance appraisal, compensation and benefits. And the employee module realizes the query function of personal information and salary, as well as the printing function of payroll, which greatly improves the work efficiency of enterprise personnel.

Keywords: salary management system; Java; SQL Server

0  引  言

近年来,随着计算机科学技术的不断成长,信息技术的应用领域更加广泛。其中,信息管理系统的应用对企业的发展越来越重要,而工资管理系统是管理系统中最常用的一个系统。随着企业的不断扩大、业务的增加,工资的考核方式也变得多样化,传统的单靠人工和一个简单的计算器的核算方式已经不能满足企业的管理需求。经济全球化的快速发展推动着企业不断向规模化、产业化发展,跟员工工资相关联的绩效、提成等信息也在增加,管理也越来越复杂[1]。那么,如果仅靠人力定会力不从心,因此,应当开发一个工资管理系统来解放他们的员工,满足他们的需求。

1  开发环境与相关技术介绍

1.1  MVC框架介绍

Smalltalk设计的MVC(Model-View-Controller)模式是一个体系结构,该结构分为三个部分,它们将数据和表示分离开来,其中Model是MVC体系的核心,是业务逻辑;View是视图,是一种外在的表现形式,即JSP页面,一个Model可以对应一个或多个View;Controller通过接受用户请求,把数据传送到模型层并调用相应的业务逻辑处理信息,最后把更新的数据传送并调用视图层,将信息反馈给浏览器。

1.2  Struts技术简介

Struts是MVC模式下的一个框架,它主要包含了Server和JSP两大技术。如果想在MVC模式下同时使用Server和JSP,那么选择Struts是毫无疑问的。Struts除了有MVC三个部分外,还包括了一个XML文件[2]。

1.3  B/S技术简介

B/S技术是一种浏览器/服务器模式,它的优势在于其业务的功能主要集中在服务器,在设计与维护上都较为方便。其主要介绍如下:

(1)数据库层。它的功能是通过服务器发送的命令直接管理数据库;

(2)Web服务器层。它是B/S结构的核心,其功能是把用户发出的命令与对应的业务功能关联并进行数据转换,并且把数据结果发送给服务器,然后发送到客户端;

(3)表现层。即上文提到的浏览器。它的功能是将服务器所收到的请求进行验证,当验证通过后,把客户需要的信息在浏览器上呈现[3]。

2  系统分析

2.1  系统可行性分析

2.1.1  技术可行性分析

从当前各大企业对于工资管理系统的要求来看,当前工资管理所需要的技术已经成熟,在现有的条件下完全可以开发出所需要的功能[4]。

2.1.2  经济可行性分析

工资管理系统是在调查分析、翻阅资料后开发的,完全满足当下企业的要求,企业无须再投入资金,对技术功能进行修改等。此外,工资管理系统的研发成本本就不高,完全在企业的可接受范围内。

2.1.3  社会可行性

社会可行性主要从以下两个方面来分析:

(1)是否侵权。本系统是经过几个月的努力通过大量调查研究独立完成的,并没有涉及抄袭、盗用等问题。

(2)用户使用是否友好。一款好的软件是不需要其他人指导就可以很快熟悉操作功能的,这就是友好性,如果软件使用过程中不符合用户常识、习惯,那么这个系统就是失败的。

本研究的工资管理系统简单明了,用户可以根据界面提示迅速熟悉,就有友好性。

2.1.4  安全可行性分析

由于员工的基本信息,工资结算、发放等都通过工资管理系统来完成,因此系统的安全性是非常重要的。使用SQL Server 2005有身份验证的功能,可以确保数据的安全性[5]。

2.2  功能需求分析

需求分析是系统开发者对当前用户需求进行充分调研后,在市面上已有的系统基础上,根据用户的不同需求,确定即将开发的新系统的功能。

功能需求分析就是工资管理系统要解决的问题。功能需求分析是系统最基础最重要的分析过程[6]。本系统拟对每位员工进行权限设置,普通员工权限为1,即仅可以进行查询等操作,管理员权限为0,可以对普通员工进行管理等。

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

工资管理系统应当实现以下基本功能:对新入职员工信息的录入添加及修改,对员工工资、请假、迟到事宜的录入;对离职员工信息的删除;通过员工编号和姓名对员工信息进行查询等诸多功能。普通员工在获得管理员分配的账号和初始密码登录后,可以进行薪酬查询以及工资单的打印。

普通员工登录系统后主要可以进行薪酬查询和工资单打印,员工用例分析如图1所示。

2.3  非功能性需求分析

非功能性需求分析也是需求分析不可缺少的一部分[7]。主要分析如下:

(1)可靠性。为了遵循系统的可靠性原则,系统分为管理员和普通员工两个身份。管理员的账号是已经设置好的,不可更改。普通员工的账号密码是系统管理员分配的,普通员工只有查询权限。

(2)易操作性。工资管理系统是企业内的每一位员工都要使用的平台,因此,必须具备很强的可操作性。系统的界面应该简单大方,极易上手。如果系统做的复杂难懂,即使功能再齐全,也是不适用的。

(3)可扩充性。任何事物都不是一成不变的,企业也是如此,它会随着时间的推进而不断发展扩大,而系统的功能、性能等也需要顺应企业的变化,来满足企业的使用需求。

3  系统设计

3.1  系统架构设计

Hibernate是一个位于Java应用层与数据库之间,通过简化数据的持久层编程来节约开发者编写SQL和JDBC代码的时间的一个框架。它通过操作持久化的对象来达到操作与持久化对象相映射的数据库记录。

3.2  功能模块设计

本文研究的工资管理系统主要包括五个模块。其中系统登录设置了权限,分为管理员和普通员工登录。员工信息模块包括员工信息的添加、员工信息的查询,员工信息主要包括姓名、年龄、入职时间、工行卡号等信息。员工信息的管理主要是给普通员工分配账号和密码。员工信息查询可以从姓名或者编号两个主线来查询。绩效考核模块分为录入和查询,主要录入员工请假、迟到等信息。薪酬福利模块主要是对福利的添加、查看、删除等,薪酬福利的添加主要是对车补、餐补、全勤、绩效奖金等信息的添加。其中,系统暂时拟设定一位管理员,他的用户名和密码是在后台数据库中直接设置的,管理员的用户名在前台界面是不可更改或删除的,以保证系统的安全性。当企业员工增加时,可适当添加管理员的数量。

3.3  类图设计

UML中的类图可以定义类的属性和方法,以及它们的关系,其中类的关系有多种,例如关联、依赖、泛化、聚合等。类是面向对象技术中的重要一员,类主要包括属性和方法两个成员,类有protected、private和public三种不同的性质。

3.4  数据库总体设计

数据库设计对于是系统的开发来说是非常重要的,它是工资管理系统的后台,必须结合系统的需求分析等设计出合理有效的数据库,从而提高工作效率。

3.4.1  管理员登录信息

管理员登录信息表主要是管理员在登录时所需要的用戶名和密码,如表1所示。

3.4.2  员工薪酬信息

员工薪酬信息表主要是用来查询、录入员工与薪酬相关的信息,主要包括员工编号、入职月份、迟到天数、奖金数额、车补、餐补、业绩奖金、绩效奖金、个人所得税,并通过以上信息计算得出的当月所有薪酬。

3.4.3  绩效考核信息

绩效考核信息表主要记录员工平时需要考核的基本信息,其中包括考核的月份、迟到的天数、请假的天数,奖金的数额等信息,根据相应的公式,通过计算扣除迟到、请假等事宜的工资,计算出绩效考核的工资,录入之后,系统会连接后台数据库,将信息保存在数据库中,并随时可以更新。

3.4.4  员工基本信息

员工基本信息表,顾名思义,是用来记录每位员工的基本信息,主要包括员工的ID、编号、姓名、年龄、性别、入职年份、联系电话、家庭地址、当前职位、工行卡号、个人权限、个人登录账户及登录密码等信息。

4  系统实现

第四部分是详细的设计与功能,是系统最核心最重要的部分,其中主要完成了数据库的连接、代码的编写以及各个模块功能的实现。通过一些流程图来辅助完成这设计的实现,以下是对系统的详细分析。

4.1  数据库连接

本系统使用SQL Server 2005来作为后台的数据库。在设计代码的过程中,将有关数据库的连接、执行等操作放在dao包中,其中,与数据库连接相关的代码如下:

private String user = "sa"; //数据库名

private String password = "sa1234sa"; //数据库密码

private String className = "net.sourceforge.jtds.jdbc.Driver";//加载SQL Server驱动

Private String url="jdbc:jtds:sqlserver://localhost:1433;//提供jdbc连接的url

instance=SQLEXPRESS;databaseName=db_ygjx";

其中,数据库的用户名为sa,密码为sa1234sa,数据库名为db_ygjx。

4.2  登录功能的实现

用户输入工资管理系统的网址后,显示出登录界面,登录界面主要包括用户名和密码,以及身份的选择,另外有登录和重置按钮。当输入账号密码并选择身份后,系统会进行判定,无论判定成功或者失败都会进行信息的反馈。登录成功后就会进入系统主界面。登录界面如图2所示。

4.3  管理员管理模块

当管理员成功登录到系统的主界面后,就可以对用户进行员工信息管理、绩效考核管理以及薪酬福利管理等操作。首先管理员可以对自己的密码进行修改,管理员的用户名是不可更改的。

4.3.1  员工信息的添加

当有新员工加入公司时,管理员对员工的基本信息进行添加,并通过信息添加模块给新入职员工分配账号和密码,并对基本信息进行录入。员工基本信息添加界面如图3所示。

点击员工信息添加并进入到yuangongAdd.jsp页面。根据界面提示输入员工的基本信息。信息填入完毕后点击提交按钮,此时jsp页面发出请求并调用yuangong.java。然后调用DB.java中的connection getCon()函数进行数据库的连接。以下是添加用户连接数据库的代码:

String sql="insert into t_yuangong  values(?,?,?,?,?,?,?,?,?,?,?,?,?)";

//需要执行的sql语句

Object[]params={bianhao,name,sex,age,tel,address,zhiwei,card,ruzhinianfei,0,"","","no"};

DB mydb=new DB();//创建DB Java对象

mydb.doPstm(sql, params);

//调用预编译对象的方法,将sql,object[]的值传过去,执行预编译对象

mydb.closed();//关闭连接

管理员点击员工信息管理中的分配账号操作后,会跳转至员工权限界面,根据界面提示输入给员工分配的账号和密码并点击提交,系统会将输入的账号密码插入到dbo.t_yuangong数据库中。

4.3.2  员工信息的查询与删除

管理员可以通过该模块进行删除操作。管理员通过员工基本信息查询模块可以查询员工的基本信息,其中可以通过员工姓名或者员工编号查询。

管理员点击员工基本信息查询,进入到yuangongSearch.jsp界面。输入员工姓名或者编号后点击查询按钮,JSP页面会发出请求,然后调用yuangong_servlet,再从yuangong_servlet中分别调用yuangongSearch和yuangongSearch_bianhao方法来查询员工基本信息。当查询成功时会跳转到success.jsp界面。查询成功后会有删除按钮,可以对需要删除的员工信息进行删除。

4.3.3  绩效考核管理

该模块实现了员工迟到、请假等信息添加的功能,并将添加的信息转化成工资。其中绩效奖金是500元,迟到一次扣50,扣完为止。

管理员进入绩效考核录入模块后,点击添加按钮,界面跳转至jixiaoAdd.jsp界面,根据界面提示填入相应信息,點击提交按钮,系统会调用jixiao_servlet.java里面的jixiaoAdd()方法,并与数据库相连接。以下是绩效奖金计算代码:

Intjixiao_jiangjin=500-Integer.parseInt(jixiao_yaungong_chidao)*50;

当绩效考核的信息已经录入时,系统会弹出“不要重复操作”的对话框。

当绩效考核之前并未录入时,系统会跳转至common/success.jsp界面并提示录入成功,在代码的实现过程中主要使用if-else语句。

4.3.4  薪酬福利管理

薪酬福利添加:管理员点击薪酬福利添加后,界面跳转至xinchouAdd.jsp界面,根据界面的提示录入相应的信息后,点击提交,调用xinchou_servlet.java中的xinchouAdd()方法,并连接数据库,实现对薪酬福利的添加。其中个人税计算的代码如下:

if(xinchouall>3500){

gerenshui=(int)(xinchouall*0.1);

}

薪酬福利添加界面,其中,薪酬福利有一条绩效奖金,绩效奖金是通过查询员工的绩效考核奖金之后录入的,点击绩效奖金右侧的“查询员工的绩效考核奖金”之后,会跳转界面并让选择添加的员工,如果查询时发现该员工的绩效奖金在绩效考核模块并未录入,那么系统会跳转至以下界面,如图4所示。

删除薪酬福利可能会录入错误,应该设置撤销功能,对薪酬福利删除利用xinchouDel()方法,其主要代码如下:

String sql="delete from t_xinchou where

id="+Integer.parseInt(req.getParameter("id"));//需要執行SQL语句

Object[] params={};

DB mydb=new DB();//创建DB Java对象

mydb.doPstm(sql, params);

mydb.closed();//关闭连接

4.4  普通员工模块

4.4.1  工资查询功能

普通员工通过管理员分配的账号密码登录到系统中,可以查询当月或以前月份所发放的工资进行查询、可以修改个人密码、查询个人信息以及对工资单的打印。

员工通过个人的账号和密码可以成功登录到员工查询界面。首先是工资单的形成,员工不仅可以看到当月工资明细,还可以查看到以前月份的工资明细。普通员工确认工资无误之后还可以对工资单进行打印。

4.4.2  工资单打印功能

员工查询工资单之后可以生成Excel表,实现工资的打印。该功能的实现首先需要设置输入流,利用Sql Server语句调取数据库中的相关信息,再根据输入流中的表头信息,通过输出流导出Excel表。

5  结  论

工资管理系统是办公系统的一种,是当下每一家企业都应当使用的系统。通过几个月的努力完成了一个简单的工资管理系统,从中收获了很多。

本系统是一个大众化的系统,功能较为简单,可以供许多中小企业使用,当然,如果大中企业使用还需要完善许多功能。在系统设计与开发的过程中遇到很多难题,例如数据库的连接、用例图流程图画的不恰当、模块分配不合理等,通过请教其他同学都得以解决,也从中学到很多知识。系统经过努力终于完成,但是还有很多需要完善的地方,例如工资考核有些简单,员工信息录入不是很全面等,这些都需要改进。

参考文献:

[1]段新宇.论学院工资档案管理的信息化[J].赤峰学院学报:自然科学版,2015,31(11):176-177.

[2]洪奎.基于Struts框架的Java Web应用开发研究[J].通讯世界,2016(13):14.

[3] 孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.

[4]董文彬.浅论软件需求分析[J].科技视界,2012(26):236-237.

[5]余晓娜.浅谈SQL Server 2005数据库备份与还原[J].电脑知识与技术,2014,10(20):4654-4656.

[6]王静.浅谈档案管理系统的需求与功能开发利用[J].内蒙古石油化工,2014,40(1):82-85.

[7]张婷.网络式软件非功能需求分析方法及其应用[J].信息与电脑:理论版,2014(12):160-161.

作者简介:张莹莹(1994.10—),女,汉族,河南济源人,中级经济师,本科,研究方向:工资管理系统。

收稿日期:2022-06-22