【开源】基于SpringBoot的人事管理系统

在这里插入图片描述



一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的人事管理系统,包含了职位模块、职称模块、员工请假模块、员工留言模块、员工薪资模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,人事管理系统基于角色的访问控制,给公司管理员、员工使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 管理员功能模块

1、公告管理:管理员发布公告需要普通员工能够查看到,如果有确认收到更好,没有也没事。
2、请假审核:管理员需要能看到员工的请假理由,然后进行审核,
3、打卡管理:管理员可以设置上班打卡的时间,并且界面有普通员工的打卡汇总情况(除管理员的,打卡人数和缺勤人数,迟到人数,请假人数进行页面显示汇总,按天来),最好能导出excel,
4、反馈管理:管理员可进行查看反馈,反馈内容由员工提交

2.2 普通员工功能模块

1、薪资管理:包括工资提现(将个人信息里那个提现搬到这来),薪资数额
2、公告:查看管理员发布的公告
3、上班打卡:超过时间就不能打卡(迟到)
4、请假:需要描述能描述请假理由,然后提交请假,由管理员审核,
系统反馈:能提交系统问题,由员工自行描述,管理员接收

2.3 答辩文案

基于 SpringBoot 的人事管理系统使用对象有两个,分别是公司管理员和员工。

公司管理员负责职位的维护、职称的维护、部门组织架构的维护、管理员的维护、员工的维护、工资的维护发放审核、薪资标准的维护、员工请假审核、公告的维护、留言板的维护。

员工可以进行薪资查询和申请提现、查询公司公告、员工请假、留言板留言。

  1. 承载中小型公司的薪资维护、审核、发放功能。也就是公司管理员可以对所辖范围内的薪资进行增删改查操作。
    薪资是中小型企业必备的元素,所以需要这个模块。

  2. 承载中小型公司的请假、请假审核功能。也就是公司管理员可以对员工提交的请假进行审批,员工可以发起审批。
    请假也是中小型企业必备的元素,所以需要这个模块。

  3. 承载中小型公司的新闻时政公告功能。
    一家公司要能够得到员工的信赖,新闻时政肯定是必不可少的
    所以需要这个模块,由公司管理员维护,开放给员工查询。

  4. 承载中小型公司的留言板功能。
    公司OA系统的标准化流程,肯定会有需要改进的点,或者现有功能不能被员工理解学会
    所以需要设计留言板功能,实现员工和公司的信息交互功能。

  5. 承载中小型公司的职位、职称、部门组织架构维护功能。
    职位和职称也是中小型企业必备的元素,所以需要这个模块。

  6. 承载可能需要的其他功能。
    在设计这个系统的时候,可能会用到其他功能,比如日志、文件管理
    我会把这些功能封装成独立的模块,利用Vue的组件化优势提供给别的模块调用

这个系统前端采用了国内流行的Vue技术,采用View UI作为组件库;后端采用SpringBoot整合MybatisPlus;
采用maven构建项目,采用Mysql数据库,使用Redis缓存加密的用户临时数据。


三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询职称

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询职称")
public Result<IPage<JobTitle>> getByPage(@ModelAttribute JobTitle jobTitle,@ModelAttribute PageVo page) {
    QueryWrapper<JobTitle> qw = new QueryWrapper<>();
    if(jobTitle.getTitle() != null && !MyNullUtils.isNull(jobTitle.getTitle())) {
        qw.like("title",jobTitle.getTitle());
    }
    if(jobTitle.getCode() != null && !MyNullUtils.isNull(jobTitle.getCode())) {
        qw.like("code",jobTitle.getCode());
    }
    IPage<JobTitle> data = iJobTitleService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<JobTitle>>().setData(data);
}

4.2 新增留言回复

