0


人力资源管理系统(大二数据库课设) spring boot,Mybatis+bootstap,ajax项目

SpringBoot人力资源管理系统
数据库采用 sqlserver2019或mysql8.0
• 环境及技术说明:页面全部为html页面,交互由ajax与Bootstrap-table完成

目前项目已修改为mysql数据库,如果想要使用sqlserver数据库
只需要将com.xpu.hrms.data.source.config.DataBaseConfigure文件中注解
@ConfigurationProperties(prefix = "mysql .datasource.hrms") 中的mysql改为sqlserver
将pom文件中mysql驱动依赖注释掉并反向注释sqlserver驱动依赖
同时时将application.properties属性文件中的有关mysql配置注释掉,有关sqlserver配置反向注释即可

1.设计题目

人力资源管理系统

** **人力资源部门希望建立一个数据库来管理它的员工。一个公司有几个部门,而一个员工属于一个部门。这个部门指派一个经理来全面负责部门事务和部门员工。为了有助于管理好部门工作,某些工作人员被任命来管理一组人员。当有一个新的员工进入公司时,需要他以前的工作经历和成绩。通常来说,每个员工都要经历一次面试,这通常是由经理来进行的。公司定义了一系列的职位类型,例如经理、业务分析员、销售人员和秘书,而且每个类型都有相关的等级,员工所处的位置决定了员工的工资。职位依据其工作量来分配给一个部门。例如,一个部门可能分配给两个业务分析员的职位。每个岗位会分配给一个员工,随着时间的过去,各个职位都会被分配给工作人员。

2.任务与要求:

  1. 掌握数据库设计和实现的基本过程。
  2. 掌握数据库模式设计、分析和实现的方法。
  3. 了解数据库应用系统软件开发的一般过程。
  4. 学习相关的预备知识。
  5. 按照数据库设计与实现过程通过系统分析,从数据库数据和应用系统功能两方面设计实现一个完整的数据库应用系统。
  6. 培养团队合作精神,要求5-6人组成开发小组,每位同学承担开发过程中的不同角色。
  7. 每个小组需要答辩,讲解设计方案,演示系统运行,汇报分工合作情况。
  8. 撰写并提交课程设计报告课程设计说明。

3.开发环境说明

  • 环境及技术说明:

名称

工具及版本

Java

Jdk1.8

开发工具

Eclipse IDE Version: 2022-03

数据库

Sql server2019

数据库连接池

Druid1.1.0

服务器

Tomcat 9.0

代码仓库

本地

后端框架

Springboot2.0.4+mybatis1.3.2

前端框架

BootStrap框架+jQuery

构建工具

Maven3.84

文件字符编码

Utf8

表1 开发环境说明

二、需求分析

1.做一个人力资源管理系统 ,要求采用前后端分离、分布式架构。

2.要求能够实现以下功能:

  • 机构管理:总经理对公司组织机构(部门、职位)的增、删、改、查。

  • 日常业务:入职管理、人事档案管理、人才库管理、求职者管理等功能的增、删、改、查。

其他部门员工登录时提示无权限使用该系统。只有总经理和隶属人事部的人员才能使用。

入职管理:即为面试,只有总经理才能决定面试结果。

人事档案管理:即为员工信息的增删改查,修改职位同时会更新员工的账号权限。

人才库管理:离职员工不会真正删除,也会存到人才库中。

求职者管理:即为初次求职者信息的录入,进行笔试,通过笔试的人才可以推荐前往面试(面试全部由总经理进行)。直接添加或注册的账户视为内推账户,可以免笔试进行面试。

上述各业务依据人事部员工职位的不同而具有不同的增删改权限。

  • 用户管理:总经理和人事部经理对用户账号的增删改查功能。

  • 权限管理:用户权限只能通过更改员工职位来修改。

制度文件(公告)管理:制度文件与通知公告的增、删、改、查。权限会根据职位有所不同

三、数据库概念结构设计:

1.概念模型图

图1 xpu_hrms概念模型

**2.**概念结构设计——ER实体图

2.1员工表

图2 ER图 员工实体


2.2部门表

图3 ER图 部门实体

2.3文件(制度公告)表:

图4 ER图 文件实体

2.4用户表:

图5 ER图 用户实体

2.5职位表:

图6 ER图 职位实体

2.6面试者表:

