(免费分享)springboot人事管理系统

news2024/11/17 4:30:20

基础环境:

1. JDK:1.8

2. MySQL:5.7

3. Maven3.0

1. 核心框架:Spring Boot 2.2.13.RELEASE

2. ORM框架:MyBatisPlus 3.1.2

3. 数据库连接池:Druid 1.2.8

4. 安全框架:Apache Shiro 1.8.0

5. 日志:SLF4J ,Log4j

6. 前端框架:VUE2.2.6,LayUI,Ztree,jQuery,Bootstrap

# 人事管理系统

## 一、系统介绍

本系统为人事管理系统,系统分为七大模块:绩效考核,招聘管理,档案管理,工资管理,考勤管理,培训管理,系统管理。

可满足小企业日常办公。本系统最大特色是有强大和灵活的权限控制功能,所有菜单,按钮功能均可由管理通过配置来控制。

系统默认有四个角色:管理员,财务专员,人事专员,普通用户

- 管理员(admin/admin):可以操作所有功能

- 财务专员(cw/cw):可查看工资管理,考勤管理,培训管理等内容

- 人事专员(rs/rs):可查看和管理招聘管理,档案管理,培训管理等内容

- 普通用户(wdc/wdc):只可查看工资,打卡考勤,参加培训等

所有功能介绍

### 1.绩效考核

绩效考核目前只做了简单的考核设置,后期可扩展更多功能与工资和培训挂钩。后期会从以下几个方面扩展:

1. 季度考核不达标需要参加培训;

2. 考核不达标影响绩效;

3. 在公司做培训增加绩效;

### 2.招聘管理

招聘管理子模块:招聘需求和面试计划。招聘需求是为各个部门需要人才时到招聘需求申请,申请成功后,由人事部门和招聘部门协商面试时间添加面试计划,并跟踪面试结果。

#### (1)招聘需求

可由人事部门或有招聘需求部门填写招聘需求。

#### (2)面试计划

人事专员看到各个部门的招聘需求后,联系候选人并和用人部门协商面试时间,并将面试计划提交,等面试结束再将面试结果同步到系统。招聘结束后结束流程。

### 3.档案管理

档案管理子模块:员工档案和合同管理。

#### (1)员工档案

员工档案是“系统管理-账号管理”的延伸,即“系统管理-账号管理”是系统的登录账号信息,而员工档案是对账号信息的补充。必须由管理员先创建好账户,才能添加员工档案

#### (2)合同档案

公司商业合同管理

### 4.工资管理

工资管理目前有工资查询子模块。普通用户可查看自己工资记录,财务专员可增加员工工资记录。

### 5.考勤管理

考勤管理目前有出勤记录子模块。普通用户可每日打卡,查看出勤记录,后期可扩展与工资计算挂钩。

### 6.培训管理

培训管理子模块:个人计划,工作日报,转正申请和工作日报。

#### (1)个人计划

员工可写当日工作计划

#### (2)工作日报

员工可写当日工作日报

#### (3)转正申请

员工到了转正日期可申请转正由其领导进行审批。后期可与工资和绩效挂钩进行扩展,扩展内容如下:

1. 转正前工资按合同80%计算,转正后100%;

2. 转正后绩效不达标则绩效奖金按百分比算

#### (4)培训计划

可添加新员工培训计划,新技能培训计划,新业务培训计划,后期可扩展会议室管理功能

### 7.系统管理

系统管理子模块:员工管理,部门管理,角色管理,菜单管理和字典管理。

#### (1)账号管理

可为新员工增加系统登录账号,为离职员工删除账号。后期可扩展员工忘记密码后,重置密码功能,通常只有人事专员和管理员可用

#### (2)部门管理

可增加新部门或新成立子公司,通常只有管理员和高级管理领导可用

#### (3)角色管理

可新增角色,并为角色赋予相应权限,如招聘专员只能操作系统管理模块以外的其他模块功能,从财务专员只能进行工资记录添加等,通常只有管理员和高级管理领导可用

#### (4)菜单管理

管理系统左侧的菜单树,只有管理员可用

#### (5)字典管理

管理系统常用字典值,只有管理员可用

免费领取下载链接-关注底部gongzhonghao:032
/**
 * 
 *
 * 
 *
 * 
 */

package com.person.modules.person.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.person.common.annotation.SysLog;
import com.person.common.utils.DateUtils;
import com.person.common.utils.PageUtils;
import com.person.common.utils.R;
import com.person.common.validator.ValidatorUtils;
import com.person.modules.person.entity.SalaryRecordEntity;
import com.person.modules.person.entity.UserDocEntity;
import com.person.modules.person.service.UserDocService;
import com.person.modules.sys.controller.AbstractController;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * 员工档案
 *
 * @author 
 */
