news 2026/6/5 17:32:20

基于SpringBoot2+vue2的人力资源管理系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于SpringBoot2+vue2的人力资源管理系统

1. 资源

https://blog.xiaobias.com/article/44


2. 项目简介

人力资源管理系统,旨在为企业提供员工信息管理、部门管理、工资管理、人事调配管理、招聘与应聘管理等核心功能。系统基于 B/S 架构,分为管理员端和员工端,管理员可进行全部数据维护,员工可查看个人工资、人事调配等信息。系统数据存储使用 MySQL 数据库,后端采用 Spring Boot 框架,前端使用 Vue + Element UI 构建后台管理界面。


3. 技术栈

  • 后端

    • Java 1.8
    • Spring Boot 2.2.2
    • MyBatis-Plus 2.3
    • Apache Shiro 1.3.2(权限控制)
    • MySQL 5.7.32(数据库)
    • Apache Commons、Fastjson、Hutool 等工具库
  • 前端

    • Vue 2.x
    • Vue Router
    • Element UI
    • axios
    • vue-json-excel、vue-qr 等辅助组件

4. 详细介绍

4.1 功能模块

4.1.1 管理员端功能
模块功能说明
部门管理对部门进行增删改查,记录部门名称、人数、职责、介绍等。
员工管理维护员工基本信息(账户、密码、所属部门、编号、姓名、手机号、身份证号、头像、职位、性别、邮箱),支持重置密码。
工资管理为员工发放工资,记录工资名称、发放月份、基本工资、奖金、实发工资(自动计算)及备注。
人事调配管理记录员工的人事调动信息(调配名称、详情、调配时间)。
招聘信息管理发布招聘岗位,包括招聘名称、类型(社会/校园)、人数、详情。
应聘记录管理查看应聘者提交的信息(姓名、手机号、身份证号、教育经历、工作经历、个人介绍、应聘时间),并可标记是否已面试及面试结果。
字典数据管理维护系统中使用的枚举类型(如性别、招聘类型、是否已面试、面试结果等)。
4.1.2 员工端功能
模块功能说明
工资管理查看本人历史工资记录。
人事调配管理查看本人相关的人事调动信息。
部门管理查看公司部门信息(只读)。

4.2 数据库设计

  • bumen(部门表):id, bumen_name, bumen_number, bumen_zhize, bumen_content, insert_time, create_time
  • yuangong(员工表):id, username, password, bumen_id, yuangong_uuid_number, yuangong_name, yuangong_phone, yuangong_id_number, yuangong_photo, zhiwei, sex_types, yuangong_email, create_time
  • gongzi(工资表):id, yuangong_id, gongzi_name, gongzi_time, jiben_gongzi, jiangjin_gongzi, shifa_gongzi, gongzi_content, insert_time, create_time
  • renshidiaopei(人事调配表):id, yuangong_id, renshidiaopei_name, renshidiaopei_content, diaopei_time, insert_time, create_time
  • zhaopinxinxi(招聘信息表):id, zhaopinxinxi_name, zhaopinxinxi_types, zhaopinxinxi_number, zhaopinxinxi_content, insert_time, create_time
  • yingpinjilu(应聘记录表):id, zhaopinxinxi_id, yingpinjilu_name, yingpinjilu_phone, yingpinjilu_id_number, jiaoyu_content, gongzuo_content, geren_content, yingpin_time, mianshi_types, mianshi_jieguo_types, insert_time, create_time
  • dictionary(字典表):id, dic_code, dic_name, code_index, index_name, super_id, beizhu, create_time
  • users(管理员表):id, username, password, role, addtime
  • token(登录令牌表):id, userid, username, tablename, role, token, addtime, expiratedtime

4.3 核心业务逻辑

  • 工资实发自动计算:在保存或修改工资记录时,后端自动计算shifa_gongzi = jiben_gongzi + jiangjin_gongzi
  • 员工唯一性校验:员工账户名、手机号、身份证号在系统中不可重复。
  • 权限控制:通过 Shiro + Token 实现,管理员可操作所有模块,员工仅可查看本人相关数据。
  • 字典转换:所有类型字段(如性别、招聘类型等)在前端展示时自动从dictionary表中读取对应的中文名称。

5. 部分代码

5.1 工资模块后端 Controller(GongziController.java)

