人力资源管理系统.docx

上传人:b****2 文档编号:23477790 上传时间:2023-05-17 格式:DOCX 页数:82 大小:412.41KB
下载 相关 举报
人力资源管理系统.docx_第1页
第1页 / 共82页
人力资源管理系统.docx_第2页
第2页 / 共82页
人力资源管理系统.docx_第3页
第3页 / 共82页
人力资源管理系统.docx_第4页
第4页 / 共82页
人力资源管理系统.docx_第5页
第5页 / 共82页
点击查看更多>>
下载资源
资源描述

人力资源管理系统.docx

《人力资源管理系统.docx》由会员分享,可在线阅读,更多相关《人力资源管理系统.docx(82页珍藏版)》请在冰豆网上搜索。

人力资源管理系统.docx

人力资源管理系统

人力资源管理系统

1.需求分析

1.1系统背景

人力资源管理模块以经营管理为基础,采用成熟、先进的计算机软、硬件集成技术,融入科学的人事管理思想和模式,对企业及其下属公司的人事信息进行采集、储存、加工、处理和分析,使其及时准确地反映企业的人事聘用状况、人员流动情况、薪资情况等人事信息,为各层管理者提供快速准确的人事管理依据与辅助决策数据。

通过导入规范化信息管理系统,尤其是人力资源管理系统,建立信息化平台。

只有在人力资源得到合理的分配,才能发挥出企业的整体实力,站稳脚跟。

建立一个完善的人力资源管理系统,对一个企业的领导者在人力管理方面有着非常重要的作用。

我们的项目就是基于人力资源管理在企业发展中的重要作用而开发的,使公司能更好的管理人力资源,提高企业的整体竞争力。

通过实施人力资源管理系统,提高人力资源部在日常人力资源操作性等事物的工作效率,为高层提供即时的搞笑的人力资源数据查询、分析,为高层提供决策支持。

同时有利于人力资源内部流程的规范与再造优化,以便更好的为员工提供更好的服务。

1.2系统目标

充分利用网络资源,根据企业实际需求,进一步优化和再造管理流程:

使人力资源的管理更为高效和科学,数据更为准确。

完善人力资源决策支持系统,及时提供相关数据和报表:

使基于人力资源系统数据的决策更为直观和精确。

增强员工自助服务的功能,简化人力资源事务性的管理流程:

使人力资源部门的人员有更多的时间和精力用于人力资源的战略规划。

完善人力资源系统的业务管理功能,建立流程引擎和角色管理机制:

使得达到降低成本,提高效率,合理利用人才,改进员工服务模式的目的。

1.3系统功能

1.4运行环境

开发环境:

Eclipse

MySQL

运行平台:

Windows7/XP操作系统

2.系统设计

2.1结构设计

根据对系统进行需求分析,本系统将分为四个模块。

1.基本信息管理

管理人员基本信息和部门信息,包括人员信息和部门信息的添加、修改、删除、查询。

2.人员调动管理

管理人员调动情况,同时保存人员调动的历史记录,能够查询人员调动记录。

3.人员考核管理

管理人员考核情况,同时保存人员考核的历史记录,能够查询人员考核记录。

4.劳资管理

管理人员薪酬情况,同时保存薪酬变更的历史记录,能够查询薪酬变更记录。

2.2功能结构图

人力资源管理系统的功能结构如图

(1)所示。

添加人员信息

修改人员信息

删除人员信息

基础信息管理

查询人员信息

部门管理

人员调动

人员调动管理

人力资源

管理系统

调动历史查询

人员考核

人员考核管理

考核历史查询

劳资分配管理

劳资管理

劳资历史查询

(1)人力资源管理系统的功能结构

2.3功能流程及工作流描述

1.添加人员信息

用户利用添加人员信息管理模块可以实现人员信息的添加。

当用户输入完整的个人信息后,单击“增加”按钮即可完成人员信息添加。

本程序通过Node11Panel.java实现操作界面,通过PersonBean.java进行相关数据库操作。

2.修改人员信息

用户首先在程序左下角选择要修改信息的人员,选择后,人员的详细信息会显示出来,修改信息后单击“修改”按钮即可完成人员信息的修改。

修改信息会保存到数据库中。

人员信息修改通过Node12Panel.java实现操作界面,通过PersonBean.java进行相关数据库操作。

3.删除人员信息

在显示的表格中选择要删除的人员,单击“删除”按钮即可完成删除任务。

删除的信息会保存到数据库中。

人员信息删除通过Node13Panel.java实现,数据库操作仍是通过PersonBean.java实现。