@RequestMapping(value = "/insertReply", method = RequestMethod.POST)
@ApiOperation(value = "新增留言回复")
public Result<MessageBoard> insertReply(@RequestParam String content, @RequestParam String replyId){
    User currUser = securityUtil.getCurrUser();
    MessageBoard mb = iMessageBoardService.getById(replyId);
    if(mb == null) {
        return new ResultUtil<MessageBoard>().setErrorMsg("回复留言已被删除");
    }
    MessageBoard messageBoard = new MessageBoard();
    messageBoard.setUserId(currUser.getId());
    messageBoard.setUserName(currUser.getNickname());
    messageBoard.setDate(getZwzNowTime());
    messageBoard.setReplyId(replyId);
    messageBoard.setContent(content);
    if(iMessageBoardService.saveOrUpdate(messageBoard)){
        return new ResultUtil<MessageBoard>().setData(messageBoard);
    }
    return new ResultUtil<MessageBoard>().setErrorMsg("操作失败");
}

4.3 工资申请

@RequestMapping(value = "/apply", method = RequestMethod.POST)
@ApiOperation(value = "申请")
public Result<Object> apply(){
    Date date = new Date();
    int year = date.getYear() + 1900;
    int month = date.getMonth() + 1;
    String nowMouth = year + "-" + (month < 10 ? "0" + month : month) + "-";
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<SalaryWithdrawal> qw = new QueryWrapper<>();
    qw.eq("user_id",currUser.getId());
    qw.eq("mouth",nowMouth);
    List<SalaryWithdrawal> salaryWithdrawalList = iSalaryWithdrawalService.list(qw);
    if(salaryWithdrawalList.size() > 0) {
        return ResultUtil.error("您已申请,无需重复申请");
    }
    SalaryWithdrawal salaryWithdrawal = new SalaryWithdrawal();
    salaryWithdrawal.setSalaryTime(getZwzNowTime());
    salaryWithdrawal.setMouth(nowMouth);
    salaryWithdrawal.setAuditName("");
    salaryWithdrawal.setUserName(currUser.getNickname());
    salaryWithdrawal.setUserId(currUser.getId());
    salaryWithdrawal.setStatus(0);
    salaryWithdrawal.setAuditTime("-");
    salaryWithdrawal.setMoneyData(currUser.getMoneyData());
    iSalaryWithdrawalService.saveOrUpdate(salaryWithdrawal);
    return ResultUtil.success("OK");
}

4.4 工资审核

@RequestMapping(value = "/audit", method = RequestMethod.POST)
@ApiOperation(value = "审核")
public Result<Object> audit(@RequestParam String id){
    User currUser = securityUtil.getCurrUser();
    SalaryWithdrawal sw = iSalaryWithdrawalService.getById(id);
    if(sw == null) {
        return ResultUtil.error("审核申请不存在");
    }
    if(sw.getStatus() > 0) {
        return ResultUtil.error("审核单已被审核,无需重复审核");
    }
    sw.setStatus(1);
    sw.setAuditTime(getZwzNowTime());
    sw.setAuditName(currUser.getNickname());
    iSalaryWithdrawalService.saveOrUpdate(sw);
    return ResultUtil.success("OK");
}

