基于Springboot2+vue2的高校办公室行政事务管理系统
温馨提示:
本文最后更新于 2026年06月04日,已超过 6 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
1. 资源
放到最后面
2. 项目简介
高校办公室行政事务管理系统,旨在通过信息化手段优化和规范高校内部的行政办公流程。系统主要服务于“教师”和“系统管理员”两类角色,提供了包括人事管理、物资管理、会议管理、印章管理等功能。
教师可以通过系统发起请假、离职、办公室申请、办公物资申请、会议室预约、印章使用及添加申请等流程。管理员则负责对教师提交的各项申请进行审批,并对基础数据进行维护。
3. 技术栈
3.1 后端
- 核心框架: Spring Boot 2.2.2.RELEASE
- 数据库ORM: MyBatis-Plus 2.3
- 权限控制: Apache Shiro 1.3.2
- 数据库: MySQL 5.7.32
- Java版本: JDK 1.8
3.2 前端
- 核心框架: Vue.js 2.x
- UI库: Element UI
- HTTP请求: Axios
- 图表库: ECharts
- 路由: Vue Router
4. 详细介绍
4.1 核心功能模块
人事管理
- 教师管理:管理员对教师账号进行增删改查,支持重置密码。
- 请假申请与管理:教师用户可提交请假申请,填写请假原因和结束时间,管理员进行审核。
- 离职申请与管理:教师用户可提交离职申请,填写离职原因,管理员进行审核。申请通过后,教师账号状态可能被标记为删除。
物资管理
- 办公室管理:管理员维护办公室的房间号、详细地址等信息,并指定使用教师。
- 办公室申请:教师用户可以申请未被使用的办公室,提交申请后由管理员审核。审核通过后,办公室的使用教师会更新为申请人。
- 办公物资管理:管理员维护物资编号、物资名称、物资类型等信息,并指定使用人。
- 办公物资申请:教师用户可以申请办公物资,提交申请后由管理员审核。审核通过后,该物资的使用教师会更新为申请人。
会议管理
- 会议室管理:管理员维护会议室的编号、地址、大小、类型(在字典表中定义)和状态(是否可用)。
- 会议室申请:教师用户可以预约会议室,提交申请后由管理员审核。
印章管理
- 印章管理:管理员维护印章的编号和名称。
- 印章申请:教师用户可以申请使用已有印章,提交申请后由管理员审核。
- 印章添加申请:教师用户可以提交添加新印章的申请,填写印章名称、上传相关材料并说明原因,由管理员审核。审核通过后,系统会自动在印章主表中创建新的印章记录。
基础数据管理
- 管理员可以对系统中的各类字典数据进行维护,如:办公物资类型、会议室类型、请假审核状态、离职审核状态、各类申请的审核状态等。
4.2 数据库设计
- 用户相关:
jiaoshi(教师)、users(管理员) - 申请类:
jiaoshi_qingjia(请假申请)、jiaoshi_lizhi(离职申请)、bangongshi_shenqing(办公室申请)、bangongwuzi_shenqing(办公物资申请)、huiyishi_shenqing(会议室申请)、yinzhang_shenqing(印章申请)、yinzhangadd_shenqing(印章添加申请) - 资源类:
bangongshi(办公室)、bangongwuzi(办公物资)、huiyishi(会议室)、yinzhang(印章) - 辅助表:
dictionary(字典表)、token(用户登录凭证)
4.3 业务流程示例
- 教师发起申请:前端调用
/bangongwuziShenqing/add接口,提交bangongwuziId等数据。后端会设置jiaoshiId(当前登录教师ID)、insertTime(申请时间)和初始的申请结果状态(bangongwuzi_shenqing_yesno_types为 “未审核”)。 - 管理员查看与审核:管理员端通过
/bangongwuziShenqing/page接口分页查看所有申请,并可查看详情。 - 管理员审核操作:管理员点击审核(通过/拒绝),调用
/bangongwuziShenqing/update接口。后端在处理更新时,会判断bangongwuziShenqingYesnoTypes字段值。- 若为“通过”(值为2):系统会更新
bangongwuzi表,将对应物资的jiaoshi_id(使用教师)更新为申请人的ID,完成物资的分配。 - 若为“拒绝”(值为3):仅更新申请单的状态为拒绝。
- 若为“通过”(值为2):系统会更新
5. 部分代码
5.1 实体类示例 - BangongwuziEntity
// 文件路径: ./gaoxiaobangongxingzheng/src/main/java/com/entity/BangongwuziEntity.java
package com.entity;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 办公物资 实体类
*/
@TableName("bangongwuzi")
public class BangongwuziEntity<T> implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
private String bangongwuziUuidNumber; // 物资编号
private String bangongwuziName; // 物资名称
private Integer bangongwuziTypes; // 物资类型
private Integer jiaoshiId; // 使用教师ID
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
private Date createTime; // 创建时间
// ... getter 和 setter 方法 ...
}
5.2 控制器示例 - JiaoshiQingjiaController 的保存方法
// 文件路径: ./gaoxiaobangongxingzheng/src/main/java/com/controller/JiaoshiQingjiaController.java
/**
* 请假申请 后端接口
*/
@RestController
@RequestMapping("/jiaoshiQingjia")
public class JiaoshiQingjiaController {
@Autowired
private JiaoshiQingjiaService jiaoshiQingjiaService;
/**
* 后端保存(教师发起请假申请)
*/
@RequestMapping("/save")
public R save(@RequestBody JiaoshiQingjiaEntity jiaoshiQingjia, HttpServletRequest request){
// 1. 获取当前登录用户角色
String role = String.valueOf(request.getSession().getAttribute("role"));
// 2. 如果是教师,将申请教师ID设置为当前登录用户的ID
if("教师".equals(role))
jiaoshiQingjia.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
// 3. 设置申请时间为当前时间
jiaoshiQingjia.setInsertTime(new Date());
// 4. 设置审核状态默认为“未审核”
jiaoshiQingjia.setJiaoshiQingjiaYesnoTypes(1);
jiaoshiQingjia.setCreateTime(new Date());
// 5. 保存申请
jiaoshiQingjiaService.insert(jiaoshiQingjia);
return R.ok();
}
}
5.3 MyBatis Mapper XML - 部分查询逻辑
<!-- 文件路径: ./gaoxiaobangongxingzheng/src/main/resources/mapper/BangongwuziShenqingDao.xml -->
<mapper namespace="com.dao.BangongwuziShenqingDao">
<!-- 多表联查,获取办公物资申请的列表视图 -->
<select id="selectListView" resultType="com.entity.view.BangongwuziShenqingView">
SELECT
a.id as id,
a.insert_time as insertTime,
a.bangongwuzi_shenqing_yesno_types as bangongwuziShenqingYesnoTypes,
-- 关联办公物资表
bangongwuzi.bangongwuzi_name as bangongwuziName,
-- 关联教师表
jiaoshi.jiaoshi_name as jiaoshiName
FROM bangongwuzi_shenqing a
left JOIN bangongwuzi bangongwuzi ON a.bangongwuzi_id = bangongwuzi.id
left JOIN jiaoshi jiaoshi ON a.jiaoshi_id = jiaoshi.id
<where>
<!-- 动态SQL查询条件,例如按教师姓名模糊查询 -->
<if test=" params.jiaoshiName != '' and params.jiaoshiName != null ">
and jiaoshi.jiaoshi_name like CONCAT('%',#{params.jiaoshiName},'%')
</if>
<!-- 按申请结果精确查询 -->
<if test="params.bangongwuziShenqingYesnoTypes != null">
and a.bangongwuzi_shenqing_yesno_types = #{params.bangongwuziShenqingYesnoTypes}
</if>
</where>
order by a.${params.orderBy} desc
</select>
</mapper>
5.4 前端API配置 - 基础URL
// 文件路径: ./gaoxiaobangongxingzheng/src/main/resources/admin/admin/src/utils/base.js
const base = {
get() {
return {
// 后端接口的基础地址
url : "http://localhost:8080/gaoxiaobangongxingzheng/",
name: "gaoxiaobangongxingzheng",
// 前台页面入口地址
indexUrl: 'http://localhost:8080/gaoxiaobangongxingzheng/front/index.html'
};
},
getProjectName(){
return {
projectName: "高校办公室行政事务管理"
}
}
}
export default base
6. 部分截图


































7. 项目总结
该系统是一个基于Spring Boot和Vue.js的完整Web应用,功能覆盖了高校行政事务的几个主要方面,如人事、物资和会议管理等。
优点:
- 功能完整:提供了从资源管理、申请发起、审批流程到基础数据维护的一整套功能,形成了一个相对完整的业务闭环。
- 权限分明:通过Shiro和自定义拦截器,清晰地区分了“管理员”和“教师”两个角色的操作权限和菜单。
- 代码规范:项目结构清晰,遵循了MVC的设计模式。后端通过
Entity、Controller、Service、Mapper进行分层,前端通过Vue组件化开发,便于维护和扩展。 - 数据库设计合理:核心业务表与字典表分离,提高了数据的规范性和可维护性。
总体而言,该项目是一个结构标准、功能完善的Java Web管理系统,非常适合作为类似办公自动化(OA)、高校管理系统的开发基础或学习参考。
正文到此结束
- 本文标签: Java Spring Boot 毕业设计
- 本文链接: https://blog.xiaobias.com/article/51
- 版权声明: 本文由十五喵原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
