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

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 管理员功能模块
    • 2.2 普通员工功能模块
    • 2.3 答辩文案
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询职称
    • 4.2 新增留言回复
    • 4.3 工资申请
    • 4.4 工资审核
    • 4.5 员工请假
  • 五、免责说明


一、摘要

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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/243693.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang 中使用 statik 将静态资源编译进二进制文件中

现在的很多程序都会提供一个 Dashboard 类似的页面用于查看程序状态并进行一些管理的功能&#xff0c;通常都不会很复杂&#xff0c;但是其中用到的图片和网页的一些静态资源&#xff0c;如果需要用户额外存放在一个目录&#xff0c;也不是很方便&#xff0c;如果能打包进程序发…

推荐IDEA一个小插件,实用性很高!!

插件&#xff1a; Convert YAML and Properties File 由于每个人的开发习惯不同&#xff0c;在开发过程中会遇到各种小细节的问题。今天给大家介绍一个小插件&#xff0c;作用不大&#xff0c;细节很足。 就是properties类型文件和yml文件互相自由转换 解决&#xff1a;…

数据结构课程设计 仓储管理系统

仓储管理系统 【基本功能】 把货品信息表抽象成一个线性表&#xff0c;货品信息&#xff08;包括ID、货品名、定价、数量等&#xff09;作为线性表的一个元素&#xff0c;实现&#xff1a;按ID、货品名分别查找某货品信息&#xff08;包括ID、货品名、定价、数量等&#xff0…

前台vue配置

前台 vue环境 1.傻瓜式安装node: 官网下载&#xff1a;https://nodejs.org/zh-cn/2.安装cnpm: >: npm install -g cnpm --registryhttps://registry.npm.taobao.org3.安装vue最新脚手架: >: cnpm install -g vue/cli注&#xff1a;如果2、3步报错&#xff0c;清除缓…

FastReport动态绑定数据源

先新建数据源 然后选择新建连接csv 选择好后&#xff0c;下一步完成&#xff0c;拖到自己想要的位置即可 程序里对应上相应的名称就行了 // 创建报表 Report report new Report(); report.Load(frxPath); DataTable dataTable1 new DataTable("MyDataTable");…

如何攻克钙钛矿太阳能电池电性能测试技术壁垒?

1 前言 “碳达峰、碳中和”背景下&#xff0c;发展新能源成为降低碳排放的第一驱动力。以太阳能为代表的清洁能源在市场上的占比大幅提升&#xff0c;与之对应的太阳能电池同样发展迅速。太阳能电池是一种吸收光能产生电能的半导体光电二极管&#xff0c;硅基电池作为第一代太…

beego API 自动化文档

API 全局设置 必须设置在 routers/router.go 中&#xff0c;文件的注释&#xff0c;最顶部&#xff1a; // APIVersion 1.0.0 // Title mobile API // Description mobile has every tool to get any job done, so codename for the new mobile APIs. // Contact astaxiegmai…

解决Windows下VSCode控制台乱码问题

我们在Windows使用VSCode编写C/C程序时&#xff0c;如果代码中的中文字符串使用的是UTF8编码&#xff0c;且代码内没有设置控制台的输出编码&#xff0c;或者编译时没有指定运行时编码&#xff08;GCC可以在编译时使用-fexec-charsetGBK来指定运行时的字符串编码&#xff1b;cl…

本地读取Excel文件并进行数据压缩传递到服务器

在项目开发过程中&#xff0c;读取excel文件&#xff0c;可能存在几百或几百万条数据内容&#xff0c;那么对于大型文件来说&#xff0c;我们应该如何思考对于大型文件的读取操作以及性能的注意事项。 类库&#xff1a;Papa Parse - Powerful CSV Parser for JavaScript 第一步…

计算机网络学习first day

In the first day.  首先&#xff0c;我们要先有清晰地学习思路&#xff0c;然后介绍计算机网络的发展及在信息时代的各类应用及带来的一些负面问题。然后是对因特网进行概述&#xff0c;包括网络&#xff0c;互联网和因特网的相关概念&#xff0c;因特网发展的三个历史阶段&a…

