NewLife/NewLife.JT808

docs: 更新文档版本至v2.2,补充功能清单、架构设计和需求文档细节
大石头 authored at 2026-07-15 15:39:57
9b73986
Tree
1 Parent(s) 139ff6c
Summary: 4 changed files with 53 additions and 38 deletions.
Modified +13 -31
Modified +21 -4
Modified +3 -1
Modified +16 -2
Modified +13 -31
diff --git "a/Doc/\345\212\237\350\203\275\346\270\205\345\215\225.md" "b/Doc/\345\212\237\350\203\275\346\270\205\345\215\225.md"
index e12b3ac..a96463b 100644
--- "a/Doc/\345\212\237\350\203\275\346\270\205\345\215\225.md"
+++ "b/Doc/\345\212\237\350\203\275\346\270\205\345\215\225.md"
@@ -1,6 +1,6 @@
 # NewLife.JT808 功能清单
 
-> 版本:v2.1 | 日期:2026-07-14 | **状态:全部完成 🎉**
+> 版本:v2.2 | 日期:2026-07-15 | **状态:全部完成 🎉**
 
 > 状态标记:✅ 已实现 | 🟡 部分实现 | 🔧 规划中 | ⏸ 暂缓/占位 | ❌ 未开始
 
@@ -50,33 +50,6 @@
 | M3-7 | 会话接口 | ✅ | `IJT808Session` 抽象接口 |
 | M3-8 | 消息处理器接口 | ✅ | `IJT808Handler` 标记接口 |
 
-## M4 苏标扩展
-
-| 编码 | 功能 | 状态 | 说明 |
-|------|------|------|------|
-| M4-1 | ADAS 报警信息 | ✅ | `ADASInfo.cs` 16种报警 |
-| M4-2 | DSM 报警信息 | ✅ | `DSMInfo.cs` 16种报警 |
-| M4-3 | TPMS 报警信息 | ✅ | `TPMSInfo.cs` |
-| M4-4 | BSD 报警信息 | ✅ | `BSDInfo.cs` |
-| M4-5 | 外设工作状态/系统信息/类型 | ✅ | `PeripheralStatus.cs`/`PeripheralInfo.cs`/`PeripheralKinds.cs` |
-| M4-6 | 报警附件协议 | ✅ | T1210/T1211/T9208 |
-| M4-7 | 音视频资源列表 | ✅ | T1205/T1206 |
-| M4-8 | 文件传输消息 | ✅ | `FileMessage.cs` |
-| M4-9 | 车辆状态/码流枚举 | ✅ | `CarStatus.cs`/`BitStreams.cs` |
-
-## M5 辅助工具
-
-| 编码 | 功能 | 状态 | 说明 |
-|------|------|------|------|
-| M5-1 | GBK 编解码 | ✅ | `Helper` 静态构造注册 |
-| M5-2 | 版本感知 Reader/Writer | ✅ | `Helper.CreateReader/CreateWriter` |
-| M5-3 | JSON 序列化 | ✅ | `ToJsonJT808` 扩展 |
-| M5-4 | TLV 解析 | ✅ | `TLV.cs` + `Convert<TKind>()` |
-| M5-5 | KLV 解析 | ✅ | `KLV.cs` + `Convert<TKind>()` |
-| M5-6 | 枚举定义(报警/状态/参数等) | ✅ | UtilTool/ 下全部枚举 |
-| M5-7 | 快速反序列化 | ✅ | `FastRead<T>` 版本感知二进制读取 |
-| M5-8 | Writer 尾部截零 | ✅ | `CreateWriter` 设置 `TrimZero=true` |
-
 ## M4 苏标扩展(Newlife.JT808 — 已完成 ✅)
 
 | 编码 | 功能 | 状态 | 说明 |
@@ -239,7 +212,16 @@
 | M16-7 | 原始报文 Area | ✅ | xcode 自动生成 RawDataController |
 | M16-8 | 指令下发页面 | ✅ | DeviceController SendCommand 内嵌页面 |
 | M16-9 | 平台管理 Area | ✅ | xcode 自动生成 Platform Area 6 个控制器 |
-| M16-10 | 设备统计看板 | ✅ | DeviceController Stats 内嵌看板 |
+| M16-10 | 设备分组管理 | ✅ | xcode 自动生成 DeviceGroupController |
+| M16-11 | 设备上下线历史 | ✅ | xcode 自动生成 DeviceHistoryController |
+| M16-12 | 设备参数管理 | ✅ | xcode 自动生成 DeviceParameterController |
+| M16-13 | 驾驶员信息管理 | ✅ | xcode 自动生成 DriverController |
+| M16-14 | 多媒体信息管理 | ✅ | xcode 自动生成 MediaInfoController |
+| M16-15 | 媒体记录管理 | ✅ | xcode 自动生成 MediaRecordController |
+| M16-16 | 胎压数据管理 | ✅ | xcode 自动生成 TirePressureController |
+| M16-17 | 报警附件管理 | ✅ | xcode 自动生成 AlarmFileController(Safety Area) |
+| M16-18 | 媒体资源管理 | ✅ | xcode 自动生成 MediaResourceController(Safety Area) |
+| M16-19 | 设备统计看板 | ✅ | DeviceController Stats 内嵌看板 |
 
 ## M17 Worker 消费服务(JT808.Worker,✅ 已完成)
 
@@ -273,6 +255,6 @@
 | M13 数据层 - 安全域 | 7 | 7 | 100% | ✅ 阶段2 |
 | M14 数据层 - 平台域 | 6 | 6 | 100% | ✅ 阶段2 |
 | M15 JT808 网关服务 | 13 | 13 | 100% | ✅ 阶段3 |
-| M16 Web 管理后台 | 10 | 10 | 100% | ✅ 阶段4 |
+| M16 Web 管理后台 | 19 | 19 | 100% | ✅ 阶段4 |
 | M17 Worker 消费服务 | 7 | 7 | 100% | ✅ 阶段5 |
-| **总计** | **135** | **135** | **100%** | 🎉 |
+| **总计** | **144** | **144** | **100%** | 🎉 |
Modified +21 -4
diff --git "a/Doc/\346\236\266\346\236\204\350\256\276\350\256\241.md" "b/Doc/\346\236\266\346\236\204\350\256\276\350\256\241.md"
index b97c7c0..92de4ae 100644
--- "a/Doc/\346\236\266\346\236\204\350\256\276\350\256\241.md"
+++ "b/Doc/\346\236\266\346\236\204\350\256\276\350\256\241.md"
@@ -1,6 +1,6 @@
 # NewLife.JT808 架构设计
 
-> 版本:v2.0 | 日期:2026-07-14
+> 版本:v2.1 | 日期:2026-07-15
 > 需求对应:[需求文档](需求文档.md) | 功能清单:[功能清单](功能清单.md)
 
 ## 1. 整体架构
@@ -104,6 +104,8 @@ JT808.Web (NewLife.Cube)
 | 安全域 | `JT808.Data.Safety` | `Safety` | AlarmEvent, ADASAlarm, DSMAlarm, BSDAlarm, TPMSAlarm, AlarmFile, MediaResource |
 | 平台域 | `JT808.Data.Platform` | `Platform` | ForwardServer, MediaServer, SuperviseServer, SuperviseOnline, CarList, SimCard |
 
+> **说明**:架构图中标注的 7 个数据域(核心域/安全域/平台域/车联域/行程域/地理域/统计域)参考 GPS808 设计。当前已实现前 3 个域(核心域/安全域/平台域),合计 30+ 实体。车联域/行程域/地理域/统计域列为后续迭代,待数据模型完善后补充。
+
 ### 2.3 服务层(JT808.Server — 新增)
 
 | 组件 | 类型 | 说明 |
@@ -126,9 +128,24 @@ JT808.Web (NewLife.Cube)
 
 | Area | 说明 | 主要控制器 |
 |------|------|-----------|
