phase/0-infrastructure #1

Merged
g82tt merged 25 commits from phase/0-infrastructure into master 2026-05-16 15:17:19 +08:00
Showing only changes of commit b5195aa4d4 - Show all commits

View File

@@ -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
### 反方向写回