From 48638606fe78802b4d16a153211efacfc08c7b9b Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 22 Jun 2026 18:39:35 +0800 Subject: [PATCH] =?UTF-8?q?docs(M06-D):=20=E8=AE=B0=E5=BD=95=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E7=AE=B1=E9=97=A8=E9=94=81=E9=AA=8C=E6=94=B6=E5=B9=B6?= =?UTF-8?q?=E6=8E=A8=E8=BF=9B=E6=8F=92=E5=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++-- .../2026-06-22-M06-D-device-control.md | 14 ++++++++++ docs/current-baseline.md | 4 +-- docs/devlogs/2026-06-22-M06-D-控制箱与门锁.md | 28 +++++++++++++++++++ docs/feature-status.md | 4 +++ docs/module-status.md | 12 ++++---- 6 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 docs/api-changelog/2026-06-22-M06-D-device-control.md create mode 100644 docs/devlogs/2026-06-22-M06-D-控制箱与门锁.md diff --git a/README.md b/README.md index 6dff530..c0e261a 100644 --- a/README.md +++ b/README.md @@ -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` 为准。 -- 当前执行游标:`M06-D` -- 最近工程提交:`e795cdb`,完成 M06-C 三类协议适配器、13 位命令状态机、ACK 关联、QoS 1 去重与死信。 -- 下一工程目标:M06-D 控制箱和门锁业务能力。 +- 当前执行游标:`M06-E` +- 最近工程提交:`d15fd3f`,完成 M06-D 控制箱与 Sub-1G 门锁业务控制、安全门禁、配对拓扑和事件告警。 +- 下一工程目标:M06-E 智慧插座。 ## 版本递进 diff --git a/docs/api-changelog/2026-06-22-M06-D-device-control.md b/docs/api-changelog/2026-06-22-M06-D-device-control.md new file mode 100644 index 0000000..cfbb240 --- /dev/null +++ b/docs/api-changelog/2026-06-22-M06-D-device-control.md @@ -0,0 +1,14 @@ +# M06-D 控制箱与门锁 API + +- `POST /admin-api/device-control/power` +- `POST /admin-api/device-control/door` +- `POST /admin-api/device-control/tts` +- `POST /admin-api/device-control/tts/stop` +- `POST /admin-api/device-control/led` +- `POST /admin-api/device-control/task/start` +- `POST /admin-api/device-control/task/extend` +- `POST /admin-api/device-control/task/cancel` +- `POST /admin-api/device-control/sub-lock/pair` +- `POST /admin-api/device-control/sub-lock/action` + +响应中的 `PUBLISHED` 只表示 MQTT 发布完成,设备执行结果以 ACK 后的命令状态为准。 diff --git a/docs/current-baseline.md b/docs/current-baseline.md index 863da81..267b87d 100644 --- a/docs/current-baseline.md +++ b/docs/current-baseline.md @@ -1,8 +1,8 @@ # 当前开发成果基线 > V5.0 首次核验日期:2026-06-16 -> audited_commit: `e795cdb` -> next_engineering_target: M06-D 控制箱和门锁业务能力 +> audited_commit: `d15fd3f` +> next_engineering_target: M06-E 智慧插座 > 事实源:当前工作区、Git 历史、状态文档、Windows/WSL 检查脚本。 ## 总体结论 diff --git a/docs/devlogs/2026-06-22-M06-D-控制箱与门锁.md b/docs/devlogs/2026-06-22-M06-D-控制箱与门锁.md new file mode 100644 index 0000000..6d95661 --- /dev/null +++ b/docs/devlogs/2026-06-22-M06-D-控制箱与门锁.md @@ -0,0 +1,28 @@ +# M06-D 控制箱和门锁 + +- 日期:2026-06-22 +- 起始 commit:`f71ac09` +- 工程 commit:`d15fd3f` +- ENGINEERING_DELTA=YES +- 子阶段状态:PARTIAL/BLOCKED_EXTERNAL;Mock 与数据库闭环完成,缺实物 + +## 工程增量 + +- 控制箱:三路控电、磁力锁、TTS/停止、LED、任务开始/续时/取消。 +- Sub-1G:配对窗口、开关门、密码/卡片及恢复出厂命令。 +- 所有动作先解析租户、门店、房间和控制箱绑定;离线设备拒绝发送。 +- 常开仅管理员;恢复出厂及清空凭据仅平台管理员加固定确认短语。 +- `record` 卡号/密码内容改存 SHA-256 与脱敏值,不落明文。 +- `timeout/full/unconfirm` 和低电量写入设备告警。 +- `AddDevice` 成功回包自动创建 701C/701G 子设备和父子拓扑。 + +## 验证 + +- Windows 全量测试与仓库门禁退出码 0。 +- WSL MySQL 8.4.9 集成往返通过。 +- 实测 record 原文不落库、9% 电量生成 HIGH 告警、AddDevice subtype 14 建立 701C 拓扑。 +- 工程 commit 已 push,`HEAD == origin/main == d15fd3f0ff1843201a7d6792fc65d4fe2a0207af`。 + +## 外部阻塞与后续 + +缺控制箱、701C/701G 实物、DeviceID 和现场配线,真实动作保留 `BLOCKED_EXTERNAL`。游标进入 M06-E 智慧插座。 diff --git a/docs/feature-status.md b/docs/feature-status.md index 906d553..f3c9b4a 100644 --- a/docs/feature-status.md +++ b/docs/feature-status.md @@ -42,3 +42,7 @@ | BKG-004 | 后台设备管理 | M06-B/M08 | PARTIAL | `74a67ac` | 已提供设备入库、列表、拓扑、通道绑定、Sub-1G 绑定、状态和维护 API;同一房间控制目标唯一,控制箱与智慧插座重复负载被数据库拒绝。 | Vue 后台页面和真实设备扫码入库待 M08/M06-G。 | M06-C/D/E 接入协议后补真实状态;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-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 | `d15fd3f` | 已提供控制箱控电、磁力锁、TTS、LED、订单任务与 Sub-1G 门锁控制服务;离线不发送,门店范围与常开权限生效,命令返回 PUBLISHED 而非假成功。 | 顾客订单权限编排属于 M06-F,真实硬件属于 M06-G。 | M06-F 接入有效订单/分享令牌与组合动作。 | +| 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-004 | Sub-1G 门锁控制 | M06-D | PARTIAL | `d15fd3f` | `CtrlDevice` 开关门、密码/卡片和恢复出厂适配器已实现;危险清空/恢复出厂仅平台管理员加确认短语;record 内容哈希脱敏,低电量及 timeout/full/unconfirm 告警。 | 缺 701C/701G 实物及密码/卡片现场验收。 | M06-G 完成实物控制与故障场景。 | diff --git a/docs/module-status.md b/docs/module-status.md index be19cca..186b2c1 100644 --- a/docs/module-status.md +++ b/docs/module-status.md @@ -3,15 +3,15 @@ ```yaml execution_cursor: current_module: M06 - current_stage: M06-D + current_stage: M06-E stage_status: TODO - last_completed_stage: M06-C - next_stage: M06-D - last_engineering_commit: e795cdb + last_completed_stage: M06-D + next_stage: M06-E + last_engineering_commit: d15fd3f last_push_verified: true base_branch: main blocked_reason: "" - updated_at: 2026-06-22T22:10:00+08:00 + updated_at: 2026-06-22T22:50:00+08:00 ``` | 模块 | 状态 | 最近提交 | 最近开发日志 | 备注 | @@ -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 真机联调。 | | 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。 | -| M06 设备、MQTT 与真实硬件联动 | PARTIAL | `e795cdb` | docs/devlogs/2026-06-22-M06-C-协议适配与消息幂等.md | M06-A/B/C 已完成 MQTT 基础、设备拓扑、三类协议适配器、命令状态、ACK 关联、QoS 1 去重和死信;协议 PDF 原件未在仓库找到,当前严格按 V5.4 已固化字段实现,继续 M06-D。 | +| M06 设备、MQTT 与真实硬件联动 | PARTIAL | `d15fd3f` | docs/devlogs/2026-06-22-M06-D-控制箱与门锁.md | M06-A 至 D 已完成 MQTT、拓扑、协议幂等、控制箱与 Sub-1G 门锁业务控制、安全门禁、事件脱敏和告警;无实物联调,继续 M06-E 智慧插座。 | | M07 保洁、通知、任务和语音播报 | TODO | - | - | - | | M08 微信原生小程序完整业务 | TODO | - | - | - | | M09 后台管理端完整业务 | TODO | - | - | - |