人力资源管理系统(大二数据库课设) spring boot,Mybatis+bootstap,ajax项目 |
您所在的位置:网站首页 › 人力资源考勤系统流程图表 › 人力资源管理系统(大二数据库课设) 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.任务与要求: 掌握数据库设计和实现的基本过程。掌握数据库模式设计、分析和实现的方法。了解数据库应用系统软件开发的一般过程。学习相关的预备知识。按照数据库设计与实现过程通过系统分析,从数据库数据和应用系统功能两方面设计实现一个完整的数据库应用系统。培养团队合作精神,要求5-6人组成开发小组,每位同学承担开发过程中的不同角色。每个小组需要答辩,讲解设计方案,演示系统运行,汇报分工合作情况。撰写并提交课程设计报告课程设计说明。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员工表
图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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |