原创

基于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 核心功能模块

  1. 人事管理

    • 教师管理:管理员对教师账号进行增删改查,支持重置密码。
    • 请假申请与管理:教师用户可提交请假申请,填写请假原因和结束时间,管理员进行审核。
    • 离职申请与管理:教师用户可提交离职申请,填写离职原因,管理员进行审核。申请通过后,教师账号状态可能被标记为删除。
  2. 物资管理

    • 办公室管理:管理员维护办公室的房间号、详细地址等信息,并指定使用教师。
    • 办公室申请:教师用户可以申请未被使用的办公室,提交申请后由管理员审核。审核通过后,办公室的使用教师会更新为申请人。
    • 办公物资管理:管理员维护物资编号、物资名称、物资类型等信息,并指定使用人。
    • 办公物资申请:教师用户可以申请办公物资,提交申请后由管理员审核。审核通过后,该物资的使用教师会更新为申请人。
  3. 会议管理

    • 会议室管理:管理员维护会议室的编号、地址、大小、类型(在字典表中定义)和状态(是否可用)。
    • 会议室申请:教师用户可以预约会议室,提交申请后由管理员审核。
  4. 印章管理

    • 印章管理:管理员维护印章的编号和名称。
    • 印章申请:教师用户可以申请使用已有印章,提交申请后由管理员审核。
    • 印章添加申请:教师用户可以提交添加新印章的申请,填写印章名称、上传相关材料并说明原因,由管理员审核。审核通过后,系统会自动在印章主表中创建新的印章记录。
  5. 基础数据管理

    • 管理员可以对系统中的各类字典数据进行维护,如:办公物资类型、会议室类型、请假审核状态、离职审核状态、各类申请的审核状态等。

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 业务流程示例

  1. 教师发起申请:前端调用 /bangongwuziShenqing/add 接口,提交 bangongwuziId 等数据。后端会设置 jiaoshiId(当前登录教师ID)、insertTime(申请时间)和初始的申请结果状态(bangongwuzi_shenqing_yesno_types 为 “未审核”)。
  2. 管理员查看与审核:管理员端通过 /bangongwuziShenqing/page 接口分页查看所有申请,并可查看详情。
  3. 管理员审核操作:管理员点击审核(通过/拒绝),调用 /bangongwuziShenqing/update 接口。后端在处理更新时,会判断 bangongwuziShenqingYesnoTypes 字段值。
    • 若为“通过”(值为2):系统会更新 bangongwuzi 表,将对应物资的 jiaoshi_id(使用教师)更新为申请人的ID,完成物资的分配。
    • 若为“拒绝”(值为3):仅更新申请单的状态为拒绝。

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. 部分截图

img1
img2
img3
img4
img5
img6
img7
img8
img9
img10
img11
img12
img13
img14
img15
img16
img17
img18
img19
img20
img21
img22
img23
img24
img25
img26
img27
img28
img29
img30
img31
img32
img33
img34

7. 项目总结

该系统是一个基于Spring Boot和Vue.js的完整Web应用,功能覆盖了高校行政事务的几个主要方面,如人事、物资和会议管理等。

优点

  • 功能完整:提供了从资源管理、申请发起、审批流程到基础数据维护的一整套功能,形成了一个相对完整的业务闭环。
  • 权限分明:通过Shiro和自定义拦截器,清晰地区分了“管理员”和“教师”两个角色的操作权限和菜单。
  • 代码规范:项目结构清晰,遵循了MVC的设计模式。后端通过EntityControllerServiceMapper进行分层,前端通过Vue组件化开发,便于维护和扩展。
  • 数据库设计合理:核心业务表与字典表分离,提高了数据的规范性和可维护性。

总体而言,该项目是一个结构标准、功能完善的Java Web管理系统,非常适合作为类似办公自动化(OA)、高校管理系统的开发基础或学习参考。

https://fifteen.xiaobias.com/source/146

正文到此结束
本文目录