基于SpringBoot的人事管理系统的设计与实现

该文章描述了一个旨在优化人事管理工作的人事管理系统,系统分为管理员和员工两个权限级别,涵盖员工管理、考勤、请假申请等多种功能。通过ER图进行了数据库设计,并展示了部分Java代码实现,如员工考勤和请假申请的CRUD操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

人事管理管理方面的任务繁琐,以至于公司每年都在人事管理这方面投入较多的精力却效果甚微,人事管理系统的目标就是为了能够缓解人事管理工作方面面临的压力,让人事管理方面的工作变得更加高效准确。

系统架构

考虑到实际生活中在人事管理方面的需要以及对该系统认真的分析,将系统权限按管理员和员工这两类涉及用户划分。
(a)管理员;管理员使用本系统涉到的功能主要有:首页,个人中心,员工管理,部门管理,员工考勤管理,请假申请管理,加班申请管理,员工工资管理,招聘计划管理,员工培训管理,部门培训管理,员工详细管理等功能。管理员用例图如图:

在这里插入图片描述
(b)员工;员工使用本系统涉到的功能主要有:首页,个人中心,员工考勤管理,请假申请管理,加班申请管理,员工工资管理,招聘计划管理,员工培训管理,部门培训管理,员工详细管理等功能。员工用例图如图:

在这里插入图片描述
系统整体功能如下图所示:

在这里插入图片描述

数据库设计

概念模型ER图设计

概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。

员工管理实体图如图:

在这里插入图片描述
部门管理实体图如图:

在这里插入图片描述
员工考勤实体图如图:

在这里插入图片描述

数据库设计

根据ER图得到的物理模型设计如下。由于涉及到的数据表较多,此处只展示部分的数据表。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统详细设计

管理员模块

管理员登录系统后,可以对首页,个人中心,员工管理,部门管理,员工考勤管理,请假申请管理,加班申请管理,员工工资管理,招聘计划管理,员工培训管理,部门培训管理,员工详细管理等进行相应的操作管理,如图:
在这里插入图片描述

请假申请管理,在请假申请管理页面可以对索引,员工工号,员工姓名,部门,职位,请假类型,请假时间,请假天数,审核回复,审核状态,审核等内容进行详情,修改和删除等操作,如图:

在这里插入图片描述

员工功能模块

员工登录进入人事管理系统可以对首页,个人中心,员工考勤管理,请假申请管理,加班申请管理,员工工资管理,招聘计划管理,员工培训管理,部门培训管理,员工详细管理等进行相应操作,如图:

在这里插入图片描述

代码实现

由于涉及的代码较多,此处只展示部分的代码实现。

员工考勤

@RestController
@RequestMapping("/yuangongkaoqin")
public class YuangongkaoqinController {
    @Autowired
    private YuangongkaoqinService yuangongkaoqinService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,YuangongkaoqinEntity yuangongkaoqin,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yuangong")) {
			yuangongkaoqin.setYuangonggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<YuangongkaoqinEntity> ew = new EntityWrapper<YuangongkaoqinEntity>();
		PageUtils page = yuangongkaoqinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangongkaoqin), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,YuangongkaoqinEntity yuangongkaoqin, 
		HttpServletRequest request){
        EntityWrapper<YuangongkaoqinEntity> ew = new EntityWrapper<YuangongkaoqinEntity>();
		PageUtils page = yuangongkaoqinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangongkaoqin), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( YuangongkaoqinEntity yuangongkaoqin){
       	EntityWrapper<YuangongkaoqinEntity> ew = new EntityWrapper<YuangongkaoqinEntity>();
      	ew.allEq(MPUtil.allEQMapPre( yuangongkaoqin, "yuangongkaoqin")); 
        return R.ok().put("data", yuangongkaoqinService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(YuangongkaoqinEntity yuangongkaoqin){
        EntityWrapper< YuangongkaoqinEntity> ew = new EntityWrapper< YuangongkaoqinEntity>();
 		ew.allEq(MPUtil.allEQMapPre( yuangongkaoqin, "yuangongkaoqin")); 
		YuangongkaoqinView yuangongkaoqinView =  yuangongkaoqinService.selectView(ew);
		return R.ok("查询员工考勤成功").put("data", yuangongkaoqinView);
    }
	

请假申请

@RestController
@RequestMapping("/qingjiashenqing")
public class QingjiashenqingController {
    @Autowired
    private QingjiashenqingService qingjiashenqingService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,QingjiashenqingEntity qingjiashenqing,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yuangong")) {
			qingjiashenqing.setYuangonggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<QingjiashenqingEntity> ew = new EntityWrapper<QingjiashenqingEntity>();
		PageUtils page = qingjiashenqingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qingjiashenqing), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,QingjiashenqingEntity qingjiashenqing, 
		HttpServletRequest request){
        EntityWrapper<QingjiashenqingEntity> ew = new EntityWrapper<QingjiashenqingEntity>();
		PageUtils page = qingjiashenqingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qingjiashenqing), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( QingjiashenqingEntity qingjiashenqing){
       	EntityWrapper<QingjiashenqingEntity> ew = new EntityWrapper<QingjiashenqingEntity>();
      	ew.allEq(MPUtil.allEQMapPre( qingjiashenqing, "qingjiashenqing")); 
        return R.ok().put("data", qingjiashenqingService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(QingjiashenqingEntity qingjiashenqing){
        EntityWrapper< QingjiashenqingEntity> ew = new EntityWrapper< QingjiashenqingEntity>();
 		ew.allEq(MPUtil.allEQMapPre( qingjiashenqing, "qingjiashenqing")); 
		QingjiashenqingView qingjiashenqingView =  qingjiashenqingService.selectView(ew);
		return R.ok("查询请假申请成功").put("data", qingjiashenqingView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        QingjiashenqingEntity qingjiashenqing = qingjiashenqingService.selectById(id);
        return R.ok().put("data", qingjiashenqing);
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱coding的同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值