docs(M06-F): 记录订单联动验收并推进硬件联调
This commit is contained in:
@@ -120,9 +120,9 @@ WSL 已验证:EMQX `5.8.9`、MQTTX CLI `1.13.0`、EMQX 服务 `active (running
|
|||||||
|
|
||||||
项目已开发部分模块。具体完成度不得从 README 猜测,必须以现有代码、测试、数据库迁移、Git 历史以及 `docs/current-baseline.md`、`docs/module-status.md`、`docs/feature-status.md` 为准。
|
项目已开发部分模块。具体完成度不得从 README 猜测,必须以现有代码、测试、数据库迁移、Git 历史以及 `docs/current-baseline.md`、`docs/module-status.md`、`docs/feature-status.md` 为准。
|
||||||
|
|
||||||
- 当前执行游标:`M06-F`
|
- 当前执行游标:`M06-G`
|
||||||
- 最近工程提交:`9144fa8`,完成 M06-E 智慧插座查询、开关、本地任务、计量保护告警和后台控制 API。
|
- 最近工程提交:`8936ad1`,完成 M06-F 订单设备自动联动任务,支持订单开始、续费、取消、结束和换房时的控制箱任务与插座开关。
|
||||||
- 下一工程目标:M06-F 订单自动联动。
|
- 下一工程目标:M06-G 真实硬件联调。
|
||||||
|
|
||||||
## 版本递进
|
## 版本递进
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# 当前开发成果基线
|
# 当前开发成果基线
|
||||||
|
|
||||||
> V5.0 首次核验日期:2026-06-16
|
> V5.0 首次核验日期:2026-06-16
|
||||||
> audited_commit: `9144fa8`
|
> audited_commit: `8936ad1`
|
||||||
> next_engineering_target: M06-F 订单自动联动
|
> next_engineering_target: M06-G 真实硬件联调
|
||||||
> 事实源:当前工作区、Git 历史、状态文档、Windows/WSL 检查脚本。
|
> 事实源:当前工作区、Git 历史、状态文档、Windows/WSL 检查脚本。
|
||||||
|
|
||||||
## 总体结论
|
## 总体结论
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# M06-F 订单自动联动
|
||||||
|
|
||||||
|
- 日期:2026-06-24
|
||||||
|
- 起始 commit:`e4941c2`
|
||||||
|
- 工程 commit:`8936ad1`
|
||||||
|
- ENGINEERING_DELTA=YES
|
||||||
|
- 子阶段状态:PARTIAL/BLOCKED_EXTERNAL;任务处理闭环完成,缺真实硬件和生产 MQTT 验收
|
||||||
|
|
||||||
|
## 工程增量
|
||||||
|
|
||||||
|
- 新增 `OrderDeviceAutomationService`,由 `device.command` 异步任务读取订单并下发硬件动作。
|
||||||
|
- `ORDER_PAID/ORDER_STARTED` 下发控制箱 `task`,并在房间已绑定智慧插座时打开插座。
|
||||||
|
- `ORDER_RENEWED` 下发控制箱 `addtask`,并保持插座开启。
|
||||||
|
- `ORDER_CANCELLED/ORDER_FINISHED` 下发 `canceltask` 并关闭智慧插座。
|
||||||
|
- `ORDER_ROOM_CHANGED` 先取消旧房间设备,再按当前订单房间重新启动联动。
|
||||||
|
- 终态订单的延迟开始/续费任务会跳过,不补发开门或通电命令。
|
||||||
|
- Worker CLI 已注册 `device.command` handler;命令仍复用 MQTT 发布、ACK 和失败补偿状态机。
|
||||||
|
|
||||||
|
## 验证
|
||||||
|
|
||||||
|
- Windows `npm test`:退出码 0,M01-A 至 M06-F 全量后端回归通过。
|
||||||
|
- 新增测试覆盖开始、续费、取消、换房、无插座绑定跳过和终态保护。
|
||||||
|
- 工程 commit 已 push,`HEAD == origin/main == 8936ad1`。
|
||||||
|
|
||||||
|
## 外部阻塞与后续
|
||||||
|
|
||||||
|
缺生产 MQTT 账号/ACL、控制箱、Sub-1G 门锁、4G 智慧插座、DeviceID 和现场配线,真实订单到硬件全链路仍保留 `BLOCKED_EXTERNAL`。游标进入 M06-G 真实硬件联调。
|
||||||
@@ -42,8 +42,9 @@
|
|||||||
| BKG-004 | 后台设备管理 | M06-B/M08 | PARTIAL | `9144fa8` | 已提供设备入库、列表、拓扑、通道绑定、Sub-1G 绑定、状态、维护和插座控制 API;同一房间控制目标唯一,控制箱与智慧插座重复负载被数据库拒绝。 | Vue 后台页面和真实设备扫码入库待 M08/M06-G。 | M06-F 接入订单自动联动;M08 实现管理页面。 |
|
| BKG-004 | 后台设备管理 | M06-B/M08 | PARTIAL | `9144fa8` | 已提供设备入库、列表、拓扑、通道绑定、Sub-1G 绑定、状态、维护和插座控制 API;同一房间控制目标唯一,控制箱与智慧插座重复负载被数据库拒绝。 | Vue 后台页面和真实设备扫码入库待 M08/M06-G。 | M06-F 接入订单自动联动;M08 实现管理页面。 |
|
||||||
| IOT-006 | MQTT 消息幂等 | M01/M06-C | DONE | `e795cdb` | 上行按租户、设备、Topic 和 payload SHA-256 唯一;QoS 1 重复消息只增加 `receive_count`,不重复更新命令或设备副作用;WSL MySQL 8.4.9 实测两次 ACK 仅一条事件。 | - | M06-D/E 继续复用同一消费链路。 |
|
| IOT-006 | MQTT 消息幂等 | M01/M06-C | DONE | `e795cdb` | 上行按租户、设备、Topic 和 payload SHA-256 唯一;QoS 1 重复消息只增加 `receive_count`,不重复更新命令或设备副作用;WSL MySQL 8.4.9 实测两次 ACK 仅一条事件。 | - | M06-D/E 继续复用同一消费链路。 |
|
||||||
| IOT-007 | 命令状态机 | M01/M06-C | DONE | `e795cdb` | 已实现 `PENDING/PUBLISHED/ACKED/FAILED/TIMEOUT/UNKNOWN/CANCELLED` 数据模型,发布失败、ACK 结果、超时和 13 位命令 ID 均有测试;发布成功不等于 ACK。 | - | M06-D/F 接入业务权限、补偿与过期取消。 |
|
| IOT-007 | 命令状态机 | M01/M06-C | DONE | `e795cdb` | 已实现 `PENDING/PUBLISHED/ACKED/FAILED/TIMEOUT/UNKNOWN/CANCELLED` 数据模型,发布失败、ACK 结果、超时和 13 位命令 ID 均有测试;发布成功不等于 ACK。 | - | M06-D/F 接入业务权限、补偿与过期取消。 |
|
||||||
| DEV-001 | 一键开门与设备动作 | M06-D/M06-F | PARTIAL | `9144fa8` | 已提供控制箱控电、磁力锁、TTS、LED、订单任务、Sub-1G 门锁和智慧插座控制服务;离线不发送,门店范围与常开权限生效,命令返回 PUBLISHED 而非假成功。 | 顾客订单权限编排属于 M06-F,真实硬件属于 M06-G。 | M06-F 接入有效订单/分享令牌与组合动作。 |
|
| DEV-001 | 一键开门与设备动作 | M06-D/M06-F | PARTIAL | `8936ad1` | 已提供控制箱控电、磁力锁、TTS、LED、订单任务、Sub-1G 门锁和智慧插座控制服务;`device.command` 任务可按订单开始、续费、取消、结束和换房下发 `task/addtask/canceltask` 与插座开关;终态订单不会延迟补发命令,命令返回 PUBLISHED 而非假成功。 | 顾客小程序一键入口待 M08;真实硬件属于 M06-G。 | M06-G 执行订单到硬件真实矩阵;M08 接入顾客/管理员界面。 |
|
||||||
| IOT-002 | 控制箱接入 | M06-D | PARTIAL | `d15fd3f` | `ConctolPower/Crldoor/PlayTTS/stopTTS/CrlLED/task/addtask/canceltask` 已通过适配器、命令持久化和 API 接入。 | 缺控制箱实物逐路负载、门磁、TTS 和任务回包联调。 | M06-G 执行实物矩阵。 |
|
| IOT-002 | 控制箱接入 | M06-D | PARTIAL | `d15fd3f` | `ConctolPower/Crldoor/PlayTTS/stopTTS/CrlLED/task/addtask/canceltask` 已通过适配器、命令持久化和 API 接入。 | 缺控制箱实物逐路负载、门磁、TTS 和任务回包联调。 | M06-G 执行实物矩阵。 |
|
||||||
| IOT-003 | Sub-1G 门锁绑定 | M06-D | PARTIAL | `d15fd3f` | `AddDevice` 下发、超时窗口、回包 subID/subtype、701C/701G 型号映射和父子拓扑自动固化已实现。 | 缺现场 `*789#` 与实物配对。 | M06-G 现场配对、超时和换绑验收。 |
|
| IOT-003 | Sub-1G 门锁绑定 | M06-D | PARTIAL | `d15fd3f` | `AddDevice` 下发、超时窗口、回包 subID/subtype、701C/701G 型号映射和父子拓扑自动固化已实现。 | 缺现场 `*789#` 与实物配对。 | M06-G 现场配对、超时和换绑验收。 |
|
||||||
| IOT-004 | Sub-1G 门锁控制 | M06-D | PARTIAL | `d15fd3f` | `CtrlDevice` 开关门、密码/卡片和恢复出厂适配器已实现;危险清空/恢复出厂仅平台管理员加确认短语;record 内容哈希脱敏,低电量及 timeout/full/unconfirm 告警。 | 缺 701C/701G 实物及密码/卡片现场验收。 | M06-G 完成实物控制与故障场景。 |
|
| IOT-004 | Sub-1G 门锁控制 | M06-D | PARTIAL | `d15fd3f` | `CtrlDevice` 开关门、密码/卡片和恢复出厂适配器已实现;危险清空/恢复出厂仅平台管理员加确认短语;record 内容哈希脱敏,低电量及 timeout/full/unconfirm 告警。 | 缺 701C/701G 实物及密码/卡片现场验收。 | M06-G 完成实物控制与故障场景。 |
|
||||||
| IOT-005 | 智慧插座接入 | M06-E | PARTIAL | `9144fa8` | `basicInfo/workInfo` 查询、`on/off`、`localtask/clearTask` 已通过适配器、命令持久化和后台 API 接入;本地任务限制 20 条;过载、过温、过流、过压/欠压、功率和温度阈值写入设备告警;Windows 全量后端回归通过。 | 缺 4G 智慧插座实物、DeviceID、生产 MQTT 账号/ACL 和现场负载,未执行真实计量与保护断电联调。 | M06-F 接入订单自动联动;M06-G 完成实物计量、开关、本地任务和保护事件矩阵。 |
|
| IOT-005 | 智慧插座接入 | M06-E | PARTIAL | `9144fa8` | `basicInfo/workInfo` 查询、`on/off`、`localtask/clearTask` 已通过适配器、命令持久化和后台 API 接入;本地任务限制 20 条;过载、过温、过流、过压/欠压、功率和温度阈值写入设备告警;Windows 全量后端回归通过。 | 缺 4G 智慧插座实物、DeviceID、生产 MQTT 账号/ACL 和现场负载,未执行真实计量与保护断电联调。 | M06-F 接入订单自动联动;M06-G 完成实物计量、开关、本地任务和保护事件矩阵。 |
|
||||||
|
| IOT-008 | 设备告警与离线 | M06/M10 | PARTIAL | `8936ad1` | `/devicewill/{DeviceID}` 可更新离线状态;低电量、timeout/full/unconfirm、插座过载、过温、过流、过压/欠压、功率和温度阈值可写入开放告警;订单联动任务失败会进入异步任务重试/补偿。 | 缺真实硬件离线、保护断电、任务结束和弱信号事件矩阵。 | M06-G 现场验证 Broker、设备、ACK、告警和恢复。 |
|
||||||
|
|||||||
@@ -3,11 +3,11 @@
|
|||||||
```yaml
|
```yaml
|
||||||
execution_cursor:
|
execution_cursor:
|
||||||
current_module: M06
|
current_module: M06
|
||||||
current_stage: M06-F
|
current_stage: M06-G
|
||||||
stage_status: TODO
|
stage_status: TODO
|
||||||
last_completed_stage: M06-E
|
last_completed_stage: M06-F
|
||||||
next_stage: M06-F
|
next_stage: M06-G
|
||||||
last_engineering_commit: 9144fa8
|
last_engineering_commit: 8936ad1
|
||||||
last_push_verified: true
|
last_push_verified: true
|
||||||
base_branch: main
|
base_branch: main
|
||||||
blocked_reason: ""
|
blocked_reason: ""
|
||||||
@@ -22,7 +22,7 @@ execution_cursor:
|
|||||||
| M03 门店、房间、价格、营业时间 | DONE | `d563078` | docs/devlogs/2026-06-18-M03-D-场景码NFC与WiFi.md | M03-A/B/C/D 已完成门店房间、装修广告、媒体、地图选店、场景码/NFC 页面导航和受控 Wi-Fi;真实微信小程序码图片生成留待 M08 真机联调。 |
|
| M03 门店、房间、价格、营业时间 | DONE | `d563078` | docs/devlogs/2026-06-18-M03-D-场景码NFC与WiFi.md | M03-A/B/C/D 已完成门店房间、装修广告、媒体、地图选店、场景码/NFC 页面导航和受控 Wi-Fi;真实微信小程序码图片生成留待 M08 真机联调。 |
|
||||||
| M04 订单、时段锁定、支付闭环 | DONE | `91801fe` | docs/devlogs/2026-06-20-M04-D-订单分享.md | M04-A/B/C/D 已完成可信定价、并发预占、订单状态机、续费取消换房、管理员调整、代下单和最小权限分享;Windows 全量回归与 WSL MySQL 8.4.9 模块回归通过。 |
|
| M04 订单、时段锁定、支付闭环 | DONE | `91801fe` | docs/devlogs/2026-06-20-M04-D-订单分享.md | M04-A/B/C/D 已完成可信定价、并发预占、订单状态机、续费取消换房、管理员调整、代下单和最小权限分享;Windows 全量回归与 WSL MySQL 8.4.9 模块回归通过。 |
|
||||||
| M05 会员、余额、套餐、优惠券 | PARTIAL | `1680d73` | docs/devlogs/2026-06-22-M05-D-分账与收款配置.md | M05-A/B/C/D 工程闭环已完成:统一支付、微信支付退款、团购直订、门店收款账户、分账接收方、比例策略、授权门禁、幂等分账和对账查询均通过 Windows 与 WSL MySQL 回归;真实微信/团购/分账权限未提供,模块保持 PARTIAL/BLOCKED_EXTERNAL。 |
|
| M05 会员、余额、套餐、优惠券 | PARTIAL | `1680d73` | docs/devlogs/2026-06-22-M05-D-分账与收款配置.md | M05-A/B/C/D 工程闭环已完成:统一支付、微信支付退款、团购直订、门店收款账户、分账接收方、比例策略、授权门禁、幂等分账和对账查询均通过 Windows 与 WSL MySQL 回归;真实微信/团购/分账权限未提供,模块保持 PARTIAL/BLOCKED_EXTERNAL。 |
|
||||||
| M06 设备、MQTT 与真实硬件联动 | PARTIAL | `9144fa8` | docs/devlogs/2026-06-24-M06-E-智慧插座.md | M06-A 至 E 已完成 MQTT、拓扑、协议幂等、控制箱、Sub-1G 门锁和智慧插座业务控制、安全门禁、事件脱敏和告警;无实物联调,继续 M06-F 订单自动联动。 |
|
| M06 设备、MQTT 与真实硬件联动 | PARTIAL | `8936ad1` | docs/devlogs/2026-06-24-M06-F-订单自动联动.md | M06-A 至 F 已完成 MQTT、拓扑、协议幂等、控制箱、Sub-1G 门锁、智慧插座和订单自动联动任务;无实物联调,继续 M06-G 真实硬件联调。 |
|
||||||
| M07 保洁、通知、任务和语音播报 | TODO | - | - | - |
|
| M07 保洁、通知、任务和语音播报 | TODO | - | - | - |
|
||||||
| M08 微信原生小程序完整业务 | TODO | - | - | - |
|
| M08 微信原生小程序完整业务 | TODO | - | - | - |
|
||||||
| M09 后台管理端完整业务 | TODO | - | - | - |
|
| M09 后台管理端完整业务 | TODO | - | - | - |
|
||||||
|
|||||||
Reference in New Issue
Block a user