0
动车组总数
0
交路记录数
-
调度器状态
数据库空间统计
表名记录数占用空间
-
业务 API (emu-business)
PID: -
-
管理 API (emu-admin)
PID: -
-
健康检查 (crontab)
检查间隔:2 分钟
-
HTTP 健康
实时检测
API 服务控制
API 监控配置
业务 API 服务:emu-business.service
健康检查:healthcheck.sh (crontab 每 2 分钟)
自动重启:systemd Restart=always (RestartSec=10)
日志查看:journalctl -u emu-business -f
开机自启:✅ 已启用 (systemd)
时间范围: 上次更新:-
自定义日期: 至
0
总请求数
0
成功请求
0
错误请求
0ms
平均响应时间
0ms
P95 响应时间
-
状态码分布
请求趋势
暂无趋势数据
API 请求日志查询
访问 IP 统计(Top 20)
IP 地址 请求次数 访问端点数 主要访问端点
API 端点统计(Top 20)
API 端点 请求次数 访问 IP 数 错误次数
最近请求日志
时间 IP 地址 方法 端点 状态码 响应时间 (ms) 级别
0
动车组总数
0
出勤数量
0
未出勤数量
0%
出勤率
出勤统计概览
局级单位 动车组总数 出勤数量 未出勤数量 出勤率 操作
点击查询按钮加载数据
详细信息
未出勤动车组清单
动车组编号 所属局 所属段 停放所
点击刷新按钮加载清单
缓存配置详情
接口端点缓存时间
清除缓存

选择要清除的缓存范围:



缓存策略说明
后端: SimpleCache(内存缓存)
默认超时: 5 分钟
最大条目数: 500 条
淘汰策略: 达到上限时自动淘汰最旧条目,过期条目在下次访问时懒惰删除
-
运行状态
-
进程 ID
-
下次查询
调度器控制
定时配置

时段频率配置

时段时间范围频率(分钟)操作
晚间平峰 20:00-23:00
深夜时段 23:00-01:00
凌晨低峰 01:00-05:00
早高峰 05:00-09:00
上午平峰 09:00-14:00
下午高峰 14:00-20:00

注意:修改定时配置后需要重启调度器才能生效

最近日志
数据导出

选择要导出的数据表和格式:

数据导入

支持 JSON 和 CSV 格式:



数据库统计
表名记录数占用空间
动车组数据管理 (emu_data)
动车组编号型号车号子型号 局段所定员 标准组更新时间操作
点击查询按钮加载数据
交路记录管理 (emu_trip)
ID动车组编号车次号始发站终到站 出发时间到达时间重复标识车厢号操作
点击查询按钮加载数据
交路进度管理 (emu_trip_progress)
动车组编号通过码局段所 标准组车次更新时间操作
点击查询按钮加载数据
车站大屏数据 (station_bigscreen)
车站展示车次本站车次始发站终到站 到达时刻开车时刻状态晚点(分)合并类型 站台检票口候车区出站口通道 接续车次全局车次号更新时间
点击查询按钮加载数据
车次详细数据

说明:查看外部服务器上报的车次详细数据,支持搜索和分页。

train_no 车次号 始发站 终到站 日期 车型 客运段 站点数 更新时间 操作
加载中...
列车时刻数据

说明:查看从12306获取的列车时刻数据,支持搜索和分页。

train_no 车次号 完整车次 始发站 终到站 发时 到时 里程(km) 隔日 类型 查询日期 操作
加载中...
-
里程记录总数
-
覆盖车次数
-
覆盖车站数
-
最近刷新日 / 当日行数
-
最后更新时间 / 残留行数
车次停站计价里程

说明:数据来自 12306 逐站查询的累计计价里程(distance = 自本次车次始发站起算),相邻两站之差即区间计价里程。表按 (train_no, station_telecode) 主键原地覆盖,无历史快照:「查询日期」是最后一次刷到该停站的日期,调图改停的站最长残留 30 天(下方灰标)。停站数偏少属正常——采集范围随每晚 02:30 的车站扫描逐日增长。「速度」「站台」为逐站取值:始发站那一行的速度接口回 0,已按空处理。