@RestController
@RequestMapping("/person/doc")
public class UserDocController  extends AbstractController {
    @Autowired
    private UserDocService userDocService;

    /**
     * 所有员工档案列表
     */
    @RequestMapping("/list")
    @RequiresPermissions("person:doc:list")
    public R list(@RequestParam Map<String, Object> params){
        PageUtils page = userDocService.queryPage(params);

        return R.ok().put("page", page);
    }


    /**
     * 员工档案信息
     */
    @RequestMapping("/info/{id}")
    @RequiresPermissions("person:doc:info")
    @ResponseBody
    public R info(@PathVariable("id") Long id){
        UserDocEntity doc = userDocService.getById(id);

        return R.ok().put("doc", doc);
    }

    /**
     * 保存员工档案
     */
    @SysLog("保存员工档案")
    @RequestMapping("/save")
    @RequiresPermissions("person:doc:save")
    public R save(@RequestBody UserDocEntity doc){
        ValidatorUtils.validateEntity(doc);
        doc.setCreateTime(DateUtils.currentTimeFormat() );
        //查询是否已存在
        UserDocEntity d = new UserDocEntity();
        d.setUserId(doc.getUserId());
        QueryWrapper q = new QueryWrapper();
        q.setEntity(d);
        UserDocEntity one = userDocService.getOne(q);
        if (null != one) {
            return R.error( "该员工已有档案,请勿重复添加");
        }
        doc.setUserNo(StringUtils.leftPad(doc.getUserId().toString(),4,"0"));
        userDocService.save(doc);
        return R.ok();
    }

    /**
     * 修改员工档案
     */
    @SysLog("修改员工档案")
    @RequestMapping("/update")
    @RequiresPermissions("person:doc:update")
    public R update(@RequestBody UserDocEntity doc){
        ValidatorUtils.validateEntity(doc);
        userDocService.update(doc);
        return R.ok();
    }

    /**
     * 删除员工档案
     */
    @SysLog("删除员工档案")
    @RequestMapping("/delete")
    @RequiresPermissions("person:doc:delete")
    public R delete(@RequestBody Long[] ids){
        userDocService.deleteBatch(ids);
        return R.ok();
    }

}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最近邻插值法

文章目录前言一、最近邻插值法二、代码实现总结本章节进入图像处理&#xff0c;利用python语言来实现各种图像处理的方法&#xff0c;从软件角度去理解图像处理方法&#xff0c;为后期的FPGA处理图像做准备。 前言 一、最近邻插值法 最近邻插值就是在目标像素点上插入离对应原…

界面控件DevExpress WinForm中文教程 - 如何应用Windows 11 UI?

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

全网最详细的org.springframework.jdbc.UncategorizedSQLException的多种解决方法

文章目录1. 引出问题2. 分析问题3. 解决问题4. 解决该问题的其他方法4.1 方法14.2 方法24.3 方法34.4 方法4如果你遇到的问题不是我所遇到的问题&#xff0c;可以使用最下面的方法解决你遇到的这个错误。 1. 引出问题 今天在写“Mybatis-Plus中分页插件PaginationInterceptor…

利用Python读取外部数据文件

名字&#xff1a;阿玥的小东东 学习&#xff1a;python、c 主页&#xff1a;阿玥的小东东 目录 一、读取文本文件的数据 二、读取电子表格文件 三、读取统计软件生成的数据文件 不论是数据分析&#xff0c;数据可视化&#xff0c;还是数据挖掘&#xff0c;一切的一切全都是以…

java常用类: Arrays类的常用方法

java常用类型: Ineteger等包装类 String类&#xff0c;StringBuffer类和StringBuilder类 Math类及常用方法 System类及常用方法 Arrays类及常用方法 BigInteger类和BigDecimal类及常用方法 日期类Date类,Calender类和LocalDateTime类 文章目录ArraysArrays常用方法Arrays.sort(…

全排列问题的解题思路

假设有这么个正整数n&#xff0c;要求输出1到n的所有排列&#xff1f;   输入&#xff1a;3 输出&#xff1a;123&#xff0c;132&#xff0c;213&#xff0c;231&#xff0c;312&#xff0c;321 一、无脑循环求解&#xff1f; 拿到这个问题&#xff0c;当然我的第一个想法就…

上下文驱动的图上文案生成

✍&#x1f3fb; 本文作者&#xff1a;持信、弈臻、悟放、积流、孟诸1. 摘要为商品图片上特定位置配上装饰性文案来突出重点在广告业务中有着十分广泛的应用前景。然而&#xff0c;现有的图片文案描述生成系统均生成与图片位置关系无关的文案&#xff0c;无法很好地应用到广告业…