16位单片机单片机S1C17153

16位单片机单片机 .16KB ROM / 2KB内存 * S1C17653对于程序开发很有用。 .产生具有内置振荡器的操作时钟。 - OSC3B振荡器电路&#xff1a;2MHz/1MHz/500kHz&#xff08;类型&#xff09;内部振荡器电路 -OSC1无振荡器电路&#xff1a;32.768 kHz&#xff08;类型&#xf…

对MODNet 主干网络 MobileNetV2的剪枝探索

目录 1 引言 1.1 MODNet 原理 1.2 MODNet 模型分析 2 MobileNetV2 剪枝 2.1 剪枝过程 2.2 剪枝结果 2.2.1 网络结构 2.2.2 推理时延 2.3 实验结论 3 模型嵌入 3.1 模型保存与加载 法一&#xff1a;保存整个模型 法二&#xff1a;仅保存模型的参数 小试牛刀 小结…

Unity工程没有创建.sln文件,导致打开C#文件无法打开解决方案

最近又开始折腾些Unity的小项目&#xff0c;重新遇到一些常见的小问题 点击报错文件 却没有打开文件 于是查看了下打开Window->Package Manager 选择Unity Registry 搜索Visual Studio Editor&#xff0c;发现并没有安装 同理&#xff0c;也可以安装VSCode的插件 问题解决了…

R语言rvest爬虫如何设置ip代理?

前言 在R语言中使用rvest进行网络爬虫时&#xff0c;可以使用代理服务器来隐藏真实IP地址。有一些R包可以帮助爬虫中设置代理&#xff0c;其中一个常用的包是httr。以下是一个简单的例子&#xff0c;演示如何在rvest中设置IP代理 教程 一、获取代理IP并提取 二、详情设置 l…

开发实践8_REST

一、Django REST Framework, Django View & APIView MTV模式实现前后端分离。Representational State Transfer 表现层状态转化。Representation 资源&#xff08;Resource a specific info. on net.&#xff09;具体呈现形式。ST 修改服务端的数据。修改数据 POST请求。…

C#,入门教程(07)——软件项目的源文件与目录结构

上一篇&#xff1a; C#&#xff0c;入门教程(06)——解决方案资源管理器&#xff0c;代码文件与文件夹的管理工具https://blog.csdn.net/beijinghorn/article/details/124895033 创建新的 C# 项目后&#xff0c; Visual Studio 会自动创建一系列的目录与文件。 程序员后面的工…

SERVLET API

SERVLET API Servlet API是用于创建servlet的java类和接口的集合。这些类和接口存放在javax.servlet和javax.servlet.http包中。 javax.servlet包 javax.servlet包的类和接口用于servlet和客户机之间的通信。创建servlet时,需要直接或通过扩展实现Servlet接口的类来实现Serv…

从传统管理到数字化转型——易点易动固定资产管理系统的应用

在数字化时代&#xff0c;企业管理正迎来一场革命性的转变。固定资产管理作为企业管理的重要组成部分&#xff0c;也需要适应数字化转型的潮流。易点易动固定资产管理系统作为一项先进的数字化工具&#xff0c;为企业提供了高效、便捷的资产管理解决方案。本文将介绍易点易动固…

VMware workstation平台下配置Fedora-Server-39-1.5虚拟机网络

VMware workstation平台下配置Fedora-Server-39-1.5虚拟机网络 Fedora包含的软件以自由及开放源码许可来发布&#xff0c;并旨在成为该技术领域的领先者。Fedora在专注创新、抢先集成新技术、与上游Linux社区紧密工作方面拥有良好名声。该文档适用于在VMware workstation平台下…

【爬虫、数据可视化实战】以“人口”话题为例爬取实时微博数据并进行舆情分析

前言&#xff1a; 近期在weibo上讨论的比较热的话题无非就是“人口”了。TaoTao也看了一些大家发的内容。但是感觉单纯的看文字内容不能很直观的反应出来大家的关切。索性就使用爬虫对数据进行爬取&#xff0c;同时结合着数据可视化的方式让数据自己开口说话。那么接下来就让我…