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

背景

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

系统架构

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

基于SpringBoot的人事管理系统的设计与实现_第1张图片
(b)员工;员工使用本系统涉到的功能主要有:首页,个人中心,员工考勤管理,请假申请管理,加班申请管理,员工工资管理,招聘计划管理,员工培训管理,部门培训管理,员工详细管理等功能。员工用例图如图:

基于SpringBoot的人事管理系统的设计与实现_第2张图片
系统整体功能如下图所示:

基于SpringBoot的人事管理系统的设计与实现_第3张图片

数据库设计

概念模型ER图设计

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

员工管理实体图如图:

基于SpringBoot的人事管理系统的设计与实现_第4张图片
部门管理实体图如图:

基于SpringBoot的人事管理系统的设计与实现_第5张图片
员工考勤实体图如图:

基于SpringBoot的人事管理系统的设计与实现_第6张图片

数据库设计

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

基于SpringBoot的人事管理系统的设计与实现_第7张图片
基于SpringBoot的人事管理系统的设计与实现_第8张图片
基于SpringBoot的人事管理系统的设计与实现_第9张图片
基于SpringBoot的人事管理系统的设计与实现_第10张图片

系统详细设计

管理员模块

管理员登录系统后,可以对首页,个人中心,员工管理,部门管理,员工考勤管理,请假申请管理,加班申请管理,员工工资管理,招聘计划管理,员工培训管理,部门培训管理,员工详细管理等进行相应的操作管理,如图:
基于SpringBoot的人事管理系统的设计与实现_第11张图片

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

基于SpringBoot的人事管理系统的设计与实现_第12张图片

员工功能模块

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

基于SpringBoot的人事管理系统的设计与实现_第13张图片

代码实现

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

员工考勤

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


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map params,YuangongkaoqinEntity yuangongkaoqin,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yuangong")) {
			yuangongkaoqin.setYuangonggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper ew = new EntityWrapper();
		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 params,YuangongkaoqinEntity yuangongkaoqin, 
		HttpServletRequest request){
        EntityWrapper ew = new EntityWrapper();
		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 ew = new EntityWrapper();
      	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 params,QingjiashenqingEntity qingjiashenqing,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yuangong")) {
			qingjiashenqing.setYuangonggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper ew = new EntityWrapper();
		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 params,QingjiashenqingEntity qingjiashenqing, 
		HttpServletRequest request){
        EntityWrapper ew = new EntityWrapper();
		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 ew = new EntityWrapper();
      	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);
    }


你可能感兴趣的:(Java精品实战案例,spring,boot,java,后端)