-| `Areas/JT808/` | 核心管理 | DeviceController, ProductController, OnlineController, PositionDataController, CommandController, AlarmController, RawDataController, DriverController |
-| `Areas/Safety/` | 主动安全 | AlarmEventController, ADASAlarmController, DSMAlarmController, BSDAlarmController, TPMSAlarmController |
-| `Areas/Platform/` | 平台管理 | ForwardServerController, MediaServerController, SuperviseServerController, CarListController, SimCardController |
+| `Areas/JT808/` | 核心管理 | DeviceController, ProductController, DeviceOnlineController, DeviceHistoryController, DeviceGroupController, DeviceParameterController, PositionDataController, DeviceCommandController, AlarmController, RawDataController, DriverController, MediaInfoController, MediaRecordController, TirePressureController |
+| `Areas/Safety/` | 主动安全 | AlarmEventController, ADASAlarmController, DSMAlarmController, BSDAlarmController, TPMSAlarmController, AlarmFileController, MediaResourceController |
+| `Areas/Platform/` | 平台管理 | ForwardServerController, MediaServerController, SuperviseServerController, SuperviseOnlineController, CarListController, SimCardController |
+
+### 2.5 消费服务(JT808.Worker — 新增)
+
+独立进程运行,通过 Redis Stream 消费组消费各主题数据。
+
+| 组件 | 类型 | 说明 |
+|------|------|------|
+| `PositionWorker` | IHostedService | 消费 PositionData 主题,里程计算/坐标转换 |
+| `SensorWorker` | IHostedService | 消费 SensorData 主题,传感器数据处理 |
+| `EventWorker` | IHostedService | 消费 EventData 主题,设备事件处理 |
+| `ADASAlarmWorker` | IHostedService | 消费 ADASAlarm 主题,ADAS 报警持久化和聚合 |
+| `DSMAlarmWorker` | IHostedService | 消费 DSMAlarm 主题,DSM 报警持久化和聚合 |
+| `BSDAlarmWorker` | IHostedService | 消费 BSDAlarm 主题,BSD 报警持久化和聚合 |
+| `TirePressureWorker` | IHostedService | 消费 TirePressure 主题,胎压数据处理 |
+| `QueueService` | Singleton | Redis Stream 消费者工厂,创建 `IProducerConsumer<T>` 实例 |
 
 ## 3. 关键流程
 
Modified +3 -1
diff --git "a/Doc/\347\253\236\345\223\201\345\210\206\346\236\220\346\212\245\345\221\212.md" "b/Doc/\347\253\236\345\223\201\345\210\206\346\236\220\346\212\245\345\221\212.md"
index 96e790e..35bb64f 100644
--- "a/Doc/\347\253\236\345\223\201\345\210\206\346\236\220\346\212\245\345\221\212.md"
+++ "b/Doc/\347\253\236\345\223\201\345\210\206\346\236\220\346\212\245\345\221\212.md"
@@ -1,6 +1,8 @@
 # NewLife.JT808 竞品分析报告(GPS808 对比)
 
-> 版本:v1.0 | 日期:2026-07-14
+> 版本:v1.1 | 日期:2026-07-15
+>
+> **⚠️ 本文档为历史基线分析**:撰写时项目处于早期阶段(仅协议库 + 基础 API)。自 v2.0 起,数据层(JT808.Data)、网关服务(JT808.Server)、Web 管理后台(JT808.Web)、Worker 消费服务(JT808.Worker)已全部实现,差距分析中的 P0/P1/P2 优先级项目已全部完成。本文档保留作为架构决策和功能遴选的历史参考。
 
 ## 1. 概述
 
Modified +16 -2
diff --git "a/Doc/\351\234\200\346\261\202\346\226\207\346\241\243.md" "b/Doc/\351\234\200\346\261\202\346\226\207\346\241\243.md"
index d52db2f..ff9c551 100644
--- "a/Doc/\351\234\200\346\261\202\346\226\207\346\241\243.md"
+++ "b/Doc/\351\234\200\346\261\202\346\226\207\346\241\243.md"
@@ -1,6 +1,6 @@
 # NewLife.JT808 需求文档
 