4.查询人员信息

可以通过Node14Panel.java文件实现查询所有人员信息的功能。

5.部门管理

用户利用部门管理模块可以实现部门的增加、修改、删除等操作。

增加信息需要先单击“获取新编号”按钮,填写一级部门名称与二级部门名称后,单击“增加”按钮即可添加新信息;当选择表格中已有的部门信息时,对应的信息会显示在文本框中,即可对选择的信息进行修改与删除操作。

本程序通过Node15Panel.java实现操作界面,通过DeptBean.java文件进行。

6.人员调动

程序运行时能够罗列出所有人员的信息,用户在表格中选择了需要进行部门调动的认人员后,在左下角选择要调入的新部门并单击“调入新部门”按钮即可完成调动工作。

相应的操作会记录到数据库中。

人员调动模块通过Node21Panel.java文件实现操作界面,调动时首先修改人员信息表(Person)中的部门信息,然后再向历史操作记录表(Histrjn)中添加人员调动记录,因此对应的数据库操作主要是通过PersonBean.java和HistrjnBean.java来实现的。

通过Node22.Panel.java可以实现查询所有部门调动的历史数据。

7.人员考核

程序运行时能够罗列出所有人员的信息,用户在表格中选择了需要进行考核的人员后,在右下角选择考核结果并单击“确定”按钮即可完成考核工作。

新进人员默认为“未考核”状态。

考核的相关操作会记录到数据库中。

人员考核模块通过Node31.Panel.java文件实现操作界面,考核时首先修改人员信息表(Person)中的考核信息吗,然后再向历史记录表(Histrjn)中添加人员考核记录,数据库操作也是通过PersonBean.java和HistrjnBean.java来实现的。

通过Node32Panel.java可以实现查询所有人员考核的历史记录数据。

8.劳资管理

劳资管理操作与考核、调动管理类似,人员初始薪酬为“0”,通过劳资管理分配薪酬。

劳资管理模块通过Node41Panel.java文件实现操作界面,数据库操作也是通过PersonBean.java和HistrjnBean.java来实现。

Node42Panel.java实现查询所有劳资分配的历史数据。

3.数据库设计

3.1信息表设计

数据库包含3个表,即人员信息表(Person),历史操作记录表(Histrjn)和部门管理表(Dept),设计需求如表

(2)、表(3)、表(4)。

名称

字段名称

数据类型

主键

非空

人员编号

PersonID

int

Yes

Yes

姓名

Name

Char(20)

No

Yes

性别

Sex

Char(10)

No

Yes

出生年月

Birth

Char(30)

No

Yes

民族

Nat

Char(20)

No

Yes

地址

Address

Char(50)

No

Yes

部门

DeptID

Char(10)

No

Yes

薪酬

Salary

Char(20)

No

Yes

考核

Assess

Char(20)

No

Yes

其他

Other

Char(50)

No

No

(2)人员信息表(Person)

名称

字段名称

数据类型

主键

非空

流水编号

JourNo

int

Yes

Yes

操作类型

FromAcc

Char(20)

No

Yes

原始信息

OldInfo

Char(50)

No

Yes

更新信息

NewInfo

Char(50)

No

Yes

变更次数

ChgTime

Char(10)

No

Yes

变更日期

RegDate

Char(20)

No

Yes

人员编号

PersonID

Char(50)

No

Yes

表(3)历史操作记录表(Histrjn)

名称

字段名称

数据类型

主键

非空

编号

DeptID

int

Yes

Yes

一级部门

B_Dept

Char(20)

No

Yes

二级部门

S_Dept

Char(50)

No

Yes

表(4)部门管理表(Dept)

3.2建库代码

--创建数据库

CREATEDATABASE人力资源管理系统HrMS

GO

--设置当前数据库

USEHrMS

GO

--建立Person(人员信息)表(人员编号PersonID、姓名Name、性别Sex、出生年月Birth、民族Nat、地址Address、部门DeptId、薪酬Salary、考核Assess、其他Other)

CREATETABLEPerson

PersonIDINT,

NameCHAR(20),

SexCHAR(10),

BirthCHAR(30),

NatCHAR(20),

AddressCHAR(50),

DeptIdCHAR(10),

SalaryCHAR(20),

AssessCHAR(20),

OtherCHAR(50),

PRIMARYKEY(PersonID)

GO

--建立Histrjn(历史操作记录)表(流水编号JourNo、操作类型FromAcc、原始信息OldInfo、

更新信息NewInfo、变更次数ChgTime、变更日期RegDate、人员编号PersonID)

