|
|
@@ -883,21 +883,198 @@ create table adm_ems_flow_rel (
|
|
|
-- 能源策略表
|
|
|
-- ----------------------------
|
|
|
drop table if exists adm_op_energy_strategy;
|
|
|
-create table adm_op_energy_strategy (
|
|
|
- `id` bigint(20) not null auto_increment comment '序号',
|
|
|
- `area_code` varchar(32) not null comment '地块代码',
|
|
|
- `strategy_code` varchar(16) not null comment '策略代码',
|
|
|
- `strategy_name` varchar(32) not null comment '策略名称',
|
|
|
- `strategy_type` int not null comment '1:源网协调,2:源荷互动, 3:网储互动,4:其他',
|
|
|
- `strategy_state` int default null comment '0:关闭 1:启动',
|
|
|
- `strategy_desc` varchar(128) default null comment '策略描述',
|
|
|
- `exec_mode` int default null comment '1:定时执行(cron)99:手动执行',
|
|
|
- `exec_rule` varchar(64) default null comment '执行规则',
|
|
|
- `create_time` datetime default CURRENT_TIMESTAMP comment '创建时间',
|
|
|
- `update_time` datetime default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '更新时间',
|
|
|
- primary key (`id`),
|
|
|
- unique key ux_op_energy_strategy_code(`strategy_code`)
|
|
|
-) engine=innodb auto_increment=1 comment = '能源策略表';
|
|
|
+CREATE TABLE adm_op_energy_strategy (
|
|
|
+ `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '序号',
|
|
|
+ `area_code` VARCHAR(32) NOT NULL COMMENT '地块代码',
|
|
|
+ `strategy_code` VARCHAR(16) NOT NULL COMMENT '策略代码',
|
|
|
+ `strategy_name` VARCHAR(64) NOT NULL COMMENT '策略名称',
|
|
|
+ `scene_type` VARCHAR(32) DEFAULT NULL COMMENT '场景类型:PV_ESS-光储协同,DEMAND_RESP-需求响应,PEAK_VALLEY-削峰填谷,EMERGENCY-应急保供,ENERGY_SAVE-节能优化',
|
|
|
+ `strategy_category` VARCHAR(32) DEFAULT NULL COMMENT '策略分类:AUTO-自动,MANUAL-手动,SCHEDULE-定时,EVENT-事件',
|
|
|
+ `trigger_type` INT DEFAULT NULL COMMENT '触发类型:1-事件触发,2-定时触发,3-手动触发,4-条件触发',
|
|
|
+ `trigger_config` TEXT DEFAULT NULL COMMENT '触发配置(JSON)',
|
|
|
+ `strategy_state` INT DEFAULT 0 COMMENT '策略状态:0-停用,1-启用,2-调试',
|
|
|
+ `priority` INT DEFAULT 50 COMMENT '优先级:0-100,数值越大优先级越高',
|
|
|
+ `strategy_desc` VARCHAR(256) DEFAULT NULL COMMENT '策略描述',
|
|
|
+ `exec_mode` INT DEFAULT NULL COMMENT '执行模式:1-串行,2-并行,99-手动',
|
|
|
+ `exec_rule` VARCHAR(128) DEFAULT NULL COMMENT 'CRON表达式',
|
|
|
+ `timeout` INT DEFAULT 300 COMMENT '超时时间(秒)',
|
|
|
+ `retry_times` INT DEFAULT 0 COMMENT '失败重试次数',
|
|
|
+ `last_exec_time` DATETIME DEFAULT NULL COMMENT '最后执行时间',
|
|
|
+ `last_exec_result` INT DEFAULT NULL COMMENT '最后执行结果:0-成功,1-失败',
|
|
|
+ `exec_count` INT DEFAULT 0 COMMENT '执行次数',
|
|
|
+ `success_count` INT DEFAULT 0 COMMENT '成功次数',
|
|
|
+ `fail_count` INT DEFAULT 0 COMMENT '失败次数',
|
|
|
+ `version` INT DEFAULT 1 COMMENT '版本号',
|
|
|
+ `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人',
|
|
|
+ `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `ux_strategy_code` (`strategy_code`),
|
|
|
+ KEY `idx_area_code` (`area_code`),
|
|
|
+ KEY `idx_trigger_type` (`trigger_type`),
|
|
|
+ KEY `idx_strategy_state` (`strategy_state`)
|
|
|
+) ENGINE=INNODB AUTO_INCREMENT=1 COMMENT='能源策略表';
|
|
|
+
|
|
|
+-- ----------------------------
|
|
|
+-- 能源策略模板表
|
|
|
+-- ----------------------------
|
|
|
+DROP TABLE IF EXISTS adm_op_energy_strategy_template;
|
|
|
+CREATE TABLE adm_op_energy_strategy_template (
|
|
|
+ `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '序号',
|
|
|
+ `template_code` VARCHAR(32) NOT NULL COMMENT '模板代码',
|
|
|
+ `template_name` VARCHAR(64) NOT NULL COMMENT '模板名称',
|
|
|
+ `scene_type` VARCHAR(32) NOT NULL COMMENT '场景类型',
|
|
|
+ `description` VARCHAR(512) DEFAULT NULL COMMENT '模板描述',
|
|
|
+ `template_data` LONGTEXT NOT NULL COMMENT '模板数据(JSON,包含触发器、步骤、上下文变量)',
|
|
|
+ `icon` VARCHAR(64) DEFAULT NULL COMMENT '图标',
|
|
|
+ `cover_image` VARCHAR(256) DEFAULT NULL COMMENT '封面图片',
|
|
|
+ `tags` VARCHAR(256) DEFAULT NULL COMMENT '标签(逗号分隔)',
|
|
|
+ `applicable_devices` VARCHAR(512) DEFAULT NULL COMMENT '适用设备类型(逗号分隔)',
|
|
|
+ `sort_order` INT DEFAULT 0 COMMENT '排序',
|
|
|
+ `use_count` INT DEFAULT 0 COMMENT '使用次数',
|
|
|
+ `is_system` INT DEFAULT 0 COMMENT '是否系统预置:0-否,1-是',
|
|
|
+ `is_public` INT DEFAULT 1 COMMENT '是否公开:0-否,1-是',
|
|
|
+ `status` INT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
|
|
|
+ `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人',
|
|
|
+ `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `ux_template_code` (`template_code`),
|
|
|
+ KEY `idx_scene_type` (`scene_type`),
|
|
|
+ KEY `idx_is_system` (`is_system`),
|
|
|
+ KEY `idx_status` (`status`)
|
|
|
+) ENGINE=INNODB AUTO_INCREMENT=1 COMMENT='策略模板表';
|
|
|
+
|
|
|
+-- 策略预置模板
|
|
|
+-- ----------------------------------------
|
|
|
+INSERT INTO adm_op_energy_strategy_template
|
|
|
+(template_code, template_name, scene_type, description, template_data, icon, tags, applicable_devices, sort_order, is_system, status)
|
|
|
+VALUES
|
|
|
+-- 光储联动模板
|
|
|
+('TPL_PV_ESS_BASIC', '光储联动-基础模板', 'PV_ESS',
|
|
|
+ '当光伏发电功率超过负荷需求时,自动将多余电量存入储能;当光伏发电不足时,从储能放电补充。',
|
|
|
+ '{
|
|
|
+ "triggers": [
|
|
|
+ {"triggerType": "ATTR", "triggerName": "光伏功率变化", "sourceObjType": 2, "attrKey": "activePower", "conditionExpr": "{\"left\":\"activePower\",\"op\":\">\",\"right\":0}"}
|
|
|
+ ],
|
|
|
+ "steps": [
|
|
|
+ {"stepType": "CONDITION", "stepName": "判断光伏功率", "stepIndex": 1, "conditionExpr": "{\"left\":\"pv.activePower\",\"op\":\">\",\"right\":\"load.activePower\"}"},
|
|
|
+ {"stepType": "ABILITY", "stepName": "储能充电", "stepIndex": 2, "abilityKey": "charge", "paramSource": "CONTEXT"},
|
|
|
+ {"stepType": "ABILITY", "stepName": "储能放电", "stepIndex": 3, "abilityKey": "discharge", "paramSource": "CONTEXT"}
|
|
|
+ ],
|
|
|
+ "context": [
|
|
|
+ {"varKey": "pvPower", "varName": "光伏功率", "varType": "INPUT", "dataType": "NUMBER"},
|
|
|
+ {"varKey": "loadPower", "varName": "负荷功率", "varType": "INPUT", "dataType": "NUMBER"},
|
|
|
+ {"varKey": "essSoc", "varName": "储能SOC", "varType": "INPUT", "dataType": "NUMBER"}
|
|
|
+ ]
|
|
|
+ }',
|
|
|
+ 'el-icon-sunny', '光伏,储能,联动', 'PV,ESS', 1, 1, 1),
|
|
|
+
|
|
|
+-- 削峰填谷模板
|
|
|
+('TPL_PEAK_VALLEY', '削峰填谷-定时调度', 'PEAK_VALLEY',
|
|
|
+ '根据电价时段自动调度储能充放电:低谷时段充电,高峰时段放电,实现电费优化。',
|
|
|
+ '{
|
|
|
+ "triggers": [
|
|
|
+ {"triggerType": "TIME", "triggerName": "谷时充电", "conditionExpr": "{\"cron\":\"0 0 23 * * ?\"}"},
|
|
|
+ {"triggerType": "TIME", "triggerName": "峰时放电", "conditionExpr": "{\"cron\":\"0 0 10 * * ?\"}"}
|
|
|
+ ],
|
|
|
+ "steps": [
|
|
|
+ {"stepType": "CONDITION", "stepName": "检查SOC", "stepIndex": 1, "conditionExpr": "{\"left\":\"ess.soc\",\"op\":\"<\",\"right\":90}"},
|
|
|
+ {"stepType": "ABILITY", "stepName": "储能充电", "stepIndex": 2, "abilityKey": "charge", "abilityParam": "{\"power\": 100}"},
|
|
|
+ {"stepType": "DELAY", "stepName": "等待充电完成", "stepIndex": 3, "delaySeconds": 3600}
|
|
|
+ ],
|
|
|
+ "context": [
|
|
|
+ {"varKey": "targetSoc", "varName": "目标SOC", "varType": "INPUT", "dataType": "NUMBER", "defaultValue": "90"},
|
|
|
+ {"varKey": "chargePower", "varName": "充电功率", "varType": "INPUT", "dataType": "NUMBER", "defaultValue": "100"}
|
|
|
+ ]
|
|
|
+ }',
|
|
|
+ 'el-icon-data-analysis', '削峰填谷,电价优化,储能', 'ESS', 2, 1, 1),
|
|
|
+
|
|
|
+-- 需求响应模板
|
|
|
+('TPL_DEMAND_RESP', '需求响应-负荷控制', 'DEMAND_RESP',
|
|
|
+ '当收到电网需求响应信号时,自动降低非关键负荷用电,并启动储能放电支撑。',
|
|
|
+ '{
|
|
|
+ "triggers": [
|
|
|
+ {"triggerType": "EVENT", "triggerName": "需求响应信号", "sourceObjType": 3, "eventKey": "demandResponse"}
|
|
|
+ ],
|
|
|
+ "steps": [
|
|
|
+ {"stepType": "PARALLEL", "stepName": "并行执行", "stepIndex": 1},
|
|
|
+ {"stepType": "ABILITY", "stepName": "降低空调负荷", "stepIndex": 2, "parentStepCode": "STEP_1", "abilityKey": "setTemperature", "abilityParam": "{\"temp\": 26}"},
|
|
|
+ {"stepType": "ABILITY", "stepName": "调暗照明", "stepIndex": 3, "parentStepCode": "STEP_1", "abilityKey": "dim", "abilityParam": "{\"level\": 60}"},
|
|
|
+ {"stepType": "ABILITY", "stepName": "储能放电", "stepIndex": 4, "abilityKey": "discharge", "paramSource": "STATIC"}
|
|
|
+ ],
|
|
|
+ "context": [
|
|
|
+ {"varKey": "responseLevel", "varName": "响应级别", "varType": "INPUT", "dataType": "NUMBER"},
|
|
|
+ {"varKey": "duration", "varName": "响应时长", "varType": "INPUT", "dataType": "NUMBER"}
|
|
|
+ ]
|
|
|
+ }',
|
|
|
+ 'el-icon-s-marketing', '需求响应,负荷控制,电网互动', 'ESS,HVAC,LIGHT', 3, 1, 1),
|
|
|
+
|
|
|
+-- 应急保供模板
|
|
|
+('TPL_EMERGENCY', '应急保供-电网故障切换', 'EMERGENCY',
|
|
|
+ '当检测到电网故障时,自动切换到储能供电模式,保障关键负荷持续运行。',
|
|
|
+ '{
|
|
|
+ "triggers": [
|
|
|
+ {"triggerType": "EVENT", "triggerName": "电网故障", "sourceObjType": 2, "eventKey": "gridFault"}
|
|
|
+ ],
|
|
|
+ "steps": [
|
|
|
+ {"stepType": "ABILITY", "stepName": "切断非关键负荷", "stepIndex": 1, "abilityKey": "disconnect"},
|
|
|
+ {"stepType": "DELAY", "stepName": "等待切换", "stepIndex": 2, "delaySeconds": 2},
|
|
|
+ {"stepType": "ABILITY", "stepName": "启动储能放电", "stepIndex": 3, "abilityKey": "discharge", "abilityParam": "{\"mode\": \"island\"}"},
|
|
|
+ {"stepType": "ABILITY", "stepName": "发送告警通知", "stepIndex": 4, "abilityKey": "sendAlert"}
|
|
|
+ ],
|
|
|
+ "context": [
|
|
|
+ {"varKey": "gridStatus", "varName": "电网状态", "varType": "INPUT", "dataType": "STRING"},
|
|
|
+ {"varKey": "essAvailable", "varName": "储能可用", "varType": "INPUT", "dataType": "BOOLEAN"}
|
|
|
+ ]
|
|
|
+ }',
|
|
|
+ 'el-icon-warning-outline', '应急,故障切换,保供', 'ESS,GRID', 4, 1, 1),
|
|
|
+
|
|
|
+-- 节能优化模板
|
|
|
+('TPL_ENERGY_SAVE', '节能优化-智能照明', 'ENERGY_SAVE',
|
|
|
+ '根据环境光照和人员存在情况,自动调节照明亮度,实现节能优化。',
|
|
|
+ '{
|
|
|
+ "triggers": [
|
|
|
+ {"triggerType": "ATTR", "triggerName": "光照变化", "sourceObjType": 2, "attrKey": "illuminance"},
|
|
|
+ {"triggerType": "ATTR", "triggerName": "人员检测", "sourceObjType": 2, "attrKey": "occupancy"}
|
|
|
+ ],
|
|
|
+ "steps": [
|
|
|
+ {"stepType": "CONDITION", "stepName": "检查人员存在", "stepIndex": 1, "conditionExpr": "{\"left\":\"sensor.occupancy\",\"op\":\"==\",\"right\":true}"},
|
|
|
+ {"stepType": "CONDITION", "stepName": "检查光照不足", "stepIndex": 2, "conditionExpr": "{\"left\":\"sensor.illuminance\",\"op\":\"<\",\"right\":300}"},
|
|
|
+ {"stepType": "ABILITY", "stepName": "开启照明", "stepIndex": 3, "abilityKey": "setLevel", "abilityParam": "{\"level\": 80}"}
|
|
|
+ ],
|
|
|
+ "context": [
|
|
|
+ {"varKey": "targetIlluminance", "varName": "目标照度", "varType": "INPUT", "dataType": "NUMBER", "defaultValue": "500"}
|
|
|
+ ]
|
|
|
+ }',
|
|
|
+ 'el-icon-odometer', '节能,照明,智能控制', 'LIGHT,SENSOR', 5, 1, 1);
|
|
|
+
|
|
|
+-- ----------------------------
|
|
|
+-- 策略触发条件表
|
|
|
+-- ----------------------------
|
|
|
+drop table if exists adm_op_energy_strategy_trigger;
|
|
|
+CREATE TABLE adm_op_energy_strategy_trigger (
|
|
|
+ `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '序号',
|
|
|
+ `strategy_code` VARCHAR(16) NOT NULL COMMENT '策略代码',
|
|
|
+ `trigger_name` VARCHAR(64) NOT NULL COMMENT '触发器名称',
|
|
|
+ `trigger_type` VARCHAR(32) NOT NULL COMMENT '触发类型:EVENT-事件,ATTR-属性变化,TIME-时间,CONDITION-条件',
|
|
|
+ `source_obj_type` INT DEFAULT NULL COMMENT '源对象类型:2-设备,3-系统',
|
|
|
+ `source_obj_code` VARCHAR(64) DEFAULT NULL COMMENT '源对象代码',
|
|
|
+ `source_model_code` VARCHAR(64) DEFAULT NULL COMMENT '源对象模型代码',
|
|
|
+ `event_key` VARCHAR(128) DEFAULT NULL COMMENT '事件标识',
|
|
|
+ `attr_key` VARCHAR(128) DEFAULT NULL COMMENT '属性标识',
|
|
|
+ `condition_expr` TEXT DEFAULT NULL COMMENT '条件表达式(JSON)',
|
|
|
+ `enable` INT DEFAULT 1 COMMENT '是否启用',
|
|
|
+ `priority` INT DEFAULT 50 COMMENT '优先级',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ KEY `idx_strategy_code` (`strategy_code`),
|
|
|
+ KEY `idx_source_obj` (`source_obj_code`),
|
|
|
+ KEY `idx_event_key` (`event_key`)
|
|
|
+) ENGINE=INNODB AUTO_INCREMENT=1 COMMENT='策略触发条件表';
|
|
|
|
|
|
|
|
|
-- ----------------------------
|
|
|
@@ -922,19 +1099,109 @@ create table adm_op_energy_strategy_param (
|
|
|
-- 能源策略步骤
|
|
|
-- ----------------------------
|
|
|
drop table if exists adm_op_energy_strategy_step;
|
|
|
-create table adm_op_energy_strategy_step (
|
|
|
- `id` bigint(20) not null auto_increment comment '序号',
|
|
|
- `strategy_code` varchar(16) not null comment '策略代码',
|
|
|
- `step_code` varchar(16) not null comment '步骤代码',
|
|
|
- `step_name` varchar(32) not null comment '步骤名称',
|
|
|
- `step_index` int not null comment '步骤顺序',
|
|
|
- `step_handler` varchar(128) not null comment '步骤处理',
|
|
|
- `step_param` varchar(256) default null comment '步骤参数',
|
|
|
- `target_facs` varchar(16) default null comment '目标设施',
|
|
|
- `target_device` varchar(16) default null comment '目标设备',
|
|
|
- primary key (`id`),
|
|
|
- unique key ux_op_energy_strategy_step_key(`strategy_code`,`step_code`,`step_index`)
|
|
|
-) engine=innodb auto_increment=1 comment = '能源策略步骤';
|
|
|
+CREATE TABLE adm_op_energy_strategy_step (
|
|
|
+ `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '序号',
|
|
|
+ `strategy_code` VARCHAR(16) NOT NULL COMMENT '策略代码',
|
|
|
+ `step_code` VARCHAR(32) NOT NULL COMMENT '步骤代码',
|
|
|
+ `step_name` VARCHAR(64) NOT NULL COMMENT '步骤名称',
|
|
|
+ `step_type` VARCHAR(32) NOT NULL COMMENT '步骤类型:ABILITY-能力调用,DELAY-延时,CONDITION-条件判断,PARALLEL-并行,LOOP-循环',
|
|
|
+ `step_index` INT NOT NULL COMMENT '步骤顺序',
|
|
|
+ `parent_step_code` VARCHAR(32) DEFAULT NULL COMMENT '父步骤代码(用于嵌套)',
|
|
|
+ `condition_expr` TEXT DEFAULT NULL COMMENT '执行条件(JSON表达式)',
|
|
|
+ `target_obj_type` INT DEFAULT NULL COMMENT '目标对象类型:2-设备,3-系统',
|
|
|
+ `target_obj_code` VARCHAR(64) DEFAULT NULL COMMENT '目标对象代码',
|
|
|
+ `target_model_code` VARCHAR(64) DEFAULT NULL COMMENT '目标模型代码',
|
|
|
+ `ability_key` VARCHAR(128) DEFAULT NULL COMMENT '能力标识',
|
|
|
+ `ability_param` TEXT DEFAULT NULL COMMENT '能力参数(JSON)',
|
|
|
+ `param_source` VARCHAR(32) DEFAULT 'STATIC' COMMENT '参数来源:STATIC-静态,CONTEXT-上下文,ATTR-属性值',
|
|
|
+ `param_mapping` TEXT DEFAULT NULL COMMENT '参数映射配置(JSON)',
|
|
|
+ `delay_seconds` INT DEFAULT 0 COMMENT '延时秒数',
|
|
|
+ `retry_on_fail` INT DEFAULT 0 COMMENT '失败是否重试',
|
|
|
+ `retry_times` INT DEFAULT 0 COMMENT '重试次数',
|
|
|
+ `retry_interval` INT DEFAULT 5 COMMENT '重试间隔(秒)',
|
|
|
+ `continue_on_fail` INT DEFAULT 0 COMMENT '失败是否继续',
|
|
|
+ `timeout` INT DEFAULT 60 COMMENT '超时时间(秒)',
|
|
|
+ `enable` INT DEFAULT 1 COMMENT '是否启用',
|
|
|
+ `remark` VARCHAR(256) DEFAULT NULL COMMENT '备注',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `ux_strategy_step` (`strategy_code`, `step_code`),
|
|
|
+ KEY `idx_step_index` (`strategy_code`, `step_index`),
|
|
|
+ KEY `idx_parent_step` (`parent_step_code`)
|
|
|
+) ENGINE=INNODB AUTO_INCREMENT=1 COMMENT='能源策略步骤表';
|
|
|
+
|
|
|
+-- ----------------------------
|
|
|
+-- 策略执行日志表
|
|
|
+-- ----------------------------
|
|
|
+drop table if exists adm_op_energy_strategy_exec_log;
|
|
|
+CREATE TABLE adm_op_energy_strategy_exec_log (
|
|
|
+ `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '序号',
|
|
|
+ `strategy_code` VARCHAR(16) NOT NULL COMMENT '策略代码',
|
|
|
+ `exec_id` VARCHAR(64) NOT NULL COMMENT '执行ID(UUID)',
|
|
|
+ `trigger_type` VARCHAR(32) DEFAULT NULL COMMENT '触发类型',
|
|
|
+ `trigger_source` VARCHAR(128) DEFAULT NULL COMMENT '触发源',
|
|
|
+ `exec_status` INT NOT NULL COMMENT '执行状态:0-执行中,1-成功,2-失败,3-超时',
|
|
|
+ `start_time` DATETIME NOT NULL COMMENT '开始时间',
|
|
|
+ `end_time` DATETIME DEFAULT NULL COMMENT '结束时间',
|
|
|
+ `duration` INT DEFAULT NULL COMMENT '执行时长(毫秒)',
|
|
|
+ `context_data` TEXT DEFAULT NULL COMMENT '执行上下文(JSON)',
|
|
|
+ `result_data` TEXT DEFAULT NULL COMMENT '执行结果(JSON)',
|
|
|
+ `error_message` TEXT DEFAULT NULL COMMENT '错误信息',
|
|
|
+ `exec_by` VARCHAR(64) DEFAULT NULL COMMENT '执行人',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `ux_exec_id` (`exec_id`),
|
|
|
+ KEY `idx_strategy_code` (`strategy_code`),
|
|
|
+ KEY `idx_start_time` (`start_time`),
|
|
|
+ KEY `idx_exec_status` (`exec_status`)
|
|
|
+) ENGINE=INNODB AUTO_INCREMENT=1 COMMENT='策略执行日志表';
|
|
|
+
|
|
|
+
|
|
|
+-- ----------------------------
|
|
|
+-- 策略步骤执行日志表
|
|
|
+-- ----------------------------
|
|
|
+drop table if exists adm_op_energy_strategy_step_log;
|
|
|
+CREATE TABLE adm_op_energy_strategy_step_log (
|
|
|
+ `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '序号',
|
|
|
+ `exec_id` VARCHAR(64) NOT NULL COMMENT '策略执行ID',
|
|
|
+ `strategy_code` VARCHAR(16) NOT NULL COMMENT '策略代码',
|
|
|
+ `step_code` VARCHAR(32) NOT NULL COMMENT '步骤代码',
|
|
|
+ `step_name` VARCHAR(64) NOT NULL COMMENT '步骤名称',
|
|
|
+ `step_index` INT NOT NULL COMMENT '步骤顺序',
|
|
|
+ `exec_status` INT NOT NULL COMMENT '执行状态:0-执行中,1-成功,2-失败,3-跳过',
|
|
|
+ `start_time` DATETIME NOT NULL COMMENT '开始时间',
|
|
|
+ `end_time` DATETIME DEFAULT NULL COMMENT '结束时间',
|
|
|
+ `duration` INT DEFAULT NULL COMMENT '执行时长(毫秒)',
|
|
|
+ `input_param` TEXT DEFAULT NULL COMMENT '输入参数',
|
|
|
+ `output_result` TEXT DEFAULT NULL COMMENT '输出结果',
|
|
|
+ `error_message` TEXT DEFAULT NULL COMMENT '错误信息',
|
|
|
+ `retry_count` INT DEFAULT 0 COMMENT '重试次数',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ KEY `idx_exec_id` (`exec_id`),
|
|
|
+ KEY `idx_strategy_step` (`strategy_code`, `step_code`)
|
|
|
+) ENGINE=INNODB AUTO_INCREMENT=1 COMMENT='策略步骤执行日志表';
|
|
|
+
|
|
|
+
|
|
|
+-- ----------------------------
|
|
|
+-- 策略上下文变量表
|
|
|
+-- ----------------------------
|
|
|
+drop table if exists adm_op_energy_strategy_context;
|
|
|
+CREATE TABLE adm_op_energy_strategy_context (
|
|
|
+ `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '序号',
|
|
|
+ `strategy_code` VARCHAR(16) NOT NULL COMMENT '策略代码',
|
|
|
+ `var_key` VARCHAR(64) NOT NULL COMMENT '变量键',
|
|
|
+ `var_name` VARCHAR(128) NOT NULL COMMENT '变量名称',
|
|
|
+ `var_type` VARCHAR(32) NOT NULL COMMENT '变量类型:INPUT-输入,OUTPUT-输出,TEMP-临时',
|
|
|
+ `data_type` VARCHAR(32) DEFAULT 'STRING' COMMENT '数据类型:STRING,NUMBER,BOOLEAN,OBJECT',
|
|
|
+ `default_value` TEXT DEFAULT NULL COMMENT '默认值',
|
|
|
+ `value_source` VARCHAR(64) DEFAULT NULL COMMENT '值来源:设备代码.属性键',
|
|
|
+ `description` VARCHAR(256) DEFAULT NULL COMMENT '描述',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `ux_strategy_var` (`strategy_code`, `var_key`)
|
|
|
+) ENGINE=INNODB AUTO_INCREMENT=1 COMMENT='策略上下文变量表';
|
|
|
|
|
|
|
|
|
-- ----------------------------
|