-> 版本:v1.1 | 日期:2026-07-12
+> 版本:v1.2 | 日期:2026-07-15
 
 本文档描述 NewLife.JT808 的愿景、核心目标和功能方向。完成状态在[功能清单](功能清单.md)中追踪,详细设计在[架构设计](架构设计.md)中展开。
 
@@ -91,6 +91,8 @@ NewLife.JT808 是一套完整的 JT/T 808 道路运输车辆卫星定位系统
 - **M4-5 外设信息**:外设工作状态、系统信息(厂商/型号/版本)、外设类型枚举。
 - **M4-6 报警附件协议**:文件上传/完成通知、附件服务器指令(T1210/T1211/T9208)。
 - **M4-7 音视频资源列表**:T1205/T1206 音视频资源列表和文件上传完成通知。
+- **M4-8 文件传输消息**:`FileMessage` 报警附件文件消息体编解码。
+- **M4-9 车辆状态/码流枚举**:`CarStatus` 车辆状态、`BitStreams` 音视频码流类型枚举。
 
 ### 3.5 M5 辅助工具
 
@@ -135,6 +137,7 @@ NewLife.JT808 是一套完整的 JT/T 808 道路运输车辆卫星定位系统
 - **M9-2 会话通知接口**:`ISessionProducer`/`ISessionConsumer` 接口,在线/离线事件通知。
 - **M9-3 下行消息处理**:`IDownMessageHandler` 接口,处理外部系统下发的指令。
 - **M9-4 默认内存实现**:基于内存队列的默认实现,无需外部依赖。
+- **M9-5 Redis Stream 实现**:基于 Redis Stream 的生产者/消费者实现,支持消费组和 ACK 机制,用于跨进程消息解耦。
 
 ### 3.10 M10 客户端增强
 
@@ -199,6 +202,8 @@ NewLife.JT808 是一套完整的 JT/T 808 道路运输车辆卫星定位系统
 - **M15-9 指令下发**:通过 Redis 队列接收 Web 端下发的指令,路由到目标终端会话执行下发,记录指令状态。
 - **M15-10 预热机制**:服务启动前预热加载关键数据(白名单、产品信息等),防止连接冲击。
 - **M15-11 数据过期清理**:定期清理过期位置/原始报文/报警数据,可配置保留天数。
+- **M15-12 JT808Server 生命周期管理**:`GpsHostedService` 管理 JT808Server 的启动和停止,优雅处理服务中断。
+- **M15-13 缓存清理 HostedService**:`ClearHostedService` 定时清理实体缓存,防止内存泄漏。
 
 ### 3.16 M16 Web 管理后台
 
@@ -211,7 +216,16 @@ NewLife.JT808 是一套完整的 JT/T 808 道路运输车辆卫星定位系统
 - **M16-7 原始报文查看**:终端原始报文 HEX 显示和解析。
 - **M16-8 指令下发页面**:在设备详情页选择指令类型、填充参数,下发到终端并查看应答。
 - **M16-9 平台管理**:转发服务、流媒体服务、监管服务配置页面。
-- **M16-10 设备统计**:在线设备数、今日活跃数、报警统计等看板。
+- **M16-10 设备分组管理**:设备分组树形管理页面,支持分组 CRUD。
+- **M16-11 设备上下线历史**:设备上下线历史记录查询,按设备和时间筛选。
+- **M16-12 设备参数管理**:终端参数配置记录查看和管理。
+- **M16-13 驾驶员信息管理**:驾驶员信息查询、编辑和管理。
+- **M16-14 多媒体信息管理**:终端多媒体文件信息查询和管理。
+- **M16-15 媒体记录管理**:媒体文件上传记录查询。
+- **M16-16 胎压数据管理**:轮胎压力和温度监测数据查询。
+- **M16-17 报警附件管理**:报警关联的图片/视频/音频文件查询管理(Safety Area)。
+- **M16-18 媒体资源管理**:主动安全多媒体资源索引查询管理(Safety Area)。
+- **M16-19 设备统计**:在线设备数、今日活跃数、报警统计等看板。
 
 ### 3.17 M17 Worker 消费服务