修复: Owl取流JSON反序列化(JsonOpts+PascalCase属性)+前端字段兼容+规则引擎SqlSugar语法

This commit is contained in:
2026-06-08 10:50:14 +08:00
parent 8a6776eac9
commit 1fb746c548
17 changed files with 701 additions and 266 deletions
+20 -18
View File
@@ -44,7 +44,7 @@ CREATE TABLE base_device (
INDEX IX_Sync (AdapterCode, SourceId),
INDEX IX_Point (PointId),
INDEX IX_Parent (ParentDeviceId),
INDEX IX_Gateway (GatewayNodeId),
INDEX IX_Gateway (NodeId),
INDEX IX_Group (DeviceGroup)
) COMMENT '统一设备主表';
@@ -169,25 +169,27 @@ CREATE TABLE gateway_nodes (
-- 规则条件/动作的 ValueId 绑定到此表的 VariableId
-- DeviceId 关联 base_device.DeviceId
-- =================================================
DROP TABLE IF EXISTS warehouse_variable;
CREATE TABLE warehouse_variable (
VariableId INT IDENTITY(1,1) PRIMARY KEY,
DeviceId INT NOT NULL,
VariableName NVARCHAR(255) NOT NULL, -- 温度/湿度/人数
PointIndex INT DEFAULT 0, -- MC4 pointIndex / Owl 统计量编码
Unit NVARCHAR(50) NULL, -- ℃/%/人
SortOrder INT DEFAULT 0
);
CREATE INDEX IX_warehouse_variable_DeviceId ON warehouse_variable (DeviceId);
VariableId INT AUTO_INCREMENT COMMENT '变量ID(自增主键)',
DeviceId INT NOT NULL COMMENT '关联设备ID(base_device.DeviceId)',
VariableName VARCHAR(255) NOT NULL COMMENT '变量名称(温度/湿度/人数等)',
PointIndex INT DEFAULT 0 COMMENT '点位索引(MC4 pointIndex / Owl统计量编码)',
Unit VARCHAR(50) NULL COMMENT '单位(℃/%/人)',
SortOrder INT DEFAULT 0 COMMENT '排序顺序',
PRIMARY KEY (VariableId),
INDEX IX_warehouse_variable_DeviceId (DeviceId)
) COMMENT '规则引擎变量定义表';
-- F3.2 规则引擎滞后窗 (hysteresis)
ALTER TABLE warehouse_rulecondition ADD
RecoveryThreshold_Numeric DECIMAL(18,2) NULL,
RecoveryThreshold_Switch NVARCHAR(50) NULL;
-- 触发阈值与恢复阈值之间留缓冲区间,防止阈值附近反复抖动
ALTER TABLE warehouse_rulecondition
ADD COLUMN RecoveryThreshold_Numeric DECIMAL(18,2) NULL COMMENT '数值型恢复阈值(如>28℃触发,≤26℃恢复)',
ADD COLUMN RecoveryThreshold_Switch VARCHAR(50) NULL COMMENT '开关型恢复阈值(如开触发,关恢复)';
-- F3.3 条件级冷却
ALTER TABLE warehouse_rulecondition ADD
LastTriggered DATETIME NULL,
LastTriggerValue DECIMAL(18,2) NULL;
-- F3.3 条件级冷却 (cooldown)
-- 冷却期内条件再次命中不重复执行动作,防止告警轰炸
ALTER TABLE warehouse_rulecondition
ADD COLUMN LastTriggered DATETIME NULL COMMENT '该条件上次触发的时间',
ADD COLUMN LastTriggerValue DECIMAL(18,2) NULL COMMENT '该条件上次触发时的实际值';