目录
项目简介
基于 SpringBoot+Vue 技术的办公系统,采用 Spring Boot 、Spring Security和Vue等技术,主要为了提升工作效率。它是通过自动化流程的方式,实现工作效率的提高,可以减少劳动力和物资的浪费,在信息共享方面,可以为企业提供一个便捷的信息交流平台,还可以实现对企业员工相关数据的可视化,提高管理效率和决策能力。
技术栈
- 后端:Spring Boot、Spring Security、Mybatis Plus、MySQL
- 前端:HTML、CSS、JavaScript、Vue、ECharts 图表库
- 数据库:MySQL 、非关系型数据库Redis
- 权限管理:基于 Spring Security 的用户角色权限管理
- 数据交互:使用 RESTful API 进行前后端数据交互
- 页面渲染:使用 Vue框架渲染前端页面
- 图表展示:使用 ECharts 图表库展示员工、部门、薪资等数据
主要功能
-
权限管理: 权限模块是该系统中的重要功能之一,它涵盖了系统菜单权
限管理。在其它需要账户和密码登录的系统中也广泛应用。该系统设计的管理员
角色是拥有最多权限的角色,可以添加角色,修改其他用户的角色和添加角色。 -
用户管理: 该功能是为管理该系统的相关人员设计的,以便其能够有效地管理整个企业的实际办公需求。管理员可以设置目录的权限,并按照人力资源、角色等方式将权限分配给不同的用户。所有权限的使用都必须由管理员进行授权,而只有在管理员添加用户信息到数据库中之后,用户才能通过输入账号和密码来进行安全登录,并获得相应的操作范围。
-
角色管理:角色管理是办公系统中的用户角色资源进行合理分配的,包括以下几个方面的功能:添加角色、设置角色、以及对角色进行授权。
-
员工管理:该功能旨在对员工的个人信息进行维护管理。通过该功能,可以将新入职的员工信息添加到系统中。
-
采购记录管理: 记录采购操作,包括采购日期、商品信息、采购数量、采购金额等,用于库存管理和供应链分析。
-
部门管理: 部门管理功能可以对部门的相关信息进行维护和查询。具体而言,系统需要支持部门的录入,部门管理人员可以通过系统录入新的部门。
-
职位/职称管理: 系统支持职位/职称信息管理,以便管理人员能够
方便地对职位/职称信息进行维护和查询。 -
邮件管理:系统支持邮件管理,以方便用户进行邮件发送、接收、存储和管理。用户可以通过系统编写并且发送邮件,邮件的内容包含邮件的主题、接收邮件方、发送邮件方以及正文部分和附件等信息。邮件接收,系统可以通过网络协议自动接收用户的邮件。
-
员工账套管理:员工账套管理是企业人力资源管理中非常重要的一个方面,系统支持员工的工资账套添加,对应的系统管理/操作人员有在系统中录入员工对应账套信息包括薪资、津贴、社保等信息。
-
个人中心:个人中心功能支持用户对自己的关键信息的浏览和编辑。其中用户可以浏览的信息有用户昵称、地址、联系号码等。可以对自己的信息进行编辑,其中可以修改头像和昵称等。密码修改,登陆系统后如果有需要,可以更改自己的登录令牌,确保登陆令牌不被盗取。安全验证,当用户更改自己的密码后,系统为了保证用户信息不被泄露,需要在用户更改登陆令牌后退出登陆并跳转到登陆页面,以确保用户身份的合法性。
……
项目优势:
-
提高运营效率:通过自动化的办公管理和数据统计,帮助企业更高效地运营,减少人工操作和错误。
-
管理方便:管理员能够有效地管理整个企业的实际办公需求,提高管理效率。
-
决策支持:通过报表和图表展示数据,帮助决策者进行业务分析和战略决策。
主要功能模块图
系统E-R图
项目截图
系统登录页面
系统首页
员工资料
员工奖惩
员工培训
员工调动
工资账套
员工账套
综合信息统计
部门管理
职位管理
职称管理
权限管理
用户管理
邮件信息认证
邮件信息
在线聊天
个人中心
UserDetailService实现类代码
package com.fish.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fish.server.dao.AdminMapper;
import com.fish.server.dao.RoleMapper;
import com.fish.server.pojo.Admin;
import com.fish.server.pojo.LoginAdmin;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* 重新实现UserDetailService从数据库查询
*
* @Author: Fish
*/
@Service
public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private AdminMapper adminMapper;
@Autowired
private RoleMapper roleMapper;
/**
* 根据用户名查询用户信息
* @param username
* @return UserDetails
* @throws UsernameNotFoundException
*/
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
//查询用户信息
LambdaQueryWrapper<Admin> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(Admin::getUsername,username);
Admin admin = adminMapper.selectOne(queryWrapper);
admin.setRoles(roleMapper.getRolesByUserId(admin.getId()));
//查询不到,抛出异常
if (Objects.isNull(admin)){
throw new RuntimeException("用户名或密码错误");
}
//从数据库查询用户相关权限信息
//将数据封装成UserDetails返回
return new LoginAdmin(admin);
}
}
总结
该办公系统,使用了 SpringBoot 以及 Vue 等框架,该项目具体实现了多个模块,系统虽然已经具备较为完善的功能,但在实际应用中仍然需要进一步完善和优化。例如,可以增加员工考勤管理、绩效管理、文件管理、账单报销管理、请假管理、会议室管理等模块,实现更加细致和全面的管理。
联系作者
V:634836927