计算机源码数据库基于SpringBoot的人事管理系统

发布时间:2023年12月21日

前言:我是极客的Code,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务
在这里插入图片描述

项目名
基于SpringBoot的人事管理系统
技术栈
SpringBoot+Vue+MySQL+Maven

一、环境介绍

1.1 运行环境

开发语言:Java
数据库:MySQL
系统架构:B/S
后端:SpringBoot(MyBatis)
前端:Vue
工具:IDEA,JDK1.8,Maven

二、系统介绍

人事管理系统是一个基于B/S架构的网站,旨在协助组织高效管理其人力资源。这一系统充当了人力资源部门的得力助手,为企业提供了全面的员工信息和业务流程管理功能。

这个系统的背景是,随着企业规模的不断扩大和全球化竞争的加剧,人力资源管理变得日益复杂。传统的纸质档案和手工管理方法已经无法满足快速发展的需求,因此,人事管理系统应运而生。

这个系统的意义在于,它帮助企业实现了员工招聘、培训、绩效评估、薪资管理、福利分配等关键人力资源管理活动的自动化和集成。通过统一的平台,管理者可以轻松访问员工信息、生成各种报表,提高了决策的准确性和效率。

现状下,人事管理系统已经成为大多数企业的标配。它们通过数字化的方式管理人力资源,减少了繁琐的手工操作,提高了工作效率,降低了人力资源管理的风险。此外,这一系统也有助于员工自我服务,提升了员工满意度。

总之,人事管理系统是现代企业管理不可或缺的一部分,它的发展和应用不仅反映了科技的进步,也促进了企业的可持续发展和竞争力的提升。

2.1 功能模块

  • 系统角色:管理员、普通用户、员工
  • 管理员:登录、普通用户管理、员工管理、人事档案管理、部门管理、薪酬管理、人事调动管理、职务管理、培训管理、招聘信息管理、求职简历管理、邀请面试管理、录用信息管理、员工应聘管理、轮播图、公告管理
  • 普通用户:登录、查看招聘信息、投递简历、查看公告
  • 员工:登录、查看薪酬、人事调动、培训、招聘信息、员工应聘

2.2 系统架构

B/S架构
该项目是前后端分离
前端后台是Vue2脚手架
前端前台是Html+Layui+Vue.js

三、系统展示

3.1部分功能图文展示

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

四、部分代码设计

4.1.部分代码如下:

 /**
 * 权限(Token)验证
 */
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {

    public static final String LOGIN_TOKEN_KEY = "Token";

    @Autowired
    private TokenService tokenService;
    
	@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

		//支持跨域请求
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
	// 跨域时会首先发送一个OPTIONS请求,这里我们给OPTIONS请求直接返回正常状态
	if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {
        	response.setStatus(HttpStatus.OK.value());
            return false;
        }
        
        IgnoreAuth annotation;
        if (handler instanceof HandlerMethod) {
            annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
        } else {
            return true;
        }

        //从header中获取token
        String token = request.getHeader(LOGIN_TOKEN_KEY);
        
        /**
         * 不需要验证权限的方法直接放过
         */
        if(annotation!=null) {
        	return true;
        }
        
        TokenEntity tokenEntity = null;
        if(StringUtils.isNotBlank(token)) {
        	tokenEntity = tokenService.getTokenEntity(token);
        }
        
        if(tokenEntity != null) {
        	request.getSession().setAttribute("userId", tokenEntity.getUserid());
        	request.getSession().setAttribute("role", tokenEntity.getRole());
        	request.getSession().setAttribute("tableName", tokenEntity.getTablename());
        	request.getSession().setAttribute("username", tokenEntity.getUsername());
        	return true;
        }
        
		PrintWriter writer = null;
		response.setCharacterEncoding("UTF-8");
		response.setContentType("application/json; charset=utf-8");
		try {
		    writer = response.getWriter();
		    writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
		} finally {
		    if(writer != null){
		        writer.close();
		    }
		}
//				throw new EIException("请先登录", 401);
		return false;
    }
}


点赞收藏关注+厚台了解更多(程序设计/定制/讲解/调试运行)

文章来源:https://blog.csdn.net/2301_79520034/article/details/132776780
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。