1、 摘 要当今社会,经济高速发展,科学技术日新月异,给人类社会带来了极大的变化,计算机的高速发展使得各行各业对计算机的要求越来越多,依赖性越来越强。人事管理模式已经由传统的手工业务转变成信息化,现代化,无纸化的高效环保管理模式。为此提高人事管理系统的工作效率,设计管理系统势在必行。本文人事管理系统采用基于客服端/服务端(c/s)模式开发,服务端采用Oracle 10g数据库服务器作为数据处理和储存平台,客服端应用程序使用MyEclipse 9.0进行开发,开发语言选用JAVA。关键词:人事管理、C/S结构、JAVAAbstractIn todays society, the high-speed
2、 economic development, the science and technology is developing rapidly, and to the human society to a great change, the rapid development of computer makes all walks of life to the computer wants more and more, dependence is more and more strong.The personnel management mode by the traditional manu
3、al business has turned into information, modern, the efficient management mode paperless environmental protection. To improve the efficiency of the personnel management system, design management system is imperative.In this paper the personnel management system based on customer service end/service
4、end (c/s) model development, the service by Oracle 10 g database server as data processing and storage platform, the customer service applications use MyEclipse 9.0 development, development language use JAVA.Keywords: personnel management, C/S structure, JAVA目 录摘 要1目 录3第一章 前 言5第一节 课题研究背景5第二节 国内外研究现状
5、6第二章 系统开发基础7第一节 C/S模式概述7一、C/S模式概念7二、C/S模式优缺点7第二节 系统运行环境8一、硬件环境8二、软件环境8第三节 开发语言介绍8一、Java简介8二、SQL简介9第四节 开发工具介绍9一、MyEclipse 9.0简介9二、Oracle 10g 简介9第三章 系统分析10第一节 系统分析10第二节设计思想10第三节功能结构图11第四章 数据库设计与实现12第一节需求分析12第二节E-R图分析12第五章主要模块设计与实现14第一节公共模块设计14一、编写hibernate配置文件14二、编写持久化类15第二节主窗体设计15一、导航栏的设计16二、工具栏的设计16
6、第三节档案管理模块设计18一、档案管理模块功能需求18二、档案管理模块的实现19第四节考勤管理模块设计20一、考勤管理模块功能需求20二、考勤管理模块的实现20第五节待遇管理模块设计22一、待遇管理模块功能需求22二、待遇管理模块的实现22第六章 测 试28第一节软件测试的意义28第二节测试方法28总 结29致 谢30参考文献31第一章 前 言第一节 课题研究背景市场经济条件下,技术的竞争、市场的竞争、服务的竞争归根结底还是人才的竞争。当今社会,在“以人为本观念的熏陶下,人事管理在各个单位中的作用日益突出,被摆在了所有管理中的首要位置。人事管理是一个单位日常工作中不可或缺的重要部分,它对于本单
7、位的决策者和管理者来说都至关重要。飞速发展的技术变革和创新,以及新竞争环境的出现,使得越来越多的单位通过构筑自身的人事竞争力来维持生存并促进持续发展。而人员的复杂性却使得人事管理成为难题。人事信息的一大显著特点就是数据量大、关系复杂。用传统人工的方式管理文件档案,效率低、保密性差,查找、更新、维护也特别困难。以往的人事工作者由于缺乏适当的软件给其工作带来了诸多不便。随着科学技术的不断发展和计算机科学的日益成熟,人事工作者急切希望能够将人事管理中大部分繁琐的工作交给计算机处理,从而减轻人工的压力并提高工作效率。人事管理系统应运而生,而计算机的普及更加快了人事管理系统的产生技术的不断发展。人事管理
8、系统是一个典型的信息管理系统(MIS),本课题来源于某事业单位对人事档案管理的个性化需求,开发此系统的目的是为了提高该单位的人事管理效率,实现人事管理的自动化和信息化。人事管理系统使用计算机对人事档案信息进行管理,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低廉等优点是手工管理所无法比拟的。人事管理系统功能全面、操作简便,能够快速地为员工建立电子档案,而且便于修改、保存和查询,实现了无纸化存档,能够为使用者节省大量资金和空间。人事管理系统利用计算机进行信息控制和数据处理,不仅提高了工作效率,而且还大大的提高了其安全性。开发这样一个人事管理系统具有很强的现实意义:1大幅度提高工
9、作效率和工作质量,使该单位的人事管理者从繁重琐碎的人事管理工作中解脱出来。2通过计算机对数据库进行管理代替手工统计工作,将在很大程度上减少数据统计的工作量,并且能使数据统计过程中的错漏减少到最低程度。3大大节约人事管理方面的成本,从而使该单位获得更好的社会效益和经济效益。4使该单位的人事管理工作更加规范、高效,在一定程度上加快了该单位的管理信息化进程。第二节 国内外研究现状人事管理系统此前已有许多解决方案,所用技术也是越来越先进。较早的人事管理系统主要采用Foxbase、FoxPro、VFP等数据库开发工具,系统开发环境也是数据库内置的开发工具。其特点是单机单用户方式,开发简单,能充分利用数据
10、库的特性。其缺点是:开发出的系统依赖性很强,运行必须依托数据库环境;不容易升级与扩展;无法实现数据的共享与并行操作;代码重用性差。而后出现了基于传统的CS模式下采用面向对象的开发工具开发的一系列人事管理软件。BS结构的人事管理系统的研究都是适用于大型应用系统,其开发成本之高和开发周期之长是小型单位所不能忍受的,且小型单位并不需要使用很多复杂的功能,将大型应用系统用在小型单位未免有点“大材小用。这也就意味着小型人事管理系统仍有应用空间和潜在市场,本论文介绍的基于Hibernate的人事管理系统就是为了满足小型单位的个性化需求而开发设计的。系统使用Java Swing技术获得了简单实用的用户界面,
11、使用CS架构和Hibernate框架技术大大减少了软件开发成本和开发时间,并实现了系统运行与数据库无关:在程序编写过程中,不用考虑系统最终使用的数据库。使用系统时,根据用户选用的数据库平台,直接修改Hibernate的配置文件即可。第二章 系统开发基础第一节 C/S模式概述一、C/S模式概念C/S (Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。C/S模式的应用系统最大的好处是不依赖企业外网环境,即
12、无论企业是否能够上网,都不影响应用。二、C/S模式优缺点C/S模式系统以服务器作为数据处理和存储平台,在终端设计有专门的应用程序进行数据的采集和初次处理,再将数据传递到服务器端,用户必须使用客户端应用程序才能对数据进行操作。C/S模式具有以下优点和缺点C/S 模式的优点:由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。软件功能设计个性化,具有直观、简单、方便的特点,可以满足客户个性化的功能要求;如自由制表的功能在C/S 模式下就能够实现,在B/S 模式下就很难实现或运行效率很低。操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。C/S结构的管理信息系统具有较强的事务处理
13、能力,能实现复杂的业务流程。C/S 模式的缺点:需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,开发成本较高,需要具有一定专业水准的技术人员才能完成。第二节 系统运行环境一、硬件环境PC机 CPU:P4 2.0GHz内存:512M二、软件环境操作系统 :Windows XP sp3编辑环境 :MyEclipse 9.0数据库环境 :Oracle 10g第三节 开发语言介绍一、Java简介Java是一种“简单(simple)、面向对象(object oriented)、分布
14、式(distributed)、解释型(interpreted)、健壮(robust)、安全(secure)、体系结构中立(architecture neutral)、可移植性(portable)、高性能(high performance)、多线程(multithreaded)和动态(dynamic)”的编程语言(一)Swing 简介Swing是Java平台的JFC(Java Foundation Classes,Java基础库类)的一个重要组成部分。Swing提供了丰富的组件,并且提供了独立于运行平台的GUI构造框架。Swing是纯Java实现轻量级(Light-weight)组件,没有本地代
15、码,不依赖操作系统的支持,这是与AWT组件的最大区别。Swing在不同的平台上都能够具有一致的显示风格,并且提供本地窗口系统不支持的其他特性。(二)Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有
16、5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。 Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中
17、的session,而以后会将HttpSesion对象称为用户session。 SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。 Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibe
18、rnate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。 Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。二、SQL简介SQL(Structured Query Language),结构化查询语言,是关系数据库的标准语言,SQL是一个通用的、功能极强的关系数据库语言,其功能不仅仅是查询。SQL集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点有 面向集合的语言;非过程语言;类似自然语言,简洁易用; 自含式语言,又是嵌入式
19、语言;可独立使用,也可嵌入到宿主语言中。第四节 开发工具介绍一、MyEclipse 9.0简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。二、Oracle 10g 简介Oracle 10g是甲骨文(su
20、n)公司推出的Oracle 9i的后续版本,“g”代表网格(gridding)是第一个专门设计用于网格计算的数据库,解决了传统数据库应用中面对的瓶颈问题高性能、搞可伸缩性与低价格之间的矛盾。增加支持XQuery、自动诊断、优化查询和数据加密等方面的管理功能和自动化工具。第三章 系统分析第一节 系统分析伴随着企业对人事管理系统的日益完善,企业人事管理系统在企业管理中越来越受到企业管理者的青睐。企业人事管理系统的功能全面、操作简单,可以快速的为员工建立电子档案,并且便于修改、保持以及查看,并且实现了无纸化存档,为企业节省了大量的资金和空间。通过企业人事管理系统,还可以实现对企业员工的考勤管理、奖惩
21、管理、待遇管理等。根据企业对人事管理的要求,本系统需要实现以下几个目标:操作简单、界面简洁;方便、快捷的档案管理;实用的考勤和奖惩管理;对不同的待遇标准,实现帐套管理方便实用的小工具,如计算器、word、excel系统运行稳定、安全可靠。第二节 设计思路本系统主要包括人事管理和待遇管理两大功能模块,用来提供对企业员工的人事和待遇管理;以及用户管理模块,用来提供对系统的维护和管理;还包含一个系统工具模块,用来快速运行系统中的常用工具。人事管理模块包含的子模块有档案管理、考勤管理、奖惩管理。其中档案管理 用来维护员工的基本信息,包含档案信息、职位信息和个人信息。档案信息中包含员工照片。考勤管理模块
22、用来记录员工的考勤信息,如迟到、请假、加班等。奖惩管理模块用来记录员工的奖惩信息。用户管理模块包含新建用户和修改密码两个子模块。新建用户模块用来添加和维护系统的管理员,包括删除管理员,该模块只能有超级管理员实用;修改密码模块用来修改当前登录用户的密码。待遇管理模块包括人员设置、帐套管理、统计报表三个子模块。人员设置模块用来设置对员工采用哪个待遇标准。帐套管理模块用来建立和维护帐套。统计报表模块用来统计员工的待遇情况以及考勤情况。系统工具模块有打开计算器、word、Excel三个功能第三节 功能结构图图3-1 结构功能图第四章 数据库设计与实现第一节 需求分析经过调查用户需求,分析确定了该系统应
23、该包括如下功能:一、 档案管理 :是企业人事管理系统的核心模块,它的主要功能是添加员工的编号、姓名、性别、出生年月、身份证号、民族、籍贯、婚姻状况、政治面貌、学历、专业、部门、职位、用工合同等;二、 考勤管理 :包括档案编号、考勤类型、考勤说明、开始日期、结束日期等;三、 奖惩记录 :包括档案编号、奖励类型、奖励说明、惩罚类型、惩罚说明等;四、 帐套管理 :包括编号、名称、说明。五、 帐套项目:包括档案编号、帐套编号第二节 E-R图分析图4.1档案信息表E-R图 4-2 考勤信息表E-R图图 4-3 帐套信息表 E-R图图4-5 帐套设置信息表 E-R图 第五章 主要模块设计与实现第一节 公共
24、模块设计在开发软件时,对公共模块的设计十分重要,因为在设计公共模块的过程中,即是对软件结构的一个整体规划,又可以最大程度地实现代码重用。系统中需要统一开发的公共模块主要有以下几个一、编写hibernate配置文件oracle.jdbc.driver.OracleDriverjdbc:oracle:thin:localhost:1521:DBSQLPERSONNEL_MANAGEMWQorg.hibernate.dialect.OracleDialecttruetruetrue二、编写持久化类持久化类不需要实现任何类和接口,只需要提供一些属性及其对应的set/get方法,需要注意的是,每一个持久
25、化类都需要提供一个没有入口参数的构造方法。编写映射文件 持久化类映射文件复制建立持久化类与对应数据表之间的映射关系。建立持久化类之间的关联关系 在本系统总有多处使用到了hibernate的一对一和一对多关联,通过对hibernate关联关系的使用,可以快速地通过一个对象获得到与之关联的对象。(一)建立一对一关联关系:系统将档案信息和职务信息分别保存到两个表中,如下图所示。其中职务表的主键ID同时作为外键参考档案表的主键ID,并且ID相同的记录为同一个员工的信息,与这两个表对应的持久化类依次为TbRecord和TbDutyInfo,对着两个持久化类就需要建立一对一关联关系。(二)建立一对多关联关
26、系虽然只允许一个员工担任一个职务,即一个员工只能属于一个部门,单上一个部门却可以有多高员工,所以部门和员工之间是一对多的关系,如下图所示。这两个表对应的持久化类依次为TbDutyInfo和TbDept,对着两个持久化类就需要建立一对多关联关系第二节 主窗体设计主窗体是软件系统的一个重要组成部分,是提供人家交互的一个必不可少的操作平台。通过主窗体,用户可以打开与系统相关的各个子操作模块,完成对软件的操作和使用。图5.1 主窗体效果图一、导航栏的设计导航栏是通过树组件的实现用到的是Java. swing包里面的JTree类来实现。先创建一个根节点,DefaultMutableTreeNode ro
27、ot = new DefaultMutableTreeNode(root);/创建树的根节点然后再创建子节点efaultMutableTreeNode personnelNode = new DefaultMutableTreeNode(人事管理);/ 创建树的一级子结点再创建叶节点添加到子节点中personnelNode.add(new DefaultMutableTreeNode(档案管理);/ 创建树的叶子结点并添加到一级子结点personnelNode.add(new DefaultMutableTreeNode(考勤管理);personnelNode.add(new DefaultM
28、utableTreeNode(奖惩管理);最后在把子节点添加到根节点中root.add(personnelNode);/ 向根结点添加一级子结点二、工具栏的设计为方便用户使用系统,在工具栏为常用的系统子模块提供了快捷通道,通过这些按钮可以快速地进入常用的子模块。工具栏效果如图5.2所示。图5.2工具栏效果首先使用Java.swing包里面的JPanel方法创建一个面板容器,在通过GridLayout设置工具栏面板采用的布局管理器为网格布局,使用setVgap、setHgap分别设置网格的垂直水平间隔。在工具栏中提供了用来快速打开“档案管理”“考勤管理”“奖惩管理”“统计报表”“基本资料”和“修
29、改密码”子模块的按钮,以及“打开计算器”和“打开EXCEL”两个常用系统工具按钮,还有一个用来快速退出系统的“退出”。(一) 档案管理通过JButton创建按钮然,ActionListener为按钮设置监听器具体实现如下:final JButton recordShortcutKeyButton = new JButton();/ 创建进入“档案管理”的快捷按钮resource = this.getClass().getResource(/img/record.JPG);icon = new ImageIcon(resource);recordShortcutKeyButton.setIcon
30、(icon);/ 为按钮添加事件监听器,用来捕获按钮被点击的事件recordShortcutKeyButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) rightPanel.removeAll();/ 移除内容面板中的所有内容rightPanel.add(new RecordSelectedPanel(rightPanel),BorderLayout.CENTER);/ 将档案管理面版添加到内容面板中SwingUtilities.updateComponentTreeUI
31、(rightPanel);/ 刷新内容面板中的内容);buttonPanel.add(recordShortcutKeyButton);使用相同方法分别实现考勤管理、奖惩管理、统计报表、基本资料、修改密码。(二) 打开计算器通过java.awt.Desktop类中的open(File file)方法,可以运行系统中的其他软件其代码如下:final JButton counterShortcutKeyButton = new JButton();counterShortcutKeyButton.addActionListener(new ActionListener() public void
32、actionPerformed(ActionEvent e) Desktop desktop = Desktop.getDesktop();/ 获得当前系统对象File file = new File(C:/WINDOWS/system32/calc.exe);/ 创建一个系统计算器对象try desktop.open(file);/ 打开系统计算器 catch (Exception e1) / 当打开失败时,弹出提示信息JOptionPane.showMessageDialog(null, 很抱歉,未能打开系统自带的计算器!,友情提示, JOptionPane.INFORMATION_MES
33、SAGE);return;第三节 档案管理模块设计人事管理模块是企业人事管理系统的灵魂,是其它模块的基础。人事管理模块包含档案管理、考勤管理、奖惩管理三个子模块。一、档案管理模块功能需求(一) 用户可以增加员工的档案信息、职务信息、个人信息等基本信息。(二) 用户可以修改员工的档案信息、职务信息、个人信息等基本信息。(三) 在维护员工档案时,可以查询员工档案档案管理模块的用例图如图5.3所示:图5.3档案管理用例图二、档案管理模块的实现核心代码如下:createButton.setText(新建员工档案);buttonPanel.add(createButton);final JButton
34、updateButton = new JButton();updateButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) JTable table = deptAndPersonnelPanel.getTable();int row = table.getSelectedRow();if (row = -1) JOptionPane.showMessageDialog(null, 请在下面的表格中选择要修改的记录!,友情提示, JOptionPane.WARNING_M
35、ESSAGE);return;int col = 0;int cols = table.getColumnCount();for (int i = 0; i cols; i+) if (table.getColumnName(i).equals(档案编号) col = i;break;String selectRecordNum = (String) table.getValueAt(row, col);TbRecord updateRecord = (TbRecord) dao.queryRecordByNum(selectRecordNum);RecordOperatePanel.UPDA
36、TE_RECORD = updateRecord;rightPanel.getComponent(0).setVisible(false);RecordOperatePanel panel = new RecordOperatePanel(rightPanel);rightPanel.add(panel, BorderLayout.CENTER);panel.setVisible(true););updateButton.setText(修改员工档案);buttonPanel.add(updateButton);deptAndPersonnelPanel = new DeptAndPerson
37、nelPanel();deptAndPersonnelPanel.getTable().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);add(deptAndPersonnelPanel, BorderLayout.CENTER);第四节 考勤管理模块设计一、考勤管理模块功能需求(一)用户可以增加员工的迟到、请假、加班等考勤信息。(二)用户可以修改员工的迟到、请假、加班等考勤信息。考勤管理模块的用例图如图5.4所示:图5.4考勤管理用例图二、考勤管理模块的实现核心代码如下:createButton.setText(新建);button
38、Panel.add(createButton);final JButton saveButton = new JButton();saveButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) TbTimecard timecard = new TbTimecard();String personnal = personnalComboBox.getSelectedItem().toString();if (personnal.equals(请选择) JOptionP
39、ane.showMessageDialog(null, 请选择欲考勤的职员!, 友情提示,JOptionPane.INFORMATION_MESSAGE);return;TbRecord record = (TbRecord) dao.queryRecordByNum(personnal.substring(0, 6);timecard.setTbRecordByRecordId(record);String timecardType = timecardTypeComboBox.getSelectedItem().toString();if (timecardType.equals(请选择)
40、 JOptionPane.showMessageDialog(null, 请选择考勤类型!, 友情提示,JOptionPane.INFORMATION_MESSAGE);return;TbAccountItem accountItem = (TbAccountItem) dao.queryAccountItemByName(timecardType);timecard.setTbAccountItem(accountItem);if (explainTextArea.getText().equals() JOptionPane.showMessageDialog(null, 请填写考勤说明!,
41、 友情提示,JOptionPane.INFORMATION_MESSAGE);return;timecard.setExplain(explainTextArea.getText();/ 持久化考勤信息dao.saveObject(timecard);HibernateSessionFactory.closeSession();/JOptionPane.showMessageDialog(null, 已经成功保存此次考勤信息!, 友情提示,JOptionPane.INFORMATION_MESSAGE););saveButton.setText(保存);buttonPanel.add(save
42、Button);第五节 待遇管理模块设计待遇管理模块包括帐套管理、人员管理、统计报表三个子模块。一、待遇管理模块功能需求(一)用户可以建立和维护账套。(二)用户可以对员工采用建立好的哪个账套进行设置。(三)能够以表格的形式自动统计员工的待遇状况,统计时依据考勤管理里的数据进行月、季度、半年和年统计。工资管理模块的用例图如图55所示:图5.5待遇管理用例图二、待遇管理模块的实现核心代码如下:final JButton addSetButton = new JButton();addSetButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (needSaveRow = -1) / 没有需要保存的账套CreateCriterionSetDialog createCriterionSet = new CreateCriterionSetDialog();createCriterionSet.setBounds(width - 350) / 2,(height - 250) / 2, 350, 250);createCriterionSet.s
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922