QAUP_Management/.kiro/specs/traffic-light-integration/tasks.md

87 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 实现计划
- [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_