基于SSM的中小企业人力资源管理系统设计与实现

这篇具有很好参考价值的文章主要介绍了基于SSM的中小企业人力资源管理系统设计与实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

末尾获取源码
开发语言:Java
Java开发工具:JDK1.8
后端框架:SSM
前端:采用JSP技术开发
数据库:MySQL5.7和Navicat管理工具结合
服务器:Tomcat8.5
开发软件:IDEA / Eclipse
是否Maven项目:是


目录

一、项目简介

二、数据库表结构设计

离职退休费用信息表

出勤表

 培训表

 奖惩记录表

绩效表 

薪资表 

三、系统项目截图

学生信息管理

考勤管理

奖惩管理

工资管理

四、核心代码

4.1登录相关

4.2文件上传

4.3封装


一、项目简介

现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本中小企业人力资源管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此中小企业人力资源管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了员工基础数据的管理,考勤记录,奖惩记录,绩效,工资,培训管理,岗位管理工种管理等功能。中小企业人力资源管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。


二、数据库表结构设计

数据库系统一旦选定之后,需要根据程序要求在数据库中建立数据库文件,并在已经完成创建的数据库文件里面,为程序运行中产生的数据建立对应的数据表格,数据表结构设计就是对创建的数据表格进行字段设计,字段长度设计,字段类型设计等,当数据表格合理设计完成之后,才能正常存储相关程序运行产生的数据信息。

离职退休费用信息表

序号

列名

数据类型

说明

允许空

1

id

int(11)

主键

2

yonghu_id

int(11)

用户

3

money

decimal(10,4)

费用金额 

4

create_time

timestamp

创建时间

出勤表

序号

列名

数据类型

说明

允许空

1

id

int(11)

主键

2

yonghu_id

int(11)

用户

3

today

varchar(200)

打卡日期

4

on_time

timestamp

上班打卡时间

5

down_time

timestamp

下班打卡时间

6

chuqin_types

int(11)

打卡类型 

7

overtimeNumber

int(11)

加班时间(小时)

8

create_time

timestamp

创建时间

 培训表

序号

列名

数据类型

说明

允许空

1

id

int(11)

主键

2

yonghu_id

int(11)

用户

3

on_time

timestamp

培训开始时间 

4

down_time

timestamp

培训结束时间 

5

day_number

int(11)

培训天数 

6

cultivate_content

varchar(200)

培训内容

7

create_time

timestamp

创建时间

 奖惩记录表

序号

列名

数据类型

说明

允许空

1

id

int(11)

主键

2

yonghu_id

int(11)

用户

3

jiangcheng_types

int(11)

奖惩类型

4

jiangcheng_content

varchar(200)

详细内容

5

create_time

timestamp

创建时间

绩效表 

序号

列名

数据类型

说明

允许空

1

id

int(11)

主键

2

yonghu_id

int(11)

用户

3

month

varchar(200)

月份 

4

jixiao_types

int(11)

绩效类型 

5

jixiao_content

varchar(200)

绩效内容

6

create_time

timestamp

创建时间

薪资表 

序号

列名

数据类型

说明

允许空

1

id

int(11)

主键

2

yonghu_id

int(11)

用户

3

month

varchar(200)

月份 

4

xinzi_money

decimal(10,4)

薪资

5

butie_money

decimal(10,4)

补贴金额

6

sum_money

decimal(10,4)

总金额 

7

create_time

timestamp

创建时间


三、系统项目截图

学生信息管理

学生信息管理页面,此页面提供给管理员的功能有:添加学生,修改学生,删除学生。

基于SSM的中小企业人力资源管理系统设计与实现,spring,java,后端,开发语言,tomcat,eclipse,maven

考勤管理

考勤管理页面,此页面提供给管理员的功能有:查看考勤,删除考勤。

 基于SSM的中小企业人力资源管理系统设计与实现,spring,java,后端,开发语言,tomcat,eclipse,maven

奖惩管理

奖惩管理页面,此页面提供给管理员的功能有:添加奖惩,删除奖惩,修改奖惩信息。

 基于SSM的中小企业人力资源管理系统设计与实现,spring,java,后端,开发语言,tomcat,eclipse,maven

工资管理

工资管理页面,此页面提供给管理员的功能有:添加工资条,删除工资条,修改工资条。

 基于SSM的中小企业人力资源管理系统设计与实现,spring,java,后端,开发语言,tomcat,eclipse,maven文章来源地址https://www.toymoban.com/news/detail-707071.html


四、核心代码

4.1登录相关


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<UserEntity>().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<UserEntity>().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<UserEntity>().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<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	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<UserEntity> ew = new EntityWrapper<UserEntity>();
      	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<UserEntity>().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();
    }
}

