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

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

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
相关推荐
搞科研的小刘选手16 小时前
【西安交通大学主办】第六届人工智能、自动化与高性能计算国际会议 (AIAHPC 2026)
网络·人工智能·机器学习·数据挖掘·自动化·云计算·并行式
城事漫游Molly18 小时前
质性研究AI工作流(二):编码工作流 SOP
人工智能·数据分析·ai for science·定性研究·定性编码·科研工作流
电商API_1800790524718 小时前
技术分享:如何实现批量自动化获取淘宝商品视频主图API
运维·爬虫·数据挖掘·自动化
电商API_1800790524718 小时前
高可用采集架构:分布式定时抓取淘宝商品详情项目设计
大数据·分布式·架构·数据挖掘·网络爬虫
一晌小贪欢19 小时前
第19节:地理空间分析——使用 Geopandas 绘制热力地图
开发语言·python·数据分析·pandas·数据可视化
大霸王龙19 小时前
机器人维修工程师
人工智能·数据挖掘·机器人
李可以量化19 小时前
QMT 实战:自定义绘制专属 K 线(下篇)—— 国产库与高性能库全解析
python·信息可视化·数据分析·量化·qmt·ptrade
YangYang9YangYan20 小时前
2026会计人员学数据分析对个人能力的提升
数据挖掘·数据分析
YangYang9YangYan21 小时前
2026运营人员学数据分析的价值
数据挖掘·数据分析
babe小鑫21 小时前
2026求职高薪行业学数据分析的价值
数据挖掘·数据分析