87 lines
4.1 KiB
Markdown
87 lines
4.1 KiB
Markdown
# 实现计划
|
||
|
||
- [x] 1. 创建数据库表和实体类
|
||
- 创建路口信息表(intersections)和红绿灯设备表(traffic_lights)的SQL脚本
|
||
- 实现Intersection和TrafficLight实体类,包含JPA注解
|
||
- 创建对应的Repository接口,继承JpaRepository
|
||
- _需求: 1.1, 4.5, 4.6_
|
||
|
||
- [x] 2. 实现红绿灯信号解析器
|
||
- 创建SignalState枚举类,定义红绿灯状态(RED/YELLOW/GREEN/UNKNOWN)
|
||
- 实现TrafficLightStatus数据模型类,包含设备ID、路口ID、状态等字段
|
||
- 实现TrafficLightSignalParser类,解析DI格式JSON信号为内部状态
|
||
- 编写信号解析的单元测试,覆盖正常和异常情况
|
||
- _需求: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6_
|
||
|
||
- [x] 3. 实现路口和设备管理服务
|
||
- 创建IntersectionService类,提供路口信息的CRUD操作
|
||
- 创建TrafficLightService类,提供红绿灯设备的管理功能
|
||
- 实现设备在线状态和心跳时间的更新方法
|
||
- 编写服务层的单元测试
|
||
- _需求: 4.1, 4.5, 5.5_
|
||
|
||
- [x] 4. 实现TCP服务器监听红绿灯信号
|
||
- 创建TrafficLightTcpServer类,使用Java NIO实现TCP服务器
|
||
- 实现多客户端连接处理,支持并发连接
|
||
- 添加连接管理功能,包括连接建立、断开和重连处理
|
||
- 集成Spring配置,支持端口、最大连接数等参数配置
|
||
- 编写TCP服务器的集成测试
|
||
- _需求: 1.1, 1.2, 1.4, 1.5, 4.2, 4.6, 5.1_
|
||
|
||
- [x] 5. 实现数据采集器集成TCP服务器
|
||
- 创建TrafficLightDataCollector类,集成到现有数据采集框架
|
||
- 实现TCP服务器接收到信号后的数据传递机制
|
||
- 添加数据采集统计功能,记录接收信号数量和错误次数
|
||
- 集成到DataCollectorService的定时任务中
|
||
- _需求: 1.2, 1.3, 4.3, 4.4_
|
||
|
||
- [x] 6. 扩展数据处理服务处理红绿灯信号
|
||
- 在DataProcessingService中添加processTrafficLightSignal方法
|
||
- 实现设备验证逻辑,检查设备是否存在和激活
|
||
- 实现路口信息查询,获取位置坐标等信息
|
||
- 创建TrafficLightStatusPayload,包含完整的路口和设备信息
|
||
- 更新设备心跳时间和在线状态
|
||
- _需求: 2.1, 2.4, 2.5, 5.4, 5.6_
|
||
|
||
- [x] 7. 实现WebSocket事件发布和广播
|
||
- 扩展现有TrafficLightStatusEvent,支持新的数据结构
|
||
- 在数据处理服务中发布红绿灯状态变更事件
|
||
- 创建或更新TrafficLightStatusEventListener,处理事件广播
|
||
- 确保WebSocket消息格式符合前端要求
|
||
- _需求: 3.1, 3.2, 3.3, 3.5, 3.6_
|
||
|
||
- [x] 8. 添加配置管理和错误处理
|
||
- 在application.yml中添加红绿灯相关配置项
|
||
- 实现配置类TrafficLightProperties,绑定配置属性
|
||
- 添加全局异常处理,处理TCP连接、解析错误等异常
|
||
- 实现优雅关闭机制,确保TCP服务器正确关闭
|
||
- _需求: 4.1, 4.2, 4.3, 4.4, 5.1, 5.2, 5.3_
|
||
|
||
- [x] 9. 实现数据库初始化和管理接口
|
||
- 创建数据库迁移脚本,初始化路口和设备表
|
||
- 实现路口管理的REST API,支持路口信息的增删改查
|
||
- 实现设备管理的REST API,支持设备信息的管理
|
||
- 添加数据验证和约束检查
|
||
- _需求: 4.5, 4.6, 5.6_
|
||
|
||
- [x] 10. 编写集成测试和端到端测试
|
||
- 创建模拟红绿灯硬件的测试客户端
|
||
- 编写TCP服务器到WebSocket广播的端到端测试
|
||
- 测试多设备并发连接和信号处理
|
||
- 测试异常情况处理,如网络断开、格式错误等
|
||
- 验证性能指标,确保满足每秒信号处理要求
|
||
- _需求: 1.3, 1.4, 2.6, 5.1, 5.2, 5.3, 5.4_
|
||
|
||
- [x] 11. 添加监控和日志记录
|
||
- 实现处理统计功能,记录信号接收和处理数量
|
||
- 添加性能监控,记录处理延迟和错误率
|
||
- 配置日志级别,确保调试和生产环境的日志合理
|
||
- 实现健康检查接口,监控TCP服务器和处理服务状态
|
||
- _需求: 4.3, 4.4, 5.4_
|
||
|
||
- [x] 12. 系统集成和部署准备
|
||
- 将所有组件集成到现有Spring Boot应用中
|
||
- 更新Docker配置,确保TCP端口正确暴露
|
||
- 编写部署文档,说明配置和启动步骤
|
||
- 进行系统级测试,验证与现有功能的兼容性
|
||
- _需求: 1.5, 4.1, 4.2_ |