车次号 train_no 始发站 终到站 已采集停站 累计里程区间(km) 全程历时 最后刷新 操作
点击搜索按钮加载数据
列车交路数据

说明:查看列车交路序列数据,支持搜索和分页。

交路ID 车次序列 交路详情 铁路局 客运段 担当段 动车所 车次数 周期 查询日期 操作
加载中...
季度数据管理

说明:查看季度调整数据,支持按车次、季度、日期搜索。

列车编号 车次号 季度 查询日期 站点数 更新时间 操作
加载中...
V93 修正数据查看

说明:查看 V93 修正交路数据,支持搜索和分页。

ID 原交路 ID 原始序列 车次数 周期 修正类型 服务类型 置信度 查询日期 操作
修正序列 铁路局 客运段 担当段 动车所
加载中...
清理交路数据

说明:清理指定天数前的旧交路数据(emu_trip 表),可用于释放数据库空间。
建议:先导出 CSV 备份再清理,以防数据丢失。

天前
清理日志文件

说明:清理指定天数前的旧日志文件(.log 文件),可用于释放磁盘空间。

天前
0
已检查总数
0
不匹配数量
0
自动修正数量
脚本控制

立即执行比对

手动触发配属信息比对脚本,检查当前所有动车组的配属信息一致性

定时执行配置

选择每天自动执行的时间
未配置

配属验证(基于标准数据)

根据标准数据表验证动车组配属信息。以"所"字段为主,验证对应的"局"和"段"是否正确。 支持修正的局:北京局、成都局、广州局、哈尔滨局、呼和浩特局、济南局、昆明局、兰州局、 老中铁路公司、南昌局、南宁局、青藏公司、上海局、沈阳局、太原局、乌鲁木齐局、武汉局、西安局、郑州局。

自动修正配置(基于交路比对)

当发现动车组配属信息不一致时,系统将自动修正配属所数据,并同步更新相关字段。

低于此值不自动修正
低于此值不自动修正
低于此值才自动修正
最高频配属所需达到的频率 (%)
至少需要多少组参考数据
自动修正触发条件(需同时满足):
• 局一致率 ≥ 100% 且 段一致率 ≥ 100%
• 所一致率 < 60%
• 最高频配属所出现频率 ≥ 80%
• 参考组数 ≥ 3 组
运行状态: 未运行
最近日志
0
已检查总数
0
不匹配数量
0
自动修正数量
比对结果列表
筛选条件(对当前查询结果进行筛选)
操作 编号 配属局 段 所 参考局 段 所 最新 所频率 一致率局 段 所率 组数 修正 局 段 所 生成时间
LCR 动车组管理
动车组编号定员所属公司管理部门停放地点担当交路重连标志状态操作
点击刷新按钮加载列表
手动修改配属

通过三级下拉框手动修改动车组配属信息。修改所时会自动执行四步操作:更新 former_bureau、更新 source_info、更新 station、清理重复内容。

交路表查询 (V3)
总交路数
-
平均车次
-
循环天数
-
铁路局分布
-
数据版本
-
ID (首车次-日期) 车次数 首车次→尾车次 循环天数 铁路局 客运段 交路担当 存放站 数据版本
点击查询按钮加载数据
LLT 交路数据管理
当前版本
-
交路记录数
-
车次表数量
-
最后更新
-
历史版本保留,支持查询比对
ID 版本 车型 日期范围 原始交路
点击查询按钮加载数据
LCR 交路管理
交路列表
LCR 数据同步

定时任务:每日 23:40 自动执行