4.2文件上传

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<ConfigEntity>().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<byte[]> 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<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}

4.3封装

package com.utils;

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

/**
 * 返回数据
 */
public class R extends HashMap<String, Object> {
	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<String, Object> 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;
	}
}

到了这里,关于基于SSM的中小企业人力资源管理系统设计与实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于java的人力资源管理系统设计与实现

    基于java的人力资源管理系统设计与实现 研究背景: 随着企业规模的不断扩大和业务复杂性的增加,人力资源管理在企业中的地位越来越重要。传统的手工人力资源管理方式已经无法满足企业的需求,存在着数据更新不及时、信息不一致、流程操作繁琐等问题。而基于人力资

    2024年02月04日
    浏览(56)
  • 090基于web+springboot的中小企业设备管理系统

    欢迎大家关注,一起好好学习,天天向上   本中小企业设备管理系统管理员有个人中心,用户管理,员工管理,设备信息管理,配件信息管理,设备购买管理,配件购买管理,设备点检管理,设备润滑管理,设备改造管理,事务报警管理,设备类型管理。员工有个人中心,

    2024年02月05日
    浏览(54)
  • 基于Java的项目人力资源管理系统【附:源码课件】

    项目背景 近年来,随着国内市场需求不断扩大,企业之间的竞争也在逐渐加剧。为了实现长期盈利,以及占领更多市场份额的目标,许多企业开始将重心放在对内部的管理上,加强对人力资源的管理是很多企业关注的重点。本文利用主流的Java技术,实现了企业人力资源管理

    2024年02月09日
    浏览(45)
  • 基于Java+SpringBoot+Vue的中小企业财务管理系统设计与实现

      博主介绍 : ✌ 擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 Java项目精品实战案例(300套) Java微信小程序项目实战(200套) Python项目精品实战案例(100套)

    2024年02月16日
    浏览(51)
  • 基于SSL VPN技术的中小企业网络接入设计与实现(完整文档+思科拓扑图)

    大家好,我是小华学长,一名计算机领域的博主。经过多年的学习和实践,我积累了丰富的计算机知识和经验,在这里我想与大家分享我的学习心得和技巧,帮助你成为更好的程序员。 作为一名计算机博主,我一直专注于编程、算法、软件开发等领域,在这些方面积累了大量

    2024年02月04日
    浏览(46)
  • 基于微信小程序的中小型企业员工电子档案借阅管理系统

    考虑到实际生活中在中小型企业电子档案管理方面的需要以及对该系统认真的分析,将小程序权限按管理员和用户这两类涉及用户划分。 (a) 管理员;管理员使用本系统涉到的功能主要有首页、个人中心、员工管理、档案员管理、档案管理员管理、部门信息管理、公告信息管理

    2024年02月03日
    浏览(62)
  • 【毕业设计之java系列】基于 WEB 的人力资源管理系统的设计与实现

            这篇文章的重点是探究人力资源管理领域的挑战,并给出一些可行的建议。经过深入研究,我们发现,目前的人力资源管理系统面临着许多挑战。为此,我们建议开发一个基于 WEB 的系统,它可以帮助企业更好地管理员工的个人资料,同时也可以支持企业内部的管

    2024年02月04日
    浏览(48)
  • 基于静态NAT的中小企业服务器网络端口映射与实现(完整文档+思科拓扑图)

    大家好,我是小华学长,一名计算机领域的博主。经过多年的学习和实践,我积累了丰富的计算机知识和经验,在这里我想与大家分享我的学习心得和技巧,帮助你成为更好的程序员。 作为一名计算机博主,我一直专注于编程、算法、软件开发等领域,在这些方面积累了大量

    2024年02月04日
    浏览(51)
  • 人工智能与人力资源:未来人力资源管理的变革

    随着人工智能(AI)技术的不断发展和进步,人力资源(HR)管理领域也面临着巨大的变革。人工智能技术在人力资源管理中的应用不仅可以提高工作效率,还可以帮助人力资源专业人士更好地理解员工的需求,提高员工满意度,提高企业竞争力。在这篇文章中,我们将探讨人工智

    2024年02月20日
    浏览(57)
  • 人力资源三支柱是什么?人力资源管理如何运用HR三支柱模型

           随着人力资源管理变革的加速,目前人力资源管理的模式已经升级到了战略性管理阶段。其工作核心聚焦在企业组织变革和战略部署两个方面。人力资源管理的意义在于能够为企业创造多大价值,为客户、投资人和员工等利益相关者提供多大价值?因此,人力资源的

    2024年02月07日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包