4.5 员工请假

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "编辑或更新数据")
public Result<UserLeave> insert(@RequestParam String date,@RequestParam String reason){
    User currUser = securityUtil.getCurrUser();
    UserLeave userLeave = new UserLeave();
    userLeave.setUserId(currUser.getId());
    userLeave.setUserName(currUser.getNickname());
    userLeave.setDateTime(getZwzNowTime());
    userLeave.setStatus("未审核");
    userLeave.setLeaveDate(date);
    userLeave.setLeaveReason(reason);
    userLeave.setAuditUser("");
    if(iUserLeaveService.saveOrUpdate(userLeave)){
        return new ResultUtil<UserLeave>().setData(userLeave);
    }
    return new ResultUtil<UserLeave>().setErrorMsg("操作失败");
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 人力资源管理系统(Human Resource Management System,简称HRMS)是一种基于Spring Boot和Mybatis Plus的人力资源管理软件。它是为了帮助企业更好地管理和优化其人力资源而设计的。 HRMS具有以下几个主要功能: 1. 员工管理:HRMS可以实现对员工的信息进行管理,包括员工基本信息、岗位信息、部门信息等。通过系统,管理者可以对员工进行增删改查等操作,方便快捷地管理员工数据。 2. 薪资管理:HRMS可以自动计算员工的薪资并生成工资单,根据不同的岗位、等级和绩效,计算不同员工的薪资,并提供薪资发放的记录和统计。 3. 考勤管理:HRMS可以对员工的考勤情况进行记录和管理,包括请假、出差、加班等。通过系统,可以查看员工的考勤记录和统计数据,方便管理者进行调度和工作安排。 4. 培训管理:HRMS可以记录员工的培训信息和培训成果,包括培训计划、培训材料和培训效果评估。通过系统,可以为员工制定培训计划,统计培训情况,并为企业提供人员培训情况的数据支持。 5. 绩效管理:HRMS可以对员工的绩效进行评估和管理,包括设定目标、评估表和绩效考核结果。通过系统,可以定期对员工的绩效进行评估和考核,并提供绩效评估的数据和报表。 总的来说,人力资源管理系统Spring Boot Mybatis Plus可以帮助企业更好地管理和优化其人力资源,提高企业的运营效率和管理水平。通过自动化和集中化管理,可以减少人力成本和提高工作效率,为企业的发展提供有力的支持。 ### 回答2: 人力资源管理系统springboot mybatisplus 是一种基于springboot和mybatisplus框架开发的人力资源管理系统。该系统主要用于管理企业的人力资源信息,包括员工的基本信息、薪资福利、绩效考核、培训发展等方面。 springboot是一种基于spring框架的开发工具,它简化了项目的配置和部署,并提供了丰富的开发功能和插件,使得开发人员能够更加高效地开发和维护项目。 mybatisplus是mybatis的增强工具,它在mybatis的基础上提供了更多的便利功能,比如自动生成代码、分页查询、多表关联等。使用mybatisplus可以简化数据库操作,提高开发效率。 人力资源管理系统的开发过程中,可以使用springboot作为项目的基础框架,通过其内嵌的Tomcat容器和自动配置功能,简化了项目的搭建和部署。同时,可以借助springboot的starter模块集成mybatisplus,实现与数据库的连接和操作。 在系统的实现过程中,可以通过使用mybatisplus的代码生成功能,根据数据库表结构自动生成DAO层的代码。在代码编写过程中,可以使用mybatisplus提供的查询构造器和分页插件,实现复杂查询和分页查询的功能。 系统中的业务逻辑可以根据实际需求进行编写,比如员工信息的增删改查、薪资福利的计算和调整、绩效考核的评定等。通过使用springboot和mybatisplus的组合,可以快速开发出一个功能完善、性能优良的人力资源管理系统。 综上所述,人力资源管理系统springboot mybatisplus是一种基于springboot和mybatisplus框架开发的系统,它具有高效、简单、灵活等特点,能够满足企业对于人力资源管理的需求。 ### 回答3: 人力资源管理系统是一种通过技术手段管理企业的人力资源,实现人力资源的信息化、系统化和自动化的管理方式。而Spring Boot是一种用于构建独立的、可执行的、生产级别的Spring应用程序的框架。MyBatis Plus则是一款为了简化MyBatis的使用而开发的增强工具包。 结合这三个关键词,可以推测出人力资源管理系统Spring Boot MyBatis Plus应用的情境。正常情况下,人力资源管理系统可以利用Spring Boot作为后端框架,MyBatis Plus作为持久层框架,来实现对人力资源数据的存储和处理。 在这个系统中,Spring Boot可以提供丰富的功能和特性,如快速搭建、内嵌Tomcat服务器、自动化配置等。它也可以与其他Spring生态系统的组件(如Spring Data、Spring Security)进行无缝集成,从而加速开发过程。 MyBatis Plus则可以提供更便捷的CRUD操作,将原始的MyBatis进行了增强,简化了常用的SQL操作,减少了手动编写SQL的工作量。它提供了诸如分页、条件构造器、通用的增删改查方法等功能,使开发者能够更加高效地操作数据库。 综上所述,人力资源管理系统Spring Boot MyBatis Plus应用结合了Spring Boot和MyBatis Plus的优势,使得开发者能够更加快速地搭建人力资源管理系统,并且能够更加方便地操作和管理人力资源数据。这样的应用架构能够提高开发效率,降低开发成本,同时也提升了系统的稳定性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

customer08

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值