From b5195aa4d40a2ad972ee152b2315401892aaf517 Mon Sep 17 00:00:00 2001 From: g82tt Date: Sat, 16 May 2026 12:10:18 +0800 Subject: [PATCH] Phase0_sync_plan_with_db_changes --- doc/整合方案/SecMPS_最终整合方案_v2.0.md | 29 +++++++++++++----------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/doc/整合方案/SecMPS_最终整合方案_v2.0.md b/doc/整合方案/SecMPS_最终整合方案_v2.0.md index aa449c9..91b2af5 100644 --- a/doc/整合方案/SecMPS_最终整合方案_v2.0.md +++ b/doc/整合方案/SecMPS_最终整合方案_v2.0.md @@ -107,6 +107,8 @@ GET /api/gateway/health ### 3.1 区域表 warehouse_regions(现有) +层级: warehouse_regions(区域) → warehouse_devicepoint(点位) → base_device(设备) + | 字段 | 说明 | |------|------| | Id | int PK | @@ -137,7 +139,7 @@ GET /api/gateway/health | SourceId | NVARCHAR(100) | 源系统设备ID | | **DeviceCategory** | NVARCHAR(50) | 设备种类(字典: 摄像机/温湿度变送器/...) | | **DeviceGroup** | NVARCHAR(20) | 设备分组(字典: 视频设备/IoT设备/门禁设备/道闸设备/报警设备) | -| RegionId | INT? | 所属区域ID | +| PointId | INT? | 所属点位ID | | GatewayNodeId | INT? | 所属网关节点ID | | IsParent | NVARCHAR(20) | 是否父设备(字典: 是/否) | | ParentDeviceId | INT? | 父设备自引用 | @@ -146,8 +148,6 @@ GET /api/gateway/health | MapModelScale | FLOAT | | | MapModelRotation | NVARCHAR(100) | | | **ExtraData** | TEXT | ★ 适配器扩展JSON(Owl/MC4/门禁字段均存于此) | -| LocalOverrides | TEXT | 本地覆盖JSON | -| SyncVersion | BIGINT | 乐观锁 | | LastSyncTime | DATETIME | | | Enable | NVARCHAR(20) | 启用状态(字典: 启用/禁用) | @@ -186,16 +186,19 @@ Vol.Pro 同步接口通过 DeviceGroup 路由,无需硬编码: ``` gateway_nodes: gw-31ku -warehouse_regions: 厂区 → 新库区 → 31号库房 +warehouse_regions → warehouse_devicepoint → base_device + 区域 点位 设备 -base_device (RegionId=3, GatewayNodeId=gw-31ku.NodeId): - 东北角高位摄像机 (DeviceGroup=视频设备, ExtraData={owlDeviceId,...}) - 人员计数摄像机 (DeviceGroup=视频设备) - 动环采集器 (DeviceGroup=IoT设备, IsParent=是) - ├── 温湿度变送器 (ParentDeviceId=采集器, ExtraData={pointIndex:0,unit:"℃"}) - ├── 空调控制器 (ParentDeviceId=采集器, ExtraData={pointIndex:2,isControlPoint:true}) - ├── 除湿/恒湿机 (ParentDeviceId=采集器) - └── 紧急报警按钮 (ParentDeviceId=采集器, DeviceGroup=报警设备) +例: 厂区 → 新库区 → 31号库房(点位) → 设备 + +base_device (PointId=点位ID, GatewayNodeId=gw-31ku.NodeId): + 东北角高位摄像机 (DeviceCategory=摄像机, DeviceGroup=视频设备, ExtraData={owlDeviceId,...}) + 人员计数摄像机 (DeviceCategory=摄像机, DeviceGroup=视频设备) + 动环采集器 (DeviceCategory=动环采集器, DeviceGroup=IoT设备, IsParent=是) + ├── 温湿度变送器 (DeviceCategory=温湿度变送器, ParentDeviceId=采集器, ExtraData={pointIndex:0,unit:"℃"}) + ├── 空调控制器 (DeviceCategory=空调控制器, ParentDeviceId=采集器, ExtraData={pointIndex:2,isControlPoint:true}) + ├── 除湿/恒湿机 (DeviceCategory=除湿/恒湿机, ParentDeviceId=采集器) + └── 紧急报警按钮 (DeviceCategory=紧急报警按钮, DeviceGroup=报警设备, ParentDeviceId=采集器) ``` --- @@ -269,7 +272,7 @@ const actionMap = { ### Owl → 设备 - GET /devices → Upsert base_device (DeviceGroup=视频设备, IsParent=是) - GET /channels → Upsert base_device (ParentDeviceId=NVR) + video_channel -- Owl 无区域概念 → RegionId=NULL, 管理员手动分配 +- Owl 无区域概念 → PointId=NULL, 管理员手动分配 - 模式: Merge ### 反方向写回