CREATETABLEHistrjn

JourNoINT,

FromAccCHAR(20),

OldInfoCHAR(50),

NewInfoCHAR(50),

ChgTimeCHAR(10),

RegDateCHAR(20),

PersonIDCHAR(50),

PRIMARYKEY(JourNo)

GO

--建立Dept(部门管理)表(编号DeptID、一级部门B_Dept、二级部门S_Dept)

CREATETABLEDept

DeptIDINT,

B_DeptCHAR(20),

S_DeptCHAR(50),

PRIMARYKEY(DeptID)

GO

 

--插入Person(人员信息)表

INSERTINTO

Person(PersonID,Name,Sex,Birth,Nat,Address,DeptId,Salary,Assess,Other)

VALUES(1,'张三','男','1990-3-19','汉族','北京','教务处-注册中心','6000','合格','无')

GO

INSERTINTO

Person(PersonID,Name,Sex,Birth,Nat,Address,DeptId,Salary,Assess,Other)

VALUES(2,'李四','男','1991-8-24','汉族','上海','人事处-师资科','8000','不合格','无')

GO

INSERTINTO

Person(PersonID,Name,Sex,Birth,Nat,Address,DeptId,Salary,Assess,Other)

VALUES(3,'王五','男','1992-10-16','汉族','天津','办公室-综合科','10000','优秀','无')

GO

--插入Histrjn(历史操作记录)表

INSERTINTO

Histrjn(JourNo,FromAcc,OldInfo,NewInfo,ChgTime,RegDate,PersonID)

VALUES(6,'调动','教务处-注册中心','人事处-师资科','2','2010-8','1')

GO

INSERTINTO

Histrjn(JourNo,FromAcc,OldInfo,NewInfo,ChgTime,RegDate,PersonID)

VALUES(7,'调动','人事处-师资科','教务处-注册中心','3','2009-9','2')

GO

INSERTINTO

Histrjn(JourNo,FromAcc,OldInfo,NewInfo,ChgTime,RegDate,PersonID)

VALUES(8,'调动','办公室-综合科','教务处-注册中心','4','2011-9','3')

GO

--插入Dept(部门管理)表

INSERTINTO

Dept(DeptID,B_Dept,S_Dept)

VALUES('101','人事处','师资科')

GO

INSERTINTO

Dept(DeptID,B_Dept,S_Dept)

VALUES('202','教务处','注册中心')

GO

INSERTINTO

Dept(DeptID,B_Dept,S_Dept)

VALUES('303','办公室','综合科')

GO

 

4.详细设计

4.1主界面模块

人力资源管理系统主界面包括HrMS.java和HrMain.java两个文件。

HrMS是系统主运行类,其中有运行整个程序的main方法,该文件继承了HrMain类的一个实例,从而生成了人力资源管理系统的界面。

HrMain类继承自JFrame类,实现了事件侦听的接口,它有一个不带参数的构造函数HrMain(),用来生成HrMain的实例。

HrMain采用树的管理模式,用JSplitPane类将整个界面分为左右两个部分。

其中左侧实现了人力资源管理系统的功能树,采用JTree类构建,同时实现了TreeSelectionListener接口,定义了该接口所必须实现的valueChanged(TreeSelectionEvente)方法,这样可以处理JTree所产生的事件。

当JTree的TreeSelectionEvent事件发生时,调用JSplitPane的setRightComponent(Componetcomp)方法将定义好的JPanel加入右侧,实现不同的管理界面。

表(5)人力资源管理系统主界面

4.2基础信息管理模块

人力资源管理系统采用树形管理,基础信息管理模块为一个节点,下面共有5个叶子。

叶子继承自JPanel,用以设计不同的管理界面。

定义好界面以后,通过调用JSplitPane的setRightComponent(Componetcomp)方法将JPanel加入右侧。

本系统中,叶子节点采用统一规则命名,如Node12Panel.java为节点一的第二个叶子节点,它所对应的内容为基础信息管理(节点一)模块下的修改人员信息(第二叶子节点)管理,其他的以此类推。

因此,基础信息管理模块主要由五个文件组成,分别对应添加人员信息、修改人员信息、删除人员信息、查询人员信息和部门管理这五个功能模块。

表(6)基础信息管理--添加人员信息

表(7)基础信息管理--修改人员信息

表(8)基础信息管理--删除人员信息

表(9)基础信息管理--查询人员信息

表(10)基础信息管理--部门管理

4.3人员调动管理模块

人员调动管理为人力资源管理功能树的第二个节点,其下有两个叶子,分别实现人员调动和调动历史查询的功能。

