SpringBoot+Vue实现前后端分离的企业人事管理系统
创始人
2024-04-05 20:44:59
0

文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue.js 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:Java jdk8

Maven:apache-maven 3.8.1-bin

目录

一、前言介绍 

二、功能需求分析

2.1前台用户功能 

2.2后台管理员功能

三、前台员工功能

3.1前台登录模块

3.2企业资讯模块

3.3培训信息详细模块

3.4个人信息模块 

四、管理员功能模块

4.1员工管理模块

4.2企业资讯管理模块

4.3培训信息管理模块

4.4部门管理模块 

4.5离职信息管理模块 

五、员工功能模块 

5.1考勤信息管理模块 

5.2薪资信息管理模块 

六、部分核心代码 

6.1员工管理的逻辑代码 

6.2考勤信息界面逻辑代码 

6.3合同信息管理界面逻辑代码

6.4薪资信息管理界面关键代码

6.5用户登录的逻辑代码


一、前言介绍 

企业人事管理系统主要功能模块包括员工管理、考勤管理、工资管理、离职管理、培训管理等,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Springboot框架、B/S架构进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对企业人事管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现企业人事管理系统的部署与运行。

二、功能需求分析

企业人事管理系统的功能主要分为前台用户根据自己的需求进行注册登录:培训信息、合同信息、考勤信息、薪资信息、离职信息、奖罚信息查询操作。后台系统管理员主要对注册用户,员工管理,薪资管理,考勤管理,奖惩管理,离职管理等。 

2.1前台用户功能 

注册登录:用户填写个人信息,并验证手机号码进行账户注册,注册成功后方可登录系统。

考勤信息:员工可以在线上查看日常考勤信息。

薪资信息:员工的薪资发放明细。

培训信息:查看培训安排信息等。

企业资讯:可以进行企业资讯浏览。

个人信息:用户可以修改个人信息。

2.2后台管理员功能

修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。

员工管理:对企业员工信息进行维护管理等。

部门管理:对部门信息进行维护,添加、删除、修改信息。

考勤信息管理:对员工考勤数据项进行维护管理。

奖惩信息管理:对员工奖惩信息项进行维护管理。

培训信息管理:对员工培训信息进行维护管理。

企业资讯进行发布。

三、前台员工功能

3.1前台登录模块

3.2企业资讯模块

3.3培训信息详细模块

3.4个人信息模块 

 

四、管理员功能模块

4.1员工管理模块

4.2企业资讯管理模块

4.3培训信息管理模块

4.4部门管理模块 

4.5离职信息管理模块 

五、员工功能模块 

5.1考勤信息管理模块 

5.2薪资信息管理模块 

六、部分核心代码 

6.1员工管理的逻辑代码 

<%String lb=request.getParameter("lb");HashMap ext = new HashMap();  new CommDAO().insert(request,response,"xinwentongzhi",ext,true,false,"xinwentongzhi_add.jsp?lb="+lb);%>

6.2考勤信息界面逻辑代码 

${sql}${sql}

6.3合同信息管理界面逻辑代码

@RequestMapping("/get_list")public Map getList(HttpServletRequest request) {Map map = service.selectToPage(service.readQuery(request), service.readConfig(request));return success(map);}

6.4薪资信息管理界面关键代码

@RequestMapping("/get_obj")public Map obj(HttpServletRequest request) {List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));if (resultList.size() > 0) {JSONObject jsonObject = new JSONObject();jsonObject.put("obj",resultList.get(0));return success(jsonObject);} else {return success(null);}}

6.5用户登录的逻辑代码

 * 登录* @param data* @param httpServletRequest* @return*/@PostMapping("login")public Map login(@RequestBody Map data, HttpServletRequest httpServletRequest) {log.info("[执行登录接口]");String username = data.get("username");String email = data.get("email");String phone = data.get("phone");String password = data.get("password");List resultList = null;QueryWrapper wrapper = new QueryWrapper();Map map = new HashMap<>();if(username != null && "".equals(username) == false){map.put("username", username);resultList = service.selectBaseList(service.select(map, new HashMap<>()));}else if(email != null && "".equals(email) == false){map.put("email", email);resultList = service.selectBaseList(service.select(map, new HashMap<>()));}else if(phone != null && "".equals(phone) == false){map.put("phone", phone);resultList = service.selectBaseList(service.select(map, new HashMap<>()));}else{return error(30000, "账号或密码不能为空");}if (resultList == null || password == null) {return error(30000, "账号或密码不能为空");}//判断是否有这个用户if (resultList.size()<=0){return error(30000,"用户不存在");}User byUsername = (User) resultList.get(0);Map groupMap = new HashMap<>();groupMap.put("name",byUsername.getUserGroup());List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));if (groupList.size()<1){return error(30000,"用户组不存在");}UserGroup userGroup = (UserGroup) groupList.get(0);//查询用户审核状态if (!StringUtils.isEmpty(userGroup.getSourceTable())){String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());if (res==null){return error(30000,"用户不存在");}if (!res.equals("已通过")){return error(30000,"该用户审核未通过");}}//查询用户状态if (byUsername.getState()!=1){return error(30000,"用户非可用状态,不能登录");}String md5password = service.encryption(password);if (byUsername.getPassword().equals(md5password)) {// 存储Token到数据库AccessToken accessToken = new AccessToken();accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));accessToken.setUser_id(byUsername.getUserId());tokenService.save(accessToken);// 返回用户信息JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));user.put("token", accessToken.getToken());JSONObject ret = new JSONObject();ret.put("obj",user);return success(ret);} else {return error(30000, "账号或密码不正确");}}public String select(Map query,Map config){StringBuffer sql = new StringBuffer("select ");sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");}if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");}if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);}log.info("[{}] - 查询操作,sql: {}",table,sql);return sql.toString();}public List selectBaseList(String select) {List> mapList = baseMapper.selectBaseList(select);List list = new ArrayList<>();for (Map map:mapList) {list.add(JSON.parseObject(JSON.toJSONString(map),eClass));}return list;}

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...