# 车辆数据中台 07-17 会议待办与 Goal 清单

更新时间：2026-07-17

最新会议依据：`07-17 车辆数据中台优化.txt`

来源校验：

- 原文件：`/Users/lingniu/Library/Mobile Documents/com~apple~CloudDocs/rsync/07-17 车辆数据中台优化.txt`
- 文件大小：12,418 字节，共 86 行
- SHA-256：`65759bb62995b4a09c10124de85c139bfabe4bdc82356e50bee4a2539e36f785`

当前项目：`vehicle-data-platform`

## 0. 07-17 Goal 验收总表

本节覆盖 07-17 会议新增要求；后文保留 0716 的授权、客户 Scope、导出审计和运维基线，二者共同构成当前 Goal。

| 编号 | 会议要求 | 状态 | 已交付和生产证据 |
| --- | --- | --- | --- |
| G17-01 | 全国地图按省展示简短全名和车辆总数，不展示省级在线数 | 已完成 | 省/市/自治区后缀统一压缩；省级标记只保留完整短名称和总车辆数，放大后继续使用现有空间聚合。 |
| G17-02 | 监控详情按“最新上报、实时状态、车辆信息”排序，并说明协议和里程语义 | 已完成 | 详情顺序已调整；显示接收时间、坐标、协议和来源；JT808 明确显示“GPS 总里程”，GB32960/YUTONG 显示“仪表盘总里程”。 |
| G17-03 | GB32960 关键燃料电池、发动机、电池等字段进入实时详情 | 已完成 | 指标目录扩展至 27 个核心指标；GB32960 最新遥测按 20 秒受控轮询，重点展示燃料电池电压/电流、氢耗、最高氢浓度/压力/温度、发动机转速、总电压/电流及极值。 |
| G17-04 | 单车详情按真实协议切页，三类协议字段不能互相覆盖 | 已完成 | 仅展示车辆实际存在的协议页签；同一业务指标按协议独立保留；字段按车辆、位置、电池、燃料电池、电机、告警、质量和扩展分类。 |
| G17-05 | 三类协议字段提供中文目录，统一支撑实时、历史、导出、图表和告警 | 已完成 | `metric_definition + metric_source_mapping` 成为统一语义目录；RAW 中文元数据覆盖三类协议并带单位推断；历史字段选择、实时卡片和告警规则读取同一目录。 |
| G17-06 | 沪A03561F 2026-07-16 自动轨迹应选择完整 JT808 轨迹 | 已完成 | 自动来源改为逐协议分析有效移动、范围、距离和静止占比，不再按静态点数误选；生产验收为 JT808、有效点 4,937、距离约 476.3 km。 |
| G17-07 | 轨迹查询栏收起后，在同一侧恢复展开 | 已完成 | 展开入口移动到查询栏原侧边缘，避免“右侧按钮打开左侧面板”的反直觉交互。 |
| G17-08 | 告警配置既简单又覆盖协议字段；支持离线 10 小时和氢气浓度场景 | 已完成 | 新增“离线超过 10 小时”和“最高氢浓度”快捷模板；离线模板自动配置 36,000 秒、恢复和重复提醒；氢浓度按协议参考以百分比配置，强制管理员按车型/厂家安全标准填写阈值，不写死未经确认的安全值。 |
| G17-09 | 真实车辆品牌/车型来自 OneOS，不能把 T-Box/GPS 厂家当车辆品牌 | 已完成 | 新增独立 `vehicle_profile.brand_name`；导入 OneOS 1,024 台车辆主档，保留设备提供方为独立来源属性；8 条 OneOS VIN 校验位差异仅在车牌唯一匹配后映射到平台规范 VIN。 |
| G17-10 | 消化 808 品牌映射；同 IP 未知来源需有证据后归类 | 已完成 | 101 条缺少提供方记录已按文件和稳定来源证据补齐：G7s 56、东方北斗 36、信达 7、广安北斗 2；`58.33.87.196` 为赛格证据，`115.159.85.149` 主要为 G7，未把同 IP 未知车辆无证据批量误判为赛格。 |
| G17-11 | OneOS 后续通过正式 API 提供车辆和业务关联数据 | 外部依赖 | 当前使用 2026-07-17 Excel 快照完成主档导入；已保留版本化 Profile/Scope 同步接口和来源审计，待 OneOS 提供内部 API、服务令牌、签名和网络白名单后切换。 |

### 0.1 三类协议语义边界

| 协议 | 里程语义 | 主要字段族 | 系统用途 |
| --- | --- | --- | --- |
| JT808 | GPS 总里程，不能标成仪表盘里程 | 定位、速度、方向、海拔、GNSS、信号、附加里程/油量、告警位 | 地图、轨迹、GPS 里程、在线与位置告警 |
| GB32960 | 仪表盘总里程 | 整车、驱动电机、燃料电池、发动机、极值、报警、储能子系统及广东氢能扩展 | 氢能数字孪生、历史字段查询、仪表里程和安全告警 |
| YUTONG_MQTT | 仪表盘总里程 | 宇通车况、位置、SOC、电压电流、里程和厂家扩展 | 宇通车辆实时状态、历史和仪表里程 |

任何融合推荐只决定默认展示来源，不删除或覆盖其他协议的原始证据。缺失字段显示 `-`；协议未提供的字段不得通过其他协议旧快照伪装成当前上报值。

### 0.2 生产发布与验证

- 平台发布：`protocol-field-alert-mobile-202607170141`（API 基线来自 `protocol-field-alert-202607170132`）。
- 网关发布：`go-native-hydrogen-ppm-202607170128`。
- OneOS 主档导入：1,024 台，冲突 0、缺失 0。
- 生产最新遥测抽样：同车同时保留 GB32960 121 项、JT808 38 项；燃料电池字段 23 项。
- 网关同时保留 `gb32960.fuel_cell.max_hydrogen_concentration_ppm` 原始计数与业务展示字段 `gb32960.fuel_cell.max_hydrogen_concentration_percent`；页面、图表和告警使用百分比。
- 平台 API 全量 Go 测试通过；网关全量 Go 测试通过；监控/单车/告警定向前端 30 项测试和生产构建通过。
- 全量前端现有 262 项中仅剩 1 项与当前日期推进相关的里程测试夹具失败，实际页面和本轮功能无回归。

### 0.3 剩余运维项（不阻塞 07-17 功能交付）