图7 ER图 简历实体

3.概念结构****设计——ER实体关系图

关系图:

图8 ER图 实体关系

ER图解释:

一个员工隶属于一个部门,一个部门包含多个员工
一个员工就职于一个职位,一个职位可以有多个员工
一个部门拥有多个职位,一个职位可存在于多个部门
一个内推面试者通过面试成为一名员工

一名普通面试者通过笔试成为一名用户,一名用户通过面试成为一名员工
一个用户管理多个文件

四、应用系统功能模块

1.具体模块分析及流程

人力资源管理系统具体由机构管理、常用业务、权限管理、通知公告四部分组成。机构管理权限由总经理持有,总经理对人力资源管理具有所权限可以对公司部门、员工职位进行修改;总经理和人事部经理,拥有常用业务中入职管理、人事档案管理、求职者管理、和人才库管理;用户管理是用户自己进行用户账号管理和用户相应权限可操作范围管理,通知公告即公司公告的发布管理具体见图9所示:

图9 系统功能模块图

系统登录流程图:

不同的员工账号具有不同的权限,登录系统后显示的界面及功能不同,详见图10。

图10 登录流程图

**2.**总体业务流程:

图11 总体业务流程

五、数据库逻辑结构设计:

1.ER图——关系模型转化

1.1员工关系模型:

db_staff(id,name,sex,age,place,birth,tel,staff_department,staff_position,entry_time,leave_time,isdelete)

1.2部门关系模型:

db_department(id,department_name,position,duty)

1.3文件关系模型:

file(id,file_name,file_content,0post_time,post_staff)

1.4用户关系模型:

db_user(id,staff_name,user_account,user_password,creat time,role_id)

1.5职位关系模型

db_position(id,position_level,position_salary,position)

1.6简历关系模型:

db_Interviewee(id,name,sex,age,desired_position,desired_department,work_experience,work_grade)

2.数据字典

2.1员工表:

数据项

编号

数据项名

数据项含义

与其他数据项的关系

存储结构

db_staff

D1-1

id

员工编号

员工表主码 

char(32)

D1-2

name

员工性名

属性 

varchar(50)

D1-3

sex

员工性别

属性 

varchar(20)

D1-4

birth

出生日期

属性  

datetime

D1-5

place

出生地

属性  

varchar(50)

D1-6

age

员工年龄

属性  

int

D1-7

tel

员工电话

属性 

varchar(50)

D1-8

department

部门

部门表id外码 

varchar(50)

D1-9

position

员工职位

职位表id外码 

varchar(50)

D1-10

entry-time

入职时间

属性 

Datetime

D1-11

leave-time

离职时间

属性 

Datetime

D1-12

isdelete

工作状态

属性

varchar(10)

表2 数据字典 员工表

2.2部门表:

数据项

编号

数据项名

数据项含义

与其他数据项的关系

存储结构

db_department

D5-1

id

部门编号

部门表主码 

varchar(50)

D5-2

name

部门名称

主属性

varchar(50)

D5-3

position

部门职务

属性 

varchar(50)

D5-4

duty

部门职责

属性 

varchar(255)

表3 数据字典 部门表

2.3文件表:

数据项

编号

数据项名

数据项含义

与其他数据项的关系

存储结构

db_file

D3-1

id

文件编号

档案表主码 

Char(32)

D3-2

file_name

文件名

属性

varchar(255)

D3-3

file_content

文件内容

属性 

varchar(255)

D3-4

post_time

入档时间

从属 

datetime

D3-5

post_staff

入档人员

员工表id外码

char(32)

表4 数据字典 文件表

2.4用户表:

数据项

编号

数据项名

数据项含义

与其他数据项的关系

存储结构

db_user

D4-1

id

用户编号

用户表主码

Char(32)

D4-2

staff_name

用户姓名

属性

varchar(50)

D4-3

user_account

账户

主属性

varchar(50)

D4-4

user_password

用户密码

属性

varchar(50)

D4-5

creat_time

创建时间

属性

datetme

D4-6

role_id

用户ID

属性

int

表5 数据字典 用户表

2.5职位表:

数据项

编号

数据项名

数据项含义

与其他数据项的关系

存储结构

db_position

D5-1

id

职位编号

职位表主码 

varchar(32)

D5-2

position_level

职位等级

属性

char(50)

