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

4.1 KiB
Raw Blame History

实现计划

  • 1. 创建数据库表和实体类

    • 创建路口信息表(intersections)和红绿灯设备表(traffic_lights)的SQL脚本
    • 实现Intersection和TrafficLight实体类包含JPA注解
    • 创建对应的Repository接口继承JpaRepository
    • 需求: 1.1, 4.5, 4.6
  • 2. 实现红绿灯信号解析器

    • 创建SignalState枚举类定义红绿灯状态(RED/YELLOW/GREEN/UNKNOWN)
    • 实现TrafficLightStatus数据模型类包含设备ID、路口ID、状态等字段
    • 实现TrafficLightSignalParser类解析DI格式JSON信号为内部状态
    • 编写信号解析的单元测试,覆盖正常和异常情况
    • 需求: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
  • 3. 实现路口和设备管理服务

    • 创建IntersectionService类提供路口信息的CRUD操作
    • 创建TrafficLightService类提供红绿灯设备的管理功能
    • 实现设备在线状态和心跳时间的更新方法
    • 编写服务层的单元测试
    • 需求: 4.1, 4.5, 5.5
  • 4. 实现TCP服务器监听红绿灯信号

    • 创建TrafficLightTcpServer类使用Java NIO实现TCP服务器
    • 实现多客户端连接处理,支持并发连接
    • 添加连接管理功能,包括连接建立、断开和重连处理
    • 集成Spring配置支持端口、最大连接数等参数配置
    • 编写TCP服务器的集成测试
    • 需求: 1.1, 1.2, 1.4, 1.5, 4.2, 4.6, 5.1
  • 5. 实现数据采集器集成TCP服务器

    • 创建TrafficLightDataCollector类集成到现有数据采集框架
    • 实现TCP服务器接收到信号后的数据传递机制
    • 添加数据采集统计功能,记录接收信号数量和错误次数
    • 集成到DataCollectorService的定时任务中
    • 需求: 1.2, 1.3, 4.3, 4.4
  • 6. 扩展数据处理服务处理红绿灯信号

    • 在DataProcessingService中添加processTrafficLightSignal方法
    • 实现设备验证逻辑,检查设备是否存在和激活
    • 实现路口信息查询,获取位置坐标等信息
    • 创建TrafficLightStatusPayload包含完整的路口和设备信息
    • 更新设备心跳时间和在线状态
    • 需求: 2.1, 2.4, 2.5, 5.4, 5.6
  • 7. 实现WebSocket事件发布和广播

    • 扩展现有TrafficLightStatusEvent支持新的数据结构
    • 在数据处理服务中发布红绿灯状态变更事件
    • 创建或更新TrafficLightStatusEventListener处理事件广播
    • 确保WebSocket消息格式符合前端要求
    • 需求: 3.1, 3.2, 3.3, 3.5, 3.6
  • 8. 添加配置管理和错误处理

    • 在application.yml中添加红绿灯相关配置项
    • 实现配置类TrafficLightProperties绑定配置属性
    • 添加全局异常处理处理TCP连接、解析错误等异常
    • 实现优雅关闭机制确保TCP服务器正确关闭
    • 需求: 4.1, 4.2, 4.3, 4.4, 5.1, 5.2, 5.3
  • 9. 实现数据库初始化和管理接口

    • 创建数据库迁移脚本,初始化路口和设备表
    • 实现路口管理的REST API支持路口信息的增删改查
    • 实现设备管理的REST API支持设备信息的管理
    • 添加数据验证和约束检查
    • 需求: 4.5, 4.6, 5.6
  • 10. 编写集成测试和端到端测试

    • 创建模拟红绿灯硬件的测试客户端
    • 编写TCP服务器到WebSocket广播的端到端测试
    • 测试多设备并发连接和信号处理
    • 测试异常情况处理,如网络断开、格式错误等
    • 验证性能指标,确保满足每秒信号处理要求
    • 需求: 1.3, 1.4, 2.6, 5.1, 5.2, 5.3, 5.4
  • 11. 添加监控和日志记录

    • 实现处理统计功能,记录信号接收和处理数量
    • 添加性能监控,记录处理延迟和错误率
    • 配置日志级别,确保调试和生产环境的日志合理
    • 实现健康检查接口监控TCP服务器和处理服务状态
    • 需求: 4.3, 4.4, 5.4
  • 12. 系统集成和部署准备

    • 将所有组件集成到现有Spring Boot应用中
    • 更新Docker配置确保TCP端口正确暴露
    • 编写部署文档,说明配置和启动步骤
    • 进行系统级测试,验证与现有功能的兼容性
    • 需求: 1.5, 4.1, 4.2