当前位置: 首页 > 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.rkmt.cn/news/1468069.html

相关文章:

  • Qt5.15到Qt6:手把手教你用C++打造一个带文件状态管理的文本编辑器(附完整源码)
  • 10分钟掌握CNEnvAir环境空气质量数据读取:Python实用代码示例
  • ControlNet 与 Midjourney 插画:线稿到 UI 设计稿的精准控制流程
  • 减肥糕点推荐:为什么越来越多人选择杨先生糕点? - 玖叁鹿
  • macOS防火墙LuLu终极指南:三小时掌握开源防火墙的完整实战配置
  • 2026最新最全国内大厂Java面试高频题库!
  • 别再用PyCharm硬扛大图拼接了!实测IDLE内存占用减半,轻松搞定PIL的DecompressionBombWarning
  • Illustrator脚本合集终极指南:如何用免费工具提升10倍设计效率
  • AI Agent赋能达人建联自动化:从数据到精准合作的智能升级之路
  • 2026山西晋城装修设计公司哪家好|晋城装修公司与家装设计服务商甄选参考 - 深度智识库
  • 如何实现语言驱动的零样本目标检测:GroundingDINO架构深度解析
  • 终极部署指南:如何快速上手Qwen2.5-14B大语言模型
  • 惠普OMEN笔记本性能控制终极指南:3步掌握OmenSuperHub开源工具
  • CH32V208GBU6沁恒GPIO:中断一定要声明interrupt;动态开关管脚的中断功能
  • Kronos:如何用Transformer重塑金融市场的语言模型范式
  • OBS Studio虚拟摄像头源码级深度解析:跨平台架构设计与实现原理
  • 智能礼品API网关选型实战:TensorFlow Lite vs. ONNX Runtime vs. 自研轻量引擎(含吞吐量/延迟/功耗三维度压测数据)
  • JS二项检验工具:命令行跑得快,浏览器里也能用,p值秒出
  • Laravel FastLogin安全指南:如何保护生物识别认证系统的7个最佳实践
  • 3分钟在Windows上安装安卓应用:APK安装器的革命性体验
  • MusicFree插件系统完全指南:5分钟搭建个人免费音乐库终极方案
  • Adobe-GenP 3.0:解密Adobe Creative Cloud批量激活的技术实现
  • Gemma-4-31B-it混合注意力机制解析:滑动窗口与全局注意力设计
  • ABB工业机器人控制柜与RobotStudio软件连接通信——操作指南
  • Windows安卓应用安装器:告别模拟器,3分钟快速安装APK的完整指南
  • 为什么选择Amphetamine-Enhancer?5个让你告别系统休眠困扰的理由
  • 10张图看懂 AI Agent
  • 智能M3U8下载器:3分钟掌握跨平台视频保存技术
  • 从iPhone 4S的Siri看智能交互:范式转移、技术基石与行业影响
  • 从特征选择到因果发现:互信息估计的k-NN方法在真实业务场景里怎么用?