工资管理系统的设计与实现人事管理及个人信息管理功能实现毕业设计论文.docx
-
资源ID:93040123
资源大小:759.47KB
全文页数:46页
- 资源格式: DOCX
下载积分:10金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
工资管理系统的设计与实现人事管理及个人信息管理功能实现毕业设计论文.docx
重庆师范大学全日制本科生毕业论文工资管理系统的设计与实现人事管理及个人信息管理功能实现摘要:随着公司员工数量增加,企业的工资管理工作也变得越来越复杂。而如今所采用C/S架构的工资管理软件,已经不能满足工资管理的需求。为了弥补其缺陷,提高企业工资管理的效率和正确性,降低维护费用,开发了此系统。它采用B/S架构系统,通过用户角色权限设计来为不同的用户分配不同的权限,保证系统的安全性。普通用户可进行请假管理和个人信息管理,而财务人员根据权限的不同可进行部门(人事、工资账户、工资、请假、报表等)管理。关键字:工资管理 ;个人信息管理;人事管理 Abstract:Along with the increase in the number of staff, the enterprise salary management is also becoming more and more complex. Now the wages management software using C/S architecture, already cannot satisfy the needs of the salary management. In order to make up for its shortcomings, and improve the efficiency and correctness of enterprise salary management, reduce the maintenance cost, this system is developed. It adopts B/S architecture system, through the user role authorization design to assign different permissions for different users, to ensure the safety of the system. Ordinary users can ask for leave for management and personal information management, and financial personnel according to different permissions can be departments (personnel, wages account, wages, ask for leave, report forms, etc.).Key words:Salary management; personal information management; personnel management第 1 页 共 46 页第1页(共47页)1 绪论1.1 项目背景借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。党和政府根据知识经济时代的特点,对国民经济建设提出了“用信息化带动工业化”的指导思想。对企业而言,公司员工工资管理是公司管理的一项重要内容。随着公司员工数量增加,企业的工资管理工作也变得越来越复杂。工资管理既涉及到企业的人事管理,同时也是企业财务管理的重要组成部分。资金是企业生存的重要元素,资金的流动影响 企业的整体运作,企业员工的工资是企业资金管理的一个重要组成部分。实行B/S架构的软件进行工资管理,可以减轻比较繁琐的手工工资管理。同时克服了C/S架构的软件只能进行本地管理,进行远程管理则必须重新安装远程管理软件、普通职工无法方便的查询自己的相关信息、软件有任何变动都得重新安装所有客服端的缺陷,提高了企业工资管理的效率和正确性,并且降低了维护费用。开发此系统的这些优点是企业的科学化、正规化管理,与世界接轨的重要条件。因此工资管理系统在企业中占重要地位。现在应用在大中型企业的管理信息系统中,几乎都包括了工资管理模块。有些环境中是由作为大型ERP软件中的一个模块引进的,有些是作为企业的财务系统的一部分。这些根据规范的西方的管理制度设计的工资管理软件,在很多时候还不能完全解决中国特色的中小企业的问题,我们组介绍的工资管理系统就是要为这些具有中国特色的中小企业解决他们在工资管理方面的问题。本系统功能齐全,实现了用户管理、人员管理、部门管理、工资管理、个人信息管理、报表管理。并在各个功能下面实现了查询、添加、修改、删除等功能,使系统功能更加完善。更适合企业管理人员对员工工资进行管理,且便于普通员工对自己工资信息的查询。1.2 项目开发环境1.2.1 硬件环境本系统的硬件环境如下:l 客户机:普通PCn CPU:P4 1.8GHzn 内存:256MB以上n 分辨率:推荐使用1024*768像素l WEB服务器n CPU:P4 1.8GHzn 内存:256MB以上l 数据库服务器n CPU:P4 1.8GHzn 内存:256MB以上1.2.2 软件环境本系统软件环境如下:操作系统:windows XP /windows7及其以上。开发工具:MyEclipse(web前端服务) Web服务器:Apache Tomcat 数据库:mysql-5.5.28-win32+SQLyog-8.7.1破解版;软件包:jstl-1.2.jar连接数据库软件包:mysql-connector-java-5.0.5-bin.jar2 相关技术2.1 系统所涉及到的语言2.1.1 Java语言Java的诞生是对传统计算机模式的挑战,对计算机软件开发行业产生了深远的影响:(1) 软件4A目标要求软件能达到任何人在任何地方在任何时间对任何电子设备都能应用。这样能满足软件平台上互相操作,具有可伸缩性和重用性并可即插即用等分布式计算模式的需求。 (2) 基于构建开发方法的崛起,引出了CORBA国际标准软件体系结构和多层应用体系框架。在此基础上形成了Java.2平台和.NET平台两大派系,推动了整个IT业的发展。 (3) 对软件产业和工业企业都产生了深远的影响,软件从以开发为中心转到了以服务为中心。中间提供商,构件提供商,服务器软件以及咨询服务商出现。企业必须重塑自我,B2B的电子商务将带动整个新经济市场,使企业获得新的价值,新的增长,新的商机,新的管理。 (4) 对软件开发带来了新的革命,重视使用第三方构件集成,利用平台的基础设施服务,实现开发各个阶段的重要技术,重视开发团队的组织和文化理念,协作,创作,责任,诚信是人才的基本素质。 总之,目前以看到了Java对信息时代的重要性,未来还会不断发展,Java在应用方面将会有更广阔的前景。2.2 开发工具2.2.1 MyEclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。MyEclipse 10 发布了,该版本使用最高级的桌面和Web开发技术,包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0 、Eclipselink 2.1 以及 OpenJPA 2.0.而对 IBM WebSphere 用户来说,MyEclipse Blue 支持最新版本的 WebSphere Portal Server 7.0、WebSphere 8 以及以前的版本,无缝的支持 IBM DB2 数据库。MyEclipse10 对检索功能以及错误查询功能更加强大,包括对js文件的错误查询。就目前本人的体验来说,最大的变化莫过于软件安装界面,推荐使用link方法进行插件安装,方便快捷。2.2.2 MySQLMySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP/Perl/Python)和LNMP(Linux+Nginx+MySQL+php/perl/Python),即使用Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。3 系统分析3.1 需求概述工资管理系统系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等。因此,工资管理系统为公司和员工带来极大的方便。通过我们组员之间的分析与研究,及和指导老师多次交流后,确定实现方案的要点和工作计划。本系统的实现的主要功能有:(1)对系统进行管理。用户的添加修改以及权限授予都是管理员操作的 (2) 对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。 (3)对工资账户的创建,修改,删除。 (4) 对职工的工资进行计算、修改。能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。 (5) 查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以查询全部。 (6)员工个人信息的查询,修改与管理。 (7) 报表打印功能。每月发放工资时,要求能够打印本月的工资表、随工资发给每个职工的工资条以及工资统计表。管理员对各个部分信息的管理功能3.2 需求分析3.2.1 理解需求工资管理系统分为普通用户端和管理端,普通用户端只提供请假申请和个人信息管理的查询功能。而管理端系统在用户登录时分两个部分:超级管理员和工资管理人员。工资管理人员根据各自的权限不同,可以进入用户界面管理相应的信息。超级管理员的权限除了普通用户的权限外,还有对各个部分的信息进行添加、修改、删除等功能。所有的功能管理员都能实现。下面是系统所要达到的几条要求:(1) 要求系统准确的记录各种信息。(2) 系统要提供丰富的查询功能。(3) 系统可以对基础数据进行维护。(4) 系统运行在Windows平台下,需要有良好的图形用户界面。(5) 系统具有良好的可扩展性,良好的可移植性。3.2.2 分析需求分析需求就是描述系统的需求,通过定义系统中的关键域建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。因此,工资管理系统的需求分析应该是开发人员和用户一起完成的。分析需求的第一步描述工资管理系统的功能,即定义用例,以此确定系统的功能需求。工资管理系统的分析主要涉及规格说明的阅读和分析,需要和工资管理系统潜行讨论。工资管理系统的角色是管理人员和公司员工。公司员工即普通用户可以对系统中的个人信信息部分(请假信息、工资信息、个人信息)进行查询。管理人员登陆时有权限限制的,普通用户是不可登陆。管理人员根据其权限不同可以对相应用户信息进行添加、修改、查询、删除等,还可以对系统中的其他信息进行相应的管理。3.2.3 可行性分析(1) 技术可行性分析技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户提出的要求(如计算机的容量、速度等)。此外,还要考虑开发人员的水平,作为计算机软件开发与技术专业的学生,经过几年的学习,在数据库和编程方面都有一定的基础。所以对于这个系统的开发还是有能力做好的。我们掌握了MySQL数据库及其应用技术,Java核心技术,以及Java Web 开发,并且具有一定的实训经历。同时对设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力。从一定程度上具备了开发一个小型系统的能力。(2) 经济可行性主要从对项目的经济上进行分析评价,一方面是支出的费用,另一方面是取得的收益。我们这个是一个小型的公司工资管理系统,从投入的人力,财力与物力来讲是非常之小的,只要有电脑就可以了。从节省人力方面,可以让管理人员从繁与复杂的工作中解脱出来,做更多的工作,可以给工资管理提高一个层次。(3) 运行可行性不同的企业正在迅猛发展,而且在企业中各个公司的员工流动性越来越大,所以工资管理系统在公司起到了极其重要的作用。随着计算机硬件的快速发展,计算机的价格在不断地降低,工资管理系统对客户端要求极低,只需要有一个浏览器能上网就能进行信息的查询。网络的越来越普及,人们都喜欢上网查询信息既方便又快捷。因此系统在实践上具备了可行性。(4) 法律可行性本系统纯为私人设计,在开发过程中没有涉及合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。由此可知,工资管理系统在市场上具有可行性。3.3 设计思想本系统开发设计思想有以下几点:(1) 充分利用现有资源,提高系统开发水平和应用效果的目的。(2) 系统应符合管理人员的具体要求,满足日常的管理工作需要,而且要达到使用中的直观、快捷、实用、安全、稳定等要求。(3) 系统采用模块化的程序设计方法,既便于系统功能的添加、修改等。(4) 系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除修改等功能。正如研究任何其它软件项目一样,我做的毕业设计也经历了从选题,调研,熟悉开发环境,实验关键技术,查找类似的相关系统的资料;系统概要设计,数据库结构设计,功能模块开发,功能模块测试,系统调试和系统试运行和修改。如下3 -1开发计划流程图:选题调查研究资料查询开发环境熟悉学习ssh技术概要设计数据库的设计功能模块开发和详细设计功能模块测试系统调试和修改需求分析(1)图3-1 开发计划流程图3.4 系统功能结构图针对实际生活中工资管理的需要,我们组的公司工资管理系统能够实现的主要功能模块如下: 系统管理模块:包括部门管理、角色管理、用户管理。制定用户的管理级别,管理级别分为超级管理员和普通管理用户两类。他们的操作权限不同,超级管理员是系统的管理员,可以对系统进行一切操作,包含添加用户、修改用户信息、修改口令等。普通管理用户只能对具有权限的模块进行管理。人事管理模块:实现对员工的信息添加、修改、删除、查询和修改申请单的审批。工资账户管理模块:实现工资账户的查询、添加、修改、删除、审批。工资管理模块:实现工资组和工资单的创建、修改、删除、审批。请假管理模块:实现请假单的添加、修改、审批。个人信息管理模块:实现对员工基本信息的查询以及对申请修改信息的修改、删除等。报表管理模块:实现员工信息报表和工资报表的查询和打印为Excel输出。工资管理系统的组成及系统功能结构图,如图3-2所示(2)图3-2 系统功能结构图4 数据库设计4.1 数据需求分析数据库需求分析是数据库结构设计的第一阶段,是非常重要的一个阶段。这个阶段主要是确定基本数据,数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础。通过对企业工资管理的内容和数据流程分析,针对企业工资管理系统,我们设计的数据项和数据结构如下:l 添加员工包括的数据项有序号、员工姓名、性别、年龄、所属部门、工资组、职务、电话、住址、个人简介等。l 员工信息查询 包括的数据项员工编号l 修改申请管理 包括的数据项有员工编号l 查看个人信息包括的数据项有密码l 查看工资信息 包括的数据项无l 申请修改信息 包括的数据项有申请单名称、申请单内容4.2 数据库概念结构设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。实体跟实体之间的E-R图为:工资结构工资单员工修改申请单工资账户部门具有具有属于属于具有(3)图4-1 实体E-R图4.3 数据库逻辑结构设计根据数据库的需求分析,建立如下几个数据表:(4)图4-2 员工个人信息图表(5)图4-3 员工工资信息图表5 设计说明5.1 系统概述在本工资管理系统中,涉及到最多的就是对数据的增删改查,当然在真是的系统中,对于这些操作要控制在严格的权限中,使用struts2hibernatespring实现了简单的CRUD操作。在mvc与三层架构之间我们选择了三层架构,当然他们本质相同。这里采用三层架构,也就是数据访问层、业务逻辑层、表示层。这样有利于分工和标准化。增加代码的复用性。但由于业务无法直接访问数据库必须通过中间层完成。反映时间间隔用操作是否成功界面代替。5.2 数据源的配置为了防止中文乱码的产生我们将整个项目改为UTF-8,数据库设为UTF-8,由于HTML页面参数以浏览器的编码方式发送>JSP页面以JSP定义的编码方式被编译>被JSP引擎编译为*.class文件>在JSP容器中运行>传递给Mysql数据库>以数据库的编码方式读取数据并存储>读取Mysql以数据库的编码方式读取>JSP页面接受后在浏览器中显示(以浏览器编码方式解码显示);我们需要解决问题有:1)所有*.jsp的头文件设置为<% page language="java" pageEncoding="UTF-8"%>以至于在浏览器中直接访问此页面时无乱码。数据库设置的是全部使用UTF-8编码,乱码问题归根到底是字符集的问题,查看mysql字符集如下:mysql> show variables like 'character%'+-+-+| Variable_name | Value |+-+-+| character_set_client | latin1 | character_set_connection | latin1 | character_set_database | utf8 | character_set_filesystem | binary | character_set_results | latin1 | character_set_server | latin1 | character_set_system | utf8 | character_sets_dir | C:Program FilesMySQLMySQL Server 5.5sharecharsets |+-+-+修改 my.ini(MySQL Server Instance Configuration 文件)# CLIENT SECTION client port=3306 MySQL default-character-set=utf-8 # SERVER SECTION MySQLd default-character-set=utf-8 (2)修改data目录中相应数据库目录下的db.opt配置文件default-character-set=utf-8 default-collation=utf8_general_ci 修改后查看mysql字符集如下:mysql> show variables like 'character%'+-+-+| Variable_name | Value |+-+-+| character_set_client | utf8 | character_set_connection | utf8 | character_set_database | utf8 | character_set_filesystem | binary | character_set_results | utf8 | character_set_server | utf8 | character_set_system | utf8 | character_sets_dir | C:Program FilesMySQLMySQL Server 5.5sharecharsets |+-+-+8 rows in set (0.00 sec)(3)数据库连接串中指定字符集URL=jdbc:MySQL:/yourIP/college?user=root&password=123&useUnicode=true&characterEncoding=utf-8 (4)在创建数据库时指定字符集create database gzglxt CHARACTER SET utf-8; 根据数据库设计建表,使用Mysql界面软件SQLyog-8.7.1。并做POJO持久化的数据库的映射对象,并实现序列化。以便扩展,当然而在Struts2中的Action由于可以不继承任何的接口,所以在这种情况下Action是POJO,但是Struts2中的Action也可以继承ActionSupport类就不再属于POJO了。POJO里面是可以包含业务逻辑处理和持久化逻辑,也可以包含类似与JavaBean属性和对属性访问的set和get方法的。(6)图5-1 修改数据库图对hibernate.cfg.xml做如下配置:(7)图5-2 hibernate.cfg.xml配置图<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC"-/Hibernate/Hibernate Configuration DTD 3.0/EN""<!- Generated by MyEclipse Hibernate Tools. -><hibernate-configuration><session-factory><property name="connection.username">root</property><property name="connection.password">123</property><property name="connection.url">jdbc:mysql:/127.0.0.1:3306/gzglxt</property><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="myeclipse.connection.profile">mysql</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="show_sql">true</property><property name="c3p0.max_size">30</property><property name="c3p0.min_size">5</property><property name="c3p0.timeout">3000</property><property name="c3p0.max_statements">100</property><mapping class="cs.xj.pojo.Department" /><mapping class="cs.xj.pojo.Role" /><mapping class="cs.xj.pojo.Payroll" /><mapping class="cs.xj.pojo.UserRole" /><mapping class="cs.xj.pojo.Group" /><mapping class="cs.xj.pojo.Change" /><mapping class="cs.xj.pojo.User" /><mapping class="cs.xj.pojo.Person" /><mapping class="cs.xj.pojo.GroupDetail" /><mapping class="cs.xj.pojo.Leave" /><mapping class="cs.xj.pojo.Account" /><mapping class="cs.xj.pojo.Module" /><mapping class="cs.xj.pojo.ACL" /></session-factory></hibernate-configuration>1)Hibernate与POJO对像的交互流程图如下:数据库Hibernate业务逻辑层业务逻辑层表示层JDBC(7)图5-3 Hibernate与POJO对像的交互流程图5.3 Spring配置Spring作为业务层,结合hibernateFilter文件处理,<filter><filter-name>hibernateFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>hibernateFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>5.4 Struts2配置 为了简化Struts2的配置,是编程更容易模块化进行,可以通过对各个Action对应的xml文件的调度,对各个Action进行调度。<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-/Apache Software Foundation/DTD Struts Configuration 2.0/EN""http:/struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="devMode" value="true" /><package name="base" extends="struts-default" namespace="/"><!- 退出登录配置 -><action name="zhuXiao" class="zhuxiao.ZhuXiaoAction"><result name="success">/index.jsp</result></action></package><include file="cs/xj/action/login/login.xml"/><!-登录管理 -><include file="cs/xj/action/department/department.xml"/><!-部门管理 -><include file="cs/xj/action/role/role.xml"/><!- 角色管理 -><include file="cs/xj/action/user/user.xml"/><!- 用户管理 -><include file="cs/xj/action/acl/acl.xml"/><!-权限分配管理 -><include file="cs/xj/action/personReport/personReport.xml"/><!- 生成员工信息报表管理 -><include file="cs/xj/action/payrollReport/payrollReport.xml"/><!-生成 工资信息报表管理 -></struts>6 详细设计61 人事管理模块6.1.1 执行界面(8)图6-1 员工管理图配置:在Strusts.xml中添加<include file="cs/xj/action/person/person.xml"/><!- 员工管理界面 ->Person.xml的配置如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-/Apache Software Foundation/DTD Struts Configuration 2.0/EN""http:/struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="person" extends="struts-default" namespace="/person"><interceptors><interceptor name="securityInterceptor" class="cs.xj.interceptor.SecurityInterceptor"></interceptor></interceptors><global-results><result name="error">/pages/pay_main.jsp</result><result name="login" type="redirect">/index.jsp</result></global-results><action name="personAction" class="cs.xj.action.person.PersonAction"><result name="find">/pages/person/person.jsp</result><!-员工管理界面 -><result name="search" type="redirect">personAction!find?