2.0 KiB
2.0 KiB
设备分类与厂商映射
问题与变更
现有产品档案既包含钢瓶,也包含瓶阀;原有厂商上行消息使用独立16位设备编号,不能靠名称推测归属关系。
新增 product_info.device_kind(未分类、智能阀、报警器、钢瓶)和 vendor_device_id(可为空的厂商编号)。历史记录默认未分类且未关联,不改写现有用户归属。
后台产品新建、编辑与详情加入两项配置。后端写入白名单和校验同时扩展:只有智能阀/报警器允许厂商编号,编号必须为16位数字且非全零;非空编号由数据库全局唯一索引约束。空编号表示尚未关联,不代表设备离线。
文件与验证
- 模型:
backend/api/internal/models/product_info.go。 - 写入校验:
backend/api/internal/logic/platform/product/product.go、device_mapping.go。 - 测试:
device_mapping_test.go。 - 独立迁移:
backend/api/cmd/cli/device_mapping_migration.go,命令migrate-device-mapping。 - 后台字段:
frontend/platform_admin/src/api/resources.ts。
产品逻辑、路由、CLI测试通过,后台类型与48项资源契约检查通过。
迁移已在原远程配置执行成功,只新增两列、注释和唯一索引;API已切换到 heqi-device-mapping-api.exe。
浏览器首次检查发现通用字段函数要求在中文名称字典注册,即便调用处已有label也不能省略,已补齐并验证列表恢复显示“未分类/未关联”。
内置浏览器实际进入新建表单,展开分类选项并选择“智能阀”,确认四项分类及厂商编号输入区可见。此次只检查表单,没有提交新产品或修改已有产品。
尚未完成
此变更只建立明确映射配置,用户“我的设备”页面和遥测读取还未接入,不开放远程控制。未将现有示例产品自动映射到真实厂商编号。配置保存、重复编号及实际设备联调还需继续验证,不能据此宣称设备闭环完成。