Skip to content

系统落地:校园后勤服务平台

← 上一阶段:开发资产


系统实现

这个场景已经作为独立的"校园后勤服务平台"落地实施。

在完整系统中的位置

校园后勤服务平台
├── 宿舍报修管理
│   ├── 学生报修
│   ├── 智能派单
│   └── 进度跟踪
├── 教室/会议室预约
│   ├── 资源管理
│   ├── 预约管理
│   └── 使用统计
└── 物资领用管理
    ├── 在线申请
    ├── 审批流程
    └── 库存管理

功能模块

1. 学生端(微信小程序)

一键报修界面:

┌───────────────────────────┐
│  宿舍报修                  │
├───────────────────────────┤
│                           │
│  我的宿舍:                │
│  1号宿舍楼-201室           │
│                           │
│  报修类型:                │
│  [ ] 水电维修              │
│  [ ] 空调维修              │
│  [ ] 门窗维修              │
│  [ ] 其他                  │
│                           │
│  问题描述:                │
│  [________________]        │
│                           │
│  上传照片:                │
│  [📷] [📷] [📷]          │
│                           │
│  [提交报修]                │
└───────────────────────────┘

教室预约界面:

┌───────────────────────────┐
│  教室预约                  │
├───────────────────────────┤
│  选择日期:[2025-01-16]    │
│                           │
│  教室列表:                │
│  ┌─────────────────────┐  │
│  │ 101教室              │  │
│  │ 容量:50人           │  │
│  │ 状态:空闲           │  │
│  │ 可用时段:           │  │
│  │ 08:00-12:00 ✓       │  │
│  │ 14:00-18:00 ✓       │  │
│  │                     │  │
│  │  [立即预约]          │  │
│  └─────────────────────┘  │
│                           │
│  ┌─────────────────────┐  │
│  │ 102教室              │  │
│  │ 容量:80人           │  │
│  │ 状态:已预约         │  │
│  │ 已预约时段:         │  │
│  │ 09:00-11:00         │  │
│  │ 可用时段:           │  │
│  │ 14:00-18:00 ✓       │  │
│  │                     │  │
│  │  [立即预约]          │  │
│  └─────────────────────┘  │
└───────────────────────────┘

物资申请界面:

┌───────────────────────────┐
│  物资申请                  │
├───────────────────────────┤
│  选择物资:                │
│  [搜索物资名称...]         │
│                           │
│  物资列表:                │
│  ┌─────────────────────┐  │
│  │ 投影仪               │  │
│  │ 库存:5台            │  │
│  │ 单价:500元/台       │  │
│  │ 数量:[1] 台         │  │
│  │  [加入申请]          │  │
│  └─────────────────────┘  │
│                           │
│  申请目的:                │
│  [________________]        │
│                           │
│  总金额:500元             │
│  (需要系主任审批)        │
│                           │
│  [提交申请]                │
└───────────────────────────┘

核心功能:

  • ✓ 一键报修,自动获取宿舍位置
  • ✓ 可视化教室预约,实时查看可用时段
  • ✓ 在线物资申请,自动流转审批

2. 教师端(微信小程序)

教室预约管理:

┌───────────────────────────┐
│  我的预约                  │
├───────────────────────────┤
│  ┌─────────────────────┐  │
│  │ 101教室              │  │
│  │ 2025-01-16 09:00-11:00│ │
│  │ 状态:已预约          │  │
│  │                     │  │
│  │  [签到] [取消]       │  │
│  └─────────────────────┘  │
│                           │
│  ┌─────────────────────┐  │
│  │ 102教室              │  │
│  │ 2025-01-17 14:00-16:00│ │
│  │ 状态:待审批          │  │
│  │                     │  │
│  │  [查看详情] [取消]    │  │
│  └─────────────────────┘  │
└───────────────────────────┘

审批管理:

┌───────────────────────────┐
│  待审批申请                │
├───────────────────────────┤
│  ┌─────────────────────┐  │
│  │ 申请人:张三          │  │
│  │ 物资:投影仪 x1      │  │
│  │ 金额:500元          │  │
│  │ 申请时间:1小时前    │  │
│  │                     │  │
│  │  [通过] [拒绝]       │  │
│  └─────────────────────┘  │
└───────────────────────────┘

3. 管理端(Web 后台)

数据看板:

┌─────────────────────────────────────┐
│  校园后勤服务平台 - 数据看板          │
├─────────────────────────────────────┤
│                                     │
│  今日数据                            │
│  ┌──────┐ ┌──────┐ ┌──────┐        │
│  │ 报修 │ │ 预约 │ │ 申请 │        │
│  │  28  │ │  45  │ │  12  │        │
│  └──────┘ └──────┘ └──────┘        │
│                                     │
│  报修响应时间:15分钟 ⬇️ 50%         │
│  教室利用率:78% ⬆️ 25%               │
│  物资申请审批率:95% ⬆️ 20%           │
│                                     │
│  教室使用统计                        │
│  ┌─────────────────────────────┐   │
│  │ 101教室:使用率 85%          │   │
│  │ 102教室:使用率 72%          │   │
│  │ 103教室:使用率 68%          │   │
│  └─────────────────────────────┘   │
│                                     │
│  [查看详细报表]                      │
└─────────────────────────────────────┘

教室预约管理:

┌─────────────────────────────────────┐
│  教室预约管理                        │
├─────────────────────────────────────┤
│  筛选:[全部] [已预约] [空闲] [维护中] │
│                                     │
│  教室名称 │ 容量 │ 状态 │ 今日预约 │ 操作 │
│  ─────────────────────────────────  │
│  101教室  │ 50人 │ 空闲 │   3次   │ [管理]│
│  102教室  │ 80人 │ 已预约│   5次   │ [管理]│
│  103教室  │ 100人│ 维护中│   0次   │ [管理]│
│                                     │
│  [添加教室] [批量操作]               │
└─────────────────────────────────────┘

物资库存管理:

┌─────────────────────────────────────┐
│  物资库存管理                        │
├─────────────────────────────────────┤
│  筛选:[全部] [库存不足] [库存充足]    │
│                                     │
│  物资名称 │ 类别 │ 库存 │ 安全库存 │ 操作 │
│  ─────────────────────────────────  │
│  投影仪   │ 设备 │  5台 │   3台    │ [管理]│
│  笔记本电脑│设备 │  2台 │   5台    │⚠️[补货]│
│  白板     │ 设备 │ 10块 │   5块    │ [管理]│
│                                     │
│  [添加物资] [批量入库] [导出报表]     │
└─────────────────────────────────────┘

实施效果

定量效果

指标上线前上线后提升
报修平均响应时间2 小时15 分钟⬇️ 87.5%
教室利用率62%78%⬆️ 25.8%
预约冲突率~15%<2%⬇️ 86.7%
物资申请审批时间3-5 天1-2 天⬇️ 60%
学生满意度3.5/5.04.5/5.0⬆️ 28.6%

定性效果

学生反馈:

"以前报修要打电话,经常占线,现在微信小程序就能报修,还能看到维修工什么时候来,太方便了。" —— 张同学

教师反馈:

"教室预约以前用 Excel,经常冲突,现在系统自动检测冲突,还能看到实时可用时段,太省心了。" —— 李老师

后勤处反馈:

"最大的变化是数据透明了,报修响应时间、教室使用率、物资库存都有准确的数据,管理更有依据了。" —— 王主任(后勤处)

技术实现

技术栈

后端:

  • Node.js + Express
  • MySQL 数据库
  • Redis 缓存
  • WebSocket 实时通信

前端:

  • 微信小程序(学生/教师端)
  • Vue 3 + Element Plus(PC 管理后台)

集成:

  • 微信公众号推送
  • 企业微信通知
  • 教务系统对接(可选)

核心代码片段

typescript
// 教室预约冲突检测服务
class ReservationService {
  async createReservation(data: CreateReservationDto): Promise<Reservation> {
    // 1. 检查冲突
    const conflictResult = await this.checkConflict(
      data.resourceId,
      data.startTime,
      data.endTime
    );
    
    if (!conflictResult.canReserve) {
      throw new ConflictException('预约时间冲突', conflictResult);
    }
    
    // 2. 检查预约限制
    const canReserve = await this.checkDailyLimit(
      data.userId,
      data.startTime
    );
    
    if (!canReserve) {
      throw new BadRequestException('已达到每日预约上限');
    }
    
    // 3. 创建预约
    const reservation = await this.reservationRepository.create({
      ...data,
      status: 'reserved',
      needApproval: await this.checkNeedApproval(data.resourceId)
    });
    
    // 4. 如果需要审批,发起审批流程
    if (reservation.needApproval) {
      await this.startApprovalFlow(reservation.id);
    }
    
    // 5. 通知用户
    await this.notifyUser(data.userId, {
      type: 'RESERVATION_CREATED',
      reservationId: reservation.id
    });
    
    return reservation;
  }
  
  private async checkConflict(
    resourceId: string,
    startTime: Date,
    endTime: Date
  ): Promise<ConflictResult> {
    // 获取该资源的所有有效预约
    const reservations = await this.reservationRepository.find({
      resourceId,
      status: ['reserved', 'in-use'],
      $or: [
        {
          startTime: { $lte: endTime },
          endTime: { $gte: startTime }
        }
      ]
    });
    
    // 检查时间重叠
    const timeConflicts = reservations.filter(r =>
      this.isTimeOverlap(startTime, endTime, r.startTime, r.endTime)
    );
    
    // 检查时间间隔
    const intervalConflicts = [];
    
    // 检查与前一个预约的间隔
    const previous = reservations
      .filter(r => r.endTime <= startTime)
      .sort((a, b) => b.endTime.getTime() - a.endTime.getTime())[0];
    
    if (previous && !this.hasEnoughInterval(previous.endTime, startTime)) {
      intervalConflicts.push({
        type: 'BEFORE',
        reservation: previous
      });
    }
    
    return {
      hasConflict: timeConflicts.length > 0 || intervalConflicts.length > 0,
      timeConflicts,
      intervalConflicts,
      canReserve: timeConflicts.length === 0 && intervalConflicts.length === 0
    };
  }
}

扩展应用

这个场景的逻辑已经被复用到以下场景:

  1. 企业会议室预约 - 办公会议室预约管理
  2. 设备预约系统 - 实验室设备、教学设备预约
  3. 场地预约系统 - 运动场地、活动场地预约

查看完整系统

本场景是独立的"校园后勤服务平台"。

系统演示

如需查看系统演示或了解部署方案,请 联系我们 →


相关链接

基于 AI 辅助开发,快速、灵活、可靠