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

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

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 小时前
计算机毕业设计:基于Python的二手车数据分析可视化系统 Flask框架 可视化 时间序列预测算法 逻辑回归 requests 爬虫 大数据(建议收藏)✅
大数据·hadoop·python·算法·数据分析·flask·课程设计
CDA数据分析师干货分享3 小时前
统计学本科生CDA数据分析师二级备考经验分享
大数据·人工智能·经验分享·数据分析·cda证书·cda数据分析师
Datacarts14 小时前
洞察电商数据:淘宝商品评论API数据分析
数据挖掘·数据分析
BioRunYiXue17 小时前
Nature Methods:CellVoyager 自主 AI 智能体开启生物数据分析新时代
大数据·开发语言·前端·javascript·人工智能·数据挖掘·数据分析
城数派17 小时前
2025年全国地铁线路及站点数据(ShapeFile文件/表格文件)
arcgis·信息可视化·数据分析
caiyangyang00719 小时前
AI 赋能企业报表新范式:SpringReport + DeepSeek 大模型,让数据分析零门槛
人工智能·数据挖掘·数据分析
Ujimatsu19 小时前
数据分析相关面试题-Python部分
大数据·python·数据分析
Ujimatsu20 小时前
数据分析相关面试题-A/B 测试 & 统计学部分
算法·机器学习·数据分析
码界筑梦坊20 小时前
329-基于Python的交通流量数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计