介绍
基于SpringBoot + vue企业员工管理管理系统。
🚀 引言
企业员工管理系统是一种现代化、智能化的信息化管理工具,它是针对企业员工管理过程中的繁琐、重复、低效等问题,结合计算机与信息技术开发的,可以有效提高企业管理效率,优化组织结构,降低人力成本,减少人为错误,提高员工参与度等多种好处。
随着经济的发展和市场的竞争愈演愈烈,许多企业在员工管理方面遇到了很大的问题。在大规模员工管理中,如何高效的组织员工,如何减少人力成本的浪费以及如何提高员工的满意度成为了企业管理者最关注和最需要解决的问题。
在这种情况下,企业员工管理系统成为了解决方案的最佳选择。它不仅可以根据员工的基本信息、工作经历、工作表现、培训记录等建立员工档案,还可以对员工进行考勤统计、薪资管理、绩效考核、奖惩管理等多项工作,从而极大的提升了企业内部管理的效率和精度。
通过企业员工管理系统,企业领导可以通过实时查看员工的相关信息和数据,科学合理的制定战略和决策。员工可以通过系统自主查询、审批工作指令,实现工作流程全面自动化。同时,企业员工管理系统关注员工的职业发展和能力提升,为员工提供了提高职业技能和个人能力的培训机会,进一步加强了企业与员工的互动关系。
综上所述,企业员工管理系统在现代化的企业管理中扮演了重要的角色,提高了企业管理效率,减少了管理成本,增强了企业的竞争力。在信息化社会,这样的系统必将获得更广泛的应用和推广,对企业管理模式的革新和完善具有划时代的意义。
🚀 开发环境
1.系统用Java语言开发,前端用Vue,后端用Spring Boot框架;
2.开发工具:IDEA、Navicat Premium 15、Postman等;
3.技术:MySQL、Spring Boot、MyBatis、Vue、echars等
🚀 界面效果图
🚀 登录:
🚀 首页:(新增-健康打卡)
🌈 管理员:
🌈 用户角色 (普通用户和管理员)
为角色分配菜单
🚀 员工管理
🚀 工资管理
🚀 个人信息(图片上传):
🚀 出勤管理 查看员工出勤的日志:
🚀 对于普通用户登录的前台页面:
首页的轮播图 展示公司风采
🚀 请假上报:
审核通过
审核不通过:
🚀 工资条查看 资金动向查询:
# 🚀 项目结构
🚀 代码实现:
🌈 登录:
@RequestMapping("/user")
@RestController
public class LoginController {
final UserService userService;
final MenuService menuService;
public LoginController(UserService userService, MenuService menuService){
this.userService = userService;
this.menuService = menuService;
}
@RequestMapping(value = "/login",method = RequestMethod.POST)
public APIResult login(@RequestBody User user){
Subject subject = SecurityUtils.getSubject();
try {
subject.login(new UsernamePasswordToken(user.getAccount(),user.getPassword()));
// 获取当前登录用户
User loginuser = userService.findRolesByAccount(user.getAccount());
List<Menu> menuByRoleName = menuService.findMenuByRoleName(loginuser.getRoleName());
loginuser.setMenus(menuByRoleName);
if (loginuser.getStatus() == ConstantsUtils.CODE_STATUS_1){
return APIResult.notFound("该用户已被禁用或者拉入黑名单,请联系管理员");
}
loginuser.setPassword(null);
loginuser.setCodeText(null);
String token = TokenUtil.createToken(loginuser.getAccount());
return new APIResult(ConstantsUtils.CODE_STATUS_200,token,1,loginuser);
} catch (UnknownAccountException e) {
e.printStackTrace();
return APIResult.notFound("用户名错误");
} catch (IncorrectCredentialsException e) {
e.printStackTrace();
return APIResult.notFound("密码错误");
}
}
@RequestMapping(value = "/loginout",method = RequestMethod.POST)
public APIResult loginout(@RequestBody String account){
RedisTemplate redisTemplate = (RedisTemplate) ApplicationContextUtils.getBean("redisTemplate");
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.opsForHash().delete("authenticationCache",account);
return new APIResult(ConstantsUtils.CODE_STATUS_200,null,ConstantsUtils.CODE_STATUS_1,"退出成功");
}
@RequestMapping(value = "/reg",method = RequestMethod.POST)
public APIResult reg(@RequestBody User user){
try {
userService.reg(user);
return APIResult.created(user);
} catch (Exception e) {
e.printStackTrace();
return APIResult.notFound(e.getMessage());
}
}
}
🌈 图表统计
@RequestMapping("/echarts")
@RestController
public class EchartsController {
final ResidentService residentService;
final VisitorService visitorService;
final AddressService addressService;
public EchartsController(ResidentService residentService, VisitorService visitorService, AddressService addressService) {
this.residentService = residentService;
this.visitorService = visitorService;
this.addressService = addressService;
}
@GetMapping("/members")
public APIResult members() {
List<Resident> list = residentService.queryAll(null,null,null);
int q1 = list.size(); // 正常
List<Resident> residents = residentService.queryByresState();
int q2 = residents.size();
return new APIResult(ConstantsUtils.CODE_STATUS_200,null,list.size(),CollUtil.newArrayList(q1, q2));
}
@RequestMapping(value = "/vis",method = RequestMethod.GET)
public APIResult getVis(){
List<Visitor> list = visitorService.queryAll(null, null, null);
int q1 = 0; // 第一季度
int q2 = 0; // 第二季度
int q3 = 0; // 第三季度
int q4 = 0; // 第四季度
for (Visitor visitor : list) {
Date visTime = visitor.getVisTime();
Quarter quarter = DateUtil.quarterEnum(visTime);
switch (quarter) {
case Q1: q1 += 1; break;
case Q2: q2 += 1; break;
case Q3: q3 += 1; break;
case Q4: q4 += 1; break;
default: break;
}
}
return new APIResult(ConstantsUtils.CODE_STATUS_200,null,list.size(),CollUtil.newArrayList(q1, q2, q3, q4));
}
@RequestMapping(value = "/getFour",method = RequestMethod.GET)
public APIResult getFour(){
List<Resident> list1 = residentService.getAll();
int number1=list1.size();
List<Visitor> list2 = visitorService.getAll();
int number2 =list2.size();
List<Resident> list3 = residentService.queryByresState();
int number3 = list3.size();
List<Address> list4 = addressService.queryAll(null, null, null);
int number4 = list4.size();
return new APIResult(ConstantsUtils.CODE_STATUS_200,null,null,CollUtil.newArrayList(number1, number2, number3, number4));
}
}
后面的就不再列举了,,
✨✨源码,看下面评论哦✨✨