当前位置: 首页 > news >正文

基于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 组件库,界面友好,支持表格分页、搜索、导出等常见操作。

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

http://www.jsqmd.com/news/956460/

相关文章:

  • Cursor Pro功能解锁:技术揭秘与实践路径
  • 深入分析 AutoGPT 架构:如何在复杂 Agent 系统中实现高效控制流
  • Qt5.15到Qt6:手把手教你用C++打造一个带文件状态管理的文本编辑器(附完整源码)
  • ControlNet 与 Midjourney 插画:线稿到 UI 设计稿的精准控制流程
  • 10分钟掌握CNEnvAir环境空气质量数据读取:Python实用代码示例
  • Path of Building PoE2终极指南:从新手到构建大师的完整蜕变
  • 减肥糕点推荐:为什么越来越多人选择杨先生糕点? - 玖叁鹿
  • linux通过nvm安装node
  • macOS防火墙LuLu终极指南:三小时掌握开源防火墙的完整实战配置
  • 2026最新最全国内大厂Java面试高频题库!
  • 别再用PyCharm硬扛大图拼接了!实测IDLE内存占用减半,轻松搞定PIL的DecompressionBombWarning
  • 网传挖漏洞月入两万是陷阱?一文分清真副业和杀猪盘
  • VideoEnabledWebView:终极Android WebView HTML5视频解决方案完全指南
  • Illustrator脚本合集终极指南:如何用免费工具提升10倍设计效率
  • 5大核心功能解密:novelWriter如何成为小说创作的专业工具
  • 如何高效使用Akagi麻将AI助手:提升雀魂技巧的终极指南
  • AI Agent赋能达人建联自动化:从数据到精准合作的智能升级之路
  • 如何实现语言驱动的零样本目标检测:GroundingDINO架构深度解析
  • 2026山西晋城装修设计公司哪家好|晋城装修公司与家装设计服务商甄选参考 - 深度智识库
  • 企微二次开发:如何用实现外部群消息的主动推送与高效调度?
  • 终极部署指南:如何快速上手Qwen2.5-14B大语言模型
  • 5分钟快速上手:Kronos金融AI预测模型如何像预测语言一样预测市场走势
  • 5步实现小爱音箱智能音乐中心:Xiaomusic终极配置指南
  • 电子元器件分销商如何构建反脆弱业务体系:七条实战策略
  • 年会现场照片滚动抽奖工具(C# WinForms可执行源码,含音效与中奖管理)
  • 从TDS兼容到多模芯片:海思收购传闻背后的通信产业博弈
  • 惠普OMEN笔记本性能控制终极指南:3步掌握OmenSuperHub开源工具
  • OpenMV物品识别(以网球为例、模型训练)
  • 利用AI辅助生成符合UI设计规范的自动化设计稿流程
  • 深度解析STM32高精度温度控制系统:5种优化策略与3个关键技巧