系统的采用Java语言、Windows10操作系统、Idea开发环境、MySQL数据库等。系统采用了较为成熟的spring+sprigMVC+mybatis框架技术;
该系统主要以系统管理员及普通用户两部分组成,其规划系统主要功能模块如下:
系统的采用Java语言、Windows10操作系统、Idea开发环境、MySQL数据库等。系统采用了较为成熟的spring+sprigMVC+mybatis框架技术;
该系统主要以系统管理员及普通用户两部分组成,其规划系统主要功能模块如下:
- 管理员部分
员工管理模块、部门管理模块、考勤管理模块、薪资管理模块、防疫管理模块、系统公告模块、招聘管理等模块;
- 普通员工部分
员工管理模块、考勤管理模块、薪资管理模块、系统公告等模块;
主页
本模块主要是给所有员工登录后一个展示页面,登录后可在本页面进行快速签到打卡、快速请假、填写防疫报表、查看公司公告以及人员分布等情况,也可通过本页面进行密码修改。
以管理员身份登录以后即可进入管理员主页可在系统中管理的模块可分为员工管理、部门管理、变动档案、考勤管理、权限管理、薪资管理、防疫管理系统公告、招聘管理等模块。
以普通员工登录后仅可进行对部分模块的查询浏览操作,包括员工管理、考勤管理、薪资管理以及系统公告,如图5.2、图5.3所示。
图5.2 管理员主页
图5.3 普通员工主页
部分代码展示:
if (sysCode.equalsIgnoreCase(formCode) && formCode != null) {try {
subject.login(token);
session.setAttribute("user", userByName);
session.setAttribute("role", roleName);
return "redirect:/main";
} catch (UnknownAccountException e) {
model.addAttribute("msg", "用户名错误");
return "forward:/user/toLogin";
} catch (IncorrectCredentialsException e) {
model.addAttribute("msg", "密码错误");
return "forward:/user/toLogin";
}
}
(3)员工管理
员工管理功能模块主要实现了系统管理员和普通员工在该模块后对员工管理模块进行不同的操作,系统管理员在本模块实现对现有在职员工信息的查询、修改、添加、删除以及批量删除等操作,员工基本信息包括用户名、密码、住址、邮箱、手机号、生日、部门ID,职务和权限角色等信息;对已离职员工信息仅支持删除操作;普通员工在本模块仅支持查询浏览操作,如图5.4所示。
部分代码展示:
int pageSize = 10;PageInfo<User> pageInfo = userService.getUsersByPage(pageNum1,pageSize);
List<UserVo> userVos = pubService.changeVo(pageInfo);
model.addAttribute("state",1);
model.addAttribute("page1",pageInfo);
model.addAttribute("users",userVos);
return "emp/empsList"
(4)部门管理
系统管理员可以通过本功能实现对部门的管理,以供录入员工信息时提供数据支持,如图5.5所示。
图5.5 部门管理
部分代码展示:
List<Dept> list= new ArrayList<>();if (redisUtil.hasKey(ALL_DEPT)){
log.info("从redis中获取数据.");
list = (List<Dept>) redisString.get(ALL_DEPT);
}else{
log.info("从mysql中获取数据.");
list= deptMapper.getDeptData();
log.info("将数据存入redis...");
redisString.set(ALL_DEPT, list);
}
return list
(5)变动档案
系统管理员可以通过本功能根据情况为员工办理离职操作;已离职员工在员工信息被删除前仍可登录系统,用于查看自己的考勤信息和工资发放情况等信息,如图5.6所示。
图5.6 变动档案页面
部分代码展示:
int pageSize = 10;PageInfo<File> filePageInfo = adminService.getAllFiles(pageNum, pageSize);
List<FileDto> files = pubService.changeFileDto(filePageInfo);
model.addAttribute("filePage",filePageInfo);
model.addAttribute("files",files);
return "file/fileList";
(6)考勤管理
考勤管理模块分为签到管理和请假管理两个子模块,签到管理模块主要实现了系统管理员和普通员工在该模块进行快速签到操作以及对该模块进行不同出勤信息的查询,系统管理员可以不仅可以查询自己的出勤记录,也可查询所有出勤记录及所有迟到记录,普通员工则只能浏览和查询自己的出勤记录。请假管理模块主要实现了系统管理员和普通员工在该模块的请假程序,系统管理员或普通员工可在系统中提出请假申请单,并填写请假时间及请假事由,然后系统管理员可以对提出的请假申请进行审核批示。如图5.7、图5.8、图5.9所示。
图5.8 请假管理页面
图5.9 管理员请假审批页面
部分代码展示:
//管理端PageInfo<Leave> pageInfo = timeService.getAllLeaves(pageNum, pageSize);
List<LeaveVo> leaveVos = pubService.changeLeaveVo(pageInfo);
PageInfo<Leave> leaveByState = timeService.getLeaveByState(pageNum, pageSize, 0);
model.addAttribute("leaves",leaveVos);
model.addAttribute("page",pageInfo);
model.addAttribute("unreadNum",leaveByState.getList().size())
(7)权限管理
权限管理模块主要实现了系统管理员在该模块对所有员工的角色信息进行一个快速的变更操作,可以把系统管理员降级为普通员工,普通员工也可晋升成为系统管理员,如图5.10所示。
图5.10 权限管理页面
部分代码展示:
int pageSize = 10;PageInfo<Role> adminPage = adminService.getRolesByName(pageNum1,pageSize,"admin");
List<RoleDto> roleDtos = pubService.changeRoleDto(adminPage);
PageInfo<Role> userPage = adminService.getRolesByName(pageNum2, pageSize, "user");
List<RoleDto> roleDtos1 = pubService.changeRoleDto(userPage);
model.addAttribute("adminList",roleDtos);
model.addAttribute("userList",roleDtos1);
model.addAttribute("adminPage",adminPage);
model.addAttribute("userPage",userPage);
return "role/roleList"
(8)薪资管理
薪资管理模块主要实现了系统管理员和普通员工对工资管理模块进行不同的操作,系统管理员可以对所有员工的薪资信息进行添加、删除、查询等操作,其中包括基本工资,福利补贴,惩罚扣款等款项并可对其做出合计,以供每位员工自己查询操作。普通员工仅能浏览和查询自己薪资信息的功能,如图5.11、图5.12所示。
图5.11 薪资管理页面