Java项目:springboot企业人事系统

作者主页:Java毕设网

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

一、相关文档

        人事管理在政府机关和企事业单位中占有极其重要的地位,各部门岗位之间协作和工效的提高,是人事管理的基本要求.本设计旨在实现微型人事管理信息系统,功能主要由人事在线通信、员工资料、人事信息管理、薪资调整分配、统计分析管理和系统设置管理系统构成.系统实现了员工信息编辑、人事信息入库展示分析、工资套帐处理及系统的设置、点对点在线讯息等功能.本设计在技术方面采用了较前沿的技术,应用端基于java EE体系中开源应用框架Spring Boot(集成IOC, MVC, ORM),Spring Security (安全框架),内嵌Tomcat服务器;前端基于javaScript的渐进式框架Vue.js;页面设计基于Element UI库;路由处理基于 vue-router.数据库端使用MySQL数据库;系统架构基于当前主流的MVVM(Model-View-View Model)模式,前后端分离的SPA(single page web application),即单页富应用程序

        访问控制基于RBAC0模型.由于之相对应的数据实体构成.由用户表,角色映射表,角色表,权限表,权限映射表构成.用户登录之后首先进行身份验证,成功之后获取当前用户的所有角色,之后根据角色加载对应的权限菜单, 前端为了良好的用户体验,这里默认不加载没有权限的菜单.当存在直接输入URL路径的情况时,对于登录用户的每一个请求,都会通过鉴权处理,分析角色.最后通过权限的判断分析是否可以访问菜单资源.

      

二、项目介绍

      人事管理系统功能包括人事通讯,员工信息,人事考评,奖惩,培训管理,薪资管理,统计分析,和系统管理六大模块,对应人事工作基本流程:新员工入职档案建立,调动,辞职,员工信息的查询及工资管理等方面.系统管理可以根据不同的角色分配菜单权限设置,不同的用户授予不同角色,对人事结构,单位结构进行整体调配设置.在线聊天可以实现操作员之间讯息的及时通讯.
项目基于MVVM的前后端分离开发模式进行开发.MVVM即模型(Model)-视图(View)-视图模型(View Model),实现了数据视图的双向绑定.相对于MVC模式和MVP来说,MVVM是一个比较新的开发架构,它是一种将MVP模式与WPF相结合应用方式发展演变而成的新型开发架[1] .
前后端分离是指将前端和后端从之前的全部由后端负责中分离开来,不再共用一个Server,前端作为一个独立Serve存在[2].前后端通过接口使用HTTP协议交互,本项目使用vu实体属性outer做前端路由处理.页面跳转不在由后端处理,前后端只是数据的交互.前后端分离的好处在于降低了前后端的耦合性.当面对不同的硬件场景时,需要构建不同的界面,前后端分离之后,只需要扩展前端项目即可,不需要修改后端服务.
        在动态权限处理方面,使用安全框架Spring Security,基于RBAC(Role-Based Access Control )角色的访问控制模型,由该模型主要由鉴权和授权构成,鉴权基于Servlet中Filter原理处理,授权由系统管理员操作.RBAC 的主要思想是:权限是和角色相关的,而用户则被分配相应的角色作为其成员,这样就大大简化了权限的管理。

三、环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
5.数据库:MySql 5.7、8.0等版本;

四、技术栈

1. 后端:Spring Boot,Spring Security, MyBatis+Redis+RabbitMQ
2. 前端:Vue, ElementUI, axios,Web Socket

五、使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置;
3. 使用IDEA/Eclipse/MyEclipse导入后端项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
注:前端页面已经编译后打包到项目中,通常只执行后端代码即可;
4. 运行项目,输入http://localhost:8083/index.html 登录

六、运行截图

​​​

七、相关代码

奖惩处理管理控制器

package com.liruilong.hros.controller.personnel;

import com.liruilong.hros.model.*;
import com.liruilong.hros.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.List;

/**
 * @Description : 奖惩处理
 * @Author: Liruilong
 * @Date: 2020/1/8 20:25
 */
@RestController
@RequestMapping("/personnel/ec")
public class EmployeeecController {

    @Autowired
    EmployeeecService employeeecService;

    @Autowired
    JobLevelService jobLevelService;
    @Autowired
    PositionService positionService;

    @Autowired
    EmployeeService employeeService;

    @Autowired
    RwardsPunishmentsSevice rwardsPunishmentsSevice;



    @GetMapping("/")
    public RespBean addEmployeeec(Employeeec employeeec, Integer[] ids){

        if (employeeecService.addEmployeeec(employeeec, ids) == ids.length){
            return RespBean.ok("添加成功");
        }else {
            return RespBean.error("添加失败");
        }

    }
    @GetMapping("/init")
    public RespPageBean getEmploteeByPge(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size,Employee employee, Date[] beginDateScope) {
        return employeeService.getEmploteeByPge(page, size, employee, beginDateScope);

    }
    @GetMapping("/rp")
    public List<RwardsPunishments> getAllRwardsPunishments() {
        return rwardsPunishmentsSevice.getAllRwardsPunishments();
    }
    @GetMapping("/ec")
    public RespPageBean getEmploteecByPge(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "100") Integer size, Employee employee, Date[] beginDateScope) {
        return employeeService.getEmploteecByPge(page, size, employee, beginDateScope);
    }
    @DeleteMapping("/{eid}/{id}")
    public RespBean deleteEmpByEidc(@PathVariable Integer eid, @PathVariable Integer id) {
        if (employeeecService.deleteEmpByEidc(eid,id) == 1) {
            return RespBean.ok("删除成功!");
        }
        return RespBean.error("删除失败!");
    }
    @GetMapping("/joblevels")
    public List<JobLevel> getAllJobLevels() {
        return jobLevelService.getAllJobLevels();
    }

    @GetMapping("/positions")
    public List<Position> getAllPositions() {
        return positionService.getAllPositions();
    }



}

部门管理控制器

package com.liruilong.hros.controller.system.basic;


import com.liruilong.hros.model.Department;
import com.liruilong.hros.model.RespBean;
import com.liruilong.hros.service.DepartmentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Author Liruilong
 * @Description
 * @Date 23:31 2019/12/28
 * @Param
 * @return
 **/

@RestController
@RequestMapping("/system/basic/department")
public class DepartmentController {
    @Autowired
    DepartmentService departmentService;
    @GetMapping("/")
    public List<Department> getAllDepartments() {
        return departmentService.getAllDepartments();
    }
    @PostMapping("/")
    public RespBean addDep(@RequestBody Department dep) {
        departmentService.addDep(dep);
        if (dep.getResult() == 1) {
            return RespBean.ok("添加成功", dep);
        }
        return RespBean.error("添加失败");
    }

    @DeleteMapping("/{id}")
    public RespBean deleteDepById(@PathVariable Integer id) {
        Department dep = new Department();
        dep.setId(id);
        departmentService.deleteDepById(dep);
        if (dep.getResult() == -2) {
            return RespBean.error("该部门下有子部门,删除失败");
        } else if (dep.getResult() == -1) {
            return RespBean.error("该部门下有员工,删除失败");
        } else if (dep.getResult() == 1) {
            return RespBean.ok("删除成功");
        }
        return RespBean.error("删除失败");
    }
}

八、如果也想学习本系统,下面领取。关注并回复:057springboot

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值