1. OneOS 正式 API 尚未提供；Excel 只是带来源版本的可审计快照，不应成为长期同步方式。
2. 氢气浓度告警阈值必须由车型、厂家或安全责任人确认后启用，平台不替业务方猜测安全阈值。
3. JT808 仍有 1 个近期终端手机号未绑定 VIN；另有 G7 终端标识覆盖率和东方北斗来源显示名不一致的诊断项，属于来源主数据治理，不影响本轮已确认的提供方覆盖。
4. 统计消费者仍在追赶历史 Kafka 积压；网关发布仅豁免了与本次解析无关的旧积压总量和端到端陈旧延迟，服务就绪、实时写入、解析字段、队列错误及契约门禁继续执行。

## 1. 范围与执行原则

本清单以 2026-07-16 最新会议纪要为准，替代此前根据 0715 及更早纪要整理的版本。待办已经结合当前代码、数据库迁移和生产能力去重。

不纳入本 Goal：

- 车辆锁车、控车及其他远程控制；
- 直接修改 `ln-asset-management` 或 OneOS 现有业务逻辑；
- 短信、邮件、企微等外部告警通道正式上线；
- 原生 App 或小程序建设；
- 伪造无法取得的历史轨迹或里程。

执行原则：

- 客户主路径以车辆和车牌为中心；VIN 作为辅助标识和内部关联键。
- 客户默认查看推荐融合结果；内部运维可以展开全部来源证据。
- OneOS 后续提供业务接口，车辆数据中台只调用，不直接改其代码或业务库。
- 本轮先完成可交付页面和客户演示，再推进数据差异自查与专业运维能力。
- 缺失、未知或协议不提供的字段显示 `-`，不得用 `0` 冒充真实数据。

状态定义：

- `已完成`：代码、部署和基础验证均已完成。
- `待验收`：主要能力已上线，仍需指定业务场景验收。
- `进行中`：已有基础能力，但尚未达到会议验收口径。
- `待开发`：当前尚无完整实现。
- `暂缓`：会议明确不是本轮重点，不阻塞当前 Goal 首批交付。

## 2. 会议结论索引

| 会议时间 | 明确结论 | 对应待办 |
| --- | --- | --- |
| 00:00–00:05 | 每个客户车辆授权需要启用/停用日期、历次开放记录、操作人员；后续补部门和负责人 | P0-01 |
| 00:05–00:12 | 接入品牌和 JT808 数据仍需校准；告警配置复杂；需要把后台来源选举和配置做成专业运维页面 | P1-01、P1-02、D-01 |
| 00:12–00:24 | 历史数据应支持配置全部可用字段、质量原因、导出；导出需绑定时间和账号/角色；客户页车牌优先 | P0-04、P0-05 |
| 00:24–00:41 | 全局监控是首期核心；缺失 SOC 显示 `-`；只展示真实来源；无位置车辆也要进入列表；位置/里程可展开全部来源 | P0-02、P0-03 |
| 00:40–00:41 | 全国视角可按省聚合并显示数量；移动端继续优化但分阶段推进 | P1-03、D-02 |
| 00:41–00:48 | 全局监控是功能中枢；进入车辆、轨迹、历史后要统一返回原车辆上下文；单车页动态信息在静态档案之前 | P0-06、P0-07 |
| 00:48–00:49 | OneOS 由其团队提供接口，数据中台调用；不直接修改 OneOS | P1-04 |
| 00:49–00:53 | 高频数据差异必须建立自动自查和持续对账，不能长期依赖人工发现 | P1-05 |
| 00:43–00:44 | 32960 历史已有较长周期；G7 已导入 6 月 1 日至 7 月 15 日，更早数据按需求补齐 | D-03 |
| 00:24–00:25、00:52–00:53 | 先完成客户交付页面，向秦总、蒲总演示并开通账号 | P0-08 |

## 3. 当前已完成基线

以下能力不重复立项，只在对应待办中补齐会议要求：

| 编号 | 能力 | 当前结果 |
| --- | --- | --- |
| BASE-01 | 管理员/客户登录与 RBAC | 已支持本地管理员、客户账号、菜单权限、车辆 VIN Scope、会话撤销和认证审计 |
| BASE-02 | 客户四菜单 | 已支持全局监控、车辆查询、轨迹回放、里程查询的客户菜单配置 |
| BASE-03 | 多源车辆归并 | GB32960、JT808、YUTONG_MQTT 已按 VIN/车牌归并；JT808 同协议多终端已有后台选举基础 |
| BASE-04 | 全局监控 | 已有地图/列表、聚合、车牌、车辆搜索、选中车辆、平滑移动、地图详情和移动端适配 |
| BASE-05 | 历史与轨迹 | 已有位置历史、RAW 解析字段、轨迹回放、质量诊断和导出任务框架 |
| BASE-06 | 里程查询 | 已有多车、日期区间、每日里程、区间总里程、来源优先级、分页和 Excel 导出 |
| BASE-07 | 运维证据基础 | 接入管理、来源覆盖、数据质量、来源一致性和告警基础能力已存在 |
| BASE-08 | OneOS 只读投影 | 已有只读业务范围同步和接口契约分析，不修改 OneOS 业务逻辑 |

## 4. P0：客户交付前必须完成

### P0-01 客户车辆授权启停履历

状态：`已完成`

已上线结果（release `vehicle-grant-intervals-20260716180136`）：

- 账号管理按车辆维护启用时间和可选停用时间，车牌主显、VIN 辅显；管理员可展开查看历次开放区间、开通人、停用人和来源系统。
- 管理接口读取完整授权投影，不会因为授权尚未开始或已设置结束时间而把车辆从编辑页隐藏；客户会话仍只装载当前时间有效的授权。
- 保存时在同一数据库事务内同步 `platform_user_vehicle` 当前投影与对应的 `platform_user_vehicle_grant_history` 履历。日期修正不新建重复区间，移除车辆才关闭当前区间，再次分配会新建下一次区间。
- 后端会检测当前投影与最新履历的日期漂移；即使当前投影值未变化，一次保存也会修复履历分叉。生产原有“当前 2026-07-16、履历 2026-06-05”漂移已在不扩大客户 Scope 的前提下对齐，历史条数保持 1。
- 每次账号保存的认证审计记录操作人及逐车授权区间的变更前/变更后；启停时间格式、重复 VIN、停用早于启用等输入均失败关闭。
- 轨迹、位置历史和 RAW 继续从精确授权时刻裁剪；日里程继续从首个完整 `Asia/Shanghai` 自然日开始。授权日期变更最多经过 30 秒跨实例会话缓存生效，本实例立即失效。
- Go 全量测试、现行前端 49 个文件/254 项测试和 TypeScript/Vite 生产构建通过；ECS 三个服务均 active，授权投影/履历一致性生产验证通过。

目标：