66. Python 类的总结

66. 类的总结 文章目录66. 类的总结1. 类2. 对象3. 类的语法4. 属性5. 方法6. 创建对象7. 调用属性8. 调用方法9. 方法的值的传递第1情况&#xff1a;没有值第2种情况&#xff1a;有值10. __init__方法1. __init__写法2. __init__作用3. 重点关注11. 自定义函数和方法的异同1. …

Unity渲染管线(Render Pipeline)笔记

Rendering是什么 渲染Rendering可以理解为将拿到的3D数据生成一副2D图像的过程。 这些3D数据包含&#xff1a;3D模型本身的点的信息&#xff0c;三角形面的描述信息&#xff0c;模型应用的材质以及摆放的虚拟相机的信息等。Rendering过程会使用全部的数据&#xff08;物体的几何…

摄像头录像大师推荐?如何录制摄像头,图文教程

现如今&#xff0c;很多笔记本电脑上都会携带摄像头&#xff0c;用来录制摄像头画面&#xff0c;方便小伙伴的时候。可很多小伙伴却表示&#xff0c;自己不知道电脑摄像头画面该如何录制。有什么有什么好用的摄像头录制大师&#xff1f;如何录制摄像头画面&#xff1f;本篇文章…

【10w字】超详细【百分百拿offer】的面试教程,接口测试篇

1.请问你是如何做接口测试的&#xff1f; 大体来说&#xff0c;经历以下过程&#xff1a;接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。 具体来说&#xff0c;接口测试流程分成以下九步&#xff1a; 第一步&…

RabbitMq之发布确认(高级)

一.发送消息到交换机失败 正常情况下生产者只发布消息到交换机&#xff0c;无法确定是否成功把消息发送到交换机当中&#xff0c;由此发布确认的回调函数可以通知生产者消息是否发送到了交换机。 代码如下 1.先创建交换机、队列等信息 package jot.jothot.testMq;import or…

OS 学习笔记(6) 操作系统引导

OS 学习笔记(6) 操作系统引导 这篇笔记对应的王道OS 1.5 操作系统引导&#xff0c;同时参考了 《Operating System Concepts, Ninth Edition》和 俗称ostep的《 Operating Systems: Three Easy Pieces》还有 《Operating Systems: Principles and Practice》 文章目录OS 学习笔…

实战还原--从大黄蜂样本到域控管理员技术解析

0 前言实战案例还原《BumbleBee Roasts Its Way To Domain Admin》一文详细的描述了一次渗透案例&#xff0c;但其文章组织架构建立在ATT&CK框架上&#xff0c;而不是按照时间线逻辑来组织&#xff0c;因此对于渗透人员了解学习其前后过程有些困难&#xff0c;特此梳理一番…

发布微信小程序获取收集用户信息权限

前言在发布微信小程序的时候我们经常会遇到审核不通过的情况&#xff0c;其中一种特别让我头疼就是说小程序收集、使用和储存用户信息。不给予通过。但是他们的接口又不能提供这个功能&#xff0c;并且老是改动&#xff0c;真的特别的麻烦加无语。有时候审核偷一下懒&#xff0…

算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)

文章目录回文数找出小于平均值的数旋转图像回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的…

光电耦合器和MOSFET之间的差异

光电耦合器和MOSFET之间的差异 介绍 光电耦合器/光耦合器和固态继电器&#xff08;光电MOSFET或光耦MOSFET&#xff08;OCMOS FET&#xff09;&#xff09;在保持电隔离的同时传输信号&#xff0c;但存在一些重要差异。 结构差异 下图显示了光电耦合器和OCMOS FET的主要内部…

Vue实战第2章:简单的分配页面布局

缓冲 前言 本篇在讲什么 本篇作为Vue实战的第二章&#xff0c;跟代码逻辑无关&#xff0c;主要是简单的先设计一下个人网站的各个模块内容&#xff0c;明确一下我们想要将网站做出什么样子 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上…

趣味三角——第6章——两个几何定理

第6章 两个几何定理 It is the glory of geometry that from so few principles, fetched from without, it is able to accomplish so much. (几何学的荣耀在于&#xff0c;仅从几个原理出发&#xff0c;外求于无物&#xff0c;但却能够完成如此非凡的壮举。) ——Isaac N…

linux基本功系列-top命令实战

文章目录一. top命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示进程信息3.2 显示完整的进程命令3.3 以批处理的形式展示3.4 设置信息更新频次3.5 显示指定进程号的信息3.6 top面板中常用参数3.7 其他用法四. top的相关说明4.1 交互命令介绍4.2 top面板每行信息的含义4.2.…