D5-3

position_salary

职位薪资

属性 

real

D5-4

position

职位

职位表id外码 

varchar(50)

表6 数据字典 职位表

2.6简历表:

数据项

编号

数据项名

数据项含义

与其他数据项的关系

存储结构

db_interviewee

D6-1

id

面试者编号

面试者表主码 

char(32)

D6-2

name

面试者姓名

属性

varchar(50)

D6-3

sex

面试者性别

属性 

varchar(20)

D6-4

age

面试者年龄

属性 

int

D6-5

desired_position

期望职位

属性 

varchar(50)

D6-6

desired_department

期望部门

属性 

varchar(50)

D6-7

work_experience

工作经验

属性 

varchar(255)

D6-8

work_grade

工作成绩

属性 

varchar(50)

表7 数据字典 简历表

六、详细设计及实现

1.建立数据库(表,视图,索引等

CREATE DATABASE xpu_hrms;
USE xpu_hrms;

-- ----------------------------
-- Table structure for db_department
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[db_department]') AND type IN ('U'))
    DROP TABLE [dbo].[db_department]
GO
CREATE TABLE [dbo].[db_department] (
  [id] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [department_name] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [position] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [duty] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL
)
GO
ALTER TABLE [dbo].[db_department] SET (LOCK_ESCALATION = TABLE)
GO
EXEC sp_addextendedproperty
'MS_Description', N'部门名',
'SCHEMA', N'dbo',
'TABLE', N'db_department',
'COLUMN', N'department_name'
GO
EXEC sp_addextendedproperty
'MS_Description', N'职位类型 职位名',
'SCHEMA', N'dbo',
'TABLE', N'db_department',
'COLUMN', N'position'
GO
EXEC sp_addextendedproperty
'MS_Description', N'职责',
'SCHEMA', N'dbo',
'TABLE', N'db_department',
'COLUMN', N'duty'
GO
 
-- ----------------------------
-- Table structure for db_file
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[db_file]') AND type IN ('U'))
    DROP TABLE [dbo].[db_file]
GO
CREATE TABLE [dbo].[db_file] (
  [id] char(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [file_name] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [file_content] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [post_time] datetime  NOT NULL,
  [post_staff] char(32) COLLATE Chinese_PRC_CI_AS  NOT NULL
)
GO
ALTER TABLE [dbo].[db_file] SET (LOCK_ESCALATION = TABLE)
GO
-- ----------------------------
-- Table structure for db_interviewee
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[db_interviewee]') AND type IN ('U'))
    DROP TABLE [dbo].[db_interviewee]
GO
CREATE TABLE [dbo].[db_interviewee] (
  [id] char(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [name] varchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
  [sex] varchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
  [age] int  NULL,
  [desired_position] varchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
  [desired_department] varchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
  [work_experience] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
  [work_grade] varchar(50) COLLATE Chinese_PRC_CI_AS  NULL
)
GO

ALTER TABLE [dbo].[db_interviewee] SET (LOCK_ESCALATION = TABLE)
GO
 
-- ----------------------------
-- Table structure for db_position
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[db_position]') AND type IN ('U'))
    DROP TABLE [dbo].[db_position]
GO
CREATE TABLE [dbo].[db_position] (
  [id] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [position_level] char(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [position_salary] real DEFAULT 0 NULL,
  [position] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL
)
GO
ALTER TABLE [dbo].[db_position] SET (LOCK_ESCALATION = TABLE)
GO
-- ----------------------------
-- Table structure for db_staff
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[db_staff]') AND type IN ('U'))
    DROP TABLE [dbo].[db_staff]
GO
CREATE TABLE [dbo].[db_staff] (
  [id] char(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [name] varchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
  [sex] varchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
  [age] int  NULL,
  [place] varchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
  [birth] datetime  NULL,
  [tel] varchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
  [staff_department] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [staff_position] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [entry_time] datetime  NULL,
  [leave_time] datetime  NULL,
  [isdelete] varchar(10) COLLATE Chinese_PRC_CI_AS  NULL
)
GO
ALTER TABLE [dbo].[db_staff] SET (LOCK_ESCALATION = TABLE)
GO
 
-- ----------------------------
-- Table structure for db_user
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[db_user]') AND type IN ('U'))
    DROP TABLE [dbo].[db_user]
GO
CREATE TABLE [dbo].[db_user] (
  [id] char(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [staff_name] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [user_account] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [user_password] varchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [creat_time] datetime  NOT NULL,
  [role_id] int  NOT NULL
)
GO
ALTER TABLE [dbo].[db_user] SET (LOCK_ESCALATION = TABLE)
GO
-- ----------------------------
-- Primary Key structure for table db_department
-- ----------------------------
ALTER TABLE [dbo].[db_department] ADD CONSTRAINT [PK__db_depar__3213E83F09B759E2] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO
-- ----------------------------
-- Primary Key structure for table db_file
-- ----------------------------
ALTER TABLE [dbo].[db_file] ADD CONSTRAINT [PK__db_file__3213E83F09615A31] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO
-- Primary Key structure for table db_interviewee
-- ----------------------------
ALTER TABLE [dbo].[db_interviewee] ADD CONSTRAINT [PK__db_inter__3213E83F7DB31B7E] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO
-- ----------------------------
-- Primary Key structure for table db_position
-- ----------------------------
ALTER TABLE [dbo].[db_position] ADD CONSTRAINT [PK__db_posit__3213E83FCA3D5B20] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO
-- ----------------------------
-- Primary Key structure for table db_staff
-- ----------------------------
ALTER TABLE [dbo].[db_staff] ADD CONSTRAINT [PK__db_staff__3213E83F739A3F95] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO
-- ----------------------------
-- Primary Key structure for table db_user
-- ----------------------------
ALTER TABLE [dbo].[db_user] ADD CONSTRAINT [PK__db_user__3213E83F1A21E87A] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
GO
-- ----------------------------
-- Foreign Keys structure for table db_file
-- ----------------------------
ALTER TABLE [dbo].[db_file] ADD CONSTRAINT [FK__db_file__post_st__00DF2177] FOREIGN KEY ([post_staff]) REFERENCES [dbo].[db_user] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION
GO
-- ----------------------------
-- Foreign Keys structure for table db_interviewee
-- ----------------------------
ALTER TABLE [dbo].[db_interviewee] ADD CONSTRAINT [FK__db_interview__id__03BB8E22] FOREIGN KEY ([id]) REFERENCES [dbo].[db_user] ([id]) ON DELETE CASCADE ON UPDATE CASCADE
GO

 
-- ----------------------------
-- Foreign Keys structure for table db_position
-- ----------------------------
ALTER TABLE [dbo].[db_position] ADD CONSTRAINT [FK__db_positi__posit__05A3D694] FOREIGN KEY ([position]) REFERENCES [dbo].[db_department] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION
GO

-- ----------------------------
-- Foreign Keys structure for table db_staff
-- ----------------------------
ALTER TABLE [dbo].[db_staff] ADD CONSTRAINT [FK__db_staff__id__04AFB25B] FOREIGN KEY ([id]) REFERENCES [dbo].[db_interviewee] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION
GO

ALTER TABLE [dbo].[db_staff] ADD CONSTRAINT [FK__db_staff__staff___7849DB76] FOREIGN KEY ([staff_position]) REFERENCES [dbo].[db_position] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION
GO

ALTER TABLE [dbo].[db_staff] ADD CONSTRAINT [FK__db_staff__staff___7C1A6C5A] FOREIGN KEY ([staff_department]) REFERENCES [dbo].[db_department] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION
GO

ALTER TABLE [dbo].[db_staff] ADD CONSTRAINT [FK__db_staff__id__7D0E9093] FOREIGN KEY ([id]) REFERENCES [dbo].[db_user] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION
GO

2.编码规范定义:

名称

规范

常量名

全大写

魔法字(无意义的常量和变量)

不允许

变量名、方法名

驼峰命名规则

全局字符编码

utf8

表8 编码规范

**3.**界面设计:

登录首页展示,(前端界面来自于网络)如图12:

图12 页面设计

4.项目文件结构及说明

图13 项目文件结构

**5.**源程序代码

详见github仓库

https://github.com/whd1996/hrms


本文转载自: https://blog.csdn.net/WaitIKnowYou/article/details/127568842
版权归原作者 WaitIKnowYou 所有, 如有侵权,请联系我们删除。

“人力资源管理系统(大二数据库课设) spring boot,Mybatis+bootstap,ajax项目”的评论:

还没有评论