最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot與vue實例講解實現(xiàn)前后端分離的人事管理系統(tǒng)

 更新時間:2022年06月06日 11:04:02   作者:編程指南針  
這篇文章主要介紹了如何用Java實現(xiàn)企業(yè)人事管理系統(tǒng),文中采用springboot+vue實現(xiàn)前后端分離,感興趣的小伙伴可以學習一下

一,項目簡介

系統(tǒng)是前后端分離的項目,直接啟動Springboot應用程序類后,再啟動前端工程訪問即可。主要實現(xiàn)了企業(yè)的人事管理功能,主要包含員工管理、薪資管理、職位管理、權(quán)限管理、網(wǎng)盤文件分享管理等模塊。

系統(tǒng)亮點:使用REDIS進行數(shù)據(jù)緩存,優(yōu)化查詢性能;使用分布式文件系統(tǒng)進行文件存儲服務;基于Springboot+vue實現(xiàn)前后端分離開發(fā)

二,環(huán)境介紹

語言環(huán)境:Java: jdk1.8

數(shù)據(jù)庫:Mysql: mysql5.7

應用服務器:Tomcat: tomcat8.5.31

開發(fā)工具:IDEA或eclipse

開發(fā)技術(shù):Element UI 、Vue、Axios、SpringBoot、MyBatis、MySQL、Redis、FastDFS(或OSS)、Tomcat8.5.31

三,系統(tǒng)展示

下面展示一下系統(tǒng)的基本功能:

用戶登陸:

系統(tǒng)主界面:

員工管理:

高級搜索

員工獎懲管理

添加獎懲

工資套賬(工資標準)管理

員工工資管理

系統(tǒng)管理—部門管理

系統(tǒng)管理--職位管理

系統(tǒng)管理—職稱管理

文件管理:將文件存儲在分布式文件服務Fastdfs或阿里云OSS上,可以在系統(tǒng)中自行配置

以上是本系統(tǒng)的基本功能功能展示,本系統(tǒng)所使用技術(shù)比較先進,功能比較完整,界面美觀大方,適合畢業(yè)設計使用。

四,核心代碼展示