- 一辆车可以在不同时间段授权给不同客户，也可以多次授权给同一客户。
- 记录每次启用时间、停用时间、客户账号、操作人、操作时间。
- 当前先支持管理员手工维护日期；后续 OneOS 接入后补部门、负责人、合同/项目等业务信息。
- 所有历史查询同时校验车辆和授权时间，不允许看到授权开始前的数据。

验收标准：

1. 账号管理中可查看每台授权车辆的当前状态和历次启停记录。
2. 保留未变更车辆原有启用时间，重新授权产生新的授权区间，不能覆盖旧历史。
3. 轨迹、历史位置、RAW、里程和导出均按授权有效期裁剪。
4. 客户 A 无法通过 VIN、车牌、URL、分页或导出访问客户 B 的车辆或历史。
5. 变更审计包含操作人、目标账号、车辆、变更前后、时间和结果。

运维边界：

- 把授权日期回溯到过去会扩大客户可见历史，必须由管理员在账号管理页面明确保存；不得只修改其中一张表。
- 若启用时间不是当天 00:00，日里程从下一完整自然日开始；轨迹、位置历史和 RAW 则可从精确启用时刻开始。

### P0-02 全局监控客户列表重构

状态：`已完成`

已上线结果（release `monitor-customer-list-20260716160618`）：

- 监控总体改为权威绑定车辆口径，生产共 1024 辆；728 辆有实时位置，296 辆暂无实时位置。
- 无位置授权车辆保留在列表并支持“无实时位置”筛选，但不会进入地图点、聚合、移动动画或逆地理编码。
- 列表增加推荐来源、总里程/今日里程、最后上报时间；Web 表格与移动卡片统一使用车牌主显、VIN 辅显。
- 后端显式返回位置、速度、SOC、总里程和今日里程可用性；JT808 不提供 SOC 时显示 `-`，不再把空值伪装为 `0%`。
- 地址仍由用户按需解析，坐标未变化时复用 6 小时前端缓存和 1 小时服务端缓存，并显示本次解析时间。
- ECS 真实数据预跑中，50 辆列表、296 辆无位置筛选、全量统计和全国地图分别约为 55ms、62ms、393ms 和 59ms。
- 2026-07-16 最终复核时实时口径为 1,024 辆，其中 730 辆有位置、294 辆无位置；无位置筛选完整返回 294 辆。变化来自实时位置可用性，不改变主车辆总数。
- JT808 单来源生产样本明确返回 `socAvailable=false`；抽样页的 `sourceCount` 与真实 `protocols` 数组全部一致，推荐来源均属于该车真实协议集合。
- 生产桌面列表一次渲染 20 行，390×844 移动端一次挂载 20 个紧凑卡片；两种视图均无页面级横向溢出、告警、运行时异常或控制台错误。
- 页面初始化和实时刷新不调用逆地理接口；生产浏览器网络检查为 0 次，只有用户点击“解析位置”后才请求。前端相同坐标缓存 6 小时，服务端 LRU 缓存 1 小时并合并同坐标并发请求。

目标：

- 客户列表以车牌为主、VIN 为辅，突出当前动态状态。
- 默认列控制在：车牌、推荐来源、速度、总里程/当日里程、经纬度/位置、最后上报时间。
- SOC、氢气余量、压力等仅在真实来源提供时展示；不可用显示 `-`。
- 没有有效坐标的授权车辆仍出现在列表中，并可筛选“无实时位置”。
- 地理位置采用按需解析或受控缓存，不按每条上报调用高德逆地理 API。

验收标准：

1. 无位置车辆不会从车辆总数或列表中消失。
2. JT808 不提供 SOC 时页面显示 `-`，不会显示 `0%`。
3. 页面只显示车辆真实存在的数据来源，不生成空来源或错误来源。
4. 列表首屏紧凑，Web 和移动端均能快速看到足够车辆。
5. 地址结果带更新时间，缓存命中时不重复消耗高德配额。

### P0-03 位置与里程的多来源展开

状态：`已完成`

已上线结果（release `source-evidence-scope-20260716163402`）：

- 新增按车辆、日期读取全部位置与里程来源的受 Scope 保护接口；只有用户主动展开后才请求，不参与列表、地图初始化或定时车队刷新。
- 全局监控和单车详情均可点击坐标、总里程、当日里程，或使用“查看全部来源”按钮展开。
- 同一协议多终端独立展示来源平台、脱敏终端、协议内选中、当前推荐、启停、在线和质量状态。
- 位置卡片展示坐标、速度、总里程、SOC、设备时间和接收时间；里程卡片展示首末总里程、日里程、样本数和首末时间。
- 自动计算最大位置差、总里程差、当日里程差和上报时间差；展开只解释后台选举，不改变原始证据。
- 生产真实车辆 `沪A35898F` 验证可同时展示赛格和 G7s 两个 JT808 终端，并仅推荐其中一个；20 次接口请求中位约 26.6ms、P95 约 29.1ms。
- 终端手机号/设备号在服务端脱敏，响应不返回原始 `source_key`、来源 IP 或端点。
- 客户查询历史日期时继续执行车辆授权时间边界：授权首日/结束日不是完整自然日时不返回该日的来源里程证据。

目标：

- 客户默认看到系统推荐来源和融合结果。
- 点击车辆的当前位置、经纬度或里程，可展开该车所有真实来源。
- 同一协议存在多个终端时，显示具体提供方/终端来源、最新时间和值。
- 清楚标记当前推荐来源、备用来源、离线来源和差异值。
- 后台已有选举继续作为默认策略，但不隐藏专业运维所需证据。

验收标准：

1. 多源车辆可以一次看到 GB32960、各 JT808 终端和 YUTONG 的实际值。
2. 推荐来源与后台选举结果一致；来源切换不改变原始证据。
3. 位置差异、里程差异、上报时间差有明确说明。
4. 单来源车辆不展示无意义的空卡片。
5. 展开操作按需请求，不在列表初始化时为每辆车加载全部明细。

### P0-04 历史数据可配置字段与质量原因

状态：`已完成`

已上线结果（release `history-fields-quality-20260716164356`）：

- 位置、RAW 解析字段和日里程统一返回平台计算的质量等级与中文“质量原因”；坐标、速度、里程关系、解析状态、解析错误、设备/接收时间延迟和里程异常均有明确说明。
- RAW 字段目录从本次受控查询范围内已读取的数据发现，不再只扫描当前分页；生产 GB32960 实车查询可选择 123 个实际字段。
- 字段设置支持按中文名称、字段 key 和单位搜索、多选、全选及恢复默认；面板同时最多挂载 200 个选项，字段很多时通过搜索缩小范围，避免一次渲染造成卡顿。
- 当前字段选择统一驱动表格、详情、导出以及可绘图指标；隐藏速度或总里程后，趋势接口不再继续请求已隐藏指标。
- 起止时间合并为一个连续时间范围组件；车牌主显、VIN 辅显；无独立 RAW 帧的数据不再显示空“证据”占位。
- 查询仍限制最多 5 台车辆、单页 200 行、服务端本次字段发现最多 1,000 行；异步导出继续限制 31 天、32 指标和 100 万行。
- ECS 实车验证：位置历史 5 行均返回质量原因；GB32960 RAW 5 行发现 123 个字段并返回解析质量原因。各 20 次、每次 50 行请求中，位置历史中位约 6ms/P95 约 7ms，RAW 中位约 25ms/P95 约 30ms。
- 安装器同步支持在原子 Web 切换时替换新 API，并完整继承告警评估器、迁移和 OneOS 同步等现有运行文件，避免未来服务器重启后 release 缺少二进制。

目标：

- 历史查询不固定为少量字段，允许从服务器字段目录选择可用字段。
- 支持位置数据、RAW 解析字段和日里程的统一时间范围查询。
- 质量列由平台规则计算，并增加“质量原因/可能原因”。
- 客户界面去掉未实现或无意义的占位信息；车牌主显、VIN 辅显。
- 日期使用一个起止时间范围组件，不拆成两个割裂输入框。

验收标准：

1. 可搜索并多选当前协议/车辆实际存在的字段。
2. 表格、图表和导出使用同一字段选择及时间范围。
3. 异常记录展示具体原因，如字段缺失、坐标异常、重复点、漂移、延迟或来源切换。
4. 未实现的“证据”或空操作不出现在客户页面。
5. 大字段查询有数量、时间窗和行数限制，页面不会因一次请求卡死。

### P0-05 导出任务账号归属与审计

状态：`已完成`

已上线结果（release `export-owner-scope-20260716165737`）：

- 创建、列表和下载接口均使用当前认证主体；任务固化创建账号、显示名、角色/用户类型、认证来源、客户/租户、已授权 VIN、逐车时间范围和创建/完成时间。
- 客户和内部普通账号只能看到、下载自己的任务；管理员保留全局审计视角。旧版无 owner 的历史任务不会暴露给非管理员，猜测或复用其他任务 ID 统一按不存在处理。
- 客户创建任务时同步解析车牌/VIN 并校验车辆与历史时间授权；异步任务开始、每 5,000 行批次及下载前再次查询账号启用状态和车辆授权。账号停用、车辆撤权或授权区间变化后，未完成任务停止，已完成文件拒绝下载。
- 导出任务持久化保存 owner 与车辆时间 Scope；服务重启后继续按同一主体授权下载。排队或执行中的任务在重启后安全标记失败，不会以无主体状态恢复。
- CSV 增加导出账号、角色、客户、创建/生成时间、车辆 Scope、查询条件、字段/单位及质量原因；任务名和下载文件名包含业务时间及创建者，中文文件名通过 RFC 5987/URL 编码安全传递。
- Web 下载改为带 Bearer Token 的受控 Blob 请求，不再使用绕过请求头的直接 `<a>` 链接；客户历史页可创建自己的导出，列表展示创建者、车辆数和时间范围。
- 自动化覆盖客户 A/B 任务隔离、管理员审计、越权下载、撤权停止、持久化审计元数据和前端 Bearer 下载；本地后端全量测试及前端 241 项测试通过。
- ECS 真实车辆 `LNXNEGRR7SR318212` 在 `2026-07-14 00:00–06:00` 导出 1,274 行，`rowCount = processedRows = totalRows`；下载文件 215,212 字节，包含审计/Scope/质量元数据。伪造任务 ID 返回 404；API 重启前后 SHA-256 均为 `00a4b1a877364f048a06e8bf6d80828e0dacaddd2f946b39b6cd00cfb2e9013e`，且无 `.part` 残留。

目标：

- 导出任务绑定创建账号、角色、客户、车辆 Scope、查询时间范围和创建时间。
- 管理员可按权限查看任务；客户只能看到和下载自己的导出。
- 文件名和任务名称包含业务可读时间及创建者信息。

验收标准：

1. 导出列表显示创建时间、创建人/账号、角色、车辆数、数据类型、时间范围和状态。
2. 客户不能查看、猜测 ID 下载或复用其他客户的导出。
3. 账号停用或车辆授权撤销后，未完成任务停止，历史文件下载重新校验权限。
4. 服务重启后任务 owner 和 Scope 不丢失。
5. CSV/Excel 元数据中记录查询条件和生成时间，不泄露其他客户信息。

### P0-06 从全局监控进入子功能后保留车辆上下文

状态：`已完成`

已上线结果（release `monitor-context-continuity-20260716170911`）：

- 全局监控把地图/列表模式、车牌/VIN 搜索、协议和状态筛选、选中车辆、详情展开/收起、列表分页以及地图 Zoom/边界固化到当前 URL；刷新、浏览器前进/后退和返回页面均使用同一上下文。
- 从监控车辆详情进入单车详情、轨迹回放、历史数据和里程查询时，附带经过同源校验的 `monitorReturn`；外站地址、非 `/monitor` 地址和非法地图边界会被拒绝，不能形成开放重定向。
- 四个子页面仅在确实由全局监控进入时显示统一“返回全局监控”栏；直接从菜单进入不会出现误导入口。
- 轨迹、历史和里程页面在再次查询、重置或使用日期快捷项后继续保留返回上下文；单车详情进入轨迹/历史时也继续传递同一上下文。
- 地图首次恢复时直接使用保存的中心边界和 Zoom；存在已保存视窗时不会因为已选车辆再次强制缩放或抢夺用户地图操作。合法小数 Zoom 会保留到两位，不再退化为默认级别。
- 自动化覆盖上下文往返、安全校验、非法参数、直接菜单入口、四个子页面筛选保持、地图恢复及选车联动；全量前端 49 个文件、251 项测试和 TypeScript/Vite 生产构建通过。
- ECS 原子发布后，23 个当前资源与 58 个前三代兼容资源逐字节校验通过；三个服务均为 active，鉴权健康接口确认 production 数据模式和当前 release，六个 Web 路由及上下文资源烟测通过。

目标：

- 从全局监控进入车辆查询、轨迹回放、历史数据或里程查询时，保留车辆、地图中心、缩放级别、筛选条件和侧栏状态。
- 子页面使用统一“返回全局监控”入口，返回后仍选中原车辆。
- 避免以新页面或新标签破坏当前工作流。

验收标准：

1. 四个子功能都能返回原选中车辆。
2. 返回后地图中心、Zoom、列表筛选和详情展开状态可恢复。
3. 直接从菜单进入子功能时不显示误导性的返回上下文。
4. 浏览器前进/后退行为与页面返回按钮一致。

### P0-07 单车详情信息优先级调整

状态：`已完成`

已上线结果（release `vehicle-live-priority-20260716171441`）：

- 单车页面首屏改为“车辆身份 → 最新上报 → 来源证据 → 地图/事件/遥测 → 车辆主档”，固定档案不再排在动态数据之前；Web 与移动端使用同一 DOM 信息层级。
- 最新上报全宽展示速度、SOC、总里程、当日里程、推荐协议/位置来源、在线来源数、完整上报时间和当前经纬度；无效坐标不会进入单车地图或显示成真实位置。
- 速度、SOC、总里程和当日里程显式遵循后端 availability 标记，来源不提供时显示 `—`，即使底层兼容字段为 `0` 也不会冒充真实值。
- 地理位置采用单车按需解析：打开详情不会调用高德，点击后才读取；坐标变化时保留旧地址并提示“车辆已移动 · 更新地址”，避免跟随 10 秒实时轮询持续消耗 API。
- 轨迹、历史、里程和告警入口围绕当前车辆统一排列，并按当前账号菜单权限显示；前三个入口继续携带全局监控返回上下文。
- 自动化验证动态区在车辆主档之前、里程入口上下文、按需地址调用及缺失值展示；全量前端 49 个文件、252 项测试与生产构建通过。
- ECS 发布门禁验证 23 个当前资源与 60 个前三代兼容资源；真实车辆 `LNXNEGRR7SR318212` 的实时接口和单车路由烟测通过，三个服务均为 active，鉴权健康接口确认 production 数据模式和当前 release。

目标：

- 最新上报、当前位置、速度、SOC、总里程、数据时间和来源放在页面上部。
- 车辆基础档案、VIN、型号、公司等静态信息放在动态信息之后。
- 轨迹、历史、里程入口围绕当前车辆统一排列。

验收标准：

1. 用户打开单车后无需滚动即可看到最新动态状态。
2. 缺失动态字段显示 `-` 并说明来源不可用。
3. 静态档案不会挤占动态状态首屏。
4. Web 与移动端保持相同的信息层级。

### P0-08 客户账号与演示验收

状态：`进行中`

已完成准备：

- 演示门禁已随 release `customer-demo-gate-20260716172056` 进入 ECS 不可变发布目录；Python 3.6 编译、帮助入口、鉴权健康与三个服务状态烟测通过。
- 2026-07-16 20:04 生产只读复核确认当前共 2 个账号：管理员和 1 个既有客户账号；既有客户严格只有四个客户菜单并授权 1 辆车。尚无能明确对应秦总、蒲总的两个账号；未修改既有账号和车辆 Scope。
- 已筛选在线多来源、在线单来源、无位置、离线有位置四类真实演示样本，并验证三台有历史能力的车辆具备当天轨迹和近 7 天里程。
- 新增无明文密码落盘的客户演示门禁，可验证客户角色、严格四菜单、车辆集合、四类样本状态、越权 VIN 阻断、轨迹、里程和四个 SPA 路由；脚本及测试兼容 ECS Python 3.6.8。
- 已形成 `docs/customer-demo-acceptance.md`，记录授权时间边界、建议样本、演示顺序、成功证据和现场问题模板。

当前依赖：

- 会议纪要未给出两人的登录名/手机号、显示名称、初始密码交付方式、各自车辆 Scope，以及可选 OneOS/RuoYi 客户/租户映射。上述信息会直接改变真实客户数据可见范围，不能由开发侧猜测。
- 新授权的轨迹只能从实际授权时间开始；自然日里程从下一个完整授权日开始。不得为演示倒签授权起点。

目标：

- 为秦总、蒲总相关验收场景准备客户账号、车辆清单和四个客户菜单。
- 演示主线：全局监控选车 → 单车动态 → 轨迹 → 历史/字段 → 里程。

验收标准：

1. 使用非管理员客户账号完成全流程。
2. 只看到授权车辆和授权菜单。
3. 演示车辆包含单来源、多来源、无位置、离线四类样本。
4. 记录现场问题、责任人、优先级和是否阻塞首期交付。
5. 业务负责人确认首期可交付范围。

## 5. P1：客户演示后立即推进

### P1-01 专业运维多来源诊断页

状态：`已完成`

已上线结果（release `source-diagnosis-stable-20260716173740`）：

- 运维质量页新增“单车多来源诊断”工作台，支持车牌/VIN 模糊候选、20 辆一页分页和按需加载；没有选车时不读取来源明细，也不参与现有 15/30 秒全局健康轮询。
- 单车一次展示全部位置来源和同协议多终端，包含提供方、脱敏终端、协议、在线/质量、首次和最近上报、协议上报周期、累计样本、坐标、速度、总里程、协议内选中、融合推荐和中文选举原因。
- 推荐说明明确解释启用状态、质量、协议内选中、人工优先级，以及网关两分钟新鲜度、漂移冲突保护和连续有效样本；协议融合快照只读，不能被误当成独立终端策略。
- operator 可只读诊断，viewer 被拒绝，admin 才可调整真实独立来源的启停、1–1000 优先级和备注。服务端使用乐观版本；实际变更写入操作人、版本、前后启停/优先级/备注和时间。
- 前端只接收 SHA-256 形式的 `sourceRef`；原始 `source_key`、来源 IP 和未脱敏终端不出现在响应。保存后明确提示由车辆下一次有效上报触发网关重新选举，未修改网关原有选举 SQL。
- 迁移 `015_vehicle_source_policy_audit.sql` 已在生产应用，建立平台自有版本和不可变审计表；发布安装器会把新增编号迁移带入每个不可变 release。
- Go 全量测试、现行前端 49 个文件/253 项测试、TypeScript/Vite 构建、安装器测试均通过。旧版非生产入口测试仍有 51 个既有 `fetch(url, undefined)` 断言失败，与当前统一 `AbortSignal` 请求实现不一致，不作为 V2 发布门禁。
- ECS 真实多来源车辆 `LB9A32A21R0LS1464` 验证返回 2 个位置来源、1 个可配置来源，当前推荐 GB32960；不变值管理员保存保持策略 v1、审计 0 和推荐来源不变。权限烟测为 viewer 403、operator 200、admin 200；20 次诊断请求中位约 70ms、P95 约 79ms，三个服务均 active。

目标：

- 新建或重构独立运维菜单，把后台来源选举、优先级、终端提供方、最新值和差异证据可视化。
- 普通客户不进入该页面；管理员/运维可查单车所有协议和同协议多终端。
- 可在前台完成初步问题定位，不要求开发人员查数据库或代码。

验收标准：

1. 按车牌模糊搜索后展示所有来源和终端。
2. 展示来源提供方、终端标识、首次/最后上报、间隔、位置、里程、在线状态和选举得分/原因。
3. 支持调整可配置优先级，但每次调整有版本、操作人和审计。
4. 能解释“为什么当前推荐这个来源”。
5. 页面按需加载并分页，不能一次拉取全量 RAW 数据。

### P1-02 接入管理数据校准

状态：`进行中`

已上线的平台校准（release `real-source-access-final-20260716181005`）：

- 移除“每辆车应接 GB32960 / JT808 / YUTONG_MQTT 三协议”的无业务依据推断。全部 1,024 辆的 `expectedProtocols` 与 `missingProtocols` 均为空；缺席协议只显示“当前未发现来源”，不再作为异常。
- 接入健康只基于真实来源计算：生产真实分布为 295 辆无来源、289 辆单来源、440 辆双来源；没有车辆真实同时接入三协议。
- 接入管理、全局监控和车辆查询继续使用同一 1,024 辆主车辆口径，同协议多终端不会重复计车。
- 资料缺失与在线健康拆为独立维度；“资料待维护”可一次筛出全部 356 辆，其中 252 辆缺车辆品牌、106 辆缺 JT808 提供方。车辆即使同时离线或无来源也不会从该队列漏掉。
- 提供方优先使用实时快照平台名，缺失时回退当前选中位置来源的 `source_code`；仍无法识别时保留“接入方未维护”，不伪造名称。
- 页面、详情和 CSV 统一改为“真实来源”口径；单一 JT808 在线且资料完整的车辆可判为正常，不再因不存在的 32960/宇通来源显示“接入不完整”。
- Go 全量测试、现行前端 49 个文件/254 项测试和生产构建通过。生产 50 辆列表 20 次请求中位约 48ms、P95 约 53ms，三个服务均 active。

品牌资料二次校准：

- 只读核对 OneOS `vehicle_info.vehicle_model_id → vehicle_model.brand/model` 后，确认原 252 辆缺品牌中有 244 辆具备唯一车型品牌，8 辆源系统本身仍无品牌。
- 采用与 `ln-bi` 一致的品牌编码到展示名称口径，只填充中台 `vehicle_identity_binding.oem` 空值，不覆盖任何已有品牌；没有修改 `ln-asset-management`。
- 迁移 `018_vehicle_oem_audit.sql` 建立独立品牌变更审计；一次性校准写入 244 行、244 个 VIN，`before_oem` 非空记录为 0，来源版本为 `oneos-vehicle-model-20260716`。
- 生产接入页当前只剩 8 辆“品牌未维护”；资料待维护车辆从 356 降为 112。

车辆分母最终校准（release `vehicle-count-authority-exact-20260716193428`）：

- 车辆查询、覆盖汇总、缺失来源统计和运维服务汇总统一只以 `vehicle_identity_binding` 的 1,024 辆权威车辆为正式分母，不再把实时来源表中 11 个未绑定 VIN 提升为正式车辆。
- 生产复核中，车辆查询、全局监控、接入管理、运维来源就绪度均返回 1,024 辆；运维汇总同时独立返回 `identityRequiredVehicles=11`，因此异常证据没有因分母修正而丢失。
- 11 个未绑定来源仍保留在数据差异中心的 11 条 `UNBOUND_SOURCE` 待处理工单中；它们只能通过身份绑定流程进入正式车辆集，不能继续造成 1,035 辆的错误口径。
- Go 全量测试、前端 49 个文件/259 项测试、TypeScript/Vite 生产构建、Web 资产烟测及四个 systemd 单元状态检查通过。

提供方维护能力（release `source-provider-collation-hotfix-20260716195830`）：

- 运维诊断页允许管理员按具体车辆、协议和独立终端维护提供方名称；前端仍只提交 SHA-256 `sourceRef`，原始 `source_key` 仅在服务端解析和保存。
- 提供方名称变更必须单独填写权威终端清单、厂商确认记录等核验依据。核验依据与启停/优先级的策略备注是两个独立字段和审计事实；只改提供方不会清空或改写已有策略备注。
- 迁移 `019_vehicle_source_provider.sql` 已在生产应用，保存当前提供方投影和不可变版本审计。来源诊断与接入管理优先采用该人工核验值，再回退实时平台名或当前来源编码。
- operator 可查看单车来源诊断但不能写入，viewer 被拒绝，只有 admin 可维护；缺少核验依据的请求返回 `SOURCE_PROVIDER_REASON_REQUIRED`，且乐观版本不会变化。
- 首次发布在生产真实请求中发现网关来源表与平台表排序规则不同，已改为 VIN/协议/source key 的二进制精确关联；修复后单车诊断和接入明细均恢复，未通过模糊或降级匹配绕过。
- 生产烟测以 `LB9A32A21R0LS1464` 的既有 `g7s` 识别结果写入同义规范值 `G7s`：策略版本 `v1→v2`，提供方审计包含核验依据，原策略备注保持不变，接入明细立即显示 `JT808 / G7s`，响应中不存在 `sourceKey`。平台、两类告警评估器和对账定时器均为 active。
- Go 全量测试、前端 49 个文件/259 项测试、TypeScript/Vite 生产构建和 23 个当前 Web 资源门禁通过。

权威清单批量落库准备：

- 新增 `deploy/import-source-providers.py`，可从生产按当前资料缺口导出带 VIN、车牌、不可逆 `sourceRef`、脱敏终端和防漂移字段的 UTF-8 CSV 模板。
- 填写后的清单先完成全表只读预检，再通过管理员 API 逐条应用；工具复用当前启停、优先级和策略备注，只修改提供方及独立核验依据，继续使用乐观版本和不可变审计。
- 管理员令牌只从临时环境变量读取，单批最多 500 行；导出拒绝覆盖已有文件，导入拒绝缺依据、重复来源、协议变化、当前提供方变化和失效 `sourceRef`。
- Python 自动化覆盖只读预检、成功写入、策略字段保持、缺依据失败、并发前置值漂移失败和缺口模板导出；发布安装器同步携带该工具。
- 生产只读烟测发现缺口车辆当前只有协议融合快照、没有独立终端候选；release `canonical-provider-access-fallback-20260716224816` 已为协议级来源生成不可逆 `sourceRef`。管理员可维护权威提供方，但前后端均禁止从融合快照修改终端启停、优先级或策略备注。
- 生产导出与接入管理逐车集合一致：当前生成 101 行/101 辆缺口模板，全部通过真实 CSV 防漂移只读预检；未执行 `--apply`，没有写入任何未经确认的提供方。

