城市公交运行客流数据分析与可视化大屏监控系统

《城市公交运行客流数据分析与可视化大屏监控系统》项目说明书(毕设版)

1. 项目概述

本系统面向"城市公交运行"场景,围绕线路、站点、车辆、驾驶员等基础数据,提供客流数据采集(模拟/Excel导入)、定时清洗与汇总、智能统计分析与可视化大屏展示能力,满足本科软件工程毕设的"可运行、可演示、可答辩"要求。

核心特点:

  • 前后端分离:后端提供 RESTful API;前端提供管理端与大屏
  • 数据分析逻辑:使用 Java 原生统计计算(不引入大数据框架)
  • 定时任务:Quartz 每日凌晨清洗/汇总,生成统计报表表

2. 技术栈

后端(固定):

  • Java 17
  • SpringBoot 2.7.x + SpringMVC
  • MyBatis-Plus
  • MySQL 8.0 + Redis
  • Quartz(定时清洗/汇总)
  • EasyExcel(Excel导入导出)

前端(固定):

  • Vue2 + Element UI + Axios
  • ECharts(大屏图表)
  • Nginx(静态资源部署 + /api 反向代理)

3. 系统功能结构

3.1 功能模块

  • 基础数据管理:线路/站点/车辆/驾驶员 CRUD,Excel批量导入
  • 客流数据采集:模拟生成、Excel历史数据导入、客流记录查询
  • 智能数据分析:
    • 分时段客流(早高峰/晚高峰/平峰)
    • 线路/站点日均客流热度
    • 换乘站聚集度(占比)
    • 空载/满载车次统计
    • 周/月趋势环比、同比
  • 可视化大屏:
    • 线路分布(站点坐标折线)
    • 站点实时热力 TopN
    • 7日客流走势
    • 线路峰值客流对比
    • 高峰时段占比
    • 车辆在线与发车频次看板
  • 权限管理:管理员登录、角色/权限分级、操作日志、数据备份导出

3.2 业务流程图(Mermaid)

通过
拒绝
登录
权限校验
基础数据维护
客流采集
模拟生成
Excel导入
原始客流入库
Quartz每日清洗/汇总
统计报表表
分析接口
管理端图表
大屏可视化

4. 数据库设计(ER图)

建表脚本:

ER 图(Mermaid):
start/end
contains
belongs
has
generates
occurs
by
has
runs
status
agg
agg
owns
grants
grants
belongs
writes
BUS_STATION
BUS_LINE
BUS_LINE_STATION
BUS_VEHICLE
PASSENGER_FLOW_RECORD
TRIP_RECORD
VEHICLE_STATUS
FLOW_DAY_LINE_AGG
FLOW_DAY_STATION_AGG
SYS_USER
SYS_USER_ROLE
SYS_ROLE
SYS_ROLE_PERMISSION
SYS_PERMISSION
SYS_OPERATION_LOG

5. 关键实现说明

5.1 统一返回与异常

  • Result:统一返回结构(code/message/data)
  • BizException:业务异常(带code)
  • GlobalExceptionHandler:统一异常处理

对应代码:

5.2 权限与登录

  • Spring Security + JWT
  • Token 写入 Redis(支持失效/退出)
  • Role/Permission 通过多表关联查询

对应代码:

5.3 操作日志

  • MVC 拦截器记录接口访问(排除 /api/auth)

对应代码:

5.4 数据分析(Java原生统计)

以"分时段统计"为例:

  1. 查询指定日期范围内原始客流记录
  2. 按 occurTime.hour 分桶
  3. 聚合得到早高峰/晚高峰/平峰总和

对应代码:

5.5 Quartz 每日清洗与汇总

执行内容:

  • 清洗:删除 occurTime 为空、board/alight 为负的异常数据
  • 汇总:按线路/站点聚合昨日客流,生成日统计表(峰值按"每小时汇总的最大值"计算)

对应代码:

5.6 大屏展示

大屏接口为公开接口 /api/screen/**,主要用于:

  • 线路分布:返回线路的站点坐标序列
  • 热力:返回站点TopN客流
  • 7日:返回城市总客流的日期序列
  • 看板:返回车辆在线数与近1小时发车次数

前端静态版入口:

  • frontend_static/admin.html
  • frontend_static/screen.html

6. 项目目录结构

复制代码
bus_data
├─ backend               后端 SpringBoot
├─ frontend              Vue2 源码版(可用于二次开发)
├─ frontend_static       免构建静态版(Nginx 直接部署)
├─ sql                   MySQL 脚本
└─ docs                  文档(接口/部署/说明书)

7. 演示建议(答辩路线)

  1. 导入数据库脚本与初始化数据
  2. 启动后端,管理端登录(admin/admin123)
  3. 进入"客流采集"一键模拟生成 7 天数据
  4. 打开大屏:观察 7 日走势、线路峰值、站点热力、车辆看板
  5. 展示"分析"页:分时段/热度/趋势
  6. 展示权限与日志:用户管理、操作日志分页查询、数据备份导出 ZIP
相关推荐
饼干哥哥2 天前
开源Skills|搭建亚马逊动态关键词库系统,每天抓SSS级机会词
人工智能·深度学习·数据分析
倔强的石头_3 天前
企业工商数据源站点:无验证无拦截,批量获取工商数据完整方案
数据分析
hboot9 天前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
王小王-12311 天前
基于 Hive 的网易云音乐数据分析及可视化系统
hive·hadoop·数据分析·音乐数据分析·网易云音乐分析·hive音乐分析·hadoop网易云
Database_Cool_11 天前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
YangYang9YangYan11 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
有Li11 天前
PTCMIL:基于提示 token 聚类的全切片图像多实例学习分析文献速递/多模态医学影像最新进展
论文阅读·学习·数据挖掘·聚类·文献·医学生
数睿数据无代码开发11 天前
打破数据孤岛:深度解析 smardaten 数据连接器核心功能
数据挖掘·无代码
砚底藏山河11 天前
沪深A股:如何获取基金持股数据
java·python·数据分析·maven
jarreyer11 天前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel