核对日期:2026-10-16。本文只描述当前仓库事实,不代表设计目标已经落地。目标见 requirements.md,设计见 technical-design.md 和 ui-design.md。
| 能力 | 当前状态 | 代码依据 |
|---|---|---|
| 生产服/测试服 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 |
| 位置 | 当前作用 |
|---|---|
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 使用,不改动) |
按 technical-design.md 的分层,尚需实现:
377 构造;378/379/607~610 解析(含 608 重复键);解压;hexData、failuredata、waveformdata 解析;CSV 生成。Subscribe(多订阅者、引用计数、订阅期间不空闲断开)和通用信封构造;把业务代码移出客户端包。fault_record_operations、MinIO fault-record/<env>/<gatewaySn>/<fileName>。faultRecordQueue、网关锁、状态机、取消、重启恢复。依赖实测才能最终确认的部分见 technical-design.md。