剩余业务资料依赖：

- 2026-07-16 22:49 动态复核仍有 101 辆 JT808 提供方缺失。该数量会随实时快照中新增的有效平台名变化；导出工具以执行时的接入管理集合为准。注册报文厂商码在生产中同时对应 G7s、东方北斗和赛格，不能唯一映射；OneOS 只标记为“氢气智能管理平台”，这是聚合来源而非终端提供方。
- 进一步只读核对 `lingniu_prod` 后确认：旧 `tab_truck_device_info`、`view_addgpsdata`、`historical_data` 设备厂家表当前均无有效数据；仅存的 `v_vehicle_daily_stats.source=G7S/TBOX/NONE` 最晚截至 2025-12-08，属于历史里程来源，不能证明 2026 年当前终端提供方。
- 因此这 104 辆继续留在待处理队列，需 GPS 运维/厂家提供当前 phone/终端到提供方的权威清单。平台不会根据终端号、IP、位置、旧里程来源或厂商码猜测提供方。
- 另有 8 辆 OneOS 车型主数据本身无品牌，需资产资料责任人补录后再通过正式 API 同步。

目标：

- 运维补齐 JT808 各品牌/提供方资料。
- 修复“品牌未维护”、来源数量不准、车辆明明只有 JT808 却显示三来源等问题。
- 接入数量以去重后的车辆身份和真实来源证据计算。

验收标准：

1. 同一车辆不因多终端重复计入车辆总数。
2. 品牌、提供方、协议、终端和 VIN 关系可追溯。
3. 接入管理、全局监控和车辆查询的车辆总数口径一致。
4. 无法识别的终端进入待处理队列，不伪造 VIN 或品牌。

### P1-03 全国视角省级聚合

状态：`已完成`

已上线结果（release `province-map-mobile-20260716182939`）：

- 全国视角 `zoom <= 5` 使用省级聚合模式；后端在当前认证车辆 Scope、关键词、协议和状态筛选后返回身份无关的轻量坐标种子，省级数量不会泄露未授权 VIN、车牌或终端信息。
- 浏览器使用高德 AMapUI `DistrictExplorer` 的全国行政区矢量边界和 `groupByPosition` 做纯几何归属，只渲染实际有车的省份；WGS-84 坐标先转为 GCJ-02 后再归属，生产 730 辆有有效位置车辆全部归入 15 个非空省级区域，未归属为 0。
- 省级卡片显示省名、精确车辆数、在线数及在线占比，移动端使用紧凑省名和精确数量；确定性的像素碰撞规避、中心连接线和视窗边缘约束避免密集省份标签重叠或被裁切。
- 点击省级卡片平滑下钻到 `zoom 7`，恢复现有网格聚合；`zoom 11` 及以上继续使用车辆明细点。定时数据刷新只更新数量和标记内容，不调用缩放或居中，不与用户平移、缩放操作争抢控制权。
- 高德行政区资源加载失败时保留后端网格聚合作为可见降级，不会出现空白地图；全国模式仍返回网格后备数据，进入非全国 Zoom 后恢复正常边界过滤。
- 省级标记使用 DOM/矢量样式而非低分辨率位图。1440×900、DPR 1.5 与 390×844、DPR 2 的真实生产页面均显示 15 个标记，自动检查无重叠、无越界、无相关控制台错误。
- 生产接口 `GET /api/v2/monitor/map?zoom=5` 返回 `mode=provinces`、`total=730`、`provincePoints=730`，响应约 50 KB、ECS 回环约 61 ms；最终门禁的 10,000 点后端基准约 2.23 ms/op。
- Go 全量测试、前端 49 个文件/258 项测试、TypeScript/Vite 生产构建和 `git diff --check` 通过；ECS 平台服务及两个告警评估器均为 active。

目标：

- 地图缩放到全国视角时，可切换为按省聚合。
- 每个省展示车辆数量，并可下钻到当前已有点位聚合。

验收标准：

1. 省级数量与当前授权范围、筛选条件一致。
2. 下钻和平移不与定时刷新争抢地图控制权。
3. 省级聚合采用矢量/DOM 或高清渲染，浏览器 150% 缩放仍清晰。
4. 聚合计算不阻塞主线程。

### P1-04 OneOS 业务接口对接

状态：`进行中（中台接入端已完成，等待 OneOS 正式接口联调）`

已完成的中台侧结果（release `oneos-api-client-20260716184601`）：

- 新增可切换的 OneOS HTTP 范围快照客户端；正式模式为 `ONEOS_SCOPE_SOURCE=api`，原有数据库直读仅保留为接口上线前的只读影子核对，不修改 `ln-asset-management`。
- 请求使用独立 Service Token、请求 ID、Unix 时间戳和 HMAC-SHA256 防重放签名；非私网字面 IP 强制 HTTPS，服务令牌与签名密钥均不写日志。
- 支持每页 500 条的稳定游标分页，最多 100 页/50,000 条；要求所有分页 `scopeVersion`、`generatedAt` 完全一致且 `complete=true`。网络错误、429 和 5xx 最多重试 3 次，版本漂移、重复游标、业务错误、格式错误或越界立即失败关闭。
- 客户、车辆、合同雪花 ID 按 JSON 字符串读取；投影已增加客户名称、部门、负责人、合同、项目、启用时间和来源更新时间，并继续以内容地址版本原子发布。
- 修复旧迁移 012 中生产 MySQL 保留关键字 `row_number` 的兼容问题；生产已成功应用 012 和 016，投影字段及索引齐全。
- 同步定时器继续保持未安装/未启用，当前 `active_version` 为空、accepted/rejected 均为 0。缺少正式接口配置时生产手工运行返回退出码 1，不发布空快照，也不退化成全量车辆。
- 发布安装器支持同时原子替换新版 `oneos-scope-sync`；Go 全量测试、接口签名/分页/版本漂移/瞬时重试测试和安装器测试通过，ECS 三个现有服务均为 active。

尚待 OneOS 团队交付并联调：

- 正式内网 URL、独立服务令牌、HMAC 密钥和允许访问的 ECS 私网源地址；
- 符合契约的全客户完整快照，包含稳定版本、客户/部门/负责人、合同/项目、正式交车启用时间及机器可读隔离原因；
- OneOS 侧完成时间戳窗口、request ID 去重、来源限制和接口监控。取得后先手工影子同步、核对抽样与总数，再启用两分钟定时器。
- 2026-07-16 20:04 ECS 复核确认 `ONEOS_SCOPE_SOURCE`、`ONEOS_SCOPE_API_URL`、`ONEOS_SCOPE_API_SERVICE_TOKEN`、`ONEOS_SCOPE_API_SIGNING_SECRET` 均未配置，OneOS 同步 timer unit 未安装；当前保持失败关闭。

