博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》
系统介绍:
进入信息时代以来,很多数据都需要配套软件协助处理,这样可以解决传统方式带来的管理困扰。比如耗时长,成本高,维护数据困难,数据易丢失等缺点。本次使用数据库工具MySQL和编程技术SSM开发的企业人事管理系统,可以实现目标用户群需要的功能,包括考勤管理,奖惩管理,薪资管理,培训管理,系统公告管理等功能。
总之,企业人事管理系统是基于计算机进行数据的处理,则可以短时间内批量完成数据的管理,就连基本的数据录入,更改错误的数据,统计数据等操作要求都可以轻松完成,这样的系统的运用可以减少很多繁琐的工作量,让数据的管理人员提升效率,节省数据处理投入的资金和时间。同时,企业人事管理系统本身就有配套的数据库,用于保存系统的后台数据,对于数据保存的容量则是传统模式不能相比的,在数据安全性上,也有相应的加密技术提供保护,所以数据泄露和被人窃取都不是易事。
下图为管理员的功能设计,管理员管理所有权限的用户资料,管理考勤,培训,薪资,奖惩等资料。
图4.1 管理员功能结构图
下图为总经理的功能设计,总经理管理部门主管和员工的考勤信息,奖惩与薪资信息等。
图4.2 总经理功能结构图
下图为部门主管的功能设计,部门主管参与上下班打卡,管理员工的考勤和薪资以及奖惩信息。
图4.3 部门主管功能结构图
下图为员工的功能设计,员工参与上下班打卡,查看自己的奖惩,薪资以及培训信息。
图4.4 员工功能结构图
程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
程序操作流程图
功能截图:
这部分工作主要由程序编制人员完成。通常在面对一个大型的系统时,这些程序编制人员就会明确分工,每个人都完成不同的功能模块,在用代码实现功能的基础上,提前预留好接口,最后才将他们已完成的功能模块通过接口进行组合。
5.1 管理员功能实现
5.1.1 用户管理
管理用户是管理员的功能。其运行效果图如下。这里的用户包括总经理,部门主管,员工,他们的资料都需要管理员来管理。
图5.1 用户管理页面
5.1.2 考勤管理
管理考勤是管理员的功能。其运行效果图如下。管理员查看所有人员的考勤打卡信息,包括上班打卡,下班打卡信息。
图5.2 考勤管理页面
5.1.3 培训管理
管理培训信息是管理员的功能。其运行效果图如下。本模块主要让管理员查看所有人员的培训信息。
图5.3 培训管理页面
5.2 总经理功能实现
5.2.1 奖惩管理
管理奖惩信息是总经理的功能。其运行效果图如下。总经理添加奖惩信息,查看部门主管和员工的奖惩信息。
图5.4 奖惩管理页面
5.2.2 薪资管理
管理薪资是总经理的功能。其运行效果图如下。总经理添加薪资信息,查看部门主管和员工的每月薪资。
图5.5 薪资管理页面
5.3 部门主管功能实现
5.3.1 考勤管理
管理员工的考勤信息是部门主管的功能。其运行效果图如下。部门主管可以参与上下班打卡,可以查看自己的考勤打卡信息。
图5.6 考勤管理页面
5.3.2 奖惩管理
管理员工的奖惩信息是部门主管的功能。其运行效果图如下。部门主管能够新增员工的奖惩信息,可以查看部门员工的奖惩信息。
图5.7 奖惩管理页面
5.3.3 系统公告管理
管理系统公告是部门主管的功能。其运行效果图如下。部门主管可以发布系统公告,对系统公告信息进行修改,查看和删除。
图5.8 系统公告管理页面
5.4 员工功能实现
5.4.1 培训查看
查看培训信息是员工的功能。其运行效果图如下。员工可以在自己的后台查询培训信息,查看属于自己的培训详细信息。
图5.9 培训查看页面
5.4.2 薪资查看
查看薪资是员工的功能。其运行效果图如下。员工在当前页面只能查询薪资,查看自己的薪资明细。
图5.10 薪资查看页面
5.4.3 考勤管理
管理个人的考勤信息是员工的功能。其运行效果图如下。员工参与上下班打卡,可以查询考勤记录信息。
图5.11 考勤管理页面
代码实现:
/**
* 登录相关
*/
@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 role, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user != null){
if(!user.getRole().equals(role)){
return R.error("权限不正常");
}
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);
}else{
return R.error("账号或密码或权限不对");
}
}
/**
* 注册
*/
@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("/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){
Integer id = (Integer)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 Integer[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
论文参考:
源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》