API 版本号配置
同步日志
同步日期类型车次数成功失败耗时状态时间
点击刷新按钮加载日志
路网图模型总览 (rail schema)
节点 = rail.endpoint(线路接入某站某端口);边 = rail.section(区间,权=gap_km)∪ rail.cross_permission(站内通行,权=0)。旧 railway schema 已于 2026-10-18 下线(SERVER_OVERVIEW §342),rail 图模型为唯一真源。
线路声明全长对账 (v_line_length_check)
数据质量提示 (v_data_quality)
区间边质检 (rail.section) GET /rail/sections/list | POST/PUT/DELETE /rail/sections[/by-name]
补边 / 删边会先预演再确认;改权值保存即写。只有相邻两站才允许手插边,非相邻区间应由改站序 +「重建派生层」生成;人工权值与里程差不符时下一次重建会覆盖回里程差。
section_id线路前站(序)后站(序)gap_km声明 km一致备注操作
点击查询按钮加载数据
线路声明全长逐条质检 (rail.v_line_length_check) GET /rail/quality/line-length
line_id线路声明全长kmΣ区间km差值km状态
点击查询按钮加载数据
业务侧图缓存版本戳 GET /rail/cache/version
加载中……
每次 rail 写提交后 bump() 递增此戳;emu-business 的两个 sync worker 各自每 2s 节流懒校验,落后即重建进程内图单例并清 _rail_sp_cache / _rail_special_sib_memo。Redis 不可用时 fail-open,退回 worker 自然回收(max_requests=1000)。
线路管理 (rail.line)
线路名称代码起点站终点站声明里程计算里程站点数区间数端点数接算站操作
点击查询按钮加载数据
线名别名 (rail.line_name_alias) GET /rail/aliases/list | POST/PUT/DELETE /rail/aliases[/<id>]
别名 CRUD 后端 default=False ⇒ 弹窗内保存即写;同名别名已存在=更新,改挂他线需 force,别名不得撞真实线名。
alias_id别名所属线路已确认备注更新时间操作
点击查询按钮加载数据
车站管理 (rail.station)
车站名称电报码TMIS路局行政区类型接算站线路数端点数许可数操作
点击查询按钮加载数据
节点端点 (rail.endpoint) GET /rail/endpoints/list(派生层,只读;由重建派生层生成)
端口是线路接入车站的方向口,端点=(车站, 端口, 线路)三元组,全部由站序 + 里程派生;零引用的 START-B / END-A 口属建线既有语义,不是脏数据。
endpoint_id站名端口线路站序角色里程km来源备注
点击查询按钮加载数据
站序出现登记 (rail.logical_station) GET /rail/line-stations/list(只读;移序 / 删站 / 插站请到该线的拓扑弹窗内做)
逻辑站 = 「某线在某站的这一次停靠」,是站序 / 里程 / 区间边的载体;同名站可在一条线上出现多次(occurrence)。此表用来跨线查一个站被哪些线以什么里程挂过。
ls_id线路站序出现号站名里程km角色接算线路操作
点击查询按钮加载数据
站内通行许可 (rail.cross_permission)
跨线连通必须由本表显式枚举,不得由端口字母反推。导入默认产生大量 trans_type=UNKNOWN 的候选,需在此核定直通 / 折角。修改后 source 自动置为 MANUAL。
车站来自线路端口里程前往线路端口里程通行类型允许来源备注操作
点击查询按钮加载数据
里程计算 — 两种口径
票价最短径路(图上多源 Dijkstra)
车次运行里程(逐停站优先共用线路)
未决数据 (rail.unmatched_record)
ID类别工作表行号原始数据备注状态操作
点击查询按钮加载数据
线路添加 / 导入(rail 图模型)
告诫:运价里程表 xlsx 全量重导(import_rail_mileage.py)会 TRUNCATE 全部 rail 表,本页添加/导入的线路将随之丢失,重导前请先导出补录。批量导入遇到同名线路直接跳过(不覆盖);缺失车站将自动建档。
CSV 批量导入
手工添加一条线路
站序站名 *电报码里程km *区间km接算站接算线路(分号分隔)备注
操作审计 (rail.op_log) GET /rail/ops/list | GET /rail/ops/<id> | POST /rail/ops/<id>/undo
op_id时间操作人动作目标行数快照重放状态操作
点击查询按钮加载数据
撤销白名单:RENAME / MERGE / DELETE_LINE / REBUILD / INSERT·DELETE·MOVE·BATCH_LINE_STATION。撤销按「清范围现值 + 原像插回」实现,自增 id 也回到原值,代价是丢弃该 op 之后对同一批行的改动 ⇒ 只应紧跟在误操作之后使用。 单行快照动作(改线属性 / 改区间边 / 别名 / 通行许可)不在白名单内,只能点「详情」看原像后手工回滚。