目标：

- OneOS 团队提供正式接口后，数据中台只读调用客户、部门、负责人、合同/项目、车辆启停范围等业务信息。
- 不直接修改 `ln-asset-management`，不把草稿时间当作正式交还车事实。
- 后续支持按客户、人员批次、部门或项目筛选。

验收标准：

1. 有明确接口契约、鉴权方式、超时、重试、版本和回滚方案。
2. OneOS 不可用时失败关闭，不退化为全量车辆。
3. 业务事实与遥测事实的权威边界清楚。
4. 授权范围变化产生可审计版本。

### P1-05 数据差异自动自查与对账

状态：`已完成`

已上线结果（release `reconciliation-summary-fix-20260716191153`）：

- 新增独立的数据差异中心，自动检测重复车牌/终端、来源未绑定、主车辆无来源、多来源位置漂移、里程跳变/倒退、日里程来源差异、车队总数差异、OneOS 业务车辆未绑定及人工授权与业务范围不一致。OneOS 投影尚未启用时，业务范围规则不伪造结果，待正式快照发布后自动参与每日检测。
- 每条差异保存稳定指纹、规则、等级、车辆、来源、首次/最近发现时间、命中次数和结构化证据；原始 `source_key`、终端手机号、来源 IP 不进入接口响应。
- 支持待处理、确认来源 A、确认来源 B、无需处理、已修复和已恢复状态；非待处理结论必须填写说明，使用乐观版本避免并发覆盖，全部处理动作保留账号和时间履历。
- 相同指纹重复检测只增加命中次数，不产生重复工单；已修复/已恢复问题再次出现会重新打开，活跃问题不再命中时自动转为已恢复。
- 独立 `reconciliation-evaluator` 每日定时执行，不加入 API 高频轮询。生产定时器已启用，下一次运行时间为 `2026-07-17 02:19:54 +08:00`，单次全量检测约 0.88–1.43 秒。
- 首轮生产检测发现 1,622 条活跃差异：车队总数差异 1、里程跳变 112、里程倒退 6、多来源日里程差异 1,197、主车辆无来源 295、来源未绑定 11；第二轮同数据运行 `new=0`，证明指纹去重生效。
- 运维页面以 50 行差异队列为主体，提供关键词、状态、等级和规则筛选、30 天新增/存量/恢复趋势及按需证据抽屉。摘要缓存 60 秒、列表缓存 20 秒、详情按需读取，不加入 15 秒健康轮询。
- 管理员和运维员可读取、复核；只读查看者返回 403。生产验证中错误版本处置返回 409，防止覆盖其他人的结论。
- Go 全量测试、前端 49 个文件/259 项测试、TypeScript/Vite 构建和发布脚本测试通过。生产桌面首屏显示 1,622 条、50 行队列；390×844 移动端详情宽度不超过视窗，表格受控横向滚动；两种视图均无页面级横向溢出、运行时异常或控制台错误。

目标：

- 将目前由人员在群里频繁发现的数据差异变成平台自动发现。
- 以多来源数据、接入事实和 OneOS 业务事实做差异检测；系统不擅自判定未知来源谁绝对正确。
- 形成每日自查、差异队列、复核结论和趋势。

验收标准：

1. 自动检测车辆重复、来源缺失、来源误挂、位置漂移、里程跳变/倒退、总数不一致和业务范围不一致。
2. 每条差异保留来源值、时间、规则、影响车辆和证据。
3. 支持“待确认、已确认来源 A、已确认来源 B、无需处理、已修复”等结论。
4. 相同问题去重，恢复后自动关闭或进入已恢复状态。
5. 每日输出新增、存量、恢复和超 SLA 数量，避免长期依赖人工群消息。

## 6. 暂缓和非阻塞项

| 编号 | 状态 | 事项 | 会议结论 |
| --- | --- | --- | --- |
| D-01 | 暂缓 | 告警配置重做、短信/外部通知 | 当前离线/长时间未上报告警可继续内部使用，但“告警先不用弄”，不阻塞本轮客户交付 |
| D-02 | 暂缓 | 大规模移动端交互重构 | 继续修复阻塞问题，但会议确认移动端优化较多，分阶段推进 |
| D-03 | 暂缓 | 补齐 G7 2026-06-01 之前全部历史里程 | 能低成本取得则导入；否则等明确业务需求，不优先于当前页面和数据一致性 |
| D-04 | 暂缓 | 基于客户/人员批次的告警规则 | 等 OneOS 业务维度正式接入后再设计 |

## 7. 推荐执行顺序

### 批次 A：客户演示可用

1. P0-02 全局监控列表修正；
2. P0-03 多来源展开；
3. P0-06 返回车辆上下文；
4. P0-07 单车动态信息上移；
5. P0-08 客户账号与演示验收。

### 批次 B：客户数据安全

1. P0-01 授权启停履历与历史时间边界；
2. P0-05 导出 owner、Scope 和审计；
3. P0-04 历史字段配置与质量原因；
4. 双客户自动化越权测试和生产验证。

### 批次 C：内部运维闭环

1. P1-01 专业多来源诊断页；
2. P1-02 接入资料和数量口径校准；
3. P1-05 每日差异自查与处置闭环；
4. P1-03 全国省级聚合。

### 批次 D：业务系统联动

1. P1-04 OneOS 正式接口契约；
2. 客户、部门、负责人、合同/项目映射；
3. 基于业务维度的筛选和后续告警范围。

## 8. Goal 完成条件

只有同时满足以下条件，才能将本 Goal 标记为完成：

1. P0-01 至 P0-08 全部为 `已完成`，并有测试、部署或业务验收证据。
2. P1-01 至 P1-05 全部为 `已完成`，或由业务负责人书面确认降级为后续范围。
3. 至少两个互斥客户账号通过车辆、时间范围、历史和导出的越权测试。
4. 客户页面不存在用 `0` 表示“协议不提供/未知”的关键字段。
5. 多来源车辆可解释推荐来源，无位置车辆不会从列表和统计中消失。
6. 从全局监控进入子功能并返回时，能恢复原车辆和地图上下文。
7. 导出任务具备 owner、客户 Scope、时间范围和持久化审计。
8. 数据差异具备自动发现、证据、处置状态和恢复闭环。
9. 生产部署、数据库迁移、运维说明和页面口径同步更新。
10. 未修改 `ln-asset-management` 业务逻辑，未引入车辆锁车/控车能力。