@RequestMapping("/save")publicRsave(@RequestBodyGongziEntitygongzi,HttpServletRequestrequest){// 权限判断Stringrole=String.valueOf(request.getSession().getAttribute("role"));if(StringUtil.isEmpty(role))returnR.error(511,"权限为空");elseif("员工".equals(role))gongzi.setYuangongId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));// 同一员工同一月份只能有一条工资记录Wrapper<GongziEntity>queryWrapper=newEntityWrapper<GongziEntity>().eq("yuangong_id",gongzi.getYuangongId()).eq("gongzi_time",gongzi.getGongziTime());GongziEntitygongziEntity=gongziService.selectOne(queryWrapper);if(gongziEntity==null){gongzi.setShifaGongzi(gongzi.getJibenGongzi()+gongzi.getJiangjinGongzi());gongzi.setInsertTime(newDate());gongzi.setCreateTime(newDate());gongziService.insert(gongzi);returnR.ok();}else{returnR.error(511,"该员工该月份已有工资");}}

5.2 员工登录接口(YuangongController.java)

@IgnoreAuth@RequestMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){YuangongEntityyuangong=yuangongService.selectOne(newEntityWrapper<YuangongEntity>().eq("username",username));if(yuangong==null||!yuangong.getPassword().equals(password))returnR.error("账号或密码不正确");Stringtoken=tokenService.generateToken(yuangong.getId(),username,"yuangong","员工");Rr=R.ok();r.put("token",token);r.put("role","员工");r.put("username",yuangong.getYuangongName());r.put("tableName","yuangong");r.put("userId",yuangong.getId());returnr;}

5.3 应聘记录 MyBatis 联表查询(YingpinjiluDao.xml 片段)

<selectid="selectListView"resultType="com.entity.view.YingpinjiluView">SELECT a.id, a.yingpinjilu_name, a.yingpinjilu_phone, ... zhaopinxinxi.zhaopinxinxi_name as zhaopinxinxiName FROM yingpinjilu a left JOIN zhaopinxinxi ON a.zhaopinxinxi_id = zhaopinxinxi.id<where><iftest="params.yingpinjiluName != null and params.yingpinjiluName != ''">and a.yingpinjilu_name like CONCAT('%',#{params.yingpinjiluName},'%')</if>...</where>order by a.${params.orderBy} desc</select>

6. 部分截图


















7. 项目总结

人力资源管理系统涵盖了企业人事管理中的核心业务场景,包括员工档案、部门架构、薪酬发放、人事调动、招聘应聘等。系统具备以下特点:

  • 功能完整:从员工入职到薪资发放、岗位调动、招聘闭环,全流程支持。
  • 权限清晰:管理员与员工角色分离,数据隔离保证安全。
  • 技术规范:采用主流 Spring Boot + MyBatis-Plus + Vue 技术栈,代码结构清晰,易于二次开发。
  • 数据字典化:将类型字段抽象为字典表,增强了系统的可配置性。
  • 易用性:前端使用 Element UI 组件库,界面友好,支持表格分页、搜索、导出等常见操作。

通过本项目,可以快速搭建企业级人事管理系统,并可根据实际需求扩展考勤、绩效等更多模块。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 17:31:53

Proxmark3GUI高级应用:Mifare Nested Attack与扇区数据恢复全攻略

Proxmark3GUI高级应用&#xff1a;Mifare Nested Attack与扇区数据恢复全攻略 【免费下载链接】Proxmark3GUI A cross-platform GUI for Proxmark3 client | 为PM3设计的跨平台图形界面 项目地址: https://gitcode.com/gh_mirrors/pr/Proxmark3GUI Proxmark3GUI是一款为…

作者头像 李华
网站建设 2026/6/5 17:29:07

STM32 DMA实战指南:从数据搬运到系统性能优化

1. 从CPU的“搬运工”到系统性能的“倍增器”&#xff1a;重新认识STM32的DMA搞嵌入式开发&#xff0c;尤其是用STM32这类资源相对紧张的MCU&#xff0c;性能优化是个永恒的话题。我们总在琢磨怎么让CPU跑得更快&#xff0c;代码更高效。但很多时候&#xff0c;瓶颈并不在CPU的…

作者头像 李华
网站建设 2026/6/5 17:27:42

3分钟解锁JSXBIN黑盒:Jsxer让Adobe脚本重见天日

3分钟解锁JSXBIN黑盒&#xff1a;Jsxer让Adobe脚本重见天日 【免费下载链接】jsxer A fast and accurate JSXBIN decompiler. 项目地址: https://gitcode.com/gh_mirrors/js/jsxer 你是否曾经面对过Adobe Creative Suite的JSXBIN加密文件束手无策&#xff1f;那些本该为…

作者头像 李华
网站建设 2026/6/5 17:27:36

三步实现旧手柄兼容:XOutput游戏控制器终极转换指南

三步实现旧手柄兼容&#xff1a;XOutput游戏控制器终极转换指南 【免费下载链接】XOutput A small DirectInput to Xinput wrapper 项目地址: https://gitcode.com/gh_mirrors/xou/XOutput 还在为那些经典的DirectInput游戏手柄无法在现代游戏中正常使用而苦恼吗&#x…

作者头像 李华
网站建设 2026/6/5 17:26:21

Kronos:如何用Transformer重塑金融市场的语言模型范式

Kronos&#xff1a;如何用Transformer重塑金融市场的语言模型范式 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 在量化交易的演进历程中&#xff0c;我们…

作者头像 李华