implementation-status.md 4.3 KB

故障录波当前实现状态

核对日期:2026-10-16。本文只描述当前仓库事实,不代表设计目标已经落地。目标见 requirements.md,设计见 technical-design.md 和 ui-design.md。

1. 能力现状

能力 当前状态 代码依据
生产服/测试服 MQTT 已完成(2026-10-16):按环境各建一个客户端实例;单个环境初始化失败只记日志、不影响服务启动;原复制包 fwh_mqtt_test 已删除 service/repositories/mqtt/fwh_mqtt/fwh_mqtt_client.go 的 Env、ParseEnv、InitFwhMqttClient(env, cfg);service/main.go;单元测试 fwh_mqtt_client_test.go。未用真实设备验证
MQTT 收发方式 只有一问一答(sendMessageWait)和只发送(sendMessageOnce);没有持续监听;空闲 5 分钟断开 fwh_mqtt_client.go
参数设置 已有 MQTT 入口,等待 378 后返回;接口支持可选 env;没有观察 379 逐项结果;前端无环境选择、无确认弹窗 fwh_mqtt_fault_record.go、/faultRecord/paramSetting、src/views/fault-record/write/index.vue
设备信息(cmd=0) 未实现 —
录波记录获取(cmd=2 + 607~610 + 下载) 未实现;607~610 只有日志类型常量 service/domain/fwhProMqttDomain.go
参数读取(cmd=3) 未实现 src/views/fault-record/read/index.vue 为空页面
取消(cmd=4) 未实现 —
协议编解码、文件解析、CSV 未实现;service/function/FaultRecordFile 为空目录 —
异步任务与恢复 未实现;可复用 asynq 任务系统 service/task,参考 task/queue/dataDownloadQueue
操作记录与文件存储 未实现;可复用 MongoDB、MinIO service/repositories/mongo、service/repositories/minio、service/utils/minio
站点设备列表 生产服、测试服的站点信息接口均已存在,未用于本功能 fwh_pro.QuerySiteInfoList、fwh_test.QuerySiteInfoList(fhpSn 为 aPower SN 列表)
前端菜单 现为“故障录波配置 → 读取配置/写入配置”,未按新结构调整 src/router/record.ts

2. 现有代码入口

位置 当前作用
service/utils/mqttClient/mqttClient.go paho 封装:连接、订阅(断线重连后自动恢复)、发布
service/repositories/mqtt/fwh_mqtt/fwh_mqtt_client.go 按环境的 FWH MQTT 客户端;发送经 worker 串行处理
service/repositories/mqtt/fwh_mqtt/fwh_mqtt_fault_record.go 377/378 常量、参数设置结构、FaultRecordParamSetting、调试用 ChargeChannel
service/repositories/mqtt/fwh_mqtt/fwh_mqtt_debug.go EnableXlog,固定使用生产服
service/repositories/mqtt/fwh_mqtt/test/main.go 测试服手动调试脚本
service/services/faultRecordServices.go、controllers/faultRecordControllers.go、routes/faultRecordRoutes.go 参数设置 HTTP 路径 /faultRecord/paramSetting
src/views/fault-record/write/index.vue、read/index.vue 旧参数设置页面、读取页占位
service/repositories/api/fwh_pro/fwh_faultRecord.go 现有 FWH API 故障录波流程(DataDownload 使用,不改动)

3. 与设计的差距

按 technical-design.md 的分层,尚需实现:

  1. L2 协议编解码与解析器:377 构造;378/379/607~610 解析(含 608 重复键);解压;hexData、failuredata、waveformdata 解析;CSV 生成。
  2. L1 客户端改造:增加 Subscribe(多订阅者、引用计数、订阅期间不空闲断开)和通用信封构造;把业务代码移出客户端包。
  3. 下载:按环境域名、无 token 下载 hes-upload 文件。
  4. 存储:Mongo fault_record_operations、MinIO fault-record/<env>/<gatewaySn>/<fileName>。
  5. L3 任务执行器:faultRecordQueue、网关锁、状态机、取消、重启恢复。
  6. L4/L5 接口:创建操作、查询状态与历史、取消、导出、设备列表。
  7. 前端:新菜单结构和四个功能页、录波详情、参数设置新页面。

依赖实测才能最终确认的部分见 technical-design.md。