在本系统的设计中,为了简化系统结构,人员调动主要是人员所属的部门发生变化,人员所属的部门信息保存在人员信息表(Person)中,而人员调动所引起的变化信息保存在历史操作记录表(Histrjn)中,这样便通过历史操作记录表,记录了所有信息变更情况。

表(11)人员调动管理--人员调动

表(12)人员调动管理--调动历史查询

4.4人员考核管理模块

人员考核管理模块为人力资源管理功能树的第三个节点,其下有两个叶子,分别实现人员考核和考核历史查询的功能。

同样,人员考核其实是实现了人员基本信息表中Assess字段的变更,变更的历史流水也会保存在Histrjn表中。

表(13)人员考核管理--人员考核

表(14)人员考核管理--考核历史查询

4.5劳资管理模块

劳资管理模块为人力资源管理功能树的第四个节点,其下有两个叶子,分别实现劳资管理和劳资历史查询的功能。

同样,劳资管理其实是实现了人员信息表中Salary字段的变更,变更的历史流水同样会保存到Histrjn表中。

表(15)劳资管理--劳资分配管理

表(16)劳资管理--劳资历史查询

4.6数据库操作模块

1.Database.java

该类用于实现数据库的操作,包括连接数据库,执行SQL语句、关闭数据库连接等,其代码如下:

importjava.sql.*;

/**

*连接数据库的类

*@authorAdministrator

*

*/

publicclassDatabase{

privateStatementstmt=null;

ResultSetrs=null;

privateConnectionconn=null;

Stringsql;

Stringstrurl="jdbc:

mysql:

//localhost:

3306/HrMs?

user=root&password=123456";

publicDatabase(){

}

/**

*打开数据库连接

*/

publicvoidOpenConn()throwsException{

try{

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager.getConnection(strurl);

}

catch(Exceptione){

System.err.println("executeQuery:

"+e.getMessage());

}

}

/**

*执行sql语句,返回结果集rs

*/

publicResultSetexecuteQuery(Stringsql){

stmt=null;

rs=null;

try{

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

rs=stmt.executeQuery(sql);

}

catch(SQLExceptione){

System.err.println("executeQuery:

"+e.getMessage());

}

returnrs;

}

/**

*执行sql语句

*/

publicvoidexecuteUpdate(Stringsql){

stmt=null;

rs=null;

try{

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

stmt.executeQuery(sql);

mit();

}

catch(SQLExceptione){

System.err.println("aq.closeConn:

"+e.getMessage());

}

}

publicvoidcloseStmt(){

try{

stmt.close();

}

catch(SQLExceptionex){

System.err.println("aq.closeConn:

"+ex.getMessage());

}

}

/**

*关闭数据库连接

*/

publicvoidcloseConn(){

try{

conn.close();

}

catch(SQLExceptionex){

System.err.println("aq.closeConn:

"+ex.getMessage());

}

}

/**

*转换编码

*/

publicstaticStringtoGBK(Stringstr){

try{

if(str==null)

str="";

else

str=newString(str.getBytes("ISO-8859-1"),"GBK");

}

catch(Exceptione){

System.out.println(e);

}

returnstr;

}

}

2.PersonBean.java

该类用于实现对人员信息表进行数据库操作的功能,包括人员信息的添加、修改、删除、查询等,其代码如下:

importjava.util.*;

importjava.sql.*;

importjavax.swing.*;

/**

*有关人员信息数据库操作的类

*/

publicclassPersonBean{

Stringsql;

ResultSetrs=null;

Stringfield1;//PersonID;

Stringfield2;//Name;

Stringfield3;//Sex;

Stringfield4;//Birth;

Stringfield5;//Nat;

Stringfield6;//Address;

Stringfield7;//DeptID;

Stringfield8;//Salary;

Stringfield9;//Assess;

Stringfield10;//Other;

StringcolName;//列名

StringcolValue;//列值

StringcolValue2;//列值

/**

*添加信息

*/

publicvoidadd(Stringf1,Stringf2,Stringf3,Stringf4,Stringf5,

Stringf6,Stringf7,Stringf8,Stringf9,Stringf10){

DatabaseDB=newDatabase();

this.field1=f1;

this.field2=f2;

this.field3=f3;

this.field4=f4;

this.field5=f5;

this.field6=f6;

this.field7=f7;

this.field8=f8;

this.field9=f9;

this.field10=f10;

if(field2==null||field2.equals("")){

JOptionPane.showMessageDialog(null,"请输入员工姓名","错误",JO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1