package com.me.controller;
import com.me.pojo.Department;
import com.me.pojo.RespBean;
import com.me.service.DepartmentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class DepartmentController {
    @Autowired
    DepartmentService departmentService;
    @GetMapping("/dep/deps")
    public RespBean getAllDepartments() {
        List<Department> list = departmentService.getAllDepartments();
//        for (Department department : list) {
//            System.out.println(department);
//        }
        return RespBean.ok("AllDepartments", list);
    }
    @PostMapping("/dep/add")
    public RespBean addDep(@RequestBody Department dep) {
        System.out.println(dep);
        departmentService.addDep(dep);
        if (dep.getResult() == 1) {
            return RespBean.ok("添加成功", dep);
        }
        return RespBean.error("添加失敗");
    }
    @DeleteMapping("/dep/{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("刪除失敗");
    }
}
package com.me.controller;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.me.pojo.*;
import com.me.service.DepartmentService;
import com.me.service.EmployeeService;
import com.me.service.JobLevelService;
import com.me.service.PositionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
@RestController
public class EmpController {
    @Autowired
    EmployeeService employeeService;
    @Autowired
    PositionService positionService;
    @GetMapping("/emp/query")
    public RespPageBean getEmployeeByPage(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size, Employee employee,  Date[] beginDateScope) {
//        System.out.println(employee);
        return employeeService.getEmployeeByPage(page, size, employee, beginDateScope);
    }
    @PostMapping("/emp/add")
    public RespBean addEmp(@RequestBody Employee employee) {
//        System.out.println(employee);
        if (employeeService.addEmp(employee) == 1) {
            return RespBean.ok("添加成功!");
        }
        return RespBean.error("添加失敗!");
    }
    @PutMapping("/emp/update")
    public RespBean updateEmp(@RequestBody Employee employee) {
//        System.out.println(employee);
        if (employeeService.updateEmp(employee) == 1) {
            return RespBean.ok("更新成功!");
        }
        return RespBean.error("更新失敗!");
    }
    @DeleteMapping("/emp/delete/{id}")
    public RespBean deleteEmpByEid(@PathVariable Integer id) {
        if (employeeService.deleteEmpByEid(id) == 1) {
            return RespBean.ok("刪除成功!");
        }
        return RespBean.error("刪除失敗!");
    }
    @GetMapping("/emp/getAllPositions")
    public RespBean getAllPositions() {
        return RespBean.ok("positions-",positionService.getAllPositions()) ;
    }
    @GetMapping("/emp/nations")
    public RespBean getAllNations() {
        return RespBean.ok("nations-",employeeService.getAllNations());
    }
    @GetMapping("/emp/politicsstatus")
    public RespBean getAllPoliticsstatus() {
        return RespBean.ok("politicsss-",employeeService.getAllPoliticsstatus()) ;
    }
    @Autowired
    private JobLevelService jobLevelService;
    @GetMapping("/emp/joblevels")
    public RespBean getAllJobLevels() {
        return RespBean.ok("joblevels-",jobLevelService.getAllJobLevels());
    }
    @Autowired
    private DepartmentService departmentService;
    @GetMapping("/emp/deps")
    public RespBean getAllDepartments() {
        List<Department> list = departmentService.getAllDepartments();
//        for (Department department : list) {
//            System.out.println(department);
//        }
        return RespBean.ok("AllDepartments", list);
    }
}
package com.me.controller;
import com.me.pojo.Employee;
import com.me.pojo.Employeeec;
import com.me.pojo.RespBean;
import com.me.pojo.RespPageBean;
import com.me.service.EmployeeecService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class EmployeeecController {
    @Autowired
    EmployeeecService employeeecService;
    @GetMapping("/ec/{keyword}")
    public RespBean selectByNameOrWorkId(@PathVariable String keyword){
        System.out.println(keyword);
        return RespBean.ok("獲取到-",employeeecService.selectByNameOrWorkId(keyword));
    }
    @DeleteMapping("/ec/{id}")
    public RespBean deleteById(@PathVariable int id){
        System.out.println(id);
        if(employeeecService.deleteById(id)==1){
            return RespBean.ok("刪除成功");
        }
        return RespBean.error("失敗");
    }
    @PostMapping("/ec/add")
    public RespBean add(@RequestBody Employeeec employeeec){
        System.out.println(employeeec);
        if(employeeecService.insertEc(employeeec)==1){
            return RespBean.ok("添加成功");
        }
        return RespBean.error("失敗");
    }
    @PutMapping("/ec/update")
    public RespBean put(@RequestBody Employeeec employeeec){
        System.out.println(employeeec);
        if(employeeecService.updateEc(employeeec)==1){
            return RespBean.ok("添加成功");
        }
        return RespBean.error("失敗");
    }
}
package com.me.controller;
import com.me.pojo.RespBean;
import com.me.service.FileService;
import com.me.util.MD5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@RestController
public class FileController {
    @Autowired
    FileService fileService;
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @PostMapping("/file/upload")
    public RespBean updateFile(MultipartFile file,int id) {
        System.out.println(id);
        System.out.println(MD5Util.getMultiFileMd5(file));
        if(fileService.uploadFile(file,id)){
            return RespBean.ok("上傳成功");
        }
        return RespBean.error("圖片過大或者格式不對");
    }
    @DeleteMapping("/file/{id}")
    public RespBean deleteById(@PathVariable int id){
//        System.out.println(id);
        if(fileService.deleteById(id)){
            return RespBean.ok("刪除成功");
        }
        return RespBean.error("刪除失敗");
    }
    @GetMapping("/file/getAll/{id}")
    public RespBean getAll(@PathVariable String id){
        return RespBean.ok("files-",fileService.getAllHrFiles(id));
    }
    @GetMapping("/file/getLoginHrId")
    public RespBean getHrId(HttpServletRequest request){
        String token = request.getHeader("token");
        String s = stringRedisTemplate.opsForValue().get("id"+token);
        return RespBean.ok("獲取到用戶id",s);
    }
}
package com.me.controller;
import com.me.pojo.Hr;
import com.me.pojo.RespBean;
import com.me.service.HrService;
import org.csource.fastdfs.StorageClient1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@RestController
public class HrController {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Autowired
    private HrService hrService;
    @GetMapping("/hr/getLoginUser")
    public RespBean getLoginUser(HttpServletRequest request){
        String token = request.getHeader("token");
        String s = stringRedisTemplate.opsForValue().get(token);
//        System.out.println("getLoginUser"+s);
        Hr hr = hrService.loadUserByUsername(s);
        return RespBean.ok("獲取到用戶",hr);
    }
    @PutMapping("/hr/pass")
    public RespBean updateHrPasswd(@RequestBody Map<String, Object> info,HttpServletRequest request) {
        String oldpass = (String) info.get("oldpass");
        String pass = (String) info.get("pass");
        Integer hrid = (Integer) info.get("hrid");
        System.out.println(hrid+pass);
        if (hrService.updateHrPasswd(oldpass, pass, hrid)) {
            //修改密碼后需要重新登錄
            String token = request.getHeader("token");
            Boolean b = stringRedisTemplate.delete(token);
            return RespBean.ok("更新成功!請重新登錄!");
        }
        return RespBean.error("更新失敗!");
    }
    @PutMapping("/hr/info")
    public RespBean updateHr(@RequestBody Hr hr) {
        if (hrService.updateHr(hr) == 1) {
            return RespBean.ok("更新成功!");
        }
        return RespBean.error("更新失敗!");
    }
    @PostMapping("/hr/userface")
    public RespBean updateHrUserface(MultipartFile file, Integer id) {
        System.out.println("face    "+id);
       if(hrService.updateHrUserface(file,id)){
           return RespBean.ok("更新成功!");
       }
       return RespBean.error("圖片過大或者格式不對");
    }
}

五,項目總結(jié)

項目采用springboot+vue實現(xiàn)前后端分離的項目開發(fā),功能簡潔大方,另外使用了redis緩存數(shù)據(jù)庫和oss分布式文件存儲服務,是項目的一大亮點。

到此這篇關于Springboot與vue實例講解實現(xiàn)前后端分離的人事管理系統(tǒng)的文章就介紹到這了,更多相關Springboot人事管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • IDEA不識別Java文件:文件變橙色&顯示后綴名.java的解決

    IDEA不識別Java文件:文件變橙色&顯示后綴名.java的解決

    這篇文章主要介紹了IDEA不識別Java文件:文件變橙色&顯示后綴名.java的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • springboot整合kaptcha生成驗證碼功能

    springboot整合kaptcha生成驗證碼功能

    這篇文章主要介紹了springboot整合kaptcha生成驗證碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 前端如何傳遞Array、Map類型數(shù)據(jù)到Java后端

    前端如何傳遞Array、Map類型數(shù)據(jù)到Java后端

    這篇文章主要給大家介紹了關于前端如何傳遞Array、Map類型數(shù)據(jù)到Java后端的相關資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • Netty源碼分析NioEventLoop處理IO事件相關邏輯

    Netty源碼分析NioEventLoop處理IO事件相關邏輯

    這篇文章主要介紹了Netty源碼分析NioEventLoop處理IO事件相關邏輯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Java生成Jar包方法步驟

    Java生成Jar包方法步驟

    在Java開發(fā)中,打包成JAR文件是一種常見的方式,本文主要介紹了Java生成Jar包方法步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java設計模式中責任鏈模式詳解

    Java設計模式中責任鏈模式詳解

    責任鏈模式是將鏈中的每一個節(jié)點看做是一個對象,每個節(jié)點處理的請求均不相同,且內(nèi)部自動維護下一個節(jié)點對象,當一個請求從鏈式的首段發(fā)出時,會沿著鏈的路徑依次傳遞給每一個節(jié)點對象。本文將通過示例和大家詳細聊聊責任鏈模式,需要的可以參考一下
    2022-11-11
  • Spring官網(wǎng)下載各版本jar包的方法

    Spring官網(wǎng)下載各版本jar包的方法

    這篇文章主要介紹了Spring官網(wǎng)下載各版本jar包的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • MybatisPlus IService接口功能介紹

    MybatisPlus IService接口功能介紹

    MybatisPlus中的IService接口為開發(fā)者提供了一系列基礎數(shù)據(jù)庫操作方法,如增刪改查等,通過泛型支持不同類型的實體和主鍵,IService的默認實現(xiàn)類為ServiceImpl,它實現(xiàn)了接口中的基本方法,用戶可通過繼承ServiceImpl來擴展自定義的業(yè)務邏輯
    2024-09-09
  • StringBuffer與StringBuilder底層擴容機制與常用方法

    StringBuffer與StringBuilder底層擴容機制與常用方法

    這篇文章主要給大家介紹了StringBuffer、StringBuilder底層擴容機制與常用方法,有感興趣的小伙伴跟著小編一起來學習吧
    2023-07-07
  • 深入理解mybatis的ParamNameResolver

    深入理解mybatis的ParamNameResolver

    ParamNameResolver是 MyBatis 中的一個重要組件,它為 MyBatis 提供了一種方便的方式來獲取方法參數(shù)的名稱,本文主要介紹了深入理解mybatis的ParamNameResolver,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08

最新評論

安阳市| 盐山县| 鸡泽县| 湛江市| 驻马店市| 会昌县| 台东市| 霍邱县| 保靖县| 资中县| 武邑县| 平阴县| 隆子县| 萨嘎县| 彭阳县| 林芝县| 长垣县| 翼城县| 紫金县| 通河县| 深水埗区| 台安县| 富阳市| 舞钢市| 台前县| 濉溪县| 红桥区| 华池县| 昌邑市| 娱乐| 聊城市| 庆城县| 进贤县| 仁怀市| 乡宁县| 万源市| 美姑县| 定远县| 靖安县| 花垣县| 富源县|