Système de gestion du personnel Springboot du projet de remise des diplômes

Langage de développement : Java
Outil de développement Java : JDK1.8
Framework back-end : SpringBoot
Front-end : Vue
Base de données : MySQL5.7 combiné avec l'outil de gestion Navicat Logiciel
de développement : IDEA/Eclipse
Qu'il s'agisse d'un projet Maven : Oui


Préface

Basé sur le système de gestion du personnel Springboot, il existe deux rôles principaux : administrateur et employé :

Administrateur : page d'accueil, centre personnel, gestion des employés, gestion des départements, gestion des présences des employés, gestion des demandes de congés, gestion des demandes d'heures supplémentaires, gestion des salaires des employés, gestion des plans de recrutement, gestion de la formation des employés, gestion de la formation des départements, gestion des détails des employés.

Employés : page d'accueil, centre personnel, présences, demande de congé, demande d'heures supplémentaires, salaire, consulter le plan de recrutement, participer à la formation des employés, participer à la formation du service, consulter les informations sur les employés et d'autres modules fonctionnels.

Module fonction Administrateur

Page de connexion pour les administrateurs et les employés.

L'administrateur se connecte au système via la page d'accueil, le centre personnel, la gestion des employés, la gestion des départements, la gestion des présences des employés, la gestion des demandes de congés, la gestion des demandes d'heures supplémentaires, la gestion des salaires des employés, la gestion des plans de recrutement, la gestion de la formation des employés, la gestion de la formation des départements et la gestion des détails des employés. .

Page de gestion des employés.

Page de gestion du département.

Page de gestion des présences des employés.

Page de demande d'employé pour la gestion des congés.

Page permettant aux employés de demander des heures supplémentaires.

Page de gestion du plan de recrutement.

Page de gestion des formations du département.

Fonctions des employés

Lorsque les employés se connectent au système, il existe des modules fonctionnels tels que la page d'accueil, le centre personnel, la présence, la demande de congé, la demande d'heures supplémentaires, le salaire, l'affichage du plan de recrutement, la participation à la formation des employés, la participation à la formation du service et l'affichage des informations sur les employés.

Page permettant aux employés de demander un congé.


Code principal du module de connexion




    package com.controller;


    import java.util.Arrays;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.annotation.IgnoreAuth;
    import com.baomidou.mybatisplus.mapper.EntityWrapper;
    import com.entity.TokenEntity;
    import com.entity.UserEntity;
    import com.service.TokenService;
    import com.service.UserService;
    import com.utils.CommonUtil;
    import com.utils.MD5Util;
    import com.utils.MPUtil;
    import com.utils.PageUtils;
    import com.utils.R;
    import com.utils.ValidatorUtils;
    
    /**
     * 登录相关
     */
    @RequestMapping("users")
    @RestController
    public class UserController{
    
    
    	
    	@Autowired
    	private UserService userService;
    	
    	@Autowired
    	private TokenService tokenService;
    
    	/**
    	 * 登录
    	 */
    	@IgnoreAuth
    	@PostMapping(value = "/login")
    	public R login(String username, String password, String captcha, HttpServletRequest request) {
    
    
    		UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));
    		if(user==null || !user.getPassword().equals(password)) {
    
    
    			return R.error("账号或密码不正确");
    		}
    		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
    		return R.ok().put("token", token);
    	}
    	
    	/**
    	 * 注册
    	 */
    	@IgnoreAuth
    	@PostMapping(value = "/register")
    	public R register(@RequestBody UserEntity user){
    
    
    //    	ValidatorUtils.validateEntity(user);
        	if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) {
    
    
        		return R.error("用户已存在");
        	}
            userService.insert(user);
            return R.ok();
        }
    
    	/**
    	 * 退出
    	 */
    	@GetMapping(value = "logout")
    	public R logout(HttpServletRequest request) {
    
    
    		request.getSession().invalidate();
    		return R.ok("退出成功");
    	}
    	
    	/**
         * 密码重置
         */
        @IgnoreAuth
    	@RequestMapping(value = "/resetPass")
        public R resetPass(String username, HttpServletRequest request){
    
    
        	UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));
        	if(user==null) {
    
    
        		return R.error("账号不存在");
        	}
        	user.setPassword("123456");
            userService.update(user,null);
            return R.ok("密码已重置为:123456");
        }
    	
    	/**
         * 列表
         */
        @RequestMapping("/page")
        public R page(@RequestParam Map params,UserEntity user){
    
    
            EntityWrapper ew = new EntityWrapper();
        	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
            return R.ok().put("data", page);
        }
    
    	/**
         * 列表
         */
        @RequestMapping("/list")
        public R list( UserEntity user){
    
    
           	EntityWrapper ew = new EntityWrapper();
          	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
            return R.ok().put("data", userService.selectListView(ew));
        }
    
        /**
         * 信息
         */
        @RequestMapping("/info/{id}")
        public R info(@PathVariable("id") String id){
    
    
            UserEntity user = userService.selectById(id);
            return R.ok().put("data", user);
        }
        
        /**
         * 获取用户的session用户信息
         */
        @RequestMapping("/session")
        public R getCurrUser(HttpServletRequest request){
    
    
        	Long id = (Long)request.getSession().getAttribute("userId");
            UserEntity user = userService.selectById(id);
            return R.ok().put("data", user);
        }
    
        /**
         * 保存
         */
        @PostMapping("/save")
        public R save(@RequestBody UserEntity user){
    
    
    //    	ValidatorUtils.validateEntity(user);
        	if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) {
    
    
        		return R.error("用户已存在");
        	}
            userService.insert(user);
            return R.ok();
        }
    
        /**
         * 修改
         */
        @RequestMapping("/update")
        public R update(@RequestBody UserEntity user){
    
    
    //        ValidatorUtils.validateEntity(user);
            userService.updateById(user);//全部更新
            return R.ok();
        }
    
        /**
         * 删除
         */
        @RequestMapping("/delete")
        public R delete(@RequestBody Long[] ids){
    
    
            userService.deleteBatchIds(Arrays.asList(ids));
            return R.ok();
        }
    }


Code principal du téléchargement de fichiers

package com.controller;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;

/**
 * 上传文件映射表
 */
@RestController
@RequestMapping("file")
@SuppressWarnings({
    
    "unchecked","rawtypes"})
public class FileController{
    
    
	@Autowired
    private ConfigService configService;
	/**
	 * 上传文件
	 */
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
    
    
		if (file.isEmpty()) {
    
    
			throw new EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
    
    
		    path = new File("");
		}
		File upload = new File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
    
    
		    upload.mkdirs();
		}
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		FileUtils.copyFile(dest, new File("C:\\Users\\Desktop\\jiadian\\springbootl7own\\src\\main\\resources\\static\\upload"+"/"+fileName));
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
    
    
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper().eq("name", "faceFile"));
			if(configEntity==null) {
    
    
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
    
    
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/**
	 * 下载文件
	 */
	@IgnoreAuth
	@RequestMapping("/download")
	public ResponseEntity download(@RequestParam String fileName) {
    
    
		try {
    
    
			File path = new File(ResourceUtils.getURL("classpath:static").getPath());
			if(!path.exists()) {
    
    
			    path = new File("");
			}
			File upload = new File(path.getAbsolutePath(),"/upload/");
			if(!upload.exists()) {
    
    
			    upload.mkdirs();
			}
			File file = new File(upload.getAbsolutePath()+"/"+fileName);
			if(file.exists()){
    
    
				/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
					getResponse().sendError(403);
				}*/
				HttpHeaders headers = new HttpHeaders();
			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
			    headers.setContentDispositionFormData("attachment", fileName);    
			    return new ResponseEntity(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
    
    
			e.printStackTrace();
		}
		return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}

code encapsulé

package com.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * 返回数据
 */
public class R extends HashMap {
    
    
	private static final long serialVersionUID = 1L;
	
	public R() {
    
    
		put("code", 0);
	}
	
	public static R error() {
    
    
		return error(500, "未知异常,请联系管理员");
	}
	
	public static R error(String msg) {
    
    
		return error(500, msg);
	}
	
	public static R error(int code, String msg) {
    
    
		R r = new R();
		r.put("code", code);
		r.put("msg", msg);
		return r;
	}

	public static R ok(String msg) {
    
    
		R r = new R();
		r.put("msg", msg);
		return r;
	}
	
	public static R ok(Map map) {
    
    
		R r = new R();
		r.putAll(map);
		return r;
	}
	
	public static R ok() {
    
    
		return new R();
	}

	public R put(String key, Object value) {
    
    
		super.put(key, value);
		return this;
	}
}

Acquisition de projet :

https://gitee.com/sinonfin/L-javaWebSha/tree/master

Je suppose que tu aimes

Origine blog.csdn.net/WEB_DC/article/details/133548654
conseillé
Classement