소스 검색

加入达梦数据库脚本

hekang 1 개월 전
부모
커밋
8ffd054cf9

+ 5070 - 0
forecast-backend-server/src/main/resources/sql/electricity_init_new_dm.sql

@@ -0,0 +1,5070 @@
+-- =============================================================================
+-- Electricity service database initialization script (Dameng DM8)
+--
+-- Development reset script. It can be executed repeatedly on an existing dev
+-- schema: existing user tables/views/sequences are cleaned first, then the
+-- database is rebuilt to the initialization state.
+--
+-- Execute this before loading electricity_mock_new_dm.sql.
+--
+-- ID rules:
+--   - config_station.id is BIGINT.
+--   - All explicit station_id columns are BIGINT and reference config_station.id.
+--   - Auto id columns use sequence + before-insert trigger, so seed data can still
+--     insert fixed ids while application inserts can omit ids.
+-- =============================================================================
+
+-- =============================================================================
+-- Section 0. Development database reset
+-- =============================================================================
+BEGIN
+    FOR r IN (SELECT VIEW_NAME AS OBJ_NAME FROM USER_VIEWS) LOOP
+        BEGIN
+            EXECUTE IMMEDIATE 'DROP VIEW ' || r.OBJ_NAME;
+        EXCEPTION WHEN OTHERS THEN NULL;
+        END;
+    END LOOP;
+
+    FOR r IN (SELECT TABLE_NAME AS OBJ_NAME FROM USER_TABLES) LOOP
+        BEGIN
+            EXECUTE IMMEDIATE 'DROP TABLE ' || r.OBJ_NAME || ' CASCADE CONSTRAINTS';
+        EXCEPTION WHEN OTHERS THEN NULL;
+        END;
+    END LOOP;
+
+    FOR r IN (SELECT SEQUENCE_NAME AS OBJ_NAME FROM USER_SEQUENCES) LOOP
+        BEGIN
+            EXECUTE IMMEDIATE 'DROP SEQUENCE ' || r.OBJ_NAME;
+        EXCEPTION WHEN OTHERS THEN NULL;
+        END;
+    END LOOP;
+END;
+/
+
+-- =============================================================================
+-- Section 1. System base schema and required data
+-- =============================================================================
+-- Auto-generated from electricity_service.sql and adapted for Dameng DM8
+-- Target DB: Dameng DM8
+
+
+
+-- ----------------------------
+-- Table structure for gen_table
+-- ----------------------------
+CREATE TABLE gen_table (
+  table_id BIGINT,
+  table_name VARCHAR(200) DEFAULT '',
+  table_comment VARCHAR(500) DEFAULT '',
+  sub_table_name VARCHAR(64) DEFAULT NULL,
+  sub_table_fk_name VARCHAR(64) DEFAULT NULL,
+  class_name VARCHAR(100) DEFAULT '',
+  tpl_category VARCHAR(200) DEFAULT 'crud',
+  tpl_web_type VARCHAR(30) DEFAULT '',
+  package_name VARCHAR(100) DEFAULT NULL,
+  module_name VARCHAR(30) DEFAULT NULL,
+  business_name VARCHAR(30) DEFAULT NULL,
+  function_name VARCHAR(50) DEFAULT NULL,
+  function_author VARCHAR(50) DEFAULT NULL,
+  gen_type CHAR(1) DEFAULT '0',
+  gen_path VARCHAR(200) DEFAULT '/',
+  options VARCHAR(1000) DEFAULT NULL,
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT NULL,
+  PRIMARY KEY (table_id)
+);
+COMMENT ON TABLE gen_table IS '代码生成业务表';
+COMMENT ON COLUMN gen_table.table_id IS '编号';
+COMMENT ON COLUMN gen_table.table_name IS '表名称';
+COMMENT ON COLUMN gen_table.table_comment IS '表描述';
+COMMENT ON COLUMN gen_table.sub_table_name IS '关联子表的表名';
+COMMENT ON COLUMN gen_table.sub_table_fk_name IS '子表关联的外键名';
+COMMENT ON COLUMN gen_table.class_name IS '实体类名称';
+COMMENT ON COLUMN gen_table.tpl_category IS '使用的模板(crud单表操作 tree树表操作)';
+COMMENT ON COLUMN gen_table.tpl_web_type IS '前端模板类型(element-ui模版 element-plus模版)';
+COMMENT ON COLUMN gen_table.package_name IS '生成包路径';
+COMMENT ON COLUMN gen_table.module_name IS '生成模块名';
+COMMENT ON COLUMN gen_table.business_name IS '生成业务名';
+COMMENT ON COLUMN gen_table.function_name IS '生成功能名';
+COMMENT ON COLUMN gen_table.function_author IS '生成功能作者';
+COMMENT ON COLUMN gen_table.gen_type IS '生成代码方式(0zip压缩包 1自定义路径)';
+COMMENT ON COLUMN gen_table.gen_path IS '生成路径(不填默认项目路径)';
+COMMENT ON COLUMN gen_table.options IS '其它生成选项';
+COMMENT ON COLUMN gen_table.create_by IS '创建者';
+COMMENT ON COLUMN gen_table.create_time IS '创建时间';
+COMMENT ON COLUMN gen_table.update_by IS '更新者';
+COMMENT ON COLUMN gen_table.update_time IS '更新时间';
+COMMENT ON COLUMN gen_table.remark IS '备注';
+
+
+-- ----------------------------
+-- Records of gen_table
+-- ----------------------------
+BEGIN;
+INSERT INTO gen_table (table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, tpl_web_type, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark) VALUES (1, 'sys_config', '参数配置表', NULL, NULL, 'SysConfig', 'crud', ' 1', 'com.ufo.project.system', 'system', 'config', '参数配置', 'ufo', '0', 'C:\Users\Fuxs\Desktop', '{}', 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05', NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for gen_table_column
+-- ----------------------------
+CREATE TABLE gen_table_column (
+  column_id BIGINT,
+  table_id BIGINT DEFAULT NULL,
+  column_name VARCHAR(200) DEFAULT NULL,
+  column_comment VARCHAR(500) DEFAULT NULL,
+  column_type VARCHAR(100) DEFAULT NULL,
+  java_type VARCHAR(500) DEFAULT NULL,
+  java_field VARCHAR(200) DEFAULT NULL,
+  is_pk CHAR(1) DEFAULT NULL,
+  is_increment CHAR(1) DEFAULT NULL,
+  is_required CHAR(1) DEFAULT NULL,
+  is_insert CHAR(1) DEFAULT NULL,
+  is_edit CHAR(1) DEFAULT NULL,
+  is_list CHAR(1) DEFAULT NULL,
+  is_query CHAR(1) DEFAULT NULL,
+  query_type VARCHAR(200) DEFAULT 'EQ',
+  html_type VARCHAR(200) DEFAULT NULL,
+  dict_type VARCHAR(200) DEFAULT '',
+  sort INTEGER DEFAULT NULL,
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  PRIMARY KEY (column_id)
+);
+COMMENT ON TABLE gen_table_column IS '代码生成业务表字段';
+COMMENT ON COLUMN gen_table_column.column_id IS '编号';
+COMMENT ON COLUMN gen_table_column.table_id IS '归属表编号';
+COMMENT ON COLUMN gen_table_column.column_name IS '列名称';
+COMMENT ON COLUMN gen_table_column.column_comment IS '列描述';
+COMMENT ON COLUMN gen_table_column.column_type IS '列类型';
+COMMENT ON COLUMN gen_table_column.java_type IS 'JAVA类型';
+COMMENT ON COLUMN gen_table_column.java_field IS 'JAVA字段名';
+COMMENT ON COLUMN gen_table_column.is_pk IS '是否主键(1是)';
+COMMENT ON COLUMN gen_table_column.is_increment IS '是否自增(1是)';
+COMMENT ON COLUMN gen_table_column.is_required IS '是否必填(1是)';
+COMMENT ON COLUMN gen_table_column.is_insert IS '是否为插入字段(1是)';
+COMMENT ON COLUMN gen_table_column.is_edit IS '是否编辑字段(1是)';
+COMMENT ON COLUMN gen_table_column.is_list IS '是否列表字段(1是)';
+COMMENT ON COLUMN gen_table_column.is_query IS '是否查询字段(1是)';
+COMMENT ON COLUMN gen_table_column.query_type IS '查询方式(等于、不等于、大于、小于、范围)';
+COMMENT ON COLUMN gen_table_column.html_type IS '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)';
+COMMENT ON COLUMN gen_table_column.dict_type IS '字典类型';
+COMMENT ON COLUMN gen_table_column.sort IS '排序';
+COMMENT ON COLUMN gen_table_column.create_by IS '创建者';
+COMMENT ON COLUMN gen_table_column.create_time IS '创建时间';
+COMMENT ON COLUMN gen_table_column.update_by IS '更新者';
+COMMENT ON COLUMN gen_table_column.update_time IS '更新时间';
+
+
+-- ----------------------------
+-- Records of gen_table_column
+-- ----------------------------
+BEGIN;
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (1, 1, 'config_id', '参数主键', 'int', 'Long', 'configId', '1', '1', '0', '1', NULL, NULL, NULL, 'EQ', 'input', '', 1, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (2, 1, 'config_name', '参数名称', 'varchar(100)', 'String', 'configName', '0', '0', '0', '1', '1', '1', '1', 'LIKE', 'input', '', 2, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (3, 1, 'config_key', '参数键名', 'varchar(100)', 'String', 'configKey', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 3, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (4, 1, 'config_value', '参数键值', 'varchar(500)', 'String', 'configValue', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'textarea', '', 4, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (5, 1, 'config_type', '系统内置(Y是 N否)', 'char(1)', 'String', 'configType', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'select', '', 5, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (6, 1, 'create_by', '创建者', 'varchar(64)', 'String', 'createBy', '0', '0', '0', '1', NULL, NULL, NULL, 'EQ', 'input', '', 6, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (7, 1, 'create_time', '创建时间', 'datetime', 'Date', 'createTime', '0', '0', '0', '1', NULL, NULL, NULL, 'EQ', 'datetime', '', 7, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (8, 1, 'update_by', '更新者', 'varchar(64)', 'String', 'updateBy', '0', '0', '0', '1', '1', NULL, NULL, 'EQ', 'input', '', 8, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (9, 1, 'update_time', '更新时间', 'datetime', 'Date', 'updateTime', '0', '0', '0', '1', '1', NULL, NULL, 'EQ', 'datetime', '', 9, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+INSERT INTO gen_table_column (column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time) VALUES (10, 1, 'remark', '备注', 'varchar(500)', 'String', 'remark', '0', '0', '0', '1', '1', '1', NULL, 'EQ', 'textarea', '', 10, 'admin', '2025-08-17 20:25:54', '', '2025-08-18 22:12:05');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_config
+-- ----------------------------
+CREATE TABLE sys_config (
+  config_id INT,
+  config_name VARCHAR(100) DEFAULT '',
+  config_key VARCHAR(100) DEFAULT '',
+  config_value VARCHAR(500) DEFAULT '',
+  config_type CHAR(1) DEFAULT 'N',
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT NULL,
+  PRIMARY KEY (config_id)
+);
+COMMENT ON TABLE sys_config IS '参数配置表';
+COMMENT ON COLUMN sys_config.config_id IS '参数主键';
+COMMENT ON COLUMN sys_config.config_name IS '参数名称';
+COMMENT ON COLUMN sys_config.config_key IS '参数键名';
+COMMENT ON COLUMN sys_config.config_value IS '参数键值';
+COMMENT ON COLUMN sys_config.config_type IS '系统内置(Y是 N否)';
+COMMENT ON COLUMN sys_config.create_by IS '创建者';
+COMMENT ON COLUMN sys_config.create_time IS '创建时间';
+COMMENT ON COLUMN sys_config.update_by IS '更新者';
+COMMENT ON COLUMN sys_config.update_time IS '更新时间';
+COMMENT ON COLUMN sys_config.remark IS '备注';
+
+
+-- ----------------------------
+-- Records of sys_config
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2025-08-17 19:48:21', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
+INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2025-08-17 19:48:21', '', NULL, '初始化密码 123456');
+INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', '2025-08-17 19:48:21', '', NULL, '深色主题theme-dark,浅色主题theme-light');
+INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (4, '账号自助-验证码开关', 'sys.account.captchaEnabled', 'true', 'Y', 'admin', '2025-08-17 19:48:21', '', NULL, '是否开启验证码功能(true开启,false关闭)');
+INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', '2025-08-17 19:48:21', '', NULL, '是否开启注册用户功能(true开启,false关闭)');
+INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (6, '用户登录-黑名单列表', 'sys.login.blackIPList', '', 'Y', 'admin', '2025-08-17 19:48:21', '', NULL, '设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)');
+INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (7, '用户管理-初始密码修改策略', 'sys.account.initPasswordModify', '1', 'Y', 'admin', '2025-08-17 19:48:21', '', NULL, '0:初始密码修改策略关闭,没有任何提示,1:提醒用户,如果未修改初始密码,则在登录时就会提醒修改密码对话框');
+INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (8, '用户管理-账号密码更新周期', 'sys.account.passwordValidateDays', '0', 'Y', 'admin', '2025-08-17 19:48:21', '', NULL, '密码更新周期(填写数字,数据初始化值为0不限制,若修改必须为大于0小于365的正整数),如果超过这个周期登录系统时,则在登录时就会提醒修改密码对话框');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_dept
+-- ----------------------------
+CREATE TABLE sys_dept (
+  dept_id BIGINT,
+  parent_id BIGINT DEFAULT 0,
+  ancestors VARCHAR(50) DEFAULT '',
+  dept_name VARCHAR(30) DEFAULT '',
+  order_num INTEGER DEFAULT 0,
+  leader VARCHAR(20) DEFAULT NULL,
+  phone VARCHAR(11) DEFAULT NULL,
+  email VARCHAR(50) DEFAULT NULL,
+  status CHAR(1) DEFAULT '0',
+  del_flag CHAR(1) DEFAULT '0',
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  PRIMARY KEY (dept_id)
+);
+COMMENT ON TABLE sys_dept IS '部门表';
+COMMENT ON COLUMN sys_dept.dept_id IS '部门id';
+COMMENT ON COLUMN sys_dept.parent_id IS '父部门id';
+COMMENT ON COLUMN sys_dept.ancestors IS '祖级列表';
+COMMENT ON COLUMN sys_dept.dept_name IS '部门名称';
+COMMENT ON COLUMN sys_dept.order_num IS '显示顺序';
+COMMENT ON COLUMN sys_dept.leader IS '负责人';
+COMMENT ON COLUMN sys_dept.phone IS '联系电话';
+COMMENT ON COLUMN sys_dept.email IS '邮箱';
+COMMENT ON COLUMN sys_dept.status IS '部门状态(0正常 1停用)';
+COMMENT ON COLUMN sys_dept.del_flag IS '删除标志(0代表存在 2代表删除)';
+COMMENT ON COLUMN sys_dept.create_by IS '创建者';
+COMMENT ON COLUMN sys_dept.create_time IS '创建时间';
+COMMENT ON COLUMN sys_dept.update_by IS '更新者';
+COMMENT ON COLUMN sys_dept.update_time IS '更新时间';
+
+
+-- ----------------------------
+-- Records of sys_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (100, 0, '0', '科技公司', 0, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (101, 100, '0,100', '总公司', 1, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (102, 100, '0,100', '长沙分公司', 2, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (103, 101, '0,100,101', '研发部门', 1, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (104, 101, '0,100,101', '市场部门', 2, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (105, 101, '0,100,101', '测试部门', 3, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (106, 101, '0,100,101', '财务部门', 4, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (107, 101, '0,100,101', '运维部门', 5, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (108, 102, '0,100,102', '市场部门', 1, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time) VALUES (109, 102, '0,100,102', '财务部门', 2, '管理员', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_dict_data
+-- ----------------------------
+CREATE TABLE sys_dict_data (
+  dict_code BIGINT,
+  dict_sort INTEGER DEFAULT 0,
+  dict_label VARCHAR(100) DEFAULT '',
+  dict_value VARCHAR(100) DEFAULT '',
+  dict_type VARCHAR(100) DEFAULT '',
+  css_class VARCHAR(100) DEFAULT NULL,
+  list_class VARCHAR(100) DEFAULT NULL,
+  is_default CHAR(1) DEFAULT 'N',
+  status CHAR(1) DEFAULT '0',
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT NULL,
+  PRIMARY KEY (dict_code)
+);
+COMMENT ON TABLE sys_dict_data IS '字典数据表';
+COMMENT ON COLUMN sys_dict_data.dict_code IS '字典编码';
+COMMENT ON COLUMN sys_dict_data.dict_sort IS '字典排序';
+COMMENT ON COLUMN sys_dict_data.dict_label IS '字典标签';
+COMMENT ON COLUMN sys_dict_data.dict_value IS '字典键值';
+COMMENT ON COLUMN sys_dict_data.dict_type IS '字典类型';
+COMMENT ON COLUMN sys_dict_data.css_class IS '样式属性(其他样式扩展)';
+COMMENT ON COLUMN sys_dict_data.list_class IS '表格回显样式';
+COMMENT ON COLUMN sys_dict_data.is_default IS '是否默认(Y是 N否)';
+COMMENT ON COLUMN sys_dict_data.status IS '状态(0正常 1停用)';
+COMMENT ON COLUMN sys_dict_data.create_by IS '创建者';
+COMMENT ON COLUMN sys_dict_data.create_time IS '创建时间';
+COMMENT ON COLUMN sys_dict_data.update_by IS '更新者';
+COMMENT ON COLUMN sys_dict_data.update_time IS '更新时间';
+COMMENT ON COLUMN sys_dict_data.remark IS '备注';
+
+
+-- ----------------------------
+-- Records of sys_dict_data
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '性别男');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '性别女');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '性别未知');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '显示菜单');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '隐藏菜单');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '正常状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '停用状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '正常状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '停用状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '默认分组');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '系统分组');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '系统默认是');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '系统默认否');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '通知');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '公告');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '正常状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '关闭状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (18, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '其他操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (19, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '新增操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (20, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '修改操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (21, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '删除操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (22, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '授权操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (23, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '导出操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (24, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '导入操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (25, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '强退操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (26, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '生成操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (27, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '清空操作');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (28, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '正常状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (29, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '停用状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (30, 1, '下架', '0', 'app_status', '', 'danger', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '应用下架状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (31, 2, '上架', '1', 'app_status', '', 'success', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '应用上架状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (32, 1, '正常', '0', 'member_status', '', 'success', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '会员正常状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (33, 2, '停用', '1', 'member_status', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '会员停用状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (34, 1, '待支付', '0', 'pay_status', '', 'warning', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '订单待支付状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (35, 2, '已支付', '1', 'pay_status', '', 'success', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '订单已支付状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (36, 3, '已取消', '2', 'pay_status', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '订单已取消状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (37, 1, '待审核', '0', 'apply_status', '', 'warning', 'Y', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '申请待审核状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (38, 2, '审核通过', '1', 'apply_status', '', 'success', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '申请审核通过状态');
+INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (39, 3, '审核拒绝', '2', 'apply_status', '', 'danger', 'N', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '申请审核拒绝状态');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_dict_type
+-- ----------------------------
+CREATE TABLE sys_dict_type (
+  dict_id BIGINT,
+  dict_name VARCHAR(100) DEFAULT '',
+  dict_type VARCHAR(100) DEFAULT '',
+  status CHAR(1) DEFAULT '0',
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT NULL,
+  PRIMARY KEY (dict_id)
+);
+COMMENT ON TABLE sys_dict_type IS '字典类型表';
+COMMENT ON COLUMN sys_dict_type.dict_id IS '字典主键';
+COMMENT ON COLUMN sys_dict_type.dict_name IS '字典名称';
+COMMENT ON COLUMN sys_dict_type.dict_type IS '字典类型';
+COMMENT ON COLUMN sys_dict_type.status IS '状态(0正常 1停用)';
+COMMENT ON COLUMN sys_dict_type.create_by IS '创建者';
+COMMENT ON COLUMN sys_dict_type.create_time IS '创建时间';
+COMMENT ON COLUMN sys_dict_type.update_by IS '更新者';
+COMMENT ON COLUMN sys_dict_type.update_time IS '更新时间';
+COMMENT ON COLUMN sys_dict_type.remark IS '备注';
+CREATE UNIQUE INDEX sys_dict_type_dict_type ON sys_dict_type (dict_type);
+
+
+-- ----------------------------
+-- Records of sys_dict_type
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (1, '用户性别', 'sys_user_sex', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '用户性别列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (2, '菜单状态', 'sys_show_hide', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '菜单状态列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (3, '系统开关', 'sys_normal_disable', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '系统开关列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (4, '任务状态', 'sys_job_status', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '任务状态列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (5, '任务分组', 'sys_job_group', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '任务分组列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (6, '系统是否', 'sys_yes_no', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '系统是否列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (7, '通知类型', 'sys_notice_type', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '通知类型列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (8, '通知状态', 'sys_notice_status', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '通知状态列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (9, '操作类型', 'sys_oper_type', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '操作类型列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (10, '系统状态', 'sys_common_status', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '登录状态列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (11, '应用状态', 'app_status', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '快应用上架下架状态列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (12, '会员状态', 'member_status', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '会员正常停用状态列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (13, '支付状态', 'pay_status', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '订单支付状态列表');
+INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES (14, '申请状态', 'apply_status', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '应用授权申请状态列表');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_job
+-- ----------------------------
+CREATE TABLE sys_job (
+  job_id BIGINT,
+  job_name VARCHAR(64) NOT NULL DEFAULT '',
+  job_group VARCHAR(64) NOT NULL DEFAULT 'DEFAULT',
+  invoke_target VARCHAR(500) NOT NULL,
+  cron_expression VARCHAR(255) DEFAULT '',
+  misfire_policy VARCHAR(20) DEFAULT '3',
+  concurrent CHAR(1) DEFAULT '1',
+  status CHAR(1) DEFAULT '0',
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT '',
+  PRIMARY KEY (job_id,job_name,job_group)
+);
+COMMENT ON TABLE sys_job IS '定时任务调度表';
+COMMENT ON COLUMN sys_job.job_id IS '任务ID';
+COMMENT ON COLUMN sys_job.job_name IS '任务名称';
+COMMENT ON COLUMN sys_job.job_group IS '任务组名';
+COMMENT ON COLUMN sys_job.invoke_target IS '调用目标字符串';
+COMMENT ON COLUMN sys_job.cron_expression IS 'cron执行表达式';
+COMMENT ON COLUMN sys_job.misfire_policy IS '计划执行错误策略(1立即执行 2执行一次 3放弃执行)';
+COMMENT ON COLUMN sys_job.concurrent IS '是否并发执行(0允许 1禁止)';
+COMMENT ON COLUMN sys_job.status IS '状态(0正常 1暂停)';
+COMMENT ON COLUMN sys_job.create_by IS '创建者';
+COMMENT ON COLUMN sys_job.create_time IS '创建时间';
+COMMENT ON COLUMN sys_job.update_by IS '更新者';
+COMMENT ON COLUMN sys_job.update_time IS '更新时间';
+COMMENT ON COLUMN sys_job.remark IS '备注信息';
+
+
+-- ----------------------------
+-- Records of sys_job
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_job (job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark) VALUES (1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_job (job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark) VALUES (2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(''ry'')', '0/15 * * * * ?', '3', '1', '1', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_job (job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark) VALUES (3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(''ry'', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_job_log
+-- ----------------------------
+CREATE TABLE sys_job_log (
+  job_log_id BIGINT,
+  job_name VARCHAR(64) NOT NULL,
+  job_group VARCHAR(64) NOT NULL,
+  invoke_target VARCHAR(500) NOT NULL,
+  job_message VARCHAR(500) DEFAULT NULL,
+  status CHAR(1) DEFAULT '0',
+  exception_info VARCHAR(2000) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  PRIMARY KEY (job_log_id)
+);
+COMMENT ON TABLE sys_job_log IS '定时任务调度日志表';
+COMMENT ON COLUMN sys_job_log.job_log_id IS '任务日志ID';
+COMMENT ON COLUMN sys_job_log.job_name IS '任务名称';
+COMMENT ON COLUMN sys_job_log.job_group IS '任务组名';
+COMMENT ON COLUMN sys_job_log.invoke_target IS '调用目标字符串';
+COMMENT ON COLUMN sys_job_log.job_message IS '日志信息';
+COMMENT ON COLUMN sys_job_log.status IS '执行状态(0正常 1失败)';
+COMMENT ON COLUMN sys_job_log.exception_info IS '异常信息';
+COMMENT ON COLUMN sys_job_log.create_time IS '创建时间';
+
+
+-- ----------------------------
+-- Records of sys_job_log
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_logininfor
+-- ----------------------------
+CREATE TABLE sys_logininfor (
+  info_id BIGINT,
+  user_name VARCHAR(50) DEFAULT '',
+  ipaddr VARCHAR(128) DEFAULT '',
+  login_location VARCHAR(255) DEFAULT '',
+  browser VARCHAR(50) DEFAULT '',
+  os VARCHAR(50) DEFAULT '',
+  status CHAR(1) DEFAULT '0',
+  msg VARCHAR(255) DEFAULT '',
+  login_time TIMESTAMP DEFAULT NULL,
+  PRIMARY KEY (info_id)
+);
+COMMENT ON TABLE sys_logininfor IS '系统访问记录';
+COMMENT ON COLUMN sys_logininfor.info_id IS '访问ID';
+COMMENT ON COLUMN sys_logininfor.user_name IS '用户账号';
+COMMENT ON COLUMN sys_logininfor.ipaddr IS '登录IP地址';
+COMMENT ON COLUMN sys_logininfor.login_location IS '登录地点';
+COMMENT ON COLUMN sys_logininfor.browser IS '浏览器类型';
+COMMENT ON COLUMN sys_logininfor.os IS '操作系统';
+COMMENT ON COLUMN sys_logininfor.status IS '登录状态(0成功 1失败)';
+COMMENT ON COLUMN sys_logininfor.msg IS '提示消息';
+COMMENT ON COLUMN sys_logininfor.login_time IS '访问时间';
+CREATE INDEX sys_logininfor_idx_sys_logininfor_s ON sys_logininfor (status);
+CREATE INDEX sys_logininfor_idx_sys_logininfor_lt ON sys_logininfor (login_time);
+
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+CREATE TABLE sys_menu (
+  menu_id BIGINT,
+  menu_name VARCHAR(50) NOT NULL,
+  parent_id BIGINT DEFAULT 0,
+  order_num INTEGER DEFAULT 0,
+  path VARCHAR(200) DEFAULT '',
+  component VARCHAR(255) DEFAULT NULL,
+  query VARCHAR(255) DEFAULT NULL,
+  route_name VARCHAR(50) DEFAULT '',
+  is_frame INTEGER DEFAULT 1,
+  is_cache INTEGER DEFAULT 0,
+  menu_type CHAR(1) DEFAULT '',
+  visible CHAR(1) DEFAULT '0',
+  status CHAR(1) DEFAULT '0',
+  perms VARCHAR(100) DEFAULT NULL,
+  icon VARCHAR(100) DEFAULT '#',
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT '',
+  PRIMARY KEY (menu_id)
+);
+COMMENT ON TABLE sys_menu IS '菜单权限表';
+COMMENT ON COLUMN sys_menu.menu_id IS '菜单ID';
+COMMENT ON COLUMN sys_menu.menu_name IS '菜单名称';
+COMMENT ON COLUMN sys_menu.parent_id IS '父菜单ID';
+COMMENT ON COLUMN sys_menu.order_num IS '显示顺序';
+COMMENT ON COLUMN sys_menu.path IS '路由地址';
+COMMENT ON COLUMN sys_menu.component IS '组件路径';
+COMMENT ON COLUMN sys_menu.query IS '路由参数';
+COMMENT ON COLUMN sys_menu.route_name IS '路由名称';
+COMMENT ON COLUMN sys_menu.is_frame IS '是否为外链(0是 1否)';
+COMMENT ON COLUMN sys_menu.is_cache IS '是否缓存(0缓存 1不缓存)';
+COMMENT ON COLUMN sys_menu.menu_type IS '菜单类型(M目录 C菜单 F按钮)';
+COMMENT ON COLUMN sys_menu.visible IS '菜单状态(0显示 1隐藏)';
+COMMENT ON COLUMN sys_menu.status IS '菜单状态(0正常 1停用)';
+COMMENT ON COLUMN sys_menu.perms IS '权限标识';
+COMMENT ON COLUMN sys_menu.icon IS '菜单图标';
+COMMENT ON COLUMN sys_menu.create_by IS '创建者';
+COMMENT ON COLUMN sys_menu.create_time IS '创建时间';
+COMMENT ON COLUMN sys_menu.update_by IS '更新者';
+COMMENT ON COLUMN sys_menu.update_time IS '更新时间';
+COMMENT ON COLUMN sys_menu.remark IS '备注';
+
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1, '系统管理', 0, 31, 'ufo/system', NULL, '', '', 1, 0, 'M', '1', '1', '', 'system', 'admin', '2025-08-17 19:48:21', '', NULL, '系统管理目录');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2, '系统监控', 0, 32, 'ufo/monitor', NULL, '', '', 1, 0, 'M', '1', '1', '', 'monitor', 'admin', '2025-08-17 19:48:21', '', NULL, '系统监控目录');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (3, '系统工具', 0, 33, 'ufo/tool', NULL, '', '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', '2025-08-17 19:48:21', '', NULL, '系统工具目录');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (100, '用户管理', 1, 1, 'user', 'ufo/system/user/index', '', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', '2025-08-17 19:48:21', '', NULL, '用户管理菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (101, '角色管理', 1, 2, 'role', 'ufo/system/role/index', '', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', '2025-08-17 19:48:21', '', NULL, '角色管理菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (102, '菜单管理', 1, 3, 'menu', 'ufo/system/menu/index', '', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', '2025-08-17 19:48:21', '', NULL, '菜单管理菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (103, '部门管理', 1, 4, 'dept', 'ufo/system/dept/index', '', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', '2025-08-17 19:48:21', '', NULL, '部门管理菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (104, '岗位管理', 1, 5, 'post', 'ufo/system/post/index', '', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', '2025-08-17 19:48:21', '', NULL, '岗位管理菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (105, '字典管理', 1, 6, 'dict', 'ufo/system/dict/index', '', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', '2025-08-17 19:48:21', '', NULL, '字典管理菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (106, '参数设置', 1, 7, 'config', 'ufo/system/config/index', '', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', '2025-08-17 19:48:21', '', NULL, '参数设置菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (107, '通知公告', 1, 8, 'notice', 'ufo/system/notice/index', '', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', '2025-08-17 19:48:21', '', NULL, '通知公告菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (108, '日志管理', 1, 9, 'log', '', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', '2025-08-17 19:48:21', '', NULL, '日志管理菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (109, '在线用户', 2, 1, 'online', 'ufo/monitor/online/index', '', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', '2025-08-17 19:48:21', '', NULL, '在线用户菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (110, '定时任务', 2, 2, 'job', 'ufo/monitor/job/index', '', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', '2025-08-17 19:48:21', '', NULL, '定时任务菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (111, '数据监控', 2, 3, 'druid', 'ufo/monitor/druid/index', '', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', '2025-08-17 19:48:21', '', NULL, '数据监控菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (112, '服务监控', 2, 4, 'server', 'ufo/monitor/server/index', '', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', '2025-08-17 19:48:21', '', NULL, '服务监控菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (113, '缓存监控', 2, 5, 'cache', 'ufo/monitor/cache/index', '', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', '2025-08-17 19:48:21', '', NULL, '缓存监控菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (114, '缓存列表', 2, 6, 'cacheList', 'ufo/monitor/cache/list', '', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', '2025-08-17 19:48:21', '', NULL, '缓存列表菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (115, '表单构建', 3, 1, 'build', 'ufo/tool/build/index', '', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', '2025-08-17 19:48:21', '', NULL, '表单构建菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (116, '代码生成', 3, 2, 'gen', 'ufo/tool/gen/index', '', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', '2025-08-17 19:48:21', '', NULL, '代码生成菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (117, '系统接口', 3, 3, 'swagger', 'ufo/tool/swagger/index', '', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', '2025-08-17 19:48:21', '', NULL, '系统接口菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (500, '操作日志', 108, 1, 'operlog', 'ufo/monitor/operlog/index', '', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', '2025-08-17 19:48:21', '', NULL, '操作日志菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (501, '登录日志', 108, 2, 'logininfor', 'ufo/monitor/logininfor/index', '', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', '2025-08-17 19:48:21', '', NULL, '登录日志菜单');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1000, '用户查询', 100, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1001, '用户新增', 100, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1002, '用户修改', 100, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1003, '用户删除', 100, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1004, '用户导出', 100, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1005, '用户导入', 100, 6, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1006, '重置密码', 100, 7, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1007, '角色查询', 101, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1008, '角色新增', 101, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1009, '角色修改', 101, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1010, '角色删除', 101, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1011, '角色导出', 101, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1012, '菜单查询', 102, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1013, '菜单新增', 102, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1014, '菜单修改', 102, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1015, '菜单删除', 102, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1016, '部门查询', 103, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1017, '部门新增', 103, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1018, '部门修改', 103, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1019, '部门删除', 103, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1020, '岗位查询', 104, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1021, '岗位新增', 104, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1022, '岗位修改', 104, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1023, '岗位删除', 104, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1024, '岗位导出', 104, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1025, '字典查询', 105, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1026, '字典新增', 105, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1027, '字典修改', 105, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1028, '字典删除', 105, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1029, '字典导出', 105, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1030, '参数查询', 106, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1031, '参数新增', 106, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1032, '参数修改', 106, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1033, '参数删除', 106, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1034, '参数导出', 106, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1035, '公告查询', 107, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1036, '公告新增', 107, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1037, '公告修改', 107, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1038, '公告删除', 107, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1039, '操作查询', 500, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1040, '操作删除', 500, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1041, '日志导出', 500, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1042, '登录查询', 501, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1043, '登录删除', 501, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1044, '日志导出', 501, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1045, '账户解锁', 501, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1046, '在线查询', 109, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1047, '批量强退', 109, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1048, '单条强退', 109, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1049, '任务查询', 110, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1050, '任务新增', 110, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1051, '任务修改', 110, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1052, '任务删除', 110, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1053, '状态修改', 110, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1054, '任务导出', 110, 6, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1055, '生成查询', 116, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1056, '生成修改', 116, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1057, '生成删除', 116, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1058, '导入代码', 116, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1059, '预览代码', 116, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (1060, '生成代码', 116, 6, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2000, '主看板', 0, 4, 'ufo/electricity/dashboard/main-board', 'ufo/electricity/dashboard/MainBoard', '', 'ElectricityMainBoard', 1, 0, 'C', '1', '1', 'electricity:dashboard:mainBoard', 'dashboard', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2001, '实时监控', 0, 5, 'ufo/electricity/realtime', NULL, '', '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2002, '数据监视', 2001, 1, 'data-monitor', 'ufo/electricity/realtime/DataMonitor', '', 'ElectricityDataMonitor', 1, 0, 'C', '0', '0', 'electricity:realtime:dataMonitor', 'fund-projection-screen', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2003, '预测总览', 2001, 2, 'forecast-overview', 'ufo/electricity/realtime/ForecastOverview', '', 'ElectricityForecastOverview', 1, 0, 'C', '0', '0', 'electricity:realtime:forecastOverview', 'line-chart', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2004, '气象与灾害预警地图', 0, 6, 'ufo/electricity/weather', NULL, '', '', 1, 0, 'M', '0', '0', '', 'global', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2005, '气象地图', 2004, 1, 'weather-map', 'ufo/electricity/weather/WeatherMap', '', 'ElectricityWeatherMap', 1, 0, 'C', '0', '0', 'electricity:weather:weatherMap', 'global', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2006, '灾害预警地图', 2004, 2, 'disaster-warning-map', 'ufo/electricity/weather/DisasterWarningMap', '', 'ElectricityDisasterWarningMap', 1, 0, 'C', '0', '0', 'electricity:weather:disasterWarningMap', 'alert', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2007, '预报管理', 0, 7, 'ufo/electricity/forecast', NULL, '', '', 1, 0, 'M', '0', '0', '', 'branches', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2008, '多源多模型预测', 2007, 1, 'multi-model', 'ufo/electricity/forecast/MultiModelForecast', '', 'ElectricityMultiModelForecast', 1, 0, 'C', '0', '0', 'electricity:forecast:multiModel', 'branches', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2009, '理论功率预测', 2007, 2, 'theoretical-power', 'ufo/electricity/forecast/TheoreticalPower', '', 'ElectricityTheoreticalPower', 1, 0, 'C', '0', '0', 'electricity:forecast:theoreticalPower', 'thunderbolt', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2010, '发电量预测', 2007, 3, 'generation', 'ufo/electricity/forecast/GenerationForecast', '', 'ElectricityGenerationForecast', 1, 0, 'C', '0', '0', 'electricity:forecast:generation', 'area-chart', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2011, '预测对标分析', 0, 8, 'ufo/electricity/analysis', NULL, '', '', 1, 0, 'M', '0', '0', '', 'bar-chart', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2012, '预测电量统计', 2011, 1, 'power-stats', 'ufo/electricity/analysis/PowerStats', '', 'ElectricityPowerStats', 1, 0, 'C', '0', '0', 'electricity:analysis:powerStats', 'bar-chart', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2013, '风光聚合统计', 2011, 2, 'wind-solar-stats', 'ufo/electricity/analysis/WindSolarStats', '', 'ElectricityWindSolarStats', 1, 0, 'C', '0', '0', 'electricity:analysis:windSolarStats', 'pie-chart', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2014, '多源指标统计', 2011, 3, 'multi-source-stats', 'ufo/electricity/analysis/MultiSourceStats', '', 'ElectricityMultiSourceStats', 1, 0, 'C', '0', '0', 'electricity:analysis:multiSourceStats', 'dot-chart', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2015, '气象预警指标', 2011, 4, 'weather-warning-indicators', 'ufo/electricity/analysis/WeatherWarningIndicators', '', 'ElectricityWeatherWarningIndicators', 1, 0, 'C', '0', '0', 'electricity:analysis:weatherWarningIndicators', 'warning', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2016, '上报管理', 0, 9, 'ufo/electricity/report', NULL, '', '', 1, 0, 'M', '0', '0', '', 'database', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2017, '上报数据查询', 2016, 1, 'data-query', 'ufo/electricity/report/ReportDataQuery', '', 'ElectricityReportDataQuery', 1, 0, 'C', '0', '0', 'electricity:report:dataQuery', 'database', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2018, '上报记录查询', 2016, 2, 'record-query', 'ufo/electricity/report/ReportRecordQuery', '', 'ElectricityReportRecordQuery', 1, 0, 'C', '0', '0', 'electricity:report:recordQuery', 'file-search', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2019, '设备管理', 0, 10, 'ufo/electricity/device', NULL, '', '', 1, 0, 'M', '0', '0', '', 'appstore', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2020, '设备状态监控', 2019, 1, 'status', 'ufo/electricity/device/DeviceStatus', '', 'ElectricityDeviceStatus', 1, 0, 'C', '0', '0', 'electricity:device:status', 'monitor', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2021, '风机设备信息', 2019, 2, 'turbine-info', 'ufo/electricity/device/TurbineInfo', '', 'ElectricityTurbineInfo', 1, 0, 'C', '0', '0', 'electricity:device:turbineInfo', 'info-circle', 'admin', '2025-09-16 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2022, '故障处理', 0, 11, 'ufo/electricity/fault', NULL, '', '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2023, '故障处理记录', 2022, 1, 'process', 'ufo/electricity/fault/FaultProcess', '', 'ElectricityFaultProcess', 1, 0, 'C', '0', '0', 'alarm:faultProcess:list', 'form', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2024, '故障处理日志', 2022, 2, 'process-log', 'ufo/electricity/fault/FaultProcessLog', '', 'ElectricityFaultProcessLog', 1, 0, 'C', '0', '0', 'alarm:faultProcessLog:list', 'log', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2025, '故障处理查询', 2023, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcess:query', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2026, '故障处理新增', 2023, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcess:add', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2027, '故障处理修改', 2023, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcess:edit', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2028, '故障处理删除', 2023, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcess:remove', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2029, '故障处理导出', 2023, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcess:export', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2030, '故障日志查询', 2024, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcessLog:query', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2031, '故障日志新增', 2024, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcessLog:add', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2032, '故障日志修改', 2024, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcessLog:edit', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2033, '故障日志删除', 2024, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcessLog:remove', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2034, '故障日志导出', 2024, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'alarm:faultProcessLog:export', '#', 'admin', '2026-06-18 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2035, '场站管理', 2019, 3, 'station', 'ufo/config/station/index', '', 'ConfigStation', 1, 0, 'C', '0', '0', 'config:station:list', 'control', 'admin', '2026-07-20 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2036, '场站查询', 2035, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:station:query', '#', 'admin', '2026-07-20 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2037, '场站新增', 2035, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:station:add', '#', 'admin', '2026-07-20 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2038, '场站修改', 2035, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:station:edit', '#', 'admin', '2026-07-20 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2039, '场站删除', 2035, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:station:remove', '#', 'admin', '2026-07-20 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2040, '场站导出', 2035, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:station:export', '#', 'admin', '2026-07-20 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2041, '光伏组件', 2019, 4, 'module', 'ufo/config/station/module/index', '', 'ConfigStationModule', 1, 0, 'C', '0', '0', 'config:stationModule:list', 'component', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2042, '组件查询', 2041, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationModule:query', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2043, '组件新增', 2041, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationModule:add', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2044, '组件修改', 2041, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationModule:edit', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2045, '组件删除', 2041, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationModule:remove', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2046, '组件导出', 2041, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationModule:export', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2047, '限电配置', 2019, 5, 'power-limit', 'ufo/config/station/powerLimit/index', '', 'ConfigStationPowerLimit', 1, 0, 'C', '0', '0', 'config:stationPowerLimit:list', 'stop', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2048, '限电查询', 2047, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPowerLimit:query', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2049, '限电新增', 2047, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPowerLimit:add', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2050, '限电修改', 2047, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPowerLimit:edit', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2051, '限电删除', 2047, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPowerLimit:remove', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2052, '限电导出', 2047, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPowerLimit:export', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2053, '设备配置', 2019, 6, 'device', 'ufo/config/station/device/index', '', 'ConfigStationDevice', 1, 0, 'C', '0', '0', 'config:stationDevice:list', 'appstore', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2054, '设备查询', 2053, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationDevice:query', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2055, '设备新增', 2053, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationDevice:add', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2056, '设备修改', 2053, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationDevice:edit', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2057, '设备删除', 2053, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationDevice:remove', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2058, '设备导出', 2053, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationDevice:export', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2059, '通道配置', 2019, 7, 'channel', 'ufo/config/station/channel/index', '', 'ConfigStationChannel', 1, 0, 'C', '0', '0', 'config:stationChannel:list', 'api', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2060, '通道查询', 2059, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationChannel:query', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2061, '通道新增', 2059, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationChannel:add', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2062, '通道修改', 2059, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationChannel:edit', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2063, '通道删除', 2059, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationChannel:remove', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2064, '通道导出', 2059, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationChannel:export', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2065, '测点配置', 2019, 8, 'point', 'ufo/config/station/point/index', '', 'ConfigStationPoint', 1, 0, 'C', '0', '0', 'config:stationPoint:list', 'aim', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2066, '测点查询', 2065, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPoint:query', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2067, '测点新增', 2065, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPoint:add', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2068, '测点修改', 2065, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPoint:edit', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2069, '测点删除', 2065, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPoint:remove', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2070, '测点导出', 2065, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'config:stationPoint:export', '#', 'admin', '2026-07-21 00:00:00', '', NULL, '');
+
+-- ----------------------------
+-- Table structure for sys_notice
+-- ----------------------------
+CREATE TABLE sys_notice (
+  notice_id INT,
+  notice_title VARCHAR(50) NOT NULL,
+  notice_type CHAR(1) NOT NULL,
+  notice_content BYTEA,
+  status CHAR(1) DEFAULT '0',
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(255) DEFAULT NULL,
+  PRIMARY KEY (notice_id)
+);
+COMMENT ON TABLE sys_notice IS '通知公告表';
+COMMENT ON COLUMN sys_notice.notice_id IS '公告ID';
+COMMENT ON COLUMN sys_notice.notice_title IS '公告标题';
+COMMENT ON COLUMN sys_notice.notice_type IS '公告类型(1通知 2公告)';
+COMMENT ON COLUMN sys_notice.notice_content IS '公告内容';
+COMMENT ON COLUMN sys_notice.status IS '公告状态(0正常 1关闭)';
+COMMENT ON COLUMN sys_notice.create_by IS '创建者';
+COMMENT ON COLUMN sys_notice.create_time IS '创建时间';
+COMMENT ON COLUMN sys_notice.update_by IS '更新者';
+COMMENT ON COLUMN sys_notice.update_time IS '更新时间';
+COMMENT ON COLUMN sys_notice.remark IS '备注';
+
+
+-- ----------------------------
+-- Records of sys_notice
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_notice (notice_id, notice_title, notice_type, notice_content, status, create_by, create_time, update_by, update_time, remark) VALUES (1, '温馨提醒:2018-07-01 管理员新版本发布啦', '2', decode('E696B0E78988E69CACE58685E5AEB9','hex'), '0', 'admin', '2025-08-17 19:48:21', '', NULL, '管理员');
+INSERT INTO sys_notice (notice_id, notice_title, notice_type, notice_content, status, create_by, create_time, update_by, update_time, remark) VALUES (2, '维护通知:2018-07-01 管理员系统凌晨维护', '1', decode('E7BBB4E68AA4E58685E5AEB9','hex'), '0', 'admin', '2025-08-17 19:48:21', '', NULL, '管理员');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_oper_log
+-- ----------------------------
+CREATE TABLE sys_oper_log (
+  oper_id BIGINT,
+  title VARCHAR(50) DEFAULT '',
+  business_type INTEGER DEFAULT 0,
+  method VARCHAR(200) DEFAULT '',
+  request_method VARCHAR(10) DEFAULT '',
+  operator_type INTEGER DEFAULT 0,
+  oper_name VARCHAR(50) DEFAULT '',
+  dept_name VARCHAR(50) DEFAULT '',
+  oper_url VARCHAR(255) DEFAULT '',
+  oper_ip VARCHAR(128) DEFAULT '',
+  oper_location VARCHAR(255) DEFAULT '',
+  oper_param VARCHAR(2000) DEFAULT '',
+  json_result VARCHAR(2000) DEFAULT '',
+  status INTEGER DEFAULT 0,
+  error_msg VARCHAR(2000) DEFAULT '',
+  oper_time TIMESTAMP DEFAULT NULL,
+  cost_time BIGINT DEFAULT 0,
+  PRIMARY KEY (oper_id)
+);
+COMMENT ON TABLE sys_oper_log IS '操作日志记录';
+COMMENT ON COLUMN sys_oper_log.oper_id IS '日志主键';
+COMMENT ON COLUMN sys_oper_log.title IS '模块标题';
+COMMENT ON COLUMN sys_oper_log.business_type IS '业务类型(0其它 1新增 2修改 3删除)';
+COMMENT ON COLUMN sys_oper_log.method IS '方法名称';
+COMMENT ON COLUMN sys_oper_log.request_method IS '请求方式';
+COMMENT ON COLUMN sys_oper_log.operator_type IS '操作类别(0其它 1后台用户 2手机端用户)';
+COMMENT ON COLUMN sys_oper_log.oper_name IS '操作人员';
+COMMENT ON COLUMN sys_oper_log.dept_name IS '部门名称';
+COMMENT ON COLUMN sys_oper_log.oper_url IS '请求URL';
+COMMENT ON COLUMN sys_oper_log.oper_ip IS '主机地址';
+COMMENT ON COLUMN sys_oper_log.oper_location IS '操作地点';
+COMMENT ON COLUMN sys_oper_log.oper_param IS '请求参数';
+COMMENT ON COLUMN sys_oper_log.json_result IS '返回参数';
+COMMENT ON COLUMN sys_oper_log.status IS '操作状态(0正常 1异常)';
+COMMENT ON COLUMN sys_oper_log.error_msg IS '错误消息';
+COMMENT ON COLUMN sys_oper_log.oper_time IS '操作时间';
+COMMENT ON COLUMN sys_oper_log.cost_time IS '消耗时间';
+CREATE INDEX sys_oper_log_idx_sys_oper_log_bt ON sys_oper_log (business_type);
+CREATE INDEX sys_oper_log_idx_sys_oper_log_s ON sys_oper_log (status);
+CREATE INDEX sys_oper_log_idx_sys_oper_log_ot ON sys_oper_log (oper_time);
+
+
+-- ----------------------------
+-- Table structure for sys_post
+-- ----------------------------
+CREATE TABLE sys_post (
+  post_id BIGINT,
+  post_code VARCHAR(64) NOT NULL,
+  post_name VARCHAR(50) NOT NULL,
+  post_sort INTEGER NOT NULL,
+  status CHAR(1) NOT NULL,
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT NULL,
+  PRIMARY KEY (post_id)
+);
+COMMENT ON TABLE sys_post IS '岗位信息表';
+COMMENT ON COLUMN sys_post.post_id IS '岗位ID';
+COMMENT ON COLUMN sys_post.post_code IS '岗位编码';
+COMMENT ON COLUMN sys_post.post_name IS '岗位名称';
+COMMENT ON COLUMN sys_post.post_sort IS '显示顺序';
+COMMENT ON COLUMN sys_post.status IS '状态(0正常 1停用)';
+COMMENT ON COLUMN sys_post.create_by IS '创建者';
+COMMENT ON COLUMN sys_post.create_time IS '创建时间';
+COMMENT ON COLUMN sys_post.update_by IS '更新者';
+COMMENT ON COLUMN sys_post.update_time IS '更新时间';
+COMMENT ON COLUMN sys_post.remark IS '备注';
+
+
+-- ----------------------------
+-- Records of sys_post
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_post (post_id, post_code, post_name, post_sort, status, create_by, create_time, update_by, update_time, remark) VALUES (1, 'ceo', '董事长', 1, '0', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_post (post_id, post_code, post_name, post_sort, status, create_by, create_time, update_by, update_time, remark) VALUES (2, 'se', '项目经理', 2, '0', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_post (post_id, post_code, post_name, post_sort, status, create_by, create_time, update_by, update_time, remark) VALUES (3, 'hr', '人力资源', 3, '0', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+INSERT INTO sys_post (post_id, post_code, post_name, post_sort, status, create_by, create_time, update_by, update_time, remark) VALUES (4, 'user', '普通员工', 4, '0', 'admin', '2025-08-17 19:48:21', '', NULL, '');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+CREATE TABLE sys_role (
+  role_id BIGINT,
+  role_name VARCHAR(30) NOT NULL,
+  role_key VARCHAR(100) NOT NULL,
+  role_sort INTEGER NOT NULL,
+  data_scope CHAR(1) DEFAULT '1',
+  menu_check_strictly SMALLINT DEFAULT 1,
+  dept_check_strictly SMALLINT DEFAULT 1,
+  status CHAR(1) NOT NULL,
+  del_flag CHAR(1) DEFAULT '0',
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT NULL,
+  PRIMARY KEY (role_id)
+);
+COMMENT ON TABLE sys_role IS '角色信息表';
+COMMENT ON COLUMN sys_role.role_id IS '角色ID';
+COMMENT ON COLUMN sys_role.role_name IS '角色名称';
+COMMENT ON COLUMN sys_role.role_key IS '角色权限字符串';
+COMMENT ON COLUMN sys_role.role_sort IS '显示顺序';
+COMMENT ON COLUMN sys_role.data_scope IS '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)';
+COMMENT ON COLUMN sys_role.menu_check_strictly IS '菜单树选择项是否关联显示';
+COMMENT ON COLUMN sys_role.dept_check_strictly IS '部门树选择项是否关联显示';
+COMMENT ON COLUMN sys_role.status IS '角色状态(0正常 1停用)';
+COMMENT ON COLUMN sys_role.del_flag IS '删除标志(0代表存在 2代表删除)';
+COMMENT ON COLUMN sys_role.create_by IS '创建者';
+COMMENT ON COLUMN sys_role.create_time IS '创建时间';
+COMMENT ON COLUMN sys_role.update_by IS '更新者';
+COMMENT ON COLUMN sys_role.update_time IS '更新时间';
+COMMENT ON COLUMN sys_role.remark IS '备注';
+
+
+-- ----------------------------
+-- Records of sys_role
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_role (role_id, role_name, role_key, role_sort, data_scope, menu_check_strictly, dept_check_strictly, status, del_flag, create_by, create_time, update_by, update_time, remark) VALUES (1, '超级管理员', 'admin', 1, '1', 0, 0, '0', '0', 'admin', '2025-08-17 19:48:21', '', NULL, '超级管理员');
+INSERT INTO sys_role (role_id, role_name, role_key, role_sort, data_scope, menu_check_strictly, dept_check_strictly, status, del_flag, create_by, create_time, update_by, update_time, remark) VALUES (2, '普通角色', 'common', 2, '2', 0, 0, '0', '0', 'admin', '2025-08-17 19:48:21', 'admin', '2025-09-10 16:57:47', '普通角色');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_role_dept
+-- ----------------------------
+CREATE TABLE sys_role_dept (
+  role_id BIGINT NOT NULL,
+  dept_id BIGINT NOT NULL,
+  PRIMARY KEY (role_id,dept_id)
+);
+COMMENT ON TABLE sys_role_dept IS '角色和部门关联表';
+COMMENT ON COLUMN sys_role_dept.role_id IS '角色ID';
+COMMENT ON COLUMN sys_role_dept.dept_id IS '部门ID';
+
+
+-- ----------------------------
+-- Records of sys_role_dept
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_role_menu
+-- ----------------------------
+CREATE TABLE sys_role_menu (
+  role_id BIGINT NOT NULL,
+  menu_id BIGINT NOT NULL,
+  PRIMARY KEY (role_id,menu_id)
+);
+COMMENT ON TABLE sys_role_menu IS '角色和菜单关联表';
+COMMENT ON COLUMN sys_role_menu.role_id IS '角色ID';
+COMMENT ON COLUMN sys_role_menu.menu_id IS '菜单ID';
+
+
+-- ----------------------------
+-- Records of sys_role_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 100);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 101);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 102);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 103);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 111);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 112);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 113);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 114);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 115);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 117);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1000);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1001);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1002);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1003);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1004);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1005);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1006);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1007);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1008);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1009);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1010);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1011);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1012);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1013);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1014);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1015);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1016);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1017);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1018);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1019);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1039);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1040);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1041);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1042);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1043);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1044);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1045);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1046);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1047);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1048);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1049);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1050);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1051);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1052);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1053);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1054);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1055);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1056);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1057);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1058);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1059);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 1060);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_user
+-- ----------------------------
+CREATE TABLE sys_user (
+  user_id BIGINT,
+  dept_id BIGINT DEFAULT NULL,
+  user_name VARCHAR(30) NOT NULL,
+  nick_name VARCHAR(30) NOT NULL,
+  user_type VARCHAR(2) DEFAULT '00',
+  email VARCHAR(50) DEFAULT '',
+  phonenumber VARCHAR(11) DEFAULT '',
+  sex CHAR(1) DEFAULT '0',
+  avatar VARCHAR(100) DEFAULT '',
+  password VARCHAR(100) DEFAULT '',
+  status CHAR(1) DEFAULT '0',
+  del_flag CHAR(1) DEFAULT '0',
+  login_ip VARCHAR(128) DEFAULT '',
+  login_date TIMESTAMP DEFAULT NULL,
+  pwd_update_date TIMESTAMP DEFAULT NULL,
+  create_by VARCHAR(64) DEFAULT '',
+  create_time TIMESTAMP DEFAULT NULL,
+  update_by VARCHAR(64) DEFAULT '',
+  update_time TIMESTAMP DEFAULT NULL,
+  remark VARCHAR(500) DEFAULT NULL,
+  PRIMARY KEY (user_id)
+);
+COMMENT ON TABLE sys_user IS '用户信息表';
+COMMENT ON COLUMN sys_user.user_id IS '用户ID';
+COMMENT ON COLUMN sys_user.dept_id IS '部门ID';
+COMMENT ON COLUMN sys_user.user_name IS '用户账号';
+COMMENT ON COLUMN sys_user.nick_name IS '用户昵称';
+COMMENT ON COLUMN sys_user.user_type IS '用户类型(00系统用户)';
+COMMENT ON COLUMN sys_user.email IS '用户邮箱';
+COMMENT ON COLUMN sys_user.phonenumber IS '手机号码';
+COMMENT ON COLUMN sys_user.sex IS '用户性别(0男 1女 2未知)';
+COMMENT ON COLUMN sys_user.avatar IS '头像地址';
+COMMENT ON COLUMN sys_user.password IS '密码';
+COMMENT ON COLUMN sys_user.status IS '账号状态(0正常 1停用)';
+COMMENT ON COLUMN sys_user.del_flag IS '删除标志(0代表存在 2代表删除)';
+COMMENT ON COLUMN sys_user.login_ip IS '最后登录IP';
+COMMENT ON COLUMN sys_user.login_date IS '最后登录时间';
+COMMENT ON COLUMN sys_user.pwd_update_date IS '密码最后更新时间';
+COMMENT ON COLUMN sys_user.create_by IS '创建者';
+COMMENT ON COLUMN sys_user.create_time IS '创建时间';
+COMMENT ON COLUMN sys_user.update_by IS '更新者';
+COMMENT ON COLUMN sys_user.update_time IS '更新时间';
+COMMENT ON COLUMN sys_user.remark IS '备注';
+
+
+-- ----------------------------
+-- Records of sys_user
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_user (user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, login_date, pwd_update_date, create_by, create_time, update_by, update_time, remark) VALUES (1, 103, 'admin', '超级管理员', '00', '10000@qq.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2025-09-16 15:42:09', '2025-08-17 19:48:21', 'admin', '2025-08-17 19:48:21', '', '2025-09-16 15:42:09', '管理员');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_user_post
+-- ----------------------------
+CREATE TABLE sys_user_post (
+  user_id BIGINT NOT NULL,
+  post_id BIGINT NOT NULL,
+  PRIMARY KEY (user_id,post_id)
+);
+COMMENT ON TABLE sys_user_post IS '用户与岗位关联表';
+COMMENT ON COLUMN sys_user_post.user_id IS '用户ID';
+COMMENT ON COLUMN sys_user_post.post_id IS '岗位ID';
+
+
+-- ----------------------------
+-- Records of sys_user_post
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_user_post (user_id, post_id) VALUES (1, 1);
+INSERT INTO sys_user_post (user_id, post_id) VALUES (2, 2);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for sys_user_role
+-- ----------------------------
+CREATE TABLE sys_user_role (
+  user_id BIGINT NOT NULL,
+  role_id BIGINT NOT NULL,
+  PRIMARY KEY (user_id,role_id)
+);
+COMMENT ON TABLE sys_user_role IS '用户和角色关联表';
+COMMENT ON COLUMN sys_user_role.user_id IS '用户ID';
+COMMENT ON COLUMN sys_user_role.role_id IS '角色ID';
+
+
+-- ----------------------------
+-- Records of sys_user_role
+-- ----------------------------
+BEGIN;
+INSERT INTO sys_user_role (user_id, role_id) VALUES (1, 1);
+INSERT INTO sys_user_role (user_id, role_id) VALUES (2, 2);
+COMMIT;
+
+-- =============================================================================
+-- Section 2. Electricity business schema
+-- =============================================================================
+-- Auto-generated from 数据库设计说明书.pdf
+-- Target DB: PostgreSQL 15
+
+-- -----------------------------------------------------
+-- 7.1  model_algorithms  [算法定义表]
+-- -----------------------------------------------------
+CREATE TABLE model_algorithms (
+id BIGINT NOT NULL,
+algorithm_name VARCHAR(100) NOT NULL,
+algorithm_type VARCHAR(50) NOT NULL,
+algorithm_version VARCHAR(20),
+default_params CLOB,
+supported_features VARCHAR(4000),
+description CLOB,
+created_by VARCHAR(50),
+created_at TIMESTAMP NOT NULL DEFAULT SYSDATE,
+updated_at TIMESTAMP NOT NULL DEFAULT SYSDATE,
+is_deleted TINYINT NOT NULL DEFAULT 0
+);
+ALTER TABLE model_algorithms ADD CONSTRAINT PK_model_algorithms PRIMARY KEY (id);
+COMMENT ON TABLE model_algorithms IS '算法定义表';
+COMMENT ON COLUMN model_algorithms.id IS '主键';
+COMMENT ON COLUMN model_algorithms.algorithm_name IS '算法名称,如:LightGBM光伏预测算法';
+COMMENT ON COLUMN model_algorithms.algorithm_type IS '算法类型:lightgbm/lstm/cnn-lstm/xgboost/random_forest';
+COMMENT ON COLUMN model_algorithms.algorithm_version IS '算法自身版本号';
+COMMENT ON COLUMN model_algorithms.default_params IS '默认参数配置';
+COMMENT ON COLUMN model_algorithms.supported_features IS '支持的气象要素列表';
+COMMENT ON COLUMN model_algorithms.description IS '算法描述';
+COMMENT ON COLUMN model_algorithms.created_by IS '创建人';
+COMMENT ON COLUMN model_algorithms.created_at IS '创建时间';
+COMMENT ON COLUMN model_algorithms.updated_at IS '更新时间';
+COMMENT ON COLUMN model_algorithms.is_deleted IS '逻辑删除标记';
+
+-- -----------------------------------------------------
+-- 7.2  model_versions  [模型版本表]
+-- -----------------------------------------------------
+CREATE TABLE model_versions (
+id BIGINT NOT NULL,
+algorithm_id BIGINT NOT NULL,
+version VARCHAR(100) NOT NULL,
+version_major INTEGER NOT NULL,
+version_minor INTEGER NOT NULL,
+version_batch INTEGER NOT NULL,
+scope_type VARCHAR(20) NOT NULL,
+scope_id VARCHAR(32),
+weather_features CLOB NOT NULL,
+training_params CLOB,
+model_path VARCHAR(500),
+performance_metrics CLOB,
+is_default TINYINT NOT NULL DEFAULT 0,
+status VARCHAR(20) NOT NULL DEFAULT 'TRAINING',
+trained_at TIMESTAMP,
+created_by VARCHAR(50),
+created_at TIMESTAMP NOT NULL DEFAULT SYSDATE,
+updated_at TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE model_versions ADD CONSTRAINT PK_model_versions PRIMARY KEY (id);
+COMMENT ON TABLE model_versions IS '模型版本表';
+COMMENT ON COLUMN model_versions.id IS '主键';
+COMMENT ON COLUMN model_versions.algorithm_id IS '算法ID(外键)';
+COMMENT ON COLUMN model_versions.version IS '版本号';
+COMMENT ON COLUMN model_versions.version_major IS '主版本号';
+COMMENT ON COLUMN model_versions.version_minor IS '次版本号';
+COMMENT ON COLUMN model_versions.version_batch IS '修订号';
+COMMENT ON COLUMN model_versions.scope_type IS '作用域类型:station/area/global';
+COMMENT ON COLUMN model_versions.scope_id IS '场站ID或区域ID,global时为NULL';
+COMMENT ON COLUMN model_versions.weather_features IS '使用的气象要素配置';
+COMMENT ON COLUMN model_versions.training_params IS '训练参数';
+COMMENT ON COLUMN model_versions.model_path IS '模型文件路径';
+COMMENT ON COLUMN model_versions.performance_metrics IS '性能指标';
+COMMENT ON COLUMN model_versions.is_default IS '是否为默认版本';
+COMMENT ON COLUMN model_versions.status IS '状态:TRAINING/TESTING/PUBLISHED/DEPRECATED';
+COMMENT ON COLUMN model_versions.trained_at IS '训练完成时间';
+COMMENT ON COLUMN model_versions.created_by IS '创建人';
+COMMENT ON COLUMN model_versions.created_at IS '创建时间';
+COMMENT ON COLUMN model_versions.updated_at IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.3  model_training_tasks  [训练任务表]
+-- -----------------------------------------------------
+CREATE TABLE model_training_tasks (
+id BIGINT NOT NULL,
+algorithm_id BIGINT NOT NULL,
+task_name VARCHAR(200),
+scope_type VARCHAR(20) NOT NULL,
+scope_id VARCHAR(32),
+weather_features CLOB NOT NULL,
+date_range CLOB,
+training_config CLOB NOT NULL,
+status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
+progress INTEGER NOT NULL DEFAULT 0,
+result_version_id BIGINT,
+error_message CLOB,
+created_by VARCHAR(50),
+created_at TIMESTAMP NOT NULL DEFAULT SYSDATE,
+started_at TIMESTAMP,
+completed_at TIMESTAMP
+);
+ALTER TABLE model_training_tasks ADD CONSTRAINT PK_model_training_tasks PRIMARY KEY (id);
+COMMENT ON TABLE model_training_tasks IS '训练任务表';
+COMMENT ON COLUMN model_training_tasks.id IS '主键';
+COMMENT ON COLUMN model_training_tasks.algorithm_id IS '算法ID(外键)';
+COMMENT ON COLUMN model_training_tasks.task_name IS '任务名称';
+COMMENT ON COLUMN model_training_tasks.scope_type IS '训练的作用域类型';
+COMMENT ON COLUMN model_training_tasks.scope_id IS '训练的作用域ID';
+COMMENT ON COLUMN model_training_tasks.weather_features IS '选择的气象要素';
+COMMENT ON COLUMN model_training_tasks.date_range IS '训练数据时间范围';
+COMMENT ON COLUMN model_training_tasks.training_config IS '训练配置';
+COMMENT ON COLUMN model_training_tasks.status IS '状态:PENDING/RUNNING/SUCCEEDS/FAILED';
+COMMENT ON COLUMN model_training_tasks.progress IS '进度百分比';
+COMMENT ON COLUMN model_training_tasks.result_version_id IS '结果版本ID';
+COMMENT ON COLUMN model_training_tasks.error_message IS '错误信息';
+COMMENT ON COLUMN model_training_tasks.created_by IS '创建人';
+COMMENT ON COLUMN model_training_tasks.created_at IS '创建时间';
+COMMENT ON COLUMN model_training_tasks.started_at IS '开始时间';
+COMMENT ON COLUMN model_training_tasks.completed_at IS '完成时间';
+
+-- -----------------------------------------------------
+-- 7.4  model_prediction_tasks  [预测任务表]
+-- -----------------------------------------------------
+CREATE TABLE model_prediction_tasks (
+id BIGINT NOT NULL,
+task_name VARCHAR(200),
+station_id BIGINT NOT NULL,
+model_version_id BIGINT NOT NULL,
+version_source VARCHAR(50),
+prediction_type VARCHAR(20) NOT NULL,
+target_time TIMESTAMP NOT NULL,
+status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
+result_path VARCHAR(500),
+created_at TIMESTAMP NOT NULL DEFAULT SYSDATE,
+executed_at TIMESTAMP
+);
+ALTER TABLE model_prediction_tasks ADD CONSTRAINT PK_model_prediction_tasks PRIMARY KEY (id);
+COMMENT ON TABLE model_prediction_tasks IS '预测任务表';
+COMMENT ON COLUMN model_prediction_tasks.id IS '主键';
+COMMENT ON COLUMN model_prediction_tasks.task_name IS '任务名称';
+COMMENT ON COLUMN model_prediction_tasks.station_id IS '预测的具体场站';
+COMMENT ON COLUMN model_prediction_tasks.model_version_id IS '实际使用的版本';
+COMMENT ON COLUMN model_prediction_tasks.version_source IS '版本来源:station/area/global';
+COMMENT ON COLUMN model_prediction_tasks.prediction_type IS '预测类型:short_term/ultra_short';
+COMMENT ON COLUMN model_prediction_tasks.target_time IS '预测目标时间';
+COMMENT ON COLUMN model_prediction_tasks.status IS '状态';
+COMMENT ON COLUMN model_prediction_tasks.result_path IS '结果存储路径';
+COMMENT ON COLUMN model_prediction_tasks.created_at IS '创建时间';
+COMMENT ON COLUMN model_prediction_tasks.executed_at IS '执行时间';
+
+-- -----------------------------------------------------
+-- 7.5  model_trigger_policies  [统一的触发策略表]
+-- -----------------------------------------------------
+CREATE TABLE model_trigger_policies (
+id BIGINT NOT NULL,
+policy_name VARCHAR(100) NOT NULL,
+policy_category VARCHAR(30) NOT NULL,
+trigger_type VARCHAR(30) NOT NULL,
+scope_type VARCHAR(20) NOT NULL,
+scope_id VARCHAR(32),
+trigger_config CLOB NOT NULL,
+action_config CLOB,
+priority INTEGER NOT NULL DEFAULT 5,
+is_enabled TINYINT NOT NULL DEFAULT 1,
+last_triggered_at TIMESTAMP,
+created_by VARCHAR(50),
+created_at TIMESTAMP NOT NULL DEFAULT SYSDATE,
+updated_at TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE model_trigger_policies ADD CONSTRAINT PK_model_trigger_policies PRIMARY KEY (id);
+COMMENT ON TABLE model_trigger_policies IS '统一的触发策略表';
+COMMENT ON COLUMN model_trigger_policies.id IS '主键';
+COMMENT ON COLUMN model_trigger_policies.policy_name IS '策略名称';
+COMMENT ON COLUMN model_trigger_policies.policy_category IS '策略类别:prediction/training';
+COMMENT ON COLUMN model_trigger_policies.trigger_type IS '触发类型:time/event/accuracy/data_volume';
+COMMENT ON COLUMN model_trigger_policies.scope_type IS '策略作用域类型';
+COMMENT ON COLUMN model_trigger_policies.scope_id IS '策略作用域ID';
+COMMENT ON COLUMN model_trigger_policies.trigger_config IS '触发条件配置';
+COMMENT ON COLUMN model_trigger_policies.action_config IS '触发后的动作配置';
+COMMENT ON COLUMN model_trigger_policies.priority IS '优先级(1-10)';
+COMMENT ON COLUMN model_trigger_policies.is_enabled IS '是否启用';
+COMMENT ON COLUMN model_trigger_policies.last_triggered_at IS '最后触发时间';
+COMMENT ON COLUMN model_trigger_policies.created_by IS '创建人';
+COMMENT ON COLUMN model_trigger_policies.created_at IS '创建时间';
+COMMENT ON COLUMN model_trigger_policies.updated_at IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.6  model_evaluations  [模型评估结果表]
+-- -----------------------------------------------------
+CREATE TABLE model_evaluations (
+id BIGINT NOT NULL,
+model_version_id BIGINT NOT NULL,
+evaluation_scope_type VARCHAR(20),
+evaluation_scope_id VARCHAR(32),
+evaluation_period VARCHAR(20),
+period_start TIMESTAMP NOT NULL,
+period_end TIMESTAMP NOT NULL,
+evaluation_time TIMESTAMP,
+assessment_rule_id BIGINT,
+assessment_metric CLOB,
+sample_count INTEGER,
+data_quality CLOB,
+created_at TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE model_evaluations ADD CONSTRAINT PK_model_evaluations PRIMARY KEY (id);
+COMMENT ON TABLE model_evaluations IS '模型评估结果表';
+COMMENT ON COLUMN model_evaluations.id IS '主键';
+COMMENT ON COLUMN model_evaluations.model_version_id IS '模型版本ID(外键)';
+COMMENT ON COLUMN model_evaluations.evaluation_scope_type IS '评估范围类型';
+COMMENT ON COLUMN model_evaluations.evaluation_scope_id IS '评估范围ID';
+COMMENT ON COLUMN model_evaluations.evaluation_period IS '评估周期:daily/weekly/monthly';
+COMMENT ON COLUMN model_evaluations.period_start IS '评估周期开始时间';
+COMMENT ON COLUMN model_evaluations.period_end IS '评估周期结束时间';
+COMMENT ON COLUMN model_evaluations.evaluation_time IS '实际评估执行时间(T+1)';
+COMMENT ON COLUMN model_evaluations.assessment_rule_id IS '关联考核规则ID';
+COMMENT ON COLUMN model_evaluations.assessment_metric IS '基于考核规则计算的所有指标';
+COMMENT ON COLUMN model_evaluations.sample_count IS '样本数量';
+COMMENT ON COLUMN model_evaluations.data_quality IS '数据质量信息(缺失率等)';
+COMMENT ON COLUMN model_evaluations.created_at IS '创建时间';
+
+-- -----------------------------------------------------
+-- 7.7  model_accuracy_rankings  [准确率排名表]
+-- -----------------------------------------------------
+CREATE TABLE model_accuracy_rankings (
+id BIGINT NOT NULL,
+ranking_type VARCHAR(30) NOT NULL,
+ranking_scope VARCHAR(50) NOT NULL,
+scope_id VARCHAR(32),
+algorithm_id BIGINT,
+period_type VARCHAR(20) NOT NULL,
+period_value VARCHAR(20) NOT NULL,
+rankings CLOB NOT NULL,
+best_version_id BIGINT,
+switch_decision CLOB,
+auto_switch_executed TINYINT NOT NULL DEFAULT 0,
+created_at TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE model_accuracy_rankings ADD CONSTRAINT PK_model_accuracy_rankings PRIMARY KEY (id);
+COMMENT ON TABLE model_accuracy_rankings IS '准确率排名表';
+COMMENT ON COLUMN model_accuracy_rankings.id IS '主键';
+COMMENT ON COLUMN model_accuracy_rankings.ranking_type IS '排名类型:daily/weekly/monthly/realtime';
+COMMENT ON COLUMN model_accuracy_rankings.ranking_scope IS '排名范围:global/area/station';
+COMMENT ON COLUMN model_accuracy_rankings.scope_id IS '具体的范围ID';
+COMMENT ON COLUMN model_accuracy_rankings.algorithm_id IS '可按算法筛选';
+COMMENT ON COLUMN model_accuracy_rankings.period_type IS '周期类型';
+COMMENT ON COLUMN model_accuracy_rankings.period_value IS '周期值';
+COMMENT ON COLUMN model_accuracy_rankings.rankings IS '包含版本ID、性能指标、排名等';
+COMMENT ON COLUMN model_accuracy_rankings.best_version_id IS '最优版本ID';
+COMMENT ON COLUMN model_accuracy_rankings.switch_decision IS '切换决策详情';
+COMMENT ON COLUMN model_accuracy_rankings.auto_switch_executed IS '是否已执行自动切换';
+COMMENT ON COLUMN model_accuracy_rankings.created_at IS '创建时间';
+
+-- -----------------------------------------------------
+-- 7.8  data_source_config  [预报数据源配置]
+-- -----------------------------------------------------
+CREATE TABLE data_source_config (
+id INT NOT NULL,
+source_name VARCHAR(90) NOT NULL,
+source_alias VARCHAR(90) NOT NULL,
+source_key VARCHAR(255) NOT NULL,
+source_type VARCHAR(32) NOT NULL,
+protocol VARCHAR(90) NOT NULL,
+supplier_id INTEGER NOT NULL,
+protocol_extended_config CLOB,
+is_secure TINYINT NOT NULL DEFAULT 0,
+secure_config CLOB,
+max_concurrency INTEGER NOT NULL,
+reception_time VARCHAR(255),
+data_active_poll_interval INTEGER NOT NULL,
+data_inactivity_poll_interval INTEGER NOT NULL,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL,
+grab_days INTEGER NOT NULL DEFAULT 3,
+topic_name VARCHAR(255)
+);
+ALTER TABLE data_source_config ADD CONSTRAINT PK_data_source_config PRIMARY KEY (id);
+COMMENT ON TABLE data_source_config IS '预报数据源配置';
+COMMENT ON COLUMN data_source_config.id IS '唯一标识';
+COMMENT ON COLUMN data_source_config.source_name IS '数据源名称';
+COMMENT ON COLUMN data_source_config.source_alias IS '数据源别名';
+COMMENT ON COLUMN data_source_config.source_key IS '数据源标识';
+COMMENT ON COLUMN data_source_config.source_type IS '数据源类型';
+COMMENT ON COLUMN data_source_config.protocol IS '传输协议(ftp、sftp)';
+COMMENT ON COLUMN data_source_config.supplier_id IS '供应商ID';
+COMMENT ON COLUMN data_source_config.protocol_extended_config IS '传输协议基础扩展配置';
+COMMENT ON COLUMN data_source_config.is_secure IS '是否连接加密';
+COMMENT ON COLUMN data_source_config.secure_config IS '加密配置';
+COMMENT ON COLUMN data_source_config.max_concurrency IS '当前数据源支持最大并发量';
+COMMENT ON COLUMN data_source_config.reception_time IS '数据发送到数据源的时间';
+COMMENT ON COLUMN data_source_config.data_active_poll_interval IS '活跃时轮训间隔';
+COMMENT ON COLUMN data_source_config.data_inactivity_poll_interval IS '非活跃时轮训间隔';
+COMMENT ON COLUMN data_source_config.is_del IS '是否删除';
+COMMENT ON COLUMN data_source_config.create_by IS '创建人';
+COMMENT ON COLUMN data_source_config.create_time IS '创建时间';
+COMMENT ON COLUMN data_source_config.update_by IS '更新人';
+COMMENT ON COLUMN data_source_config.update_time IS '更新时间';
+COMMENT ON COLUMN data_source_config.grab_days IS '抓取天数';
+COMMENT ON COLUMN data_source_config.topic_name IS '主题名称';
+
+-- -----------------------------------------------------
+-- 7.9  data_source_grab  [数据源抓取配置]
+-- -----------------------------------------------------
+CREATE TABLE data_source_grab (
+id INT NOT NULL,
+data_source_id INTEGER NOT NULL,
+data_organization_type INTEGER NOT NULL,
+data_type INTEGER NOT NULL,
+data_content_type INTEGER NOT NULL,
+remote_directory VARCHAR(100) NOT NULL,
+earliest_start_time TIMESTAMP NOT NULL,
+longest_forecast_period INTEGER NOT NULL,
+push_time TIMESTAMP NOT NULL,
+file_match_pattern VARCHAR(100) NOT NULL,
+longitude_match_pattern VARCHAR(100),
+latitude_match_pattern VARCHAR(100),
+date_match_pattern VARCHAR(100),
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL,
+pattern_name VARCHAR(40),
+batch_of_day INTEGER,
+threshold INTEGER NOT NULL DEFAULT 2000,
+standard_quantity INTEGER NOT NULL DEFAULT 2000,
+warning_time CLOB,
+shortest_parsing_time INTEGER NOT NULL DEFAULT 60,
+data_model_id INTEGER,
+data_model_name VARCHAR(90)
+);
+ALTER TABLE data_source_grab ADD CONSTRAINT PK_data_source_grab PRIMARY KEY (id);
+COMMENT ON TABLE data_source_grab IS '数据源抓取配置';
+COMMENT ON COLUMN data_source_grab.id IS '唯一标识';
+COMMENT ON COLUMN data_source_grab.data_source_id IS '远程数据源ID';
+COMMENT ON COLUMN data_source_grab.data_organization_type IS '数据组织类型(1单点时间序列2四维时空网格)';
+COMMENT ON COLUMN data_source_grab.data_type IS '数据类型(1短期功率预测,2短期气象预测,3CFS,5EC,6风机运行,7升压站运行,8超短期功率预测)';
+COMMENT ON COLUMN data_source_grab.data_content_type IS '数据内容类型';
+COMMENT ON COLUMN data_source_grab.remote_directory IS '数据文件所在远程目录';
+COMMENT ON COLUMN data_source_grab.earliest_start_time IS '最早起报时间';
+COMMENT ON COLUMN data_source_grab.longest_forecast_period IS '最长预报时效';
+COMMENT ON COLUMN data_source_grab.push_time IS '数据文件推送时间';
+COMMENT ON COLUMN data_source_grab.file_match_pattern IS '文件匹配模式';
+COMMENT ON COLUMN data_source_grab.longitude_match_pattern IS '经度匹配模式';
+COMMENT ON COLUMN data_source_grab.latitude_match_pattern IS '维度匹配模式';
+COMMENT ON COLUMN data_source_grab.date_match_pattern IS '日期匹配';
+COMMENT ON COLUMN data_source_grab.is_del IS '是否删除';
+COMMENT ON COLUMN data_source_grab.create_by IS '创建人';
+COMMENT ON COLUMN data_source_grab.create_time IS '创建时间';
+COMMENT ON COLUMN data_source_grab.update_by IS '更新人';
+COMMENT ON COLUMN data_source_grab.update_time IS '更新时间';
+COMMENT ON COLUMN data_source_grab.pattern_name IS '模式名称';
+COMMENT ON COLUMN data_source_grab.batch_of_day IS '每天的批次数';
+COMMENT ON COLUMN data_source_grab.threshold IS '告警阀值';
+COMMENT ON COLUMN data_source_grab.standard_quantity IS '标准数量';
+COMMENT ON COLUMN data_source_grab.warning_time IS '告警时间';
+COMMENT ON COLUMN data_source_grab.shortest_parsing_time IS '最短解析时间(分钟)';
+COMMENT ON COLUMN data_source_grab.data_model_id IS '数据模型ID';
+COMMENT ON COLUMN data_source_grab.data_model_name IS '数据模型名称';
+
+-- -----------------------------------------------------
+-- 7.10  data_source_user_relation  [预报数据源和数据用户关系配置]
+-- -----------------------------------------------------
+CREATE TABLE data_source_user_relation (
+id INT NOT NULL,
+data_source_grab_id INTEGER NOT NULL,
+user_type INTEGER NOT NULL,
+user_id VARCHAR(32) NOT NULL,
+file_longitude VARCHAR(90) NOT NULL,
+file_latitude VARCHAR(90),
+start_time TIMESTAMP,
+end_time TIMESTAMP,
+service_start_time TIMESTAMP,
+service_expiration_time TIMESTAMP,
+is_business_download TINYINT NOT NULL,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL
+);
+ALTER TABLE data_source_user_relation ADD CONSTRAINT PK_data_source_user_relation PRIMARY KEY (id);
+COMMENT ON TABLE data_source_user_relation IS '预报数据源和数据用户关系配置';
+COMMENT ON COLUMN data_source_user_relation.id IS '唯一标识';
+COMMENT ON COLUMN data_source_user_relation.data_source_grab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_source_user_relation.user_type IS '用户类型(1.场站、2.交易主体、3.风机分类)';
+COMMENT ON COLUMN data_source_user_relation.user_id IS '数据用户ID';
+COMMENT ON COLUMN data_source_user_relation.file_longitude IS '预报文件经度';
+COMMENT ON COLUMN data_source_user_relation.file_latitude IS '预报文件纬度';
+COMMENT ON COLUMN data_source_user_relation.start_time IS '数据开始时间';
+COMMENT ON COLUMN data_source_user_relation.end_time IS '数据结束时间';
+COMMENT ON COLUMN data_source_user_relation.service_start_time IS '服务开始时间';
+COMMENT ON COLUMN data_source_user_relation.service_expiration_time IS '服务到期时间';
+COMMENT ON COLUMN data_source_user_relation.is_business_download IS '是否业务化';
+COMMENT ON COLUMN data_source_user_relation.is_del IS '是否删除';
+COMMENT ON COLUMN data_source_user_relation.create_by IS '创建人';
+COMMENT ON COLUMN data_source_user_relation.create_time IS '创建时间';
+COMMENT ON COLUMN data_source_user_relation.update_by IS '更新人';
+COMMENT ON COLUMN data_source_user_relation.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.11  file_analyze_his  [文件解析历史]
+-- -----------------------------------------------------
+CREATE TABLE file_analyze_his (
+id INT NOT NULL,
+station_id BIGINT,
+file_source INTEGER NOT NULL,
+business_id INTEGER,
+remote_file_path VARCHAR(255),
+file_name VARCHAR(90) NOT NULL,
+record_time TIMESTAMP NOT NULL,
+status INTEGER NOT NULL,
+error_msg VARCHAR(900),
+data_organization_type INTEGER NOT NULL,
+data_type INTEGER NOT NULL,
+data_content_type INTEGER NOT NULL,
+business_data_type INTEGER NOT NULL,
+create_by VARCHAR(32),
+create_time TIMESTAMP,
+update_by VARCHAR(32),
+update_time TIMESTAMP,
+record_id INTEGER,
+data_source_grab_id INTEGER,
+data_source_grab_pattern_name VARCHAR(40)
+);
+ALTER TABLE file_analyze_his ADD CONSTRAINT PK_file_analyze_his PRIMARY KEY (id);
+COMMENT ON TABLE file_analyze_his IS '文件解析历史';
+COMMENT ON COLUMN file_analyze_his.id IS '唯一标识';
+COMMENT ON COLUMN file_analyze_his.station_id IS '场站ID';
+COMMENT ON COLUMN file_analyze_his.file_source IS '文件来源(1远程数据源2Kafka3人工补传)';
+COMMENT ON COLUMN file_analyze_his.business_id IS '数据来源ID';
+COMMENT ON COLUMN file_analyze_his.remote_file_path IS '远程文件地址';
+COMMENT ON COLUMN file_analyze_his.file_name IS '文件名';
+COMMENT ON COLUMN file_analyze_his.record_time IS '归档时间';
+COMMENT ON COLUMN file_analyze_his.status IS '文件解析状态(-1失败0解析中1成功)';
+COMMENT ON COLUMN file_analyze_his.error_msg IS '解析异常原因';
+COMMENT ON COLUMN file_analyze_his.data_organization_type IS '数据组织类型';
+COMMENT ON COLUMN file_analyze_his.data_type IS '数据类型';
+COMMENT ON COLUMN file_analyze_his.data_content_type IS '数据内容类型';
+COMMENT ON COLUMN file_analyze_his.business_data_type IS '业务处理数据类型';
+COMMENT ON COLUMN file_analyze_his.create_by IS '创建人';
+COMMENT ON COLUMN file_analyze_his.create_time IS '创建时间';
+COMMENT ON COLUMN file_analyze_his.update_by IS '更新人';
+COMMENT ON COLUMN file_analyze_his.update_time IS '更新时间';
+COMMENT ON COLUMN file_analyze_his.record_id IS '归档表ID';
+COMMENT ON COLUMN file_analyze_his.data_source_grab_id IS '数据源抓取ID';
+COMMENT ON COLUMN file_analyze_his.data_source_grab_pattern_name IS '数据源抓取模式名称';
+
+-- -----------------------------------------------------
+-- 7.12  api_access_record  [API 访问记录表]
+-- -----------------------------------------------------
+CREATE TABLE api_access_record (
+id INT NOT NULL,
+api VARCHAR(90) NOT NULL,
+remote_addr VARCHAR(90) NOT NULL,
+user_agent VARCHAR(255),
+method VARCHAR(90) NOT NULL,
+params VARCHAR(900) NOT NULL,
+time INTEGER NOT NULL,
+access_key VARCHAR(32) NOT NULL,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL,
+api_record_id INTEGER NOT NULL
+);
+ALTER TABLE api_access_record ADD CONSTRAINT PK_api_access_record PRIMARY KEY (id);
+COMMENT ON TABLE api_access_record IS 'API 访问记录表';
+COMMENT ON COLUMN api_access_record.id IS '唯一标识';
+COMMENT ON COLUMN api_access_record.api IS '访问对象';
+COMMENT ON COLUMN api_access_record.remote_addr IS '操作IP地址';
+COMMENT ON COLUMN api_access_record.user_agent IS '用户代理';
+COMMENT ON COLUMN api_access_record.method IS '操作方式';
+COMMENT ON COLUMN api_access_record.params IS '请求参数';
+COMMENT ON COLUMN api_access_record.time IS '执行时间';
+COMMENT ON COLUMN api_access_record.access_key IS 'ak';
+COMMENT ON COLUMN api_access_record.create_by IS '创建人';
+COMMENT ON COLUMN api_access_record.create_time IS '创建时间';
+COMMENT ON COLUMN api_access_record.api_record_id IS 'api记录id';
+
+-- -----------------------------------------------------
+-- 7.13  api_record  [api 记录表]
+-- -----------------------------------------------------
+CREATE TABLE api_record (
+id INT NOT NULL,
+api_path VARCHAR(90) NOT NULL,
+api_method VARCHAR(90) NOT NULL,
+api_description VARCHAR(255),
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL
+);
+ALTER TABLE api_record ADD CONSTRAINT PK_api_record PRIMARY KEY (id);
+COMMENT ON TABLE api_record IS 'api 记录表';
+COMMENT ON COLUMN api_record.id IS '唯一标识';
+COMMENT ON COLUMN api_record.api_path IS 'api路径';
+COMMENT ON COLUMN api_record.api_method IS 'api方法:小写';
+COMMENT ON COLUMN api_record.api_description IS 'api描述';
+COMMENT ON COLUMN api_record.is_del IS '是否删除';
+COMMENT ON COLUMN api_record.create_by IS '创建人';
+COMMENT ON COLUMN api_record.create_time IS '创建时间';
+COMMENT ON COLUMN api_record.update_by IS '更新人';
+COMMENT ON COLUMN api_record.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.14  api_version_release  [API 版本发布信息]
+-- -----------------------------------------------------
+CREATE TABLE api_version_release (
+id INT NOT NULL,
+description VARCHAR(255) NOT NULL,
+version VARCHAR(90) NOT NULL,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL,
+apis CLOB NOT NULL
+);
+ALTER TABLE api_version_release ADD CONSTRAINT PK_api_version_release PRIMARY KEY (id);
+COMMENT ON TABLE api_version_release IS 'API 版本发布信息';
+COMMENT ON COLUMN api_version_release.id IS '唯一标识';
+COMMENT ON COLUMN api_version_release.description IS '用途描述';
+COMMENT ON COLUMN api_version_release.version IS '版本号';
+COMMENT ON COLUMN api_version_release.is_del IS '是否删除';
+COMMENT ON COLUMN api_version_release.create_by IS '创建人';
+COMMENT ON COLUMN api_version_release.create_time IS '创建时间';
+COMMENT ON COLUMN api_version_release.update_by IS '更新人';
+COMMENT ON COLUMN api_version_release.update_time IS '更新时间';
+COMMENT ON COLUMN api_version_release.apis IS '可访问API列表';
+
+-- -----------------------------------------------------
+-- 7.15  api_access_control  [API 访问控制配置]
+-- -----------------------------------------------------
+CREATE TABLE api_access_control (
+id INT NOT NULL,
+access_key VARCHAR(32) NOT NULL,
+sercret_key VARCHAR(255) NOT NULL,
+status INTEGER NOT NULL,
+expiration_time TIMESTAMP NOT NULL,
+call_number INTEGER NOT NULL,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL
+);
+ALTER TABLE api_access_control ADD CONSTRAINT PK_api_access_control PRIMARY KEY (id);
+COMMENT ON TABLE api_access_control IS 'API 访问控制配置';
+COMMENT ON COLUMN api_access_control.id IS '唯一标识';
+COMMENT ON COLUMN api_access_control.access_key IS 'ak';
+COMMENT ON COLUMN api_access_control.sercret_key IS 'sk';
+COMMENT ON COLUMN api_access_control.status IS '可用状态';
+COMMENT ON COLUMN api_access_control.expiration_time IS '过期时间';
+COMMENT ON COLUMN api_access_control.call_number IS '调用次数统计';
+COMMENT ON COLUMN api_access_control.is_del IS '是否删除';
+COMMENT ON COLUMN api_access_control.create_by IS '创建人';
+COMMENT ON COLUMN api_access_control.create_time IS '创建时间';
+COMMENT ON COLUMN api_access_control.update_by IS '更新人';
+COMMENT ON COLUMN api_access_control.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.16  config_area  [区域公司信息]
+-- -----------------------------------------------------
+CREATE TABLE config_area (
+id VARCHAR(32) NOT NULL,
+area_code VARCHAR(90) NOT NULL,
+area_name VARCHAR(90) NOT NULL,
+superior_area_id VARCHAR(32),
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL
+);
+COMMENT ON TABLE config_area IS '区域公司信息';
+COMMENT ON COLUMN config_area.id IS '唯一标识';
+COMMENT ON COLUMN config_area.area_code IS '区域编码';
+COMMENT ON COLUMN config_area.area_name IS '区域名称';
+COMMENT ON COLUMN config_area.superior_area_id IS '上级区域ID';
+COMMENT ON COLUMN config_area.is_del IS '是否删除';
+COMMENT ON COLUMN config_area.create_by IS '创建人';
+COMMENT ON COLUMN config_area.create_time IS '创建时间';
+COMMENT ON COLUMN config_area.update_by IS '更新人';
+COMMENT ON COLUMN config_area.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.17  config_province_city  [省市县编码表]
+-- -----------------------------------------------------
+CREATE TABLE config_province_city (
+id INTEGER NOT NULL,
+name VARCHAR(255) NOT NULL,
+pid INTEGER NOT NULL
+);
+ALTER TABLE config_province_city ADD CONSTRAINT PK_config_province_city PRIMARY KEY (id);
+COMMENT ON TABLE config_province_city IS '省市县编码表';
+COMMENT ON COLUMN config_province_city.id IS '省市编码';
+COMMENT ON COLUMN config_province_city.name IS '省市名称';
+COMMENT ON COLUMN config_province_city.pid IS '所属省';
+
+-- -----------------------------------------------------
+-- 7.18  config_station  [场站信息]
+-- -----------------------------------------------------
+CREATE TABLE config_station (
+id BIGINT NOT NULL,
+station_name VARCHAR(90) NOT NULL,
+station_code VARCHAR(255),
+superior_area_id VARCHAR(32),
+period_total INTEGER,
+longitude VARCHAR(90) NOT NULL,
+latitude VARCHAR(90) NOT NULL,
+province_number VARCHAR(90) NOT NULL,
+city_number VARCHAR(90) NOT NULL,
+position VARCHAR(255),
+installed_capacity INTEGER,
+grid_connected_capacity INTEGER,
+fans_pv_panelquantity INTEGER,
+elevation NUMERIC(24,6),
+operation_time VARCHAR(255),
+boosterstation_voltage_level VARCHAR(90),
+booster_station_longitude VARCHAR(90),
+boosterstation_latitude VARCHAR(90),
+responsible_person_name VARCHAR(90),
+responsible_person_phone VARCHAR(90),
+is_enable TINYINT NOT NULL,
+push_status INTEGER,
+subject_total INTEGER,
+is_full_power TINYINT NOT NULL DEFAULT 0,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL,
+station_type INTEGER,
+system_power_uuid VARCHAR(255),
+area_id VARCHAR(32)
+);
+ALTER TABLE config_station ADD CONSTRAINT PK_config_station PRIMARY KEY (id);
+ALTER TABLE config_station ADD CONSTRAINT UK_config_station_code UNIQUE (station_code);
+COMMENT ON TABLE config_station IS '场站信息';
+COMMENT ON COLUMN config_station.id IS '唯一标识';
+COMMENT ON COLUMN config_station.station_name IS '场站名称';
+COMMENT ON COLUMN config_station.station_code IS '场站统一编码';
+COMMENT ON COLUMN config_station.superior_area_id IS '所属大区';
+COMMENT ON COLUMN config_station.period_total IS '0时表示整个场站所有期次,其他表示具体各项目期次即';
+COMMENT ON COLUMN config_station.longitude IS '经度';
+COMMENT ON COLUMN config_station.latitude IS '纬度';
+COMMENT ON COLUMN config_station.province_number IS '省份编号';
+COMMENT ON COLUMN config_station.city_number IS '市编号';
+COMMENT ON COLUMN config_station.position IS '省市县';
+COMMENT ON COLUMN config_station.installed_capacity IS '单位KW';
+COMMENT ON COLUMN config_station.grid_connected_capacity IS '单位KW';
+COMMENT ON COLUMN config_station.fans_pv_panelquantity IS '风机/光伏板数量';
+COMMENT ON COLUMN config_station.elevation IS '海拔';
+COMMENT ON COLUMN config_station.operation_time IS '投运时间';
+COMMENT ON COLUMN config_station.boosterstation_voltage_level IS '升压站电压等级';
+COMMENT ON COLUMN config_station.booster_station_longitude IS '升压站经度';
+COMMENT ON COLUMN config_station.boosterstation_latitude IS '升压站维度';
+COMMENT ON COLUMN config_station.responsible_person_name IS '负责人名称';
+COMMENT ON COLUMN config_station.responsible_person_phone IS '负责人电话';
+COMMENT ON COLUMN config_station.is_enable IS '是否启用';
+COMMENT ON COLUMN config_station.push_status IS '推送状态';
+COMMENT ON COLUMN config_station.subject_total IS '交易主体数量';
+COMMENT ON COLUMN config_station.is_full_power IS '0-无,1-有;所有预报数据源的数据解析入库完成后,查询此字段=0的场站,把该场站所有交易主体的预测数据加和得到整场预测功率';
+COMMENT ON COLUMN config_station.is_del IS '是否删除';
+COMMENT ON COLUMN config_station.create_by IS '创建人';
+COMMENT ON COLUMN config_station.create_time IS '创建时间';
+COMMENT ON COLUMN config_station.update_by IS '更新人';
+COMMENT ON COLUMN config_station.update_time IS '更新时间';
+COMMENT ON COLUMN config_station.station_type IS '0-风机1-光伏';
+COMMENT ON COLUMN config_station.system_power_uuid IS '场站功率系统uuid';
+COMMENT ON COLUMN config_station.area_id IS '区域公司';
+
+-- -----------------------------------------------------
+-- 7.19  config_supplier  [供应商信息]
+-- -----------------------------------------------------
+CREATE TABLE config_supplier (
+id INT NOT NULL,
+supplier_code VARCHAR(90) NOT NULL,
+supplier_name VARCHAR(90) NOT NULL,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL
+);
+ALTER TABLE config_supplier ADD CONSTRAINT PK_config_supplier PRIMARY KEY (id);
+COMMENT ON TABLE config_supplier IS '供应商信息';
+COMMENT ON COLUMN config_supplier.id IS '唯一标识';
+COMMENT ON COLUMN config_supplier.supplier_code IS '供应商编码';
+COMMENT ON COLUMN config_supplier.supplier_name IS '供应商名称';
+COMMENT ON COLUMN config_supplier.is_del IS '是否删除';
+COMMENT ON COLUMN config_supplier.create_by IS '创建人';
+COMMENT ON COLUMN config_supplier.create_time IS '创建时间';
+COMMENT ON COLUMN config_supplier.update_by IS '更新人';
+COMMENT ON COLUMN config_supplier.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.20  monitoring_check_record  [告警检测记录表]
+-- -----------------------------------------------------
+CREATE TABLE monitoring_check_record (
+id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+record_time TIMESTAMP,
+warning_time TIMESTAMP,
+strong_time TIMESTAMP,
+standard_quantity BIGINT,
+count BIGINT,
+div BIGINT,
+threshold_count BIGINT,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL
+);
+ALTER TABLE monitoring_check_record ADD CONSTRAINT PK_monitoring_check_record PRIMARY KEY (id);
+COMMENT ON TABLE monitoring_check_record IS '告警检测记录表';
+COMMENT ON COLUMN monitoring_check_record.id IS '唯一标识';
+COMMENT ON COLUMN monitoring_check_record.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN monitoring_check_record.record_time IS '起报批次';
+COMMENT ON COLUMN monitoring_check_record.warning_time IS '告警时间';
+COMMENT ON COLUMN monitoring_check_record.strong_time IS '数据源发送时间';
+COMMENT ON COLUMN monitoring_check_record.standard_quantity IS '标准数量';
+COMMENT ON COLUMN monitoring_check_record.count IS '实际解析数量';
+COMMENT ON COLUMN monitoring_check_record.div IS '差值';
+COMMENT ON COLUMN monitoring_check_record.threshold_count IS '告警阀值';
+COMMENT ON COLUMN monitoring_check_record.create_by IS '创建人';
+COMMENT ON COLUMN monitoring_check_record.create_time IS '创建时间';
+
+-- -----------------------------------------------------
+-- 7.21  monitoring_send_record  [告警发送记录表]
+-- -----------------------------------------------------
+CREATE TABLE monitoring_send_record (
+id INT NOT NULL,
+check_record_id INTEGER NOT NULL,
+send_status SMALLINT NOT NULL,
+recipient_email VARCHAR(32),
+email_info VARCHAR(500),
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL
+);
+ALTER TABLE monitoring_send_record ADD CONSTRAINT PK_monitoring_send_record PRIMARY KEY (id);
+COMMENT ON TABLE monitoring_send_record IS '告警发送记录表';
+COMMENT ON COLUMN monitoring_send_record.id IS '唯一标识';
+COMMENT ON COLUMN monitoring_send_record.send_status IS '邮件发送状态:-1失败,1-发送成功';
+COMMENT ON COLUMN monitoring_send_record.recipient_email IS '目标邮箱';
+COMMENT ON COLUMN monitoring_send_record.email_info IS '邮件信息';
+
+-- -----------------------------------------------------
+-- 7.22  oauth_client_details  [认证客户端详情表]
+-- -----------------------------------------------------
+CREATE TABLE oauth_client_details (
+client_id VARCHAR(100) NOT NULL,
+access_token_validity INTEGER,
+additional_information VARCHAR(255),
+authorities VARCHAR(255),
+authorized_grant_types VARCHAR(255),
+autoapprove VARCHAR(255) DEFAULT '‘true’',
+client_secret VARCHAR(255),
+refresh_token_validity INTEGER,
+resource_ids VARCHAR(255),
+scope VARCHAR(255),
+web_serverredirect_url VARCHAR(255)
+);
+ALTER TABLE oauth_client_details ADD CONSTRAINT PK_oauth_client_details PRIMARY KEY (client_id);
+COMMENT ON TABLE oauth_client_details IS '认证客户端详情表';
+
+-- -----------------------------------------------------
+-- 7.23  rbac_menu  [系统菜单配置]
+-- -----------------------------------------------------
+CREATE TABLE rbac_menu (
+id INT NOT NULL,
+name VARCHAR(90) NOT NULL,
+path VARCHAR(255) NOT NULL,
+type INTEGER NOT NULL,
+auth VARCHAR(255) NOT NULL,
+parent_id INTEGER,
+module_id INTEGER NOT NULL,
+sort INTEGER NOT NULL,
+hide_in_menu TINYINT NOT NULL,
+is_del TINYINT NOT NULL DEFAULT 0,
+is_system TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL,
+icon VARCHAR(255)
+);
+COMMENT ON TABLE rbac_menu IS '系统菜单配置';
+COMMENT ON COLUMN rbac_menu.id IS '唯一标识';
+COMMENT ON COLUMN rbac_menu.name IS '菜单名称';
+COMMENT ON COLUMN rbac_menu.path IS '菜单路径';
+COMMENT ON COLUMN rbac_menu.type IS '1菜单2按钮';
+COMMENT ON COLUMN rbac_menu.auth IS '菜单权限';
+COMMENT ON COLUMN rbac_menu.parent_id IS '父菜单';
+COMMENT ON COLUMN rbac_menu.module_id IS '模块ID';
+COMMENT ON COLUMN rbac_menu.sort IS '排序';
+COMMENT ON COLUMN rbac_menu.hide_in_menu IS '是否在菜单栏显示';
+COMMENT ON COLUMN rbac_menu.is_del IS '是否删除';
+COMMENT ON COLUMN rbac_menu.is_system IS '是否是系统内置';
+COMMENT ON COLUMN rbac_menu.create_by IS '创建人';
+COMMENT ON COLUMN rbac_menu.create_time IS '创建时间';
+COMMENT ON COLUMN rbac_menu.update_by IS '更新人';
+COMMENT ON COLUMN rbac_menu.update_time IS '更新时间';
+COMMENT ON COLUMN rbac_menu.icon IS 'icon';
+
+-- -----------------------------------------------------
+-- 7.24  rbac_module  [系统模块配置]
+-- -----------------------------------------------------
+CREATE TABLE rbac_module (
+id INT NOT NULL,
+name VARCHAR(90) NOT NULL,
+url VARCHAR(255) NOT NULL,
+icon VARCHAR(255),
+client_id VARCHAR(90),
+defaultroute VARCHAR(255) NOT NULL,
+sort INTEGER,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL
+);
+COMMENT ON TABLE rbac_module IS '系统模块配置';
+COMMENT ON COLUMN rbac_module.id IS '唯一标识';
+COMMENT ON COLUMN rbac_module.name IS '模块名称';
+COMMENT ON COLUMN rbac_module.url IS '模块地址';
+COMMENT ON COLUMN rbac_module.icon IS '模块icon';
+COMMENT ON COLUMN rbac_module.client_id IS '客户端ID';
+COMMENT ON COLUMN rbac_module.defaultroute IS '默认路由';
+COMMENT ON COLUMN rbac_module.sort IS '排序';
+COMMENT ON COLUMN rbac_module.is_del IS '是否删除';
+COMMENT ON COLUMN rbac_module.create_by IS '创建人';
+COMMENT ON COLUMN rbac_module.create_time IS '创建时间';
+COMMENT ON COLUMN rbac_module.update_by IS '更新人';
+COMMENT ON COLUMN rbac_module.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.25  rbac_role  [系统角色配置]
+-- -----------------------------------------------------
+CREATE TABLE rbac_role (
+id INT NOT NULL,
+name VARCHAR(90) NOT NULL,
+role_key VARCHAR(90),
+description VARCHAR(255),
+attach_url VARCHAR(900),
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL
+);
+COMMENT ON TABLE rbac_role IS '系统角色配置';
+COMMENT ON COLUMN rbac_role.id IS '唯一标识';
+COMMENT ON COLUMN rbac_role.name IS '角色名称中文';
+COMMENT ON COLUMN rbac_role.role_key IS '角色关键字';
+COMMENT ON COLUMN rbac_role.description IS '角色描述';
+COMMENT ON COLUMN rbac_role.attach_url IS '说明书地址';
+COMMENT ON COLUMN rbac_role.is_del IS '是否删除';
+COMMENT ON COLUMN rbac_role.create_by IS '创建人';
+COMMENT ON COLUMN rbac_role.create_time IS '创建时间';
+COMMENT ON COLUMN rbac_role.update_by IS '更新人';
+COMMENT ON COLUMN rbac_role.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.26  rbac_role_menu  [系统角色菜单配置]
+-- -----------------------------------------------------
+CREATE TABLE rbac_role_menu (
+id INT NOT NULL,
+role_id INTEGER NOT NULL,
+menu_id INTEGER NOT NULL
+);
+ALTER TABLE rbac_role_menu ADD CONSTRAINT PK_rbac_role_menu PRIMARY KEY (id);
+COMMENT ON TABLE rbac_role_menu IS '系统角色菜单配置';
+COMMENT ON COLUMN rbac_role_menu.id IS '唯一标识';
+COMMENT ON COLUMN rbac_role_menu.role_id IS '角色ID';
+COMMENT ON COLUMN rbac_role_menu.menu_id IS '菜单ID';
+
+-- -----------------------------------------------------
+-- 7.27  rbac_user  [系统用户配置]
+-- -----------------------------------------------------
+CREATE TABLE rbac_user (
+id INT NOT NULL,
+username VARCHAR(90) NOT NULL,
+password VARCHAR(255) NOT NULL,
+name VARCHAR(90) NOT NULL,
+ayar VARCHAR(255),
+lock_flag INTEGER NOT NULL DEFAULT 0,
+phone VARCHAR(90),
+type INTEGER,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+data_ids VARCHAR(4000) NOT NULL DEFAULT '{}',
+relation_type INTEGER NOT NULL DEFAULT 1
+);
+ALTER TABLE rbac_user ADD CONSTRAINT PK_rbac_user PRIMARY KEY (id);
+COMMENT ON TABLE rbac_user IS '系统用户配置';
+COMMENT ON COLUMN rbac_user.id IS '唯一标识';
+COMMENT ON COLUMN rbac_user.username IS '用户名';
+COMMENT ON COLUMN rbac_user.password IS '密码';
+COMMENT ON COLUMN rbac_user.name IS '用户中文名';
+COMMENT ON COLUMN rbac_user.ayar IS '头像';
+COMMENT ON COLUMN rbac_user.lock_flag IS '锁定状态';
+COMMENT ON COLUMN rbac_user.phone IS '手机号';
+COMMENT ON COLUMN rbac_user.type IS '用户类型';
+COMMENT ON COLUMN rbac_user.is_del IS '是否删除';
+COMMENT ON COLUMN rbac_user.create_by IS '创建人';
+COMMENT ON COLUMN rbac_user.create_time IS '创建时间';
+COMMENT ON COLUMN rbac_user.update_by IS '更新人';
+COMMENT ON COLUMN rbac_user.update_time IS '更新时间';
+COMMENT ON COLUMN rbac_user.data_ids IS '数据ID:场站ID/区域ID';
+COMMENT ON COLUMN rbac_user.relation_type IS '关系类型:1-普通用户,2-区域公司管理员,3-研究院管理员';
+
+-- -----------------------------------------------------
+-- 7.28  rbac_user_role  [系统用户角色配置]
+-- -----------------------------------------------------
+CREATE TABLE rbac_user_role (
+id INT NOT NULL,
+user_id INTEGER NOT NULL,
+role_id INTEGER NOT NULL
+);
+ALTER TABLE rbac_user_role ADD CONSTRAINT PK_rbac_user_role PRIMARY KEY (id);
+COMMENT ON TABLE rbac_user_role IS '系统用户角色配置';
+COMMENT ON COLUMN rbac_user_role.id IS '唯一标识';
+COMMENT ON COLUMN rbac_user_role.user_id IS '用户ID';
+COMMENT ON COLUMN rbac_user_role.role_id IS '角色ID';
+
+-- -----------------------------------------------------
+-- 7.29  sys_dict  [字典表]
+-- -----------------------------------------------------
+CREATE TABLE sys_dict (
+id INT NOT NULL,
+type VARCHAR(32) NOT NULL,
+remarks VARCHAR(255),
+is_system TINYINT NOT NULL,
+is_del TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL
+);
+ALTER TABLE sys_dict ADD CONSTRAINT PK_sys_dict PRIMARY KEY
+(id);
+COMMENT ON TABLE sys_dict IS '字典表';
+COMMENT ON COLUMN sys_dict.id IS '唯一标识';
+COMMENT ON COLUMN sys_dict.type IS '字典类型';
+COMMENT ON COLUMN sys_dict.remarks IS '备注';
+COMMENT ON COLUMN sys_dict.is_system IS '是否为系统字典';
+COMMENT ON COLUMN sys_dict.is_del IS '是否删除';
+COMMENT ON COLUMN sys_dict.create_by IS '创建人';
+COMMENT ON COLUMN sys_dict.create_time IS '创建时间';
+COMMENT ON COLUMN sys_dict.update_by IS '更新人';
+COMMENT ON COLUMN sys_dict.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.30  sys_dict_item  [字典项表]
+-- -----------------------------------------------------
+CREATE TABLE sys_dict_item (
+id INT NOT NULL,
+dict_key VARCHAR(90) NOT NULL,
+dict_label VARCHAR(90) NOT NULL,
+dict_type VARCHAR(255) NOT NULL,
+dict_id INTEGER NOT NULL,
+remarks VARCHAR(255),
+sort INTEGER,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL,
+is_del TINYINT NOT NULL DEFAULT 0
+);
+COMMENT ON TABLE sys_dict_item IS '字典项表';
+COMMENT ON COLUMN sys_dict_item.id IS '唯一标识';
+COMMENT ON COLUMN sys_dict_item.dict_key IS '字典键值';
+COMMENT ON COLUMN sys_dict_item.dict_label IS '字典显示名称';
+COMMENT ON COLUMN sys_dict_item.dict_type IS '字典类型';
+COMMENT ON COLUMN sys_dict_item.dict_id IS '主字典ID';
+COMMENT ON COLUMN sys_dict_item.remarks IS '描述';
+COMMENT ON COLUMN sys_dict_item.sort IS '排序';
+COMMENT ON COLUMN sys_dict_item.create_by IS '创建人';
+COMMENT ON COLUMN sys_dict_item.create_time IS '创建时间';
+COMMENT ON COLUMN sys_dict_item.update_by IS '更新人';
+COMMENT ON COLUMN sys_dict_item.update_time IS '更新时间';
+COMMENT ON COLUMN sys_dict_item.is_del IS '是否删除';
+
+-- -----------------------------------------------------
+-- 7.31  data_short_term_weather_forecast_raw  [短期气象原始数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_weather_forecast_raw (
+_id INT NOT NULL,
+latitude VARCHAR(255),
+longitude VARCHAR(255),
+data_org_type VARCHAR(255) NOT NULL,
+data_type INTEGER NOT NULL,
+business_process_type INTEGER NOT NULL,
+data_source INTEGER NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+data_model_id INTEGER NOT NULL,
+data_model_name VARCHAR(255) NOT NULL,
+source_id INTEGER NOT NULL,
+source_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type VARCHAR(255) NOT NULL,
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+pre_days INTEGER NOT NULL,
+lead_time INTEGER NOT NULL,
+station_id BIGINT,
+station_name VARCHAR(255),
+subject_id INTEGER,
+subject_name VARCHAR(255),
+machine_id VARCHAR(255),
+machine_name VARCHAR(255),
+analyze_his_id INTEGER,
+archive_record_id INTEGER,
+tcc VARCHAR(255),
+hcc VARCHAR(255),
+lcc VARCHAR(255),
+mcc VARCHAR(255),
+tsfc VARCHAR(255),
+psfc VARCHAR(255),
+rhsfc VARCHAR(255),
+diffirr VARCHAR(255),
+directirr VARCHAR(255),
+tirr VARCHAR(255),
+wd_hub VARCHAR(255),
+ws_hub VARCHAR(255),
+ws VARCHAR(255),
+wd10 VARCHAR(255),
+wd30 VARCHAR(255),
+wd50 VARCHAR(255),
+wd70 VARCHAR(255),
+wd80 VARCHAR(255),
+wd90 VARCHAR(255),
+wd100 VARCHAR(255),
+wd120 VARCHAR(255),
+wd140 VARCHAR(255),
+wd160 VARCHAR(255),
+wd180 VARCHAR(255),
+wd200 VARCHAR(255),
+ws10 VARCHAR(255),
+ws30 VARCHAR(255),
+ws50 VARCHAR(255),
+ws70 VARCHAR(255),
+ws80 VARCHAR(255),
+ws90 VARCHAR(255),
+ws100 VARCHAR(255),
+ws120 VARCHAR(255),
+ws140 VARCHAR(255),
+ws160 VARCHAR(255),
+ws180 VARCHAR(255),
+ws200 VARCHAR(255)
+);
+ALTER TABLE data_short_term_weather_forecast_raw ADD CONSTRAINT PK_data_short_term_weather_forecast_raw PRIMARY KEY (_id);
+COMMENT ON TABLE data_short_term_weather_forecast_raw IS '短期气象原始数据表';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.latitude IS '经度';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.longitude IS '纬度';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.data_org_type IS '数据种类(四维/时间序列)';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.data_type IS '数据类型:短期气象';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.business_process_type IS '数据业务类型:原始';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.data_source IS '数据来源';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.data_model_id IS '数据模型ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.data_model_name IS '数据模型名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.source_id IS '数据源ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.source_name IS '数据源名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.entity_type IS '实体类型(场站/交易主体/风机/省域)';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.pre_days IS '预报天数';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.lead_time IS '预报时效';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.station_id IS '场站ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.station_name IS '场站名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.subject_id IS '交易主题ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.subject_name IS '交易主题名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.machine_id IS '风机ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.machine_name IS '风机名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.analyze_his_id IS '文件解析ID:文件解析时存在';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.archive_record_id IS '文件归档ID:文件解析时存在';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.tcc IS '总云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.hcc IS '高云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.lcc IS '低云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.mcc IS '中云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.tsfc IS '地表气温';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.psfc IS '地表气压';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.rhsfc IS '地表相对湿度';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.diffirr IS '散射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.directirr IS '直射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.tirr IS '总辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd_hub IS '风机轮毂高度风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws_hub IS '风机轮毂高度风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws IS '风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd10 IS '10m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd30 IS '30m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd50 IS '50m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd70 IS '70m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd80 IS '80m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd90 IS '90m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd100 IS '100m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd120 IS '120m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd140 IS '140m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd160 IS '160m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd180 IS '180m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.wd200 IS '200m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws10 IS '10m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws30 IS '30m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws50 IS '50m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws70 IS '70m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws80 IS '80m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws90 IS '90m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws100 IS '100m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws120 IS '120m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws140 IS '140m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws160 IS '160m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws180 IS '180m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_raw.ws200 IS '200m风速';
+
+-- -----------------------------------------------------
+-- 7.32  data_short_term_power_forecast_raw  [短期功率原始数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_power_forecast_raw (
+_id INT NOT NULL,
+latitude VARCHAR(255),
+longitude VARCHAR(255),
+data_org_type VARCHAR(255) NOT NULL,
+data_type INTEGER NOT NULL,
+business_process_type INTEGER NOT NULL,
+data_source INTEGER NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+data_model_id INTEGER NOT NULL,
+data_model_name VARCHAR(255) NOT NULL,
+source_id INTEGER NOT NULL,
+source_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type VARCHAR(255) NOT NULL,
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+pre_days INTEGER NOT NULL,
+lead_time INTEGER NOT NULL,
+station_id BIGINT,
+station_name VARCHAR(255),
+subject_id INTEGER,
+subject_name VARCHAR(255),
+machine_id VARCHAR(255),
+machine_name VARCHAR(255),
+analyze_his_id INTEGER,
+archive_record_id INTEGER,
+power VARCHAR(255)
+);
+COMMENT ON TABLE data_short_term_power_forecast_raw IS '短期功率原始数据表';
+COMMENT ON COLUMN data_short_term_power_forecast_raw._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.latitude IS '经度';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.longitude IS '纬度';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.data_org_type IS '数据种类:单点时间序列';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.data_type IS '数据类型:短期气象';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.business_process_type IS '数据业务类型:原始';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.data_source IS '数据来源';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.data_model_id IS '数据模型ID';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.data_model_name IS '数据模型名称';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.source_id IS '数据源ID';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.source_name IS '数据源名称';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.entity_type IS '实体类型';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.pre_days IS '预报天数';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.lead_time IS '预报时效';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.station_id IS '场站ID';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.station_name IS '场站名称';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.subject_id IS '交易主题ID';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.subject_name IS '交易主题名称';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.machine_id IS '风机ID';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.machine_name IS '风机名称';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.analyze_his_id IS '文件解析ID:文件解析时存在';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.archive_record_id IS '文件归档ID:文件解析时存在';
+COMMENT ON COLUMN data_short_term_power_forecast_raw.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.33  data_super_short_term_forecast_raw  [超短期功率原始数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_super_short_term_forecast_raw (
+_id INT NOT NULL,
+latitude VARCHAR(255),
+longitude VARCHAR(255),
+data_org_type VARCHAR(255) NOT NULL,
+data_type INTEGER NOT NULL,
+business_process_type INTEGER NOT NULL,
+data_source INTEGER NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+data_model_id INTEGER NOT NULL,
+data_model_name VARCHAR(255) NOT NULL,
+source_id INTEGER NOT NULL,
+source_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type VARCHAR(255) NOT NULL,
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+pre_days INTEGER NOT NULL,
+lead_time INTEGER NOT NULL,
+pre_qrts INTEGER NOT NULL,
+station_id BIGINT,
+station_name VARCHAR(255),
+subject_id INTEGER,
+subject_name VARCHAR(255),
+machine_id VARCHAR(255),
+machine_name VARCHAR(255),
+analyze_his_id INTEGER,
+archive_record_id INTEGER,
+power VARCHAR(255)
+);
+COMMENT ON TABLE data_super_short_term_forecast_raw IS '超短期功率原始数据表';
+COMMENT ON COLUMN data_super_short_term_forecast_raw._id IS '唯一标识';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.latitude IS '经度';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.longitude IS '纬度';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.data_org_type IS '数据种类:单点时间序列';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.data_type IS '数据类型:短期气象';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.business_process_type IS '数据业务类型:原始';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.data_source IS '数据来源';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.data_model_id IS '数据模型ID';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.data_model_name IS '数据模型名称';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.source_id IS '数据源ID';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.source_name IS '数据源名称';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.entity_id IS '实体ID';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.entity_type IS '实体类型';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.create_time IS '创建时间';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.start_time IS '起报时间';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.pre_days IS '预报天数';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.lead_time IS '预报时效';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.pre_qrts IS '预报刻数';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.station_id IS '场站ID';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.station_name IS '场站名称';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.subject_id IS '交易主题ID';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.subject_name IS '交易主题名称';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.machine_id IS '风机ID';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.machine_name IS '风机名称';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.analyze_his_id IS '文件解析ID:文件解析时存在';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.archive_record_id IS '文件归档ID:文件解析时存在';
+COMMENT ON COLUMN data_super_short_term_forecast_raw.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.34  data_short_term_power_forecast_correct  [短期功率修正数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_power_forecast_correct (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+predays INTEGER NOT NULL,
+power VARCHAR(255)
+);
+COMMENT ON TABLE data_short_term_power_forecast_correct IS '短期功率修正数据表';
+COMMENT ON COLUMN data_short_term_power_forecast_correct._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.entity_type IS '实体类型';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.entity_name IS '实体名称';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.predays IS '预报天数';
+COMMENT ON COLUMN data_short_term_power_forecast_correct.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.35  data_short_term_weather_forecast_correct  [短期气象修正数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_weather_forecast_correct (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+predays INTEGER NOT NULL,
+tcc VARCHAR(255),
+hcc VARCHAR(255),
+lcc VARCHAR(255),
+mcc VARCHAR(255),
+tsfc VARCHAR(255),
+psfc VARCHAR(255),
+rhsfc VARCHAR(255),
+diffirr VARCHAR(255),
+directirr VARCHAR(255),
+tirr VARCHAR(255),
+wd_hub VARCHAR(255),
+ws_hub VARCHAR(255),
+ws VARCHAR(255),
+wd10 VARCHAR(255),
+wd30 VARCHAR(255),
+wd50 VARCHAR(255),
+wd70 VARCHAR(255),
+wd80 VARCHAR(255),
+wd90 VARCHAR(255),
+wd100 VARCHAR(255),
+wd120 VARCHAR(255),
+wd140 VARCHAR(255),
+wd160 VARCHAR(255),
+wd180 VARCHAR(255),
+wd200 VARCHAR(255),
+ws10 VARCHAR(255),
+ws30 VARCHAR(255),
+ws50 VARCHAR(255),
+ws70 VARCHAR(255),
+ws80 VARCHAR(255),
+ws90 VARCHAR(255),
+ws100 VARCHAR(255),
+ws120 VARCHAR(255),
+ws140 VARCHAR(255),
+ws160 VARCHAR(255),
+ws180 VARCHAR(255),
+ws200 VARCHAR(255)
+);
+ALTER TABLE data_short_term_weather_forecast_correct ADD CONSTRAINT PK_data_short_term_weather_forecast_correct PRIMARY KEY
+(_id);
+COMMENT ON TABLE data_short_term_weather_forecast_correct IS '短期气象修正数据表';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.entity_name IS '实体名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.predays IS '预报天数';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.tcc IS '总云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.hcc IS '高云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.lcc IS '低云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.mcc IS '中云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.tsfc IS '地表气温';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.psfc IS '地表气压';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.rhsfc IS '地表相对湿度';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.diffirr IS '散射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.directirr IS '直射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.tirr IS '总辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd_hub IS '风机轮毂高度风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws_hub IS '风机轮毂高度风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws IS '风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd10 IS '10m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd30 IS '30m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd50 IS '50m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd70 IS '70m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd80 IS '80m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd90 IS '90m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd100 IS '100m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd120 IS '120m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd140 IS '140m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd160 IS '160m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd180 IS '180m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.wd200 IS '200m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws10 IS '10m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws30 IS '30m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws50 IS '50m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws70 IS '70m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws80 IS '80m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws90 IS '90m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws100 IS '100m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws120 IS '120m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws140 IS '140m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws160 IS '160m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws180 IS '180m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_correct.ws200 IS '200m风速';
+
+-- -----------------------------------------------------
+-- 7.36  data_super_short_term_forecast_correct  [超短期功率修正数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_super_short_term_forecast_correct (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+pre_qrts INTEGER NOT NULL,
+power VARCHAR(255)
+);
+ALTER TABLE data_super_short_term_forecast_correct ADD CONSTRAINT PK_data_super_short_term_forecast_correct PRIMARY KEY (_id);
+COMMENT ON TABLE data_super_short_term_forecast_correct IS '超短期功率修正数据表';
+COMMENT ON COLUMN data_super_short_term_forecast_correct._id IS '唯一标识';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.entity_id IS '实体ID';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.entity_name IS '实体名称';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.create_time IS '创建时间';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.start_time IS '起报时间';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.pre_qrts IS '预报刻数';
+COMMENT ON COLUMN data_super_short_term_forecast_correct.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.37  data_short_term_power_forecast_issued  [短期功率下发数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_power_forecast_issued (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+predays INTEGER NOT NULL,
+power VARCHAR(255)
+);
+COMMENT ON TABLE data_short_term_power_forecast_issued IS '短期功率下发数据表';
+COMMENT ON COLUMN data_short_term_power_forecast_issued._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.entity_type IS '实体类型';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.entity_name IS '实体名称';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.predays IS '预报天数';
+COMMENT ON COLUMN data_short_term_power_forecast_issued.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.38  data_short_term_weather_forecast_issued  [短期气象下发数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_weather_forecast_issued (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+predays INTEGER NOT NULL,
+tcc VARCHAR(255),
+hcc VARCHAR(255),
+lcc VARCHAR(255),
+mcc VARCHAR(255),
+tsfc VARCHAR(255),
+psfc VARCHAR(255),
+rhsfc VARCHAR(255),
+diffirr VARCHAR(255),
+directirr VARCHAR(255),
+tirr VARCHAR(255),
+wd_hub VARCHAR(255),
+ws_hub VARCHAR(255),
+ws VARCHAR(255),
+wd10 VARCHAR(255),
+wd30 VARCHAR(255),
+wd50 VARCHAR(255),
+wd70 VARCHAR(255),
+wd80 VARCHAR(255),
+wd90 VARCHAR(255),
+wd100 VARCHAR(255),
+wd120 VARCHAR(255),
+wd140 VARCHAR(255),
+wd160 VARCHAR(255),
+wd180 VARCHAR(255),
+wd200 VARCHAR(255),
+ws10 VARCHAR(255),
+ws30 VARCHAR(255),
+ws50 VARCHAR(255),
+ws70 VARCHAR(255),
+ws80 VARCHAR(255),
+ws90 VARCHAR(255),
+ws100 VARCHAR(255),
+ws120 VARCHAR(255),
+ws140 VARCHAR(255),
+ws160 VARCHAR(255),
+ws180 VARCHAR(255),
+ws200 VARCHAR(255)
+);
+ALTER TABLE data_short_term_weather_forecast_issued ADD CONSTRAINT PK_data_short_term_weather_forecast_issued PRIMARY KEY (_id);
+COMMENT ON TABLE data_short_term_weather_forecast_issued IS '短期气象下发数据表';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.entity_name IS '实体名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.predays IS '预报天数';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.tcc IS '总云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.hcc IS '高云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.lcc IS '低云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.mcc IS '中云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.tsfc IS '地表气温';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.psfc IS '地表气压';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.rhsfc IS '地表相对湿度';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.diffirr IS '散射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.directirr IS '直射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.tirr IS '总辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd_hub IS '风机轮毂高度风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws_hub IS '风机轮毂高度风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws IS '风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd10 IS '10m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd30 IS '30m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd50 IS '50m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd70 IS '70m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd80 IS '80m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd90 IS '90m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd100 IS '100m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd120 IS '120m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd140 IS '140m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd160 IS '160m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd180 IS '180m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.wd200 IS '200m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws10 IS '10m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws30 IS '30m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws50 IS '50m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws70 IS '70m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws80 IS '80m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws90 IS '90m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws100 IS '100m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws120 IS '120m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws140 IS '140m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws160 IS '160m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws180 IS '180m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_issued.ws200 IS '200m风速';
+
+-- -----------------------------------------------------
+-- 7.39  data_super_short_term_forecast_issued  [超短期功率下发数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_super_short_term_forecast_issued (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+pre_qrts INTEGER NOT NULL,
+power VARCHAR(255)
+);
+ALTER TABLE data_super_short_term_forecast_issued ADD CONSTRAINT PK_data_super_short_term_forecast_issued PRIMARY KEY (_id);
+COMMENT ON TABLE data_super_short_term_forecast_issued IS '超短期功率下发数据表';
+COMMENT ON COLUMN data_super_short_term_forecast_issued._id IS '唯一标识';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.entity_id IS '实体ID';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.entity_name IS '实体名称';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.create_time IS '创建时间';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.start_time IS '起报时间';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.pre_qrts IS '预报刻数';
+COMMENT ON COLUMN data_super_short_term_forecast_issued.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.40  data_short_term_power_forecast_back  [短期功率回传数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_power_forecast_back (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+predays INTEGER NOT NULL,
+power VARCHAR(255)
+);
+COMMENT ON TABLE data_short_term_power_forecast_back IS '短期功率回传数据表';
+COMMENT ON COLUMN data_short_term_power_forecast_back._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_power_forecast_back.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_power_forecast_back.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_power_forecast_back.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_power_forecast_back.entity_type IS '实体类型';
+COMMENT ON COLUMN data_short_term_power_forecast_back.entity_name IS '实体名称';
+COMMENT ON COLUMN data_short_term_power_forecast_back.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_power_forecast_back.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_power_forecast_back.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_power_forecast_back.predays IS '预报天数';
+COMMENT ON COLUMN data_short_term_power_forecast_back.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.41  data_short_term_weather_forecast_back  [短期气象回传数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_weather_forecast_back (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+predays INTEGER NOT NULL,
+tcc VARCHAR(255),
+hcc VARCHAR(255),
+lcc VARCHAR(255),
+mcc VARCHAR(255),
+tsfc VARCHAR(255),
+psfc VARCHAR(255),
+rhsfc VARCHAR(255),
+diffirr VARCHAR(255),
+directirr VARCHAR(255),
+tirr VARCHAR(255),
+wd_hub VARCHAR(255),
+ws_hub VARCHAR(255),
+ws VARCHAR(255),
+wd10 VARCHAR(255),
+wd30 VARCHAR(255),
+wd50 VARCHAR(255),
+wd70 VARCHAR(255),
+wd80 VARCHAR(255),
+wd90 VARCHAR(255),
+wd100 VARCHAR(255),
+wd120 VARCHAR(255),
+wd140 VARCHAR(255),
+wd160 VARCHAR(255),
+wd180 VARCHAR(255),
+wd200 VARCHAR(255),
+ws10 VARCHAR(255),
+ws30 VARCHAR(255),
+ws50 VARCHAR(255),
+ws70 VARCHAR(255),
+ws80 VARCHAR(255),
+ws90 VARCHAR(255),
+ws100 VARCHAR(255),
+ws120 VARCHAR(255),
+ws140 VARCHAR(255),
+ws160 VARCHAR(255),
+ws180 VARCHAR(255),
+ws200 VARCHAR(255)
+);
+ALTER TABLE data_short_term_weather_forecast_back ADD CONSTRAINT PK_data_short_term_weather_forecast_back PRIMARY KEY (_id);
+COMMENT ON TABLE data_short_term_weather_forecast_back IS '短期气象回传数据表';
+COMMENT ON COLUMN data_short_term_weather_forecast_back._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.entity_name IS '实体名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.predays IS '预报天数';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.tcc IS '总云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.hcc IS '高云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.lcc IS '低云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.mcc IS '中云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.tsfc IS '地表气温';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.psfc IS '地表气压';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.rhsfc IS '地表相对湿度';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.diffirr IS '散射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.directirr IS '直射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.tirr IS '总辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd_hub IS '风机轮毂高度风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws_hub IS '风机轮毂高度风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws IS '风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd10 IS '10m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd30 IS '30m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd50 IS '50m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd70 IS '70m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd80 IS '80m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd90 IS '90m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd100 IS '100m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd120 IS '120m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd140 IS '140m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd160 IS '160m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd180 IS '180m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.wd200 IS '200m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws10 IS '10m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws30 IS '30m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws50 IS '50m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws70 IS '70m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws80 IS '80m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws90 IS '90m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws100 IS '100m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws120 IS '120m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws140 IS '140m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws160 IS '160m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws180 IS '180m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_back.ws200 IS '200m风速';
+
+-- -----------------------------------------------------
+-- 7.42  data_super_short_term_forecast_back  [超短期功率回传数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_super_short_term_forecast_back (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+pre_qrts INTEGER NOT NULL,
+power VARCHAR(255)
+);
+ALTER TABLE data_super_short_term_forecast_back ADD CONSTRAINT PK_data_super_short_term_forecast_back PRIMARY KEY (_id);
+COMMENT ON TABLE data_super_short_term_forecast_back IS '超短期功率回传数据表';
+COMMENT ON COLUMN data_super_short_term_forecast_back._id IS '唯一标识';
+COMMENT ON COLUMN data_super_short_term_forecast_back.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_super_short_term_forecast_back.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_super_short_term_forecast_back.entity_id IS '实体ID';
+COMMENT ON COLUMN data_super_short_term_forecast_back.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_super_short_term_forecast_back.entity_name IS '实体名称';
+COMMENT ON COLUMN data_super_short_term_forecast_back.create_time IS '创建时间';
+COMMENT ON COLUMN data_super_short_term_forecast_back.start_time IS '起报时间';
+COMMENT ON COLUMN data_super_short_term_forecast_back.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_super_short_term_forecast_back.pre_qrts IS '预报刻数';
+COMMENT ON COLUMN data_super_short_term_forecast_back.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.43  data_short_term_power_forecast_report  [短期功率上报数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_power_forecast_report (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+predays INTEGER NOT NULL,
+power VARCHAR(255)
+);
+COMMENT ON TABLE data_short_term_power_forecast_report IS '短期功率上报数据表';
+COMMENT ON COLUMN data_short_term_power_forecast_report._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_power_forecast_report.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_power_forecast_report.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_power_forecast_report.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_power_forecast_report.entity_type IS '实体类型';
+COMMENT ON COLUMN data_short_term_power_forecast_report.entity_name IS '实体名称';
+COMMENT ON COLUMN data_short_term_power_forecast_report.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_power_forecast_report.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_power_forecast_report.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_power_forecast_report.predays IS '预报天数';
+COMMENT ON COLUMN data_short_term_power_forecast_report.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.44  data_short_term_weather_forecast_report  [短期气象上报数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_short_term_weather_forecast_report (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+predays INTEGER NOT NULL,
+tcc VARCHAR(255),
+hcc VARCHAR(255),
+lcc VARCHAR(255),
+mcc VARCHAR(255),
+tsfc VARCHAR(255),
+psfc VARCHAR(255),
+rhsfc VARCHAR(255),
+diffirr VARCHAR(255),
+directirr VARCHAR(255),
+tirr VARCHAR(255),
+wd_hub VARCHAR(255),
+ws_hub VARCHAR(255),
+ws VARCHAR(255),
+wd10 VARCHAR(255),
+wd30 VARCHAR(255),
+wd50 VARCHAR(255),
+wd70 VARCHAR(255),
+wd80 VARCHAR(255),
+wd90 VARCHAR(255),
+wd100 VARCHAR(255),
+wd120 VARCHAR(255),
+wd140 VARCHAR(255),
+wd160 VARCHAR(255),
+wd180 VARCHAR(255),
+wd200 VARCHAR(255),
+ws10 VARCHAR(255),
+ws30 VARCHAR(255),
+ws50 VARCHAR(255),
+ws70 VARCHAR(255),
+ws80 VARCHAR(255),
+ws90 VARCHAR(255),
+ws100 VARCHAR(255),
+ws120 VARCHAR(255),
+ws140 VARCHAR(255),
+ws160 VARCHAR(255),
+ws180 VARCHAR(255),
+ws200 VARCHAR(255)
+);
+ALTER TABLE data_short_term_weather_forecast_report ADD CONSTRAINT PK_data_short_term_weather_forecast_report PRIMARY KEY (_id);
+COMMENT ON TABLE data_short_term_weather_forecast_report IS '短期气象上报数据表';
+COMMENT ON COLUMN data_short_term_weather_forecast_report._id IS '唯一标识';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.entity_id IS '实体ID';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.entity_name IS '实体名称';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.create_time IS '创建时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.start_time IS '起报时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.predays IS '预报天数';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.tcc IS '总云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.hcc IS '高云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.lcc IS '低云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.mcc IS '中云量';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.tsfc IS '地表气温';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.psfc IS '地表气压';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.rhsfc IS '地表相对湿度';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.diffirr IS '散射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.directirr IS '直射辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.tirr IS '总辐照度';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd_hub IS '风机轮毂高度风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws_hub IS '风机轮毂高度风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws IS '风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd10 IS '10m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd30 IS '30m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd50 IS '50m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd70 IS '70m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd80 IS '80m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd90 IS '90m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd100 IS '100m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd120 IS '120m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd140 IS '140m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd160 IS '160m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd180 IS '180m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.wd200 IS '200m风向';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws10 IS '10m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws30 IS '30m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws50 IS '50m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws70 IS '70m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws80 IS '80m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws90 IS '90m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws100 IS '100m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws120 IS '120m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws140 IS '140m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws160 IS '160m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws180 IS '180m风速';
+COMMENT ON COLUMN data_short_term_weather_forecast_report.ws200 IS '200m风速';
+
+-- -----------------------------------------------------
+-- 7.45  data_super_short_term_forecast_report  [超短期功率上报数据表]
+-- -----------------------------------------------------
+CREATE TABLE data_super_short_term_forecast_report (
+_id INT NOT NULL,
+data_sourcegrab_id INTEGER NOT NULL,
+data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+start_time INTEGER NOT NULL,
+forecast_time INTEGER NOT NULL,
+pre_qrts INTEGER NOT NULL,
+power VARCHAR(255)
+);
+ALTER TABLE data_super_short_term_forecast_report ADD CONSTRAINT PK_data_super_short_term_forecast_report PRIMARY KEY (_id);
+COMMENT ON TABLE data_super_short_term_forecast_report IS '超短期功率上报数据表';
+COMMENT ON COLUMN data_super_short_term_forecast_report._id IS '唯一标识';
+COMMENT ON COLUMN data_super_short_term_forecast_report.data_sourcegrab_id IS '数据源抓取ID';
+COMMENT ON COLUMN data_super_short_term_forecast_report.data_sourcegrab_pattern_name IS '数据抓取模式名称';
+COMMENT ON COLUMN data_super_short_term_forecast_report.entity_id IS '实体ID';
+COMMENT ON COLUMN data_super_short_term_forecast_report.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_super_short_term_forecast_report.entity_name IS '实体名称';
+COMMENT ON COLUMN data_super_short_term_forecast_report.create_time IS '创建时间';
+COMMENT ON COLUMN data_super_short_term_forecast_report.start_time IS '起报时间';
+COMMENT ON COLUMN data_super_short_term_forecast_report.forecast_time IS '预测时间';
+COMMENT ON COLUMN data_super_short_term_forecast_report.pre_qrts IS '预报刻数';
+COMMENT ON COLUMN data_super_short_term_forecast_report.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.46  data_booster_station_real  [升压站运行数据]
+-- -----------------------------------------------------
+CREATE TABLE data_booster_station_real (
+_id INT NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+record_time INTEGER NOT NULL,
+power VARCHAR(255)
+);
+ALTER TABLE data_booster_station_real ADD CONSTRAINT PK_data_booster_station_real PRIMARY KEY (_id);
+COMMENT ON TABLE data_booster_station_real IS '升压站运行数据';
+COMMENT ON COLUMN data_booster_station_real._id IS '唯一标识';
+COMMENT ON COLUMN data_booster_station_real.entity_id IS '实体ID';
+COMMENT ON COLUMN data_booster_station_real.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_booster_station_real.entity_name IS '实体名称';
+COMMENT ON COLUMN data_booster_station_real.create_time IS '创建时间';
+COMMENT ON COLUMN data_booster_station_real.record_time IS '记录时间时间';
+COMMENT ON COLUMN data_booster_station_real.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.47  data_weather_station_real  [气象站运行数据]
+-- -----------------------------------------------------
+CREATE TABLE data_weather_station_real (
+_id INT NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+record_time INTEGER NOT NULL,
+wind_speed VARCHAR(255),
+tirr VARCHAR(255)
+);
+ALTER TABLE data_weather_station_real ADD CONSTRAINT PK_data_weather_station_real PRIMARY KEY (_id);
+COMMENT ON TABLE data_weather_station_real IS '气象站运行数据';
+COMMENT ON COLUMN data_weather_station_real._id IS '唯一标识';
+COMMENT ON COLUMN data_weather_station_real.entity_id IS '实体ID';
+COMMENT ON COLUMN data_weather_station_real.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_weather_station_real.entity_name IS '实体名称';
+COMMENT ON COLUMN data_weather_station_real.create_time IS '创建时间';
+COMMENT ON COLUMN data_weather_station_real.record_time IS '记录时间';
+COMMENT ON COLUMN data_weather_station_real.wind_speed IS '风速';
+COMMENT ON COLUMN data_weather_station_real.tirr IS '辐射';
+
+-- -----------------------------------------------------
+-- 7.48  data_station_device_power_real  [场站设备功率运行数据]
+-- -----------------------------------------------------
+CREATE TABLE data_station_device_power_real (
+_id INT NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+device_id VARCHAR(255) NOT NULL,
+device_type INTEGER NOT NULL,
+device_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+record_time INTEGER NOT NULL,
+power VARCHAR(255)
+);
+ALTER TABLE data_station_device_power_real ADD CONSTRAINT PK_data_station_device_power_real PRIMARY KEY (_id);
+COMMENT ON TABLE data_station_device_power_real IS '场站设备功率运行数据';
+COMMENT ON COLUMN data_station_device_power_real._id IS '唯一标识';
+COMMENT ON COLUMN data_station_device_power_real.entity_id IS '实体ID';
+COMMENT ON COLUMN data_station_device_power_real.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_station_device_power_real.entity_name IS '实体名称';
+COMMENT ON COLUMN data_station_device_power_real.device_id IS '设备ID';
+COMMENT ON COLUMN data_station_device_power_real.device_type IS '设备类型(风机/光伏板)';
+COMMENT ON COLUMN data_station_device_power_real.device_name IS '设备名称';
+COMMENT ON COLUMN data_station_device_power_real.create_time IS '创建时间';
+COMMENT ON COLUMN data_station_device_power_real.record_time IS '记录时间';
+COMMENT ON COLUMN data_station_device_power_real.power IS '预测功率';
+
+-- -----------------------------------------------------
+-- 7.49  data_station_device_weather_real  [场站设备气象运行数据]
+-- -----------------------------------------------------
+CREATE TABLE data_station_device_weather_real (
+_id INT NOT NULL,
+entity_id VARCHAR(255) NOT NULL,
+entity_type INTEGER NOT NULL,
+entity_name VARCHAR(255),
+device_id VARCHAR(255) NOT NULL,
+device_type INTEGER NOT NULL,
+device_name VARCHAR(255),
+create_time INTEGER NOT NULL,
+record_time INTEGER NOT NULL,
+wind_speed VARCHAR(255),
+tirr VARCHAR(255)
+);
+ALTER TABLE data_station_device_weather_real ADD CONSTRAINT PK_data_station_device_weather_real PRIMARY KEY (_id);
+COMMENT ON TABLE data_station_device_weather_real IS '场站设备气象运行数据';
+COMMENT ON COLUMN data_station_device_weather_real._id IS '唯一标识';
+COMMENT ON COLUMN data_station_device_weather_real.entity_id IS '实体ID';
+COMMENT ON COLUMN data_station_device_weather_real.entity_type IS '实体类型(场站/交易主体/省域)';
+COMMENT ON COLUMN data_station_device_weather_real.entity_name IS '实体名称';
+COMMENT ON COLUMN data_station_device_weather_real.device_id IS '设备ID';
+COMMENT ON COLUMN data_station_device_weather_real.device_type IS '设备类型(风机/光伏板)';
+COMMENT ON COLUMN data_station_device_weather_real.device_name IS '设备名称';
+COMMENT ON COLUMN data_station_device_weather_real.create_time IS '创建时间';
+COMMENT ON COLUMN data_station_device_weather_real.record_time IS '记录时间';
+COMMENT ON COLUMN data_station_device_weather_real.wind_speed IS '风速';
+COMMENT ON COLUMN data_station_device_weather_real.tirr IS '辐射';
+
+-- -----------------------------------------------------
+-- 7.50  alarm_event_record  [报警信息统计]
+-- -----------------------------------------------------
+CREATE TABLE alarm_event_record (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT NOT NULL,
+alarm_rule_id VARCHAR(32) NOT NULL,
+alarm_data VARCHAR(1000),
+monitoring_terminal VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+create_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+alarm_level INTEGER,
+alarm_create_time TIMESTAMP DEFAULT SYSDATE,
+process_flag SMALLINT DEFAULT 0,
+process_person VARCHAR(32),
+process_result CLOB,
+send_status SMALLINT DEFAULT 0,
+process_person_id VARCHAR(255)
+);
+ALTER TABLE alarm_event_record ADD CONSTRAINT PK_alarm_event_record PRIMARY KEY (id);
+COMMENT ON TABLE alarm_event_record IS '报警信息统计';
+COMMENT ON COLUMN alarm_event_record.id IS '主键';
+COMMENT ON COLUMN alarm_event_record.station_id IS '场站ID';
+COMMENT ON COLUMN alarm_event_record.alarm_rule_id IS '告警ID';
+COMMENT ON COLUMN alarm_event_record.alarm_data IS '告警数据';
+COMMENT ON COLUMN alarm_event_record.monitoring_terminal IS '监控端';
+COMMENT ON COLUMN alarm_event_record.create_time IS '创建时间';
+COMMENT ON COLUMN alarm_event_record.create_by IS '创建人';
+COMMENT ON COLUMN alarm_event_record.update_time IS '更新时间';
+COMMENT ON COLUMN alarm_event_record.update_by IS '更新人';
+COMMENT ON COLUMN alarm_event_record.alarm_level IS '报警级别';
+COMMENT ON COLUMN alarm_event_record.alarm_create_time IS '报警生成时间';
+COMMENT ON COLUMN alarm_event_record.process_flag IS '0:未处理,1:处理中,2:已处理,3:误报';
+COMMENT ON COLUMN alarm_event_record.process_person IS '处理人';
+COMMENT ON COLUMN alarm_event_record.process_result IS '处理结果';
+COMMENT ON COLUMN alarm_event_record.send_status IS '0:未发送,1:发送成功,2:发送失败';
+COMMENT ON COLUMN alarm_event_record.process_person_id IS '处理人ids';
+
+-- -----------------------------------------------------
+-- 7.51  alarm_event_rule  [报警信息统计]
+-- -----------------------------------------------------
+CREATE TABLE alarm_event_rule (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT NOT NULL,
+alarm_template_id VARCHAR(32) NOT NULL,
+enable_flag TINYINT,
+del_flag TINYINT DEFAULT 0,
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+create_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+alarm_warn_level SMALLINT DEFAULT 3,
+send_set CLOB,
+send_template_key VARCHAR(32),
+pop_up_notifyation TINYINT DEFAULT 0,
+send_user CLOB,
+send_interval_numbe_r INTEGER DEFAULT 0
+);
+ALTER TABLE alarm_event_rule ADD CONSTRAINT PK_alarm_event_rule PRIMARY KEY (id);
+COMMENT ON TABLE alarm_event_rule IS '报警信息统计';
+COMMENT ON COLUMN alarm_event_rule.id IS '主键';
+COMMENT ON COLUMN alarm_event_rule.station_id IS '场站ID';
+COMMENT ON COLUMN alarm_event_rule.alarm_template_id IS '告警模板ID';
+COMMENT ON COLUMN alarm_event_rule.enable_flag IS '是否启用';
+COMMENT ON COLUMN alarm_event_rule.del_flag IS '是否删除';
+COMMENT ON COLUMN alarm_event_rule.create_time IS '创建时间';
+COMMENT ON COLUMN alarm_event_rule.create_by IS '创建人';
+COMMENT ON COLUMN alarm_event_rule.update_time IS '更新时间';
+COMMENT ON COLUMN alarm_event_rule.update_by IS '更新人';
+COMMENT ON COLUMN alarm_event_rule.alarm_warn_level IS '报警等级';
+COMMENT ON COLUMN alarm_event_rule.send_set IS 'value:“NO”,label:“不推送”,value:“EMAIL”,label:“邮件”,value:“SMS”,label:“短信”,';
+COMMENT ON COLUMN alarm_event_rule.send_template_key IS '推送信息模板key';
+COMMENT ON COLUMN alarm_event_rule.pop_up_notifyation IS '是否弹窗';
+COMMENT ON COLUMN alarm_event_rule.send_user IS '推送用户信息';
+COMMENT ON COLUMN alarm_event_rule.send_interval_numbe_r IS '推送间隔';
+
+-- -----------------------------------------------------
+-- 7.52  alarm_event_rule_template  [报警信息统计]
+-- -----------------------------------------------------
+CREATE TABLE alarm_event_rule_template (
+id VARCHAR(32) NOT NULL,
+alarm_level_up VARCHAR(32) NOT NULL,
+alarm_level SMALLINT,
+alarm_name VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+create_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+del_flag TINYINT DEFAULT 0,
+alarm_key VARCHAR(255),
+enable_flag TINYINT DEFAULT 1
+);
+ALTER TABLE alarm_event_rule_template ADD CONSTRAINT PK_alarm_event_rule_template PRIMARY KEY (id);
+COMMENT ON TABLE alarm_event_rule_template IS '报警信息统计';
+COMMENT ON COLUMN alarm_event_rule_template.id IS '主键';
+COMMENT ON COLUMN alarm_event_rule_template.alarm_level_up IS '上级告警id';
+COMMENT ON COLUMN alarm_event_rule_template.alarm_level IS '告警等级';
+COMMENT ON COLUMN alarm_event_rule_template.alarm_name IS '告警名称';
+COMMENT ON COLUMN alarm_event_rule_template.create_time IS '创建时间';
+COMMENT ON COLUMN alarm_event_rule_template.create_by IS '创建人';
+COMMENT ON COLUMN alarm_event_rule_template.update_time IS '更新时间';
+COMMENT ON COLUMN alarm_event_rule_template.update_by IS '更新人';
+COMMENT ON COLUMN alarm_event_rule_template.del_flag IS '是否删除';
+COMMENT ON COLUMN alarm_event_rule_template.alarm_key IS '告警唯一标识,1,2级告警,标识为空,3级对应具体名称';
+COMMENT ON COLUMN alarm_event_rule_template.enable_flag IS '告警是否开启';
+
+-- -----------------------------------------------------
+-- 7.53  alarm_stat_record  [告警信息表]
+-- -----------------------------------------------------
+CREATE TABLE alarm_stat_record (
+id VARCHAR(32) NOT NULL,
+schedule_time TIMESTAMP DEFAULT SYSDATE,
+alarm_data CLOB,
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+create_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32)
+);
+ALTER TABLE alarm_stat_record ADD CONSTRAINT PK_alarm_stat_record PRIMARY KEY (id);
+COMMENT ON TABLE alarm_stat_record IS '告警信息表';
+COMMENT ON COLUMN alarm_stat_record.id IS '主键';
+COMMENT ON COLUMN alarm_stat_record.schedule_time IS '记录时间';
+COMMENT ON COLUMN alarm_stat_record.alarm_data IS '告警数据';
+COMMENT ON COLUMN alarm_stat_record.create_time IS '创建时间';
+COMMENT ON COLUMN alarm_stat_record.create_by IS '创建人';
+COMMENT ON COLUMN alarm_stat_record.update_time IS '更新时间';
+COMMENT ON COLUMN alarm_stat_record.update_by IS '更新人';
+
+-- -----------------------------------------------------
+-- 7.54  config_assessment_indicator  [考核指标信息]
+-- -----------------------------------------------------
+CREATE TABLE config_assessment_indicator (
+id VARCHAR(32) NOT NULL,
+rule_id VARCHAR(32) NOT NULL,
+indicator_key VARCHAR(90) NOT NULL,
+formula VARCHAR(500),
+limit_value NUMERIC(10,2),
+assess_description VARCHAR(500),
+remark VARCHAR(500),
+enable_flag TINYINT NOT NULL DEFAULT 0,
+del_flag TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE config_assessment_indicator ADD CONSTRAINT PK_config_assessment_indicator PRIMARY KEY (id);
+COMMENT ON TABLE config_assessment_indicator IS '考核指标信息';
+COMMENT ON COLUMN config_assessment_indicator.id IS '主键ID';
+COMMENT ON COLUMN config_assessment_indicator.rule_id IS '细则ID';
+COMMENT ON COLUMN config_assessment_indicator.indicator_key IS '指标变量名';
+COMMENT ON COLUMN config_assessment_indicator.formula IS '计算公式';
+COMMENT ON COLUMN config_assessment_indicator.limit_value IS '达标值';
+COMMENT ON COLUMN config_assessment_indicator.assess_description IS '考核描述';
+COMMENT ON COLUMN config_assessment_indicator.remark IS '备注';
+COMMENT ON COLUMN config_assessment_indicator.enable_flag IS '是否启用';
+COMMENT ON COLUMN config_assessment_indicator.del_flag IS '是否删除';
+COMMENT ON COLUMN config_assessment_indicator.create_by IS '创建人';
+COMMENT ON COLUMN config_assessment_indicator.create_time IS '创建时间';
+COMMENT ON COLUMN config_assessment_indicator.update_by IS '更新人';
+COMMENT ON COLUMN config_assessment_indicator.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.55  config_assessment_rule  [考核细则信息]
+-- -----------------------------------------------------
+CREATE TABLE config_assessment_rule (
+id VARCHAR(32) NOT NULL,
+rule_name VARCHAR(90),
+province_number VARCHAR(90),
+del_flag TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE config_assessment_rule ADD CONSTRAINT PK_config_assessment_rule PRIMARY KEY (id);
+COMMENT ON TABLE config_assessment_rule IS '考核细则信息';
+COMMENT ON COLUMN config_assessment_rule.id IS '主键ID';
+COMMENT ON COLUMN config_assessment_rule.rule_name IS '细则名';
+COMMENT ON COLUMN config_assessment_rule.province_number IS '应用省份编号';
+COMMENT ON COLUMN config_assessment_rule.del_flag IS '是否删除';
+COMMENT ON COLUMN config_assessment_rule.create_by IS '创建人';
+COMMENT ON COLUMN config_assessment_rule.create_time IS '创建时间';
+COMMENT ON COLUMN config_assessment_rule.update_by IS '更新人';
+COMMENT ON COLUMN config_assessment_rule.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.56  config_assessment_task  [场站细则配置]
+-- -----------------------------------------------------
+CREATE TABLE config_assessment_task (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT NOT NULL,
+rule_id VARCHAR(32) NOT NULL,
+enable_flag TINYINT NOT NULL DEFAULT 0,
+del_flag TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE config_assessment_task ADD CONSTRAINT PK_config_assessment_task PRIMARY KEY (id);
+COMMENT ON TABLE config_assessment_task IS '场站细则配置';
+COMMENT ON COLUMN config_assessment_task.id IS '主键ID';
+COMMENT ON COLUMN config_assessment_task.station_id IS '场站ID';
+COMMENT ON COLUMN config_assessment_task.rule_id IS '细则ID';
+COMMENT ON COLUMN config_assessment_task.enable_flag IS '是否启用';
+COMMENT ON COLUMN config_assessment_task.del_flag IS '是否删除';
+COMMENT ON COLUMN config_assessment_task.create_by IS '创建人';
+COMMENT ON COLUMN config_assessment_task.create_time IS '创建时间';
+COMMENT ON COLUMN config_assessment_task.update_by IS '更新人';
+COMMENT ON COLUMN config_assessment_task.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.57  config_report_site  [上报主站信息]
+-- -----------------------------------------------------
+CREATE TABLE config_report_site (
+id VARCHAR(32) NOT NULL,
+site_name VARCHAR(32),
+site_ip VARCHAR(1024),
+site_port VARCHAR(32),
+site_protocol VARCHAR(32),
+max_length INTEGER,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+del_flag TINYINT NOT NULL DEFAULT 0,
+province_number VARCHAR(32),
+file_code VARCHAR(255),
+short_start SMALLINT NOT NULL DEFAULT 0,
+short_length INTEGER NOT NULL DEFAULT 10,
+ultra_short_length INTEGER NOT NULL DEFAULT 16,
+package_size SMALLINT,
+protocol_version VARCHAR(90)
+);
+ALTER TABLE config_report_site ADD CONSTRAINT PK_config_report_site PRIMARY KEY (id);
+COMMENT ON TABLE config_report_site IS '上报主站信息';
+COMMENT ON COLUMN config_report_site.id IS '主键id';
+COMMENT ON COLUMN config_report_site.site_name IS '上报主站名称';
+COMMENT ON COLUMN config_report_site.site_ip IS '上报主站ip';
+COMMENT ON COLUMN config_report_site.site_port IS '上报主站端口';
+COMMENT ON COLUMN config_report_site.site_protocol IS '上报主站协';
+COMMENT ON COLUMN config_report_site.max_length IS '最大文件名长度';
+COMMENT ON COLUMN config_report_site.create_by IS '创建人';
+COMMENT ON COLUMN config_report_site.create_time IS '创建日期';
+COMMENT ON COLUMN config_report_site.update_by IS '更新人';
+COMMENT ON COLUMN config_report_site.update_time IS '更新日期';
+COMMENT ON COLUMN config_report_site.del_flag IS '是否删除,t:已删除f:未删除';
+COMMENT ON COLUMN config_report_site.province_number IS '应用省份编号';
+COMMENT ON COLUMN config_report_site.file_code IS '文件编码格式';
+COMMENT ON COLUMN config_report_site.short_start IS '0-00:00分为起始点;1-00:15为起始点';
+COMMENT ON COLUMN config_report_site.short_length IS '短期预测的天数,如7天、10天等';
+COMMENT ON COLUMN config_report_site.ultra_short_length IS '超短期预测的时间,如16个点,等';
+COMMENT ON COLUMN config_report_site.package_size IS '上传包大小';
+COMMENT ON COLUMN config_report_site.protocol_version IS '上报协议版本';
+
+-- -----------------------------------------------------
+-- 7.58  config_report_site_info  [上报主站信息表]
+-- -----------------------------------------------------
+CREATE TABLE config_report_site_info (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT,
+site_id VARCHAR(32),
+site_ip VARCHAR(255),
+local_ip VARCHAR(255),
+site_port VARCHAR(32),
+enable_flag TINYINT NOT NULL DEFAULT 0,
+del_flag TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE config_report_site_info ADD CONSTRAINT PK_config_report_site_info PRIMARY KEY (id);
+COMMENT ON TABLE config_report_site_info IS '上报主站信息表';
+COMMENT ON COLUMN config_report_site_info.id IS '主键id';
+COMMENT ON COLUMN config_report_site_info.station_id IS '场站id';
+COMMENT ON COLUMN config_report_site_info.site_id IS '主站id';
+COMMENT ON COLUMN config_report_site_info.site_ip IS '上报主站ip';
+COMMENT ON COLUMN config_report_site_info.local_ip IS '本地ip';
+COMMENT ON COLUMN config_report_site_info.site_port IS '上报主站端口';
+COMMENT ON COLUMN config_report_site_info.enable_flag IS '是否启用';
+COMMENT ON COLUMN config_report_site_info.del_flag IS '是否删除';
+COMMENT ON COLUMN config_report_site_info.create_by IS '创建人';
+COMMENT ON COLUMN config_report_site_info.create_time IS '创建日期';
+COMMENT ON COLUMN config_report_site_info.update_by IS '更新人';
+COMMENT ON COLUMN config_report_site_info.update_time IS '更新日期';
+
+-- -----------------------------------------------------
+-- 7.59  config_report_task  [上报任务]
+-- -----------------------------------------------------
+CREATE TABLE config_report_task (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT,
+station_label VARCHAR(32),
+site_id VARCHAR(256),
+report_template_ids VARCHAR(1024),
+file_path VARCHAR(90),
+task_class VARCHAR(1024),
+task_param VARCHAR(1024),
+enable_flag TINYINT NOT NULL DEFAULT 0,
+del_flag TINYINT NOT NULL DEFAULT 0,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE
+);
+ALTER TABLE config_report_task ADD CONSTRAINT PK_config_report_task PRIMARY KEY (id);
+COMMENT ON TABLE config_report_task IS '上报任务';
+COMMENT ON COLUMN config_report_task.id IS '主键id';
+COMMENT ON COLUMN config_report_task.station_id IS '上报场站id';
+COMMENT ON COLUMN config_report_task.station_label IS '场站标识';
+COMMENT ON COLUMN config_report_task.site_id IS '上报主站id';
+COMMENT ON COLUMN config_report_task.report_template_ids IS '关联上报文件模版id';
+COMMENT ON COLUMN config_report_task.file_path IS '文件存放路径';
+COMMENT ON COLUMN config_report_task.task_class IS '任务类名';
+COMMENT ON COLUMN config_report_task.task_param IS '任务自定义参数';
+COMMENT ON COLUMN config_report_task.enable_flag IS '是否启用';
+COMMENT ON COLUMN config_report_task.del_flag IS '是否删除';
+COMMENT ON COLUMN config_report_task.create_by IS '创建人';
+COMMENT ON COLUMN config_report_task.create_time IS '创建日期';
+COMMENT ON COLUMN config_report_task.update_by IS '更新人';
+COMMENT ON COLUMN config_report_task.update_time IS '更新日期';
+
+-- -----------------------------------------------------
+-- 7.60  config_report_template  [上报文件模板]
+-- -----------------------------------------------------
+CREATE TABLE config_report_template (
+id VARCHAR(32) NOT NULL,
+template_name VARCHAR(32) NOT NULL,
+template_type SMALLINT NOT NULL,
+site_id VARCHAR(1024) NOT NULL,
+template_config VARCHAR(1024),
+template_content CLOB,
+template_title VARCHAR(255),
+file_type INTEGER NOT NULL,
+file_encode VARCHAR(255),
+file_cron VARCHAR(255) NOT NULL
+);
+ALTER TABLE config_report_template ADD CONSTRAINT PK_config_report_template PRIMARY KEY (id);
+COMMENT ON TABLE config_report_template IS '上报文件模板';
+COMMENT ON COLUMN config_report_template.id IS '主键id';
+COMMENT ON COLUMN config_report_template.template_name IS '模板名';
+COMMENT ON COLUMN config_report_template.template_type IS '模板类型(0-风电1-光伏)';
+COMMENT ON COLUMN config_report_template.site_id IS '应用主站';
+COMMENT ON COLUMN config_report_template.template_config IS '模板配置参数';
+COMMENT ON COLUMN config_report_template.template_content IS '文件内容模板';
+COMMENT ON COLUMN config_report_template.template_title IS '文件名模板';
+COMMENT ON COLUMN config_report_template.file_type IS '上报文件标识';
+COMMENT ON COLUMN config_report_template.file_encode IS '文件编码';
+COMMENT ON COLUMN config_report_template.file_cron IS '文件上报';
+
+-- -----------------------------------------------------
+-- 7.61  stats_assessment_indicator  [考核指标统计]
+-- -----------------------------------------------------
+CREATE TABLE stats_assessment_indicator (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT NOT NULL,
+rule_id VARCHAR(32) NOT NULL,
+time_type SMALLINT NOT NULL,
+data_source VARCHAR(90),
+indicator_value CLOB,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP DEFAULT SYSDATE,
+record_time DATE,
+business_process_time SMALLINT,
+model_id SMALLINT
+);
+ALTER TABLE stats_assessment_indicator ADD CONSTRAINT PK_stats_assessment_indicator PRIMARY KEY (id);
+COMMENT ON TABLE stats_assessment_indicator IS '考核指标统计';
+COMMENT ON COLUMN stats_assessment_indicator.id IS '主键ID';
+COMMENT ON COLUMN stats_assessment_indicator.station_id IS '场站ID';
+COMMENT ON COLUMN stats_assessment_indicator.rule_id IS '细则ID';
+COMMENT ON COLUMN stats_assessment_indicator.time_type IS '1:日指标2:月指标3:年指标';
+COMMENT ON COLUMN stats_assessment_indicator.data_source IS '数据源ID';
+COMMENT ON COLUMN stats_assessment_indicator.indicator_value IS '指标';
+COMMENT ON COLUMN stats_assessment_indicator.create_by IS '创建人';
+COMMENT ON COLUMN stats_assessment_indicator.create_time IS '创建时间';
+COMMENT ON COLUMN stats_assessment_indicator.update_by IS '更新人';
+COMMENT ON COLUMN stats_assessment_indicator.update_time IS '更新时间';
+COMMENT ON COLUMN stats_assessment_indicator.record_time IS '时间';
+COMMENT ON COLUMN stats_assessment_indicator.business_process_time IS '业务处理次';
+COMMENT ON COLUMN stats_assessment_indicator.model_id IS '模型ID';
+
+-- -----------------------------------------------------
+-- 7.62  stats_assessment_indicator_multi_model  [考核指标统计]
+-- -----------------------------------------------------
+CREATE TABLE stats_assessment_indicator_multi_model (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT NOT NULL,
+rule_id VARCHAR(32) NOT NULL,
+time_type SMALLINT NOT NULL,
+data_source VARCHAR(90),
+indicator_value CLOB,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP DEFAULT SYSDATE,
+record_time DATE,
+business_process_time SMALLINT,
+model_id SMALLINT
+);
+ALTER TABLE stats_assessment_indicator_multi_model ADD CONSTRAINT PK_stats_assessment_indicator_multi_model PRIMARY KEY (id);
+COMMENT ON TABLE stats_assessment_indicator_multi_model IS '考核指标统计';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.id IS '主键ID';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.station_id IS '场站ID';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.rule_id IS '细则ID';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.time_type IS '1:日指标2:月指标3:年指标';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.data_source IS '数据源ID';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.indicator_value IS '指标';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.create_by IS '创建人';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.create_time IS '创建时间';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.update_by IS '更新人';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.update_time IS '更新时间';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.record_time IS '时间';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.business_process_time IS '业务处理次数;1-第一次,2-第二次';
+COMMENT ON COLUMN stats_assessment_indicator_multi_model.model_id IS '模型ID';
+
+-- -----------------------------------------------------
+-- 7.63  stats_report_indicator  [考核指标统计]
+-- -----------------------------------------------------
+CREATE TABLE stats_report_indicator (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT NOT NULL,
+site_id VARCHAR(32) NOT NULL,
+time_type SMALLINT NOT NULL,
+indicator_value CLOB,
+create_by VARCHAR(32),
+create_time TIMESTAMP DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP DEFAULT SYSDATE,
+record_time DATE
+);
+ALTER TABLE stats_report_indicator ADD CONSTRAINT PK_stats_report_indicator PRIMARY KEY (id);
+COMMENT ON TABLE stats_report_indicator IS '考核指标统计';
+COMMENT ON COLUMN stats_report_indicator.id IS '主键';
+COMMENT ON COLUMN stats_report_indicator.station_id IS '场站ID';
+COMMENT ON COLUMN stats_report_indicator.site_id IS '主站ID';
+COMMENT ON COLUMN stats_report_indicator.time_type IS '1:日指标2:月指标3:年指标';
+COMMENT ON COLUMN stats_report_indicator.indicator_value IS '指标';
+COMMENT ON COLUMN stats_report_indicator.create_by IS '创建人';
+COMMENT ON COLUMN stats_report_indicator.create_time IS '创建时间';
+COMMENT ON COLUMN stats_report_indicator.update_by IS '更新人';
+COMMENT ON COLUMN stats_report_indicator.update_time IS '更新时间';
+COMMENT ON COLUMN stats_report_indicator.record_time IS '时间';
+
+-- -----------------------------------------------------
+-- 7.64  stats_weather_indicator  [考核指标统计]
+-- -----------------------------------------------------
+CREATE TABLE stats_weather_indicator (
+station_id BIGINT NOT NULL,
+time_type SMALLINT NOT NULL,
+data_source VARCHAR(90),
+indicator_val CLOB,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP DEFAULT SYSDATE,
+record_time DATE,
+business_process_times SMALLINT,
+model_id SMALLINT
+);
+COMMENT ON TABLE stats_weather_indicator IS '考核指标统计';
+COMMENT ON COLUMN stats_weather_indicator.station_id IS '主键ID';
+COMMENT ON COLUMN stats_weather_indicator.time_type IS '场站ID';
+COMMENT ON COLUMN stats_weather_indicator.data_source IS '1:日指标2:月指标3:年指标';
+COMMENT ON COLUMN stats_weather_indicator.indicator_val IS '数据源ID';
+COMMENT ON COLUMN stats_weather_indicator.create_by IS '创建人';
+COMMENT ON COLUMN stats_weather_indicator.update_time IS '创建时间';
+COMMENT ON COLUMN stats_weather_indicator.update_by IS '更新人';
+COMMENT ON COLUMN stats_weather_indicator.update_time IS '修改时间';
+COMMENT ON COLUMN stats_weather_indicator.record_time IS '更新时间';
+COMMENT ON COLUMN stats_weather_indicator.business_process_times IS '业务处理次数;1- 第一次,2- 第二次13 model _idint2 是 模型 ID';
+COMMENT ON COLUMN stats_weather_indicator.model_id IS '时间';
+
+-- -----------------------------------------------------
+-- 7.65  stats_weather_indicator_multi_model  [考核指标统计]
+-- -----------------------------------------------------
+CREATE TABLE stats_weather_indicator_multi_model (
+id VARCHAR(32) NOT NULL,
+station_id BIGINT NOT NULL,
+time_type SMALLINT NOT NULL,
+data_source VARCHAR(90),
+indicator_value CLOB,
+create_by VARCHAR(32),
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+update_time TIMESTAMP DEFAULT SYSDATE,
+record_time DATE,
+business_process_times SMALLINT,
+model_id SMALLINT
+);
+ALTER TABLE stats_weather_indicator_multi_model ADD CONSTRAINT PK_stats_weather_indicator_multi_model PRIMARY KEY (id);
+COMMENT ON TABLE stats_weather_indicator_multi_model IS '考核指标统计';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.id IS '主键ID';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.station_id IS '场站ID';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.time_type IS '1:日指标2:月指标3:年指标';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.data_source IS '数据源ID';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.indicator_value IS '指标';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.create_by IS '创建人';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.create_time IS '创建时间';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.update_by IS '更新人';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.update_time IS '更新时间';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.record_time IS '时间';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.business_process_times IS '业务处理次数;1-第一';
+COMMENT ON COLUMN stats_weather_indicator_multi_model.model_id IS '模型ID';
+
+-- -----------------------------------------------------
+-- 7.66  stop_reduce_power_record  [限电检修]
+-- -----------------------------------------------------
+CREATE TABLE stop_reduce_power_record (
+id VARCHAR(64) NOT NULL,
+station_id BIGINT,
+start_time TIMESTAMP,
+end_time TIMESTAMP,
+create_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+create_by VARCHAR(32),
+update_time TIMESTAMP NOT NULL DEFAULT SYSDATE,
+update_by VARCHAR(32),
+del_flag TINYINT NOT NULL,
+note VARCHAR(255) DEFAULT '-',
+reduce_stop_power CLOB,
+reduce_type VARCHAR(32),
+enable_flag TINYINT NOT NULL,
+status SMALLINT NOT NULL
+);
+ALTER TABLE stop_reduce_power_record ADD CONSTRAINT PK_stop_reduce_power_record PRIMARY KEY (id);
+COMMENT ON TABLE stop_reduce_power_record IS '限电检修';
+COMMENT ON COLUMN stop_reduce_power_record.id IS '主键id';
+COMMENT ON COLUMN stop_reduce_power_record.station_id IS '场站id';
+COMMENT ON COLUMN stop_reduce_power_record.start_time IS '检修/限电/冰冻开始时间';
+COMMENT ON COLUMN stop_reduce_power_record.end_time IS '检修/限电/冰冻结束时间';
+COMMENT ON COLUMN stop_reduce_power_record.create_time IS '创建时间';
+COMMENT ON COLUMN stop_reduce_power_record.create_by IS '创建人';
+COMMENT ON COLUMN stop_reduce_power_record.update_time IS '更新时间';
+COMMENT ON COLUMN stop_reduce_power_record.update_by IS '更新人';
+COMMENT ON COLUMN stop_reduce_power_record.del_flag IS '是否删除;删除-t,未删除-f';
+COMMENT ON COLUMN stop_reduce_power_record.note IS '备注';
+COMMENT ON COLUMN stop_reduce_power_record.reduce_stop_power IS '限电后的功率-数值(MW),检修后停的机组(列表)';
+COMMENT ON COLUMN stop_reduce_power_record.reduce_type IS '类型:检修-maintenance,限电-powerCurb,冰冻-freeze';
+COMMENT ON COLUMN stop_reduce_power_record.enable_flag IS '是否启用:t-启用,f-不启用';
+COMMENT ON COLUMN stop_reduce_power_record.status IS '执行状态;0-未执行,1-已执行,2-执行失败';
+
+-- -----------------------------------------------------
+-- 7.67  typhoon  [台风信息表]
+-- -----------------------------------------------------
+CREATE TABLE typhoon (
+id INTEGER NOT NULL,
+typhoon_number VARCHAR(50),
+typhoon_en VARCHAR(50),
+typhoon_cn VARCHAR(50),
+status VARCHAR(50),
+begin_date TIMESTAMP,
+end_date TIMESTAMP,
+remark CLOB,
+saved_field CLOB,
+saved_field1 CLOB
+);
+ALTER TABLE typhoon ADD CONSTRAINT PK_typhoon PRIMARY KEY
+(id);
+COMMENT ON TABLE typhoon IS '台风信息表';
+COMMENT ON COLUMN typhoon.id IS 'id';
+COMMENT ON COLUMN typhoon.typhoon_number IS '台风编号';
+COMMENT ON COLUMN typhoon.typhoon_en IS '台风英文名称';
+COMMENT ON COLUMN typhoon.typhoon_cn IS '台风中文名称';
+COMMENT ON COLUMN typhoon.status IS '状态';
+COMMENT ON COLUMN typhoon.begin_date IS '开始时间';
+COMMENT ON COLUMN typhoon.end_date IS '结束时间';
+COMMENT ON COLUMN typhoon.remark IS '备注';
+COMMENT ON COLUMN typhoon.saved_field IS '预留字段';
+COMMENT ON COLUMN typhoon.saved_field1 IS '预留字段1';
+
+-- -----------------------------------------------------
+-- 7.68  typhoon_warning_area  [台风区域表]
+-- -----------------------------------------------------
+CREATE TABLE typhoon_warning_area (
+id INTEGER NOT NULL,
+record_id INTEGER,
+xh INTEGER,
+area_id INTEGER,
+area_name VARCHAR(100),
+remark CLOB,
+saved_field CLOB,
+saved_field1 CLOB
+);
+ALTER TABLE typhoon_warning_area ADD CONSTRAINT PK_typhoon_warning_area PRIMARY KEY (id);
+COMMENT ON TABLE typhoon_warning_area IS '台风区域表';
+COMMENT ON COLUMN typhoon_warning_area.id IS 'id';
+COMMENT ON COLUMN typhoon_warning_area.record_id IS '记录id';
+COMMENT ON COLUMN typhoon_warning_area.xh IS '序号';
+COMMENT ON COLUMN typhoon_warning_area.area_id IS '区域id';
+COMMENT ON COLUMN typhoon_warning_area.area_name IS '区域名称';
+COMMENT ON COLUMN typhoon_warning_area.remark IS '备注';
+COMMENT ON COLUMN typhoon_warning_area.saved_field IS '预留字段';
+COMMENT ON COLUMN typhoon_warning_area.saved_field1 IS '预留字段1';
+
+-- -----------------------------------------------------
+-- 7.69  typhoon_warning_babj  [台风路径表]
+-- -----------------------------------------------------
+CREATE TABLE typhoon_warning_babj (
+id INTEGER NOT NULL,
+path_id INTEGER,
+xh INTEGER,
+predict_effect_time INTEGER,
+predict_times VARCHAR(50),
+predict_time TIMESTAMP,
+longitude VARCHAR(50),
+latitude VARCHAR(50),
+center_pressure INTEGER,
+max_wind_speed NUMERIC(8,1),
+report_center VARCHAR(50),
+typhoon_level VARCHAR(50),
+remark CLOB,
+saved_field CLOB,
+saved_field1 CLOB,
+wind_cicle CLOB,
+babj CLOB,
+record_id INTEGER
+);
+ALTER TABLE typhoon_warning_babj ADD CONSTRAINT PK_typhoon_warning_babj PRIMARY KEY (id);
+COMMENT ON TABLE typhoon_warning_babj IS '台风路径表';
+COMMENT ON COLUMN typhoon_warning_babj.id IS 'id';
+COMMENT ON COLUMN typhoon_warning_babj.path_id IS '路径id';
+COMMENT ON COLUMN typhoon_warning_babj.xh IS '序号';
+COMMENT ON COLUMN typhoon_warning_babj.predict_effect_time IS '预报时效';
+COMMENT ON COLUMN typhoon_warning_babj.predict_times IS '预报时间';
+COMMENT ON COLUMN typhoon_warning_babj.predict_time IS '预报时间';
+COMMENT ON COLUMN typhoon_warning_babj.longitude IS '经度';
+COMMENT ON COLUMN typhoon_warning_babj.latitude IS '纬度';
+COMMENT ON COLUMN typhoon_warning_babj.center_pressure IS '中心气压';
+COMMENT ON COLUMN typhoon_warning_babj.max_wind_speed IS '中心附近最大风速';
+COMMENT ON COLUMN typhoon_warning_babj.report_center IS '编报中心';
+COMMENT ON COLUMN typhoon_warning_babj.typhoon_level IS '台风类型';
+COMMENT ON COLUMN typhoon_warning_babj.remark IS '备注';
+COMMENT ON COLUMN typhoon_warning_babj.saved_field IS '预留字段';
+COMMENT ON COLUMN typhoon_warning_babj.saved_field1 IS '预留字段1';
+COMMENT ON COLUMN typhoon_warning_babj.wind_cicle IS '风圈信息';
+COMMENT ON COLUMN typhoon_warning_babj.babj IS 'BABJ';
+
+-- -----------------------------------------------------
+-- 7.70  typhoon_warning_circle  [台风中心信息表]
+-- -----------------------------------------------------
+CREATE TABLE typhoon_warning_circle (
+id INTEGER NOT NULL,
+path_id INTEGER,
+xh INTEGER,
+wind_circle_info VARCHAR(100),
+north_east_radius INTEGER,
+south_east_radius INTEGER,
+south_west_radius INTEGER,
+north_west_radius INTEGER,
+remark CLOB,
+saved_field CLOB,
+saved_field1 CLOB,
+record_id INTEGER
+);
+ALTER TABLE typhoon_warning_circle ADD CONSTRAINT PK_typhoon_warning_circle PRIMARY KEY (id);
+COMMENT ON TABLE typhoon_warning_circle IS '台风中心信息表';
+COMMENT ON COLUMN typhoon_warning_circle.id IS 'id';
+COMMENT ON COLUMN typhoon_warning_circle.path_id IS '路径id';
+COMMENT ON COLUMN typhoon_warning_circle.xh IS '序号';
+COMMENT ON COLUMN typhoon_warning_circle.wind_circle_info IS '风圈信息';
+COMMENT ON COLUMN typhoon_warning_circle.north_east_radius IS '东北半径';
+COMMENT ON COLUMN typhoon_warning_circle.south_east_radius IS '东南半径';
+COMMENT ON COLUMN typhoon_warning_circle.south_west_radius IS '西南半径';
+COMMENT ON COLUMN typhoon_warning_circle.north_west_radius IS '西北半径';
+COMMENT ON COLUMN typhoon_warning_circle.remark IS '备注';
+COMMENT ON COLUMN typhoon_warning_circle.saved_field IS '预留字段';
+COMMENT ON COLUMN typhoon_warning_circle.saved_field1 IS '预留字段1';
+
+-- -----------------------------------------------------
+-- 7.71  typhoon_warning_path  [台风半径表]
+-- -----------------------------------------------------
+CREATE TABLE typhoon_warning_path (
+id INTEGER NOT NULL,
+record_id INTEGER,
+xh INTEGER,
+arrival_date VARCHAR(50),
+typhoon_level VARCHAR(50),
+latitude VARCHAR(50),
+longitude VARCHAR(50),
+center_pressure INTEGER,
+max_wind_speed NUMERIC(8,1),
+future_move_speed NUMERIC(8,1),
+futuredirection VARCHAR(50),
+babj CLOB,
+wind_cicle CLOB,
+create_date TIMESTAMP,
+dat_info CLOB,
+effect_area CLOB,
+end_date TIMESTAMP,
+pub_time VARCHAR(50),
+remark VARCHAR(50),
+saved_field CLOB,
+saved_field1 CLOB,
+status VARCHAR(50),
+typhoon_number VARCHAR(50)
+);
+ALTER TABLE typhoon_warning_path ADD CONSTRAINT PK_typhoon_warning_path PRIMARY KEY (id);
+COMMENT ON TABLE typhoon_warning_path IS '台风半径表';
+COMMENT ON COLUMN typhoon_warning_path.id IS 'id';
+COMMENT ON COLUMN typhoon_warning_path.record_id IS '预警记录id';
+COMMENT ON COLUMN typhoon_warning_path.xh IS '序号';
+COMMENT ON COLUMN typhoon_warning_path.arrival_date IS '台风到达该位置时间';
+COMMENT ON COLUMN typhoon_warning_path.typhoon_level IS '台风到达该位置时间';
+COMMENT ON COLUMN typhoon_warning_path.latitude IS '台风等级SuperTY/STY/TY/STS/TS/TD';
+COMMENT ON COLUMN typhoon_warning_path.longitude IS '纬度';
+COMMENT ON COLUMN typhoon_warning_path.center_pressure IS '经度';
+COMMENT ON COLUMN typhoon_warning_path.max_wind_speed IS '中心气压(百帕)';
+COMMENT ON COLUMN typhoon_warning_path.future_move_speed IS '附件最大风速(米/秒)';
+COMMENT ON COLUMN typhoon_warning_path.futuredirection IS '未来移速(公里/小时)';
+COMMENT ON COLUMN typhoon_warning_path.babj IS '未来移向';
+COMMENT ON COLUMN typhoon_warning_path.wind_cicle IS 'BABJ';
+COMMENT ON COLUMN typhoon_warning_path.create_date IS '风圈信息';
+COMMENT ON COLUMN typhoon_warning_path.dat_info IS '创建时间';
+COMMENT ON COLUMN typhoon_warning_path.effect_area IS '数据信息';
+COMMENT ON COLUMN typhoon_warning_path.end_date IS '台风影响区域';
+COMMENT ON COLUMN typhoon_warning_path.pub_time IS '结束时间';
+COMMENT ON COLUMN typhoon_warning_path.remark IS '发布时间';
+COMMENT ON COLUMN typhoon_warning_path.saved_field IS '备注';
+COMMENT ON COLUMN typhoon_warning_path.saved_field1 IS '预留字段';
+COMMENT ON COLUMN typhoon_warning_path.status IS '预留字段1';
+COMMENT ON COLUMN typhoon_warning_path.typhoon_number IS '状态';
+COMMENT ON COLUMN typhoon_warning_path.typhoon_number IS '台风编号';
+
+-- -----------------------------------------------------
+-- 7.72  typhoon_warning_record  [台风路径位置表]
+-- -----------------------------------------------------
+CREATE TABLE typhoon_warning_record (
+id INTEGER NOT NULL,
+status VARCHAR(50),
+typhoon_cn VARCHAR(50),
+typhoon_en VARCHAR(50),
+typhoon_number VARCHAR(50),
+arrival_date VARCHAR(50),
+typhoon_level VARCHAR(50),
+longitude VARCHAR(50),
+latitude VARCHAR(50),
+center_pressure INTEGER,
+max_wind_speed NUMERIC(8,1),
+future_move_speed NUMERIC(8,1),
+futuredirection VARCHAR(50),
+wind_cicle CLOB,
+babj CLOB,
+typhoon_date_content CLOB,
+effect_area CLOB,
+remark VARCHAR(50),
+saved_field CLOB,
+saved_field1 CLOB,
+create_date TIMESTAMP,
+update_date TIMESTAMP,
+end_date TIMESTAMP,
+dat_info CLOB,
+pub_time VARCHAR(50)
+);
+ALTER TABLE typhoon_warning_record ADD CONSTRAINT PK_typhoon_warning_record PRIMARY KEY (id);
+COMMENT ON TABLE typhoon_warning_record IS '台风路径位置表';
+COMMENT ON COLUMN typhoon_warning_record.id IS 'id';
+COMMENT ON COLUMN typhoon_warning_record.status IS '状态';
+COMMENT ON COLUMN typhoon_warning_record.typhoon_cn IS '台风中文名称';
+COMMENT ON COLUMN typhoon_warning_record.typhoon_en IS '台风英文名称';
+COMMENT ON COLUMN typhoon_warning_record.typhoon_number IS '台风编号';
+COMMENT ON COLUMN typhoon_warning_record.arrival_date IS '台风到达该位置时间';
+COMMENT ON COLUMN typhoon_warning_record.typhoon_level IS '台风到达该位置时间';
+COMMENT ON COLUMN typhoon_warning_record.longitude IS '台风等级SuperTY/STY/TY/STS/TS/TD';
+COMMENT ON COLUMN typhoon_warning_record.latitude IS '经度';
+COMMENT ON COLUMN typhoon_warning_record.center_pressure IS '纬度';
+COMMENT ON COLUMN typhoon_warning_record.max_wind_speed IS '中心气压(百帕)';
+COMMENT ON COLUMN typhoon_warning_record.future_move_speed IS '附件最大风速(米/秒)';
+COMMENT ON COLUMN typhoon_warning_record.futuredirection IS '未来移速(公里/小时)';
+COMMENT ON COLUMN typhoon_warning_record.wind_cicle IS '未来移向';
+COMMENT ON COLUMN typhoon_warning_record.babj IS '风圈信息';
+COMMENT ON COLUMN typhoon_warning_record.typhoon_date_content IS 'BABJ';
+COMMENT ON COLUMN typhoon_warning_record.effect_area IS '台风时间';
+COMMENT ON COLUMN typhoon_warning_record.remark IS '台风影响区域';
+COMMENT ON COLUMN typhoon_warning_record.saved_field IS '备注';
+COMMENT ON COLUMN typhoon_warning_record.saved_field1 IS '预留字段';
+COMMENT ON COLUMN typhoon_warning_record.create_date IS '预留字段1';
+COMMENT ON COLUMN typhoon_warning_record.update_date IS '创建时间';
+COMMENT ON COLUMN typhoon_warning_record.end_date IS '更新时间';
+COMMENT ON COLUMN typhoon_warning_record.dat_info IS '结束时间';
+COMMENT ON COLUMN typhoon_warning_record.pub_time IS '数据信息';
+COMMENT ON COLUMN typhoon_warning_record.pub_time IS '发布时间';
+
+-- -----------------------------------------------------
+-- 7.73  weather_alert_area  [气象灾害预警区域表]
+-- -----------------------------------------------------
+CREATE TABLE weather_alert_area (
+id INTEGER NOT NULL,
+record_id INTEGER,
+xh INTEGER,
+area_id INTEGER,
+area_name VARCHAR(100),
+remark CLOB,
+saved_field CLOB,
+saved_field1 CLOB
+);
+ALTER TABLE weather_alert_area ADD CONSTRAINT PK_weather_alert_area PRIMARY KEY (id);
+COMMENT ON TABLE weather_alert_area IS '气象灾害预警区域表';
+COMMENT ON COLUMN weather_alert_area.id IS 'id';
+COMMENT ON COLUMN weather_alert_area.record_id IS '记录id';
+COMMENT ON COLUMN weather_alert_area.xh IS '序号';
+COMMENT ON COLUMN weather_alert_area.area_id IS '区域id';
+COMMENT ON COLUMN weather_alert_area.area_name IS '区域名称';
+COMMENT ON COLUMN weather_alert_area.remark IS '备注';
+COMMENT ON COLUMN weather_alert_area.saved_field IS '预留字段';
+COMMENT ON COLUMN weather_alert_area.saved_field1 IS '预留字段1';
+
+-- -----------------------------------------------------
+-- 7.74  weather_alert_record  [气象灾害预警级别表]
+-- -----------------------------------------------------
+CREATE TABLE weather_alert_record (
+id INTEGER NOT NULL,
+alert_id VARCHAR(50),
+head_line VARCHAR(100),
+publish_date TIMESTAMP,
+description CLOB,
+longitude VARCHAR(50),
+latitude VARCHAR(50),
+type_code VARCHAR(50),
+title VARCHAR(100),
+effect_area CLOB,
+type_id INTEGER,
+warning_type VARCHAR(50),
+level INTEGER,
+level_name VARCHAR(50),
+create_date TIMESTAMP,
+update_date TIMESTAMP,
+end_date TIMESTAMP,
+remark CLOB,
+saved_field CLOB,
+saved_field1 CLOB,
+publish_status VARCHAR(50),
+province VARCHAR(50),
+city VARCHAR(50),
+county VARCHAR(50),
+area_id VARCHAR(50),
+alert_info VARCHAR(100),
+html_url CLOB
+);
+ALTER TABLE weather_alert_record ADD CONSTRAINT PK_weather_alert_record PRIMARY KEY (id);
+COMMENT ON TABLE weather_alert_record IS '气象灾害预警级别表';
+COMMENT ON COLUMN weather_alert_record.id IS 'id';
+COMMENT ON COLUMN weather_alert_record.alert_id IS '报警id';
+COMMENT ON COLUMN weather_alert_record.head_line IS '报警线';
+COMMENT ON COLUMN weather_alert_record.publish_date IS '报警时间';
+COMMENT ON COLUMN weather_alert_record.description IS '预警发布内容';
+COMMENT ON COLUMN weather_alert_record.longitude IS '经度';
+COMMENT ON COLUMN weather_alert_record.latitude IS '纬度';
+COMMENT ON COLUMN weather_alert_record.type_code IS '类型代码';
+COMMENT ON COLUMN weather_alert_record.title IS '预警标题';
+COMMENT ON COLUMN weather_alert_record.effect_area IS '影响区域';
+COMMENT ON COLUMN weather_alert_record.type_id IS '报警类型id';
+COMMENT ON COLUMN weather_alert_record.warning_type IS '报警类型';
+COMMENT ON COLUMN weather_alert_record.level IS '报警级别04红03橙03黄01蓝色';
+COMMENT ON COLUMN weather_alert_record.level_name IS '报警级别04红03橙03黄01蓝色';
+COMMENT ON COLUMN weather_alert_record.create_date IS '创建时间';
+COMMENT ON COLUMN weather_alert_record.update_date IS '更新时间';
+COMMENT ON COLUMN weather_alert_record.end_date IS '预警解除时间';
+COMMENT ON COLUMN weather_alert_record.remark IS '备注';
+COMMENT ON COLUMN weather_alert_record.saved_field IS '保留字段';
+COMMENT ON COLUMN weather_alert_record.saved_field1 IS '保留字段1';
+COMMENT ON COLUMN weather_alert_record.publish_status IS '发布状态发布/更新';
+COMMENT ON COLUMN weather_alert_record.province IS '省';
+COMMENT ON COLUMN weather_alert_record.city IS '市';
+COMMENT ON COLUMN weather_alert_record.county IS '县';
+COMMENT ON COLUMN weather_alert_record.area_id IS '发布站areaId';
+COMMENT ON COLUMN weather_alert_record.alert_info IS '预警信息';
+COMMENT ON COLUMN weather_alert_record.html_url IS '天气网跳转地址';
+
+-- -----------------------------------------------------
+-- 7.75  weather_area  [气象站省市表]
+-- -----------------------------------------------------
+CREATE TABLE weather_area (
+area_id VARCHAR(50) NOT NULL,
+name_cn VARCHAR(255),
+district_cn VARCHAR(255),
+provcn_cn VARCHAR(50),
+nation_cn VARCHAR(255),
+continent_cn VARCHAR(50),
+city_id INTEGER,
+city_name VARCHAR(255),
+parent_name VARCHAR(255),
+longitude VARCHAR(50),
+latitude VARCHAR(50),
+area_name VARCHAR(50),
+area_number VARCHAR(50)
+);
+COMMENT ON TABLE weather_area IS '气象站省市表';
+COMMENT ON COLUMN weather_area.area_id IS '站点id';
+COMMENT ON COLUMN weather_area.name_cn IS '站点名称';
+COMMENT ON COLUMN weather_area.district_cn IS '所属地区';
+COMMENT ON COLUMN weather_area.provcn_cn IS '所属省份';
+COMMENT ON COLUMN weather_area.nation_cn IS '所属国家';
+COMMENT ON COLUMN weather_area.continent_cn IS '所属州';
+COMMENT ON COLUMN weather_area.city_id IS '城市id';
+COMMENT ON COLUMN weather_area.city_name IS '城市';
+COMMENT ON COLUMN weather_area.parent_name IS '上级地区';
+COMMENT ON COLUMN weather_area.longitude IS '经度';
+COMMENT ON COLUMN weather_area.latitude IS '纬度';
+COMMENT ON COLUMN weather_area.area_name IS '所属大区';
+COMMENT ON COLUMN weather_area.area_number IS '所属大区number';
+
+-- -----------------------------------------------------
+-- 7.76  weather_warning_record  [气象预警记录]
+-- -----------------------------------------------------
+CREATE TABLE weather_warning_record (
+id INT NOT NULL,
+type INTEGER NOT NULL,
+level INTEGER NOT NULL,
+lift_time TIMESTAMP,
+warning_time TIMESTAMP NOT NULL,
+province_number VARCHAR(90) NOT NULL,
+county_number VARCHAR(255) NOT NULL,
+city_number VARCHAR(90) NOT NULL,
+warning_title VARCHAR(255) NOT NULL,
+warning_message VARCHAR(255) NOT NULL,
+create_by VARCHAR(32) NOT NULL,
+create_time TIMESTAMP NOT NULL,
+update_by VARCHAR(32) NOT NULL,
+update_time TIMESTAMP NOT NULL
+);
+ALTER TABLE weather_warning_record ADD CONSTRAINT PK_weather_warning_record PRIMARY KEY (id);
+COMMENT ON TABLE weather_warning_record IS '气象预警记录';
+COMMENT ON COLUMN weather_warning_record.id IS '唯一标识';
+COMMENT ON COLUMN weather_warning_record.type IS '预警类型';
+COMMENT ON COLUMN weather_warning_record.level IS '预警级别';
+COMMENT ON COLUMN weather_warning_record.lift_time IS '解除预警时间';
+COMMENT ON COLUMN weather_warning_record.warning_time IS '预警时间';
+COMMENT ON COLUMN weather_warning_record.province_number IS '省份编号';
+COMMENT ON COLUMN weather_warning_record.county_number IS '县编码';
+COMMENT ON COLUMN weather_warning_record.city_number IS '市编号';
+COMMENT ON COLUMN weather_warning_record.warning_title IS '预警标题';
+COMMENT ON COLUMN weather_warning_record.warning_message IS '预警信息';
+COMMENT ON COLUMN weather_warning_record.create_by IS '创建人';
+COMMENT ON COLUMN weather_warning_record.create_time IS '创建时间';
+COMMENT ON COLUMN weather_warning_record.update_by IS '更新人';
+COMMENT ON COLUMN weather_warning_record.update_time IS '更新时间';
+
+-- -----------------------------------------------------
+-- 7.77  weather_warning_type  [气象灾害预警类型表]
+-- -----------------------------------------------------
+CREATE TABLE weather_warning_type (
+id INTEGER NOT NULL,
+warning_type VARCHAR(50),
+data_source INTEGER,
+remark CLOB,
+saved_field VARCHAR(50),
+saved_field1 CLOB,
+saved_field2 INTEGER
+);
+ALTER TABLE weather_warning_type ADD CONSTRAINT PK_weather_warning_type PRIMARY KEY (id);
+COMMENT ON TABLE weather_warning_type IS '气象灾害预警类型表';
+COMMENT ON COLUMN weather_warning_type.id IS 'id';
+COMMENT ON COLUMN weather_warning_type.warning_type IS '报警类型';
+COMMENT ON COLUMN weather_warning_type.data_source IS '数据源1:天气预警2:台风3:风暴潮';
+COMMENT ON COLUMN weather_warning_type.remark IS '备注';
+COMMENT ON COLUMN weather_warning_type.saved_field IS '保留字段';
+COMMENT ON COLUMN weather_warning_type.saved_field1 IS '保留字段1';
+COMMENT ON COLUMN weather_warning_type.saved_field2 IS '保留字段2';
+
+
+-- -----------------------------------------------------
+-- 7.78  config_station_pv_module  [光伏组件配置]
+-- -----------------------------------------------------
+CREATE TABLE config_station_pv_module (
+    id BIGINT NOT NULL,
+    station_id BIGINT NOT NULL,
+    model VARCHAR(100),
+    brand VARCHAR(100),
+    rated_power NUMERIC(12,2),
+    module_type VARCHAR(50),
+    module_count BIGINT,
+    conversion_efficiency VARCHAR(50),
+    temperature_coefficient VARCHAR(50),
+    install_date VARCHAR(20),
+    create_by VARCHAR(64),
+    create_time TIMESTAMP,
+    update_by VARCHAR(64),
+    update_time TIMESTAMP,
+    remark VARCHAR(500)
+);
+ALTER TABLE config_station_pv_module ADD CONSTRAINT PK_config_station_pv_module PRIMARY KEY (id);
+CREATE INDEX idx_config_station_pv_module_station ON config_station_pv_module(station_id);
+COMMENT ON TABLE config_station_pv_module IS '光伏组件配置';
+COMMENT ON COLUMN config_station_pv_module.station_id IS '场站ID';
+
+-- -----------------------------------------------------
+-- 7.79  config_station_power_limit  [限电配置]
+-- -----------------------------------------------------
+CREATE TABLE config_station_power_limit (
+    id BIGINT NOT NULL,
+    station_id BIGINT NOT NULL,
+    limit_type VARCHAR(50),
+    start_date VARCHAR(20),
+    end_date VARCHAR(20),
+    limit_percent VARCHAR(50),
+    reason VARCHAR(255),
+    approver VARCHAR(100),
+    status VARCHAR(50),
+    create_by VARCHAR(64),
+    create_time TIMESTAMP,
+    update_by VARCHAR(64),
+    update_time TIMESTAMP,
+    remark VARCHAR(500)
+);
+ALTER TABLE config_station_power_limit ADD CONSTRAINT PK_config_station_power_limit PRIMARY KEY (id);
+CREATE INDEX idx_config_station_power_limit_station ON config_station_power_limit(station_id);
+COMMENT ON TABLE config_station_power_limit IS '限电配置';
+COMMENT ON COLUMN config_station_power_limit.station_id IS '场站ID';
+
+-- -----------------------------------------------------
+-- 7.80  config_station_device  [设备配置]
+-- -----------------------------------------------------
+CREATE TABLE config_station_device (
+    id BIGINT NOT NULL,
+    station_id BIGINT NOT NULL,
+    device_name VARCHAR(100),
+    device_type VARCHAR(100),
+    brand VARCHAR(100),
+    model VARCHAR(100),
+    serial_number VARCHAR(100),
+    status VARCHAR(50),
+    install_date VARCHAR(20),
+    create_by VARCHAR(64),
+    create_time TIMESTAMP,
+    update_by VARCHAR(64),
+    update_time TIMESTAMP,
+    remark VARCHAR(500)
+);
+ALTER TABLE config_station_device ADD CONSTRAINT PK_config_station_device PRIMARY KEY (id);
+CREATE INDEX idx_config_station_device_station ON config_station_device(station_id);
+COMMENT ON TABLE config_station_device IS '设备配置';
+COMMENT ON COLUMN config_station_device.station_id IS '场站ID';
+
+-- -----------------------------------------------------
+-- 7.81  config_station_channel  [通道配置]
+-- -----------------------------------------------------
+CREATE TABLE config_station_channel (
+    id BIGINT NOT NULL,
+    station_id BIGINT NOT NULL,
+    channel_name VARCHAR(100),
+    protocol VARCHAR(50),
+    host VARCHAR(255),
+    port BIGINT,
+    collect_interval VARCHAR(50),
+    data_type VARCHAR(100),
+    status VARCHAR(50),
+    last_sync_time VARCHAR(50),
+    create_by VARCHAR(64),
+    create_time TIMESTAMP,
+    update_by VARCHAR(64),
+    update_time TIMESTAMP,
+    remark VARCHAR(500)
+);
+ALTER TABLE config_station_channel ADD CONSTRAINT PK_config_station_channel PRIMARY KEY (id);
+CREATE INDEX idx_config_station_channel_station ON config_station_channel(station_id);
+COMMENT ON TABLE config_station_channel IS '通道配置';
+COMMENT ON COLUMN config_station_channel.station_id IS '场站ID';
+
+-- -----------------------------------------------------
+-- 7.82  config_station_point  [测点配置]
+-- -----------------------------------------------------
+CREATE TABLE config_station_point (
+    id BIGINT NOT NULL,
+    station_id BIGINT NOT NULL,
+    device_id BIGINT,
+    device_name VARCHAR(100),
+    point_name VARCHAR(100),
+    unit VARCHAR(50),
+    precision_value BIGINT,
+    measure_range VARCHAR(100),
+    protocol VARCHAR(50),
+    address VARCHAR(100),
+    collect_interval VARCHAR(50),
+    create_by VARCHAR(64),
+    create_time TIMESTAMP,
+    update_by VARCHAR(64),
+    update_time TIMESTAMP,
+    remark VARCHAR(500)
+);
+ALTER TABLE config_station_point ADD CONSTRAINT PK_config_station_point PRIMARY KEY (id);
+CREATE INDEX idx_config_station_point_station ON config_station_point(station_id);
+CREATE INDEX idx_config_station_point_device ON config_station_point(device_id);
+COMMENT ON TABLE config_station_point IS '测点配置';
+COMMENT ON COLUMN config_station_point.station_id IS '场站ID';
+-- 3) Grant to role 2
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2000);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2001);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2002);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2003);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2004);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2005);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2006);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2007);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2008);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2009);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2010);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2011);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2012);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2013);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2014);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2015);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2016);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2017);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2018);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2019);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2020);
+INSERT INTO sys_role_menu (role_id, menu_id) VALUES (2, 2021);
+
+INSERT INTO sys_role_menu (role_id, menu_id)
+SELECT 2, menu_id FROM sys_menu WHERE menu_id BETWEEN 2022 AND 2070;
+
+-- =============================================================================
+-- Section 4. Fault process schema, dictionaries and menus
+-- =============================================================================
+CREATE TABLE IF NOT EXISTS fault_process_record (
+    id BIGINT PRIMARY KEY,
+    alarm_event_id VARCHAR(64),
+    station_id BIGINT,
+    fault_title VARCHAR(200) NOT NULL,
+    fault_type VARCHAR(50),
+    fault_level BIGINT,
+    source_type VARCHAR(20) NOT NULL DEFAULT 'manual',
+    status VARCHAR(20) NOT NULL DEFAULT 'pending',
+    handler_id VARCHAR(64),
+    handler_name VARCHAR(64),
+    start_time VARCHAR(32),
+    resolved_time VARCHAR(32),
+    closed_time VARCHAR(32),
+    fault_reason CLOB,
+    process_result CLOB,
+    remark CLOB,
+    del_flag CHAR(1) NOT NULL DEFAULT '0',
+    create_by VARCHAR(64),
+    create_time TIMESTAMP,
+    update_by VARCHAR(64),
+    update_time TIMESTAMP
+);
+
+COMMENT ON TABLE fault_process_record IS 'fault process main record';
+COMMENT ON COLUMN fault_process_record.alarm_event_id IS 'source alarm_event_record.id';
+COMMENT ON COLUMN fault_process_record.station_id IS 'station id';
+COMMENT ON COLUMN fault_process_record.fault_title IS 'fault title';
+COMMENT ON COLUMN fault_process_record.fault_type IS 'fault type';
+COMMENT ON COLUMN fault_process_record.fault_level IS 'fault level';
+COMMENT ON COLUMN fault_process_record.source_type IS 'source type: manual/alarm';
+COMMENT ON COLUMN fault_process_record.status IS 'status: pending/processing/resolved/closed/false_alarm';
+COMMENT ON COLUMN fault_process_record.handler_id IS 'handler user id';
+COMMENT ON COLUMN fault_process_record.handler_name IS 'handler user name';
+COMMENT ON COLUMN fault_process_record.start_time IS 'start handling time';
+COMMENT ON COLUMN fault_process_record.resolved_time IS 'resolved time';
+COMMENT ON COLUMN fault_process_record.closed_time IS 'closed time';
+COMMENT ON COLUMN fault_process_record.fault_reason IS 'fault reason';
+COMMENT ON COLUMN fault_process_record.process_result IS 'process result';
+COMMENT ON COLUMN fault_process_record.del_flag IS 'delete flag: 0 normal, 2 deleted';
+
+CREATE INDEX idx_fault_process_record_alarm_event_id ON fault_process_record (alarm_event_id);
+CREATE INDEX idx_fault_process_record_station_id ON fault_process_record (station_id);
+CREATE INDEX idx_fault_process_record_status ON fault_process_record (status);
+
+CREATE TABLE IF NOT EXISTS fault_process_log (
+    id BIGINT PRIMARY KEY,
+    process_id BIGINT NOT NULL,
+    alarm_event_id VARCHAR(64),
+    action_type VARCHAR(30) NOT NULL,
+    before_status VARCHAR(20),
+    after_status VARCHAR(20),
+    operator_id VARCHAR(64),
+    operator_name VARCHAR(64),
+    action_time VARCHAR(32),
+    content CLOB,
+    attachments CLOB,
+    create_by VARCHAR(64),
+    create_time TIMESTAMP
+);
+
+COMMENT ON TABLE fault_process_log IS 'fault process operation log';
+COMMENT ON COLUMN fault_process_log.process_id IS 'fault_process_record.id';
+COMMENT ON COLUMN fault_process_log.alarm_event_id IS 'source alarm_event_record.id';
+COMMENT ON COLUMN fault_process_log.action_type IS 'action type: create/assign/handle/resolve/close/false_alarm';
+COMMENT ON COLUMN fault_process_log.before_status IS 'status before action';
+COMMENT ON COLUMN fault_process_log.after_status IS 'status after action';
+COMMENT ON COLUMN fault_process_log.operator_id IS 'operator user id';
+COMMENT ON COLUMN fault_process_log.operator_name IS 'operator user name';
+COMMENT ON COLUMN fault_process_log.action_time IS 'action time';
+COMMENT ON COLUMN fault_process_log.content IS 'action content';
+COMMENT ON COLUMN fault_process_log.attachments IS 'attachment urls or ids';
+
+CREATE INDEX idx_fault_process_log_process_id ON fault_process_log (process_id);
+CREATE INDEX idx_fault_process_log_alarm_event_id ON fault_process_log (alarm_event_id);
+CREATE INDEX idx_fault_process_log_action_type ON fault_process_log (action_type);
+
+-- Fault process dictionaries.
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
+SELECT '故障类型', 'fault_type', '0', 'admin', '2026-06-18 00:00:00', '故障处理故障类型' FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'fault_type');
+
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
+SELECT '故障等级', 'fault_level', '0', 'admin', '2026-06-18 00:00:00', '故障处理故障等级' FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'fault_level');
+
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
+SELECT '故障处理状态', 'fault_process_status', '0', 'admin', '2026-06-18 00:00:00', '故障处理记录状态' FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'fault_process_status');
+
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
+SELECT '故障处理动作', 'fault_process_action', '0', 'admin', '2026-06-18 00:00:00', '故障处理日志动作' FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'fault_process_action');
+
+DELETE FROM sys_dict_data WHERE dict_type IN ('fault_type', 'fault_level', 'fault_process_status', 'fault_process_action');
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
+VALUES
+    (1, '设备故障', 'device', 'fault_type', '', 'danger', 'Y', '0', 'admin', '2026-06-18 00:00:00', '设备类故障'),
+    (2, '通信故障', 'communication', 'fault_type', '', 'warning', 'N', '0', 'admin', '2026-06-18 00:00:00', '通信类故障'),
+    (3, '数据异常', 'data', 'fault_type', '', 'info', 'N', '0', 'admin', '2026-06-18 00:00:00', '数据类异常'),
+    (4, '气象灾害', 'weather', 'fault_type', '', 'primary', 'N', '0', 'admin', '2026-06-18 00:00:00', '气象灾害类故障'),
+    (5, '其他', 'other', 'fault_type', '', 'default', 'N', '0', 'admin', '2026-06-18 00:00:00', '其他故障');
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
+VALUES
+    (1, '一级', '1', 'fault_level', '', 'danger', 'N', '0', 'admin', '2026-06-18 00:00:00', '一级故障'),
+    (2, '二级', '2', 'fault_level', '', 'warning', 'N', '0', 'admin', '2026-06-18 00:00:00', '二级故障'),
+    (3, '三级', '3', 'fault_level', '', 'primary', 'Y', '0', 'admin', '2026-06-18 00:00:00', '三级故障'),
+    (4, '四级', '4', 'fault_level', '', 'success', 'N', '0', 'admin', '2026-06-18 00:00:00', '四级故障');
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
+VALUES
+    (1, '待处理', 'pending', 'fault_process_status', '', 'default', 'Y', '0', 'admin', '2026-06-18 00:00:00', '待处理'),
+    (2, '处理中', 'processing', 'fault_process_status', '', 'primary', 'N', '0', 'admin', '2026-06-18 00:00:00', '处理中'),
+    (3, '已解决', 'resolved', 'fault_process_status', '', 'success', 'N', '0', 'admin', '2026-06-18 00:00:00', '已解决'),
+    (4, '已关闭', 'closed', 'fault_process_status', '', 'info', 'N', '0', 'admin', '2026-06-18 00:00:00', '已关闭'),
+    (5, '误报', 'false_alarm', 'fault_process_status', '', 'warning', 'N', '0', 'admin', '2026-06-18 00:00:00', '误报');
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
+VALUES
+    (1, '创建', 'create', 'fault_process_action', '', 'default', 'Y', '0', 'admin', '2026-06-18 00:00:00', '创建故障处理'),
+    (2, '认领/派单', 'assign', 'fault_process_action', '', 'primary', 'N', '0', 'admin', '2026-06-18 00:00:00', '认领或派单'),
+    (3, '处理', 'handle', 'fault_process_action', '', 'primary', 'N', '0', 'admin', '2026-06-18 00:00:00', '处理记录'),
+    (4, '解决', 'resolve', 'fault_process_action', '', 'success', 'N', '0', 'admin', '2026-06-18 00:00:00', '解决故障'),
+    (5, '关闭', 'close', 'fault_process_action', '', 'info', 'N', '0', 'admin', '2026-06-18 00:00:00', '关闭故障'),
+    (6, '误报', 'false_alarm', 'fault_process_action', '', 'warning', 'N', '0', 'admin', '2026-06-18 00:00:00', '标记误报');
+
+-- =============================================================================
+-- Section 5. Dameng auto-id sequences and triggers
+-- =============================================================================
+
+-- Auto-id support converted from PostgreSQL SERIAL/BIGSERIAL.
+CREATE SEQUENCE SEQ_GEN_TABLE_TABLE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_GEN_TABLE_TABLE_ID
+BEFORE INSERT ON gen_table
+FOR EACH ROW
+BEGIN
+    IF :NEW.table_id IS NULL THEN
+        SELECT SEQ_GEN_TABLE_TABLE_ID.NEXTVAL INTO :NEW.table_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_GEN_TABLE_COLUMN_COLUMN_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_GEN_TABLE_COLUMN_COLUMN_ID
+BEFORE INSERT ON gen_table_column
+FOR EACH ROW
+BEGIN
+    IF :NEW.column_id IS NULL THEN
+        SELECT SEQ_GEN_TABLE_COLUMN_COLUMN_ID.NEXTVAL INTO :NEW.column_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_CONFIG_CONFIG_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_CONFIG_CONFIG_ID
+BEFORE INSERT ON sys_config
+FOR EACH ROW
+BEGIN
+    IF :NEW.config_id IS NULL THEN
+        SELECT SEQ_SYS_CONFIG_CONFIG_ID.NEXTVAL INTO :NEW.config_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_DEPT_DEPT_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_DEPT_DEPT_ID
+BEFORE INSERT ON sys_dept
+FOR EACH ROW
+BEGIN
+    IF :NEW.dept_id IS NULL THEN
+        SELECT SEQ_SYS_DEPT_DEPT_ID.NEXTVAL INTO :NEW.dept_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_DICT_DATA_DICT_CODE START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_DICT_DATA_DICT_CODE
+BEFORE INSERT ON sys_dict_data
+FOR EACH ROW
+BEGIN
+    IF :NEW.dict_code IS NULL THEN
+        SELECT SEQ_SYS_DICT_DATA_DICT_CODE.NEXTVAL INTO :NEW.dict_code FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_DICT_TYPE_DICT_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_DICT_TYPE_DICT_ID
+BEFORE INSERT ON sys_dict_type
+FOR EACH ROW
+BEGIN
+    IF :NEW.dict_id IS NULL THEN
+        SELECT SEQ_SYS_DICT_TYPE_DICT_ID.NEXTVAL INTO :NEW.dict_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_JOB_JOB_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_JOB_JOB_ID
+BEFORE INSERT ON sys_job
+FOR EACH ROW
+BEGIN
+    IF :NEW.job_id IS NULL THEN
+        SELECT SEQ_SYS_JOB_JOB_ID.NEXTVAL INTO :NEW.job_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_JOB_LOG_JOB_LOG_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_JOB_LOG_JOB_LOG_ID
+BEFORE INSERT ON sys_job_log
+FOR EACH ROW
+BEGIN
+    IF :NEW.job_log_id IS NULL THEN
+        SELECT SEQ_SYS_JOB_LOG_JOB_LOG_ID.NEXTVAL INTO :NEW.job_log_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_LOGININFOR_INFO_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_LOGININFOR_INFO_ID
+BEFORE INSERT ON sys_logininfor
+FOR EACH ROW
+BEGIN
+    IF :NEW.info_id IS NULL THEN
+        SELECT SEQ_SYS_LOGININFOR_INFO_ID.NEXTVAL INTO :NEW.info_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_MENU_MENU_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_MENU_MENU_ID
+BEFORE INSERT ON sys_menu
+FOR EACH ROW
+BEGIN
+    IF :NEW.menu_id IS NULL THEN
+        SELECT SEQ_SYS_MENU_MENU_ID.NEXTVAL INTO :NEW.menu_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_NOTICE_NOTICE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_NOTICE_NOTICE_ID
+BEFORE INSERT ON sys_notice
+FOR EACH ROW
+BEGIN
+    IF :NEW.notice_id IS NULL THEN
+        SELECT SEQ_SYS_NOTICE_NOTICE_ID.NEXTVAL INTO :NEW.notice_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_OPER_LOG_OPER_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_OPER_LOG_OPER_ID
+BEFORE INSERT ON sys_oper_log
+FOR EACH ROW
+BEGIN
+    IF :NEW.oper_id IS NULL THEN
+        SELECT SEQ_SYS_OPER_LOG_OPER_ID.NEXTVAL INTO :NEW.oper_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_POST_POST_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_POST_POST_ID
+BEFORE INSERT ON sys_post
+FOR EACH ROW
+BEGIN
+    IF :NEW.post_id IS NULL THEN
+        SELECT SEQ_SYS_POST_POST_ID.NEXTVAL INTO :NEW.post_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_ROLE_ROLE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_ROLE_ROLE_ID
+BEFORE INSERT ON sys_role
+FOR EACH ROW
+BEGIN
+    IF :NEW.role_id IS NULL THEN
+        SELECT SEQ_SYS_ROLE_ROLE_ID.NEXTVAL INTO :NEW.role_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_USER_USER_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_USER_USER_ID
+BEFORE INSERT ON sys_user
+FOR EACH ROW
+BEGIN
+    IF :NEW.user_id IS NULL THEN
+        SELECT SEQ_SYS_USER_USER_ID.NEXTVAL INTO :NEW.user_id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MODEL_ALGORITHMS_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MODEL_ALGORITHMS_ID
+BEFORE INSERT ON model_algorithms
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MODEL_ALGORITHMS_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MODEL_VERSIONS_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MODEL_VERSIONS_ID
+BEFORE INSERT ON model_versions
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MODEL_VERSIONS_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MODEL_TRAINING_TASKS_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MODEL_TRAINING_TASKS_ID
+BEFORE INSERT ON model_training_tasks
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MODEL_TRAINING_TASKS_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MODEL_PREDICTION_TASKS_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MODEL_PREDICTION_TASKS_ID
+BEFORE INSERT ON model_prediction_tasks
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MODEL_PREDICTION_TASKS_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MODEL_TRIGGER_POLICIES_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MODEL_TRIGGER_POLICIES_ID
+BEFORE INSERT ON model_trigger_policies
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MODEL_TRIGGER_POLICIES_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MODEL_EVALUATIONS_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MODEL_EVALUATIONS_ID
+BEFORE INSERT ON model_evaluations
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MODEL_EVALUATIONS_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MODEL_ACCURACY_RANKINGS_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MODEL_ACCURACY_RANKINGS_ID
+BEFORE INSERT ON model_accuracy_rankings
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MODEL_ACCURACY_RANKINGS_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SOURCE_CONFIG_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SOURCE_CONFIG_ID
+BEFORE INSERT ON data_source_config
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_DATA_SOURCE_CONFIG_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SOURCE_GRAB_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SOURCE_GRAB_ID
+BEFORE INSERT ON data_source_grab
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_DATA_SOURCE_GRAB_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SOURCE_USER_RELATION_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SOURCE_USER_RELATION_ID
+BEFORE INSERT ON data_source_user_relation
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_DATA_SOURCE_USER_RELATION_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_FILE_ANALYZE_HIS_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_FILE_ANALYZE_HIS_ID
+BEFORE INSERT ON file_analyze_his
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_FILE_ANALYZE_HIS_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_API_ACCESS_RECORD_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_API_ACCESS_RECORD_ID
+BEFORE INSERT ON api_access_record
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_API_ACCESS_RECORD_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_API_RECORD_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_API_RECORD_ID
+BEFORE INSERT ON api_record
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_API_RECORD_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_API_VERSION_RELEASE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_API_VERSION_RELEASE_ID
+BEFORE INSERT ON api_version_release
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_API_VERSION_RELEASE_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_API_ACCESS_CONTROL_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_API_ACCESS_CONTROL_ID
+BEFORE INSERT ON api_access_control
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_API_ACCESS_CONTROL_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_CONFIG_STATION_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_CONFIG_STATION_ID
+BEFORE INSERT ON config_station
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_CONFIG_STATION_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_CONFIG_SUPPLIER_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_CONFIG_SUPPLIER_ID
+BEFORE INSERT ON config_supplier
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_CONFIG_SUPPLIER_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MONITORING_CHECK_RECORD_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MONITORING_CHECK_RECORD_ID
+BEFORE INSERT ON monitoring_check_record
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MONITORING_CHECK_RECORD_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_MONITORING_SEND_RECORD_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_MONITORING_SEND_RECORD_ID
+BEFORE INSERT ON monitoring_send_record
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_MONITORING_SEND_RECORD_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_RBAC_MENU_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_RBAC_MENU_ID
+BEFORE INSERT ON rbac_menu
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_RBAC_MENU_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_RBAC_MODULE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_RBAC_MODULE_ID
+BEFORE INSERT ON rbac_module
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_RBAC_MODULE_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_RBAC_ROLE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_RBAC_ROLE_ID
+BEFORE INSERT ON rbac_role
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_RBAC_ROLE_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_RBAC_ROLE_MENU_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_RBAC_ROLE_MENU_ID
+BEFORE INSERT ON rbac_role_menu
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_RBAC_ROLE_MENU_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_RBAC_USER_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_RBAC_USER_ID
+BEFORE INSERT ON rbac_user
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_RBAC_USER_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_RBAC_USER_ROLE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_RBAC_USER_ROLE_ID
+BEFORE INSERT ON rbac_user_role
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_RBAC_USER_ROLE_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_DICT_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_DICT_ID
+BEFORE INSERT ON sys_dict
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_SYS_DICT_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_SYS_DICT_ITEM_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_SYS_DICT_ITEM_ID
+BEFORE INSERT ON sys_dict_item
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_SYS_DICT_ITEM_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_RAW__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_WEATHER_FORECAST_RAW__ID
+BEFORE INSERT ON data_short_term_weather_forecast_raw
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_RAW__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_POWER_FORECAST_RAW__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_POWER_FORECAST_RAW__ID
+BEFORE INSERT ON data_short_term_power_forecast_raw
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_POWER_FORECAST_RAW__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SUPER_SHORT_TERM_FORECAST_RAW__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SUPER_SHORT_TERM_FORECAST_RAW__ID
+BEFORE INSERT ON data_super_short_term_forecast_raw
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SUPER_SHORT_TERM_FORECAST_RAW__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_POWER_FORECAST_CORRECT__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_POWER_FORECAST_CORRECT__ID
+BEFORE INSERT ON data_short_term_power_forecast_correct
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_POWER_FORECAST_CORRECT__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_CORRECT__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_WEATHER_FORECAST_CORRECT__ID
+BEFORE INSERT ON data_short_term_weather_forecast_correct
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_CORRECT__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SUPER_SHORT_TERM_FORECAST_CORRECT__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SUPER_SHORT_TERM_FORECAST_CORRECT__ID
+BEFORE INSERT ON data_super_short_term_forecast_correct
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SUPER_SHORT_TERM_FORECAST_CORRECT__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_POWER_FORECAST_ISSUED__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_POWER_FORECAST_ISSUED__ID
+BEFORE INSERT ON data_short_term_power_forecast_issued
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_POWER_FORECAST_ISSUED__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_ISSUED__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_WEATHER_FORECAST_ISSUED__ID
+BEFORE INSERT ON data_short_term_weather_forecast_issued
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_ISSUED__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SUPER_SHORT_TERM_FORECAST_ISSUED__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SUPER_SHORT_TERM_FORECAST_ISSUED__ID
+BEFORE INSERT ON data_super_short_term_forecast_issued
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SUPER_SHORT_TERM_FORECAST_ISSUED__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_POWER_FORECAST_BACK__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_POWER_FORECAST_BACK__ID
+BEFORE INSERT ON data_short_term_power_forecast_back
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_POWER_FORECAST_BACK__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_BACK__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_WEATHER_FORECAST_BACK__ID
+BEFORE INSERT ON data_short_term_weather_forecast_back
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_BACK__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SUPER_SHORT_TERM_FORECAST_BACK__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SUPER_SHORT_TERM_FORECAST_BACK__ID
+BEFORE INSERT ON data_super_short_term_forecast_back
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SUPER_SHORT_TERM_FORECAST_BACK__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_POWER_FORECAST_REPORT__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_POWER_FORECAST_REPORT__ID
+BEFORE INSERT ON data_short_term_power_forecast_report
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_POWER_FORECAST_REPORT__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_REPORT__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SHORT_TERM_WEATHER_FORECAST_REPORT__ID
+BEFORE INSERT ON data_short_term_weather_forecast_report
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SHORT_TERM_WEATHER_FORECAST_REPORT__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_SUPER_SHORT_TERM_FORECAST_REPORT__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_SUPER_SHORT_TERM_FORECAST_REPORT__ID
+BEFORE INSERT ON data_super_short_term_forecast_report
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_SUPER_SHORT_TERM_FORECAST_REPORT__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_BOOSTER_STATION_REAL__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_BOOSTER_STATION_REAL__ID
+BEFORE INSERT ON data_booster_station_real
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_BOOSTER_STATION_REAL__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_WEATHER_STATION_REAL__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_WEATHER_STATION_REAL__ID
+BEFORE INSERT ON data_weather_station_real
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_WEATHER_STATION_REAL__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_STATION_DEVICE_POWER_REAL__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_STATION_DEVICE_POWER_REAL__ID
+BEFORE INSERT ON data_station_device_power_real
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_STATION_DEVICE_POWER_REAL__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_DATA_STATION_DEVICE_WEATHER_REAL__ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_DATA_STATION_DEVICE_WEATHER_REAL__ID
+BEFORE INSERT ON data_station_device_weather_real
+FOR EACH ROW
+BEGIN
+    IF :NEW._id IS NULL THEN
+        SELECT SEQ_DATA_STATION_DEVICE_WEATHER_REAL__ID.NEXTVAL INTO :NEW._id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_WEATHER_WARNING_RECORD_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_WEATHER_WARNING_RECORD_ID
+BEFORE INSERT ON weather_warning_record
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_WEATHER_WARNING_RECORD_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_CONFIG_STATION_PV_MODULE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_CONFIG_STATION_PV_MODULE_ID
+BEFORE INSERT ON config_station_pv_module
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_CONFIG_STATION_PV_MODULE_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_CONFIG_STATION_POWER_LIMIT_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_CONFIG_STATION_POWER_LIMIT_ID
+BEFORE INSERT ON config_station_power_limit
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_CONFIG_STATION_POWER_LIMIT_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_CONFIG_STATION_DEVICE_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_CONFIG_STATION_DEVICE_ID
+BEFORE INSERT ON config_station_device
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_CONFIG_STATION_DEVICE_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_CONFIG_STATION_CHANNEL_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_CONFIG_STATION_CHANNEL_ID
+BEFORE INSERT ON config_station_channel
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_CONFIG_STATION_CHANNEL_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+CREATE SEQUENCE SEQ_CONFIG_STATION_POINT_ID START WITH 1000000 INCREMENT BY 1;
+CREATE OR REPLACE TRIGGER TRG_CONFIG_STATION_POINT_ID
+BEFORE INSERT ON config_station_point
+FOR EACH ROW
+BEGIN
+    IF :NEW.id IS NULL THEN
+        SELECT SEQ_CONFIG_STATION_POINT_ID.NEXTVAL INTO :NEW.id FROM DUAL;
+    END IF;
+END;
+/
+
+COMMIT;

+ 232 - 0
forecast-backend-server/src/main/resources/sql/electricity_mock_new_dm.sql

@@ -0,0 +1,232 @@
+-- =============================================================================
+-- Electricity service mock data script (Dameng DM8)
+--
+-- Execute after electricity_init_new_dm.sql. station_id values are BIGINT ids
+-- from config_station.id; STA001~STA004 are business entity codes only.
+-- This DM version uses deterministic sample rows instead of PostgreSQL-only
+-- anonymous loops/functions, so it can be re-executed in development schemas.
+-- =============================================================================
+
+-- -----------------------------------------------------------------------------
+-- 0. Clean old mock data
+-- -----------------------------------------------------------------------------
+DELETE FROM data_booster_station_real           WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_weather_station_real           WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_station_device_power_real      WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_station_device_weather_real    WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_short_term_power_forecast_raw      WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_short_term_power_forecast_correct  WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_short_term_power_forecast_issued   WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_short_term_power_forecast_back     WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_short_term_power_forecast_report   WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_super_short_term_forecast_report   WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_short_term_weather_forecast_raw    WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+DELETE FROM data_short_term_weather_forecast_report WHERE entity_id IN ('STA001','STA002','STA003','STA004');
+
+DELETE FROM stats_assessment_indicator WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+DELETE FROM stats_report_indicator WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+DELETE FROM stats_weather_indicator WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+
+DELETE FROM config_assessment_task WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+DELETE FROM config_assessment_indicator WHERE rule_id IN ('RULE001','RULE002');
+DELETE FROM config_assessment_rule      WHERE id IN ('RULE001','RULE002');
+
+DELETE FROM model_prediction_tasks WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+DELETE FROM monitoring_send_record      WHERE recipient_email = 'demo@electricity.local';
+DELETE FROM data_source_grab            WHERE pattern_name LIKE 'MOCK-%';
+
+DELETE FROM config_station_point WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+DELETE FROM config_station_channel WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+DELETE FROM config_station_device WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+DELETE FROM config_station_power_limit WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+DELETE FROM config_station_pv_module WHERE station_id IN (SELECT id FROM config_station WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04'));
+
+DELETE FROM weather_alert_area          WHERE record_id IN (90001, 90002);
+DELETE FROM weather_alert_record        WHERE id IN (90001, 90002);
+DELETE FROM typhoon_warning_path        WHERE record_id = 90101;
+DELETE FROM typhoon_warning_record      WHERE id = 90101;
+DELETE FROM typhoon                     WHERE id = 90101;
+DELETE FROM weather_warning_type        WHERE id IN (9001, 9002, 9003, 9004);
+DELETE FROM weather_area                WHERE area_id IN ('AREA-SD-QD','AREA-SD-WH','AREA-NM-BT','AREA-XJ-HM');
+
+DELETE FROM config_station              WHERE station_code IN ('BHWP01','HHWP02','YMPV03','GBPV04');
+DELETE FROM config_area                 WHERE id = 'EAST01';
+
+-- -----------------------------------------------------------------------------
+-- 1. Area and stations
+-- -----------------------------------------------------------------------------
+INSERT INTO config_area (id, area_code, area_name, superior_area_id, is_del, create_by, create_time, update_by, update_time)
+VALUES ('EAST01', 'EAST01', '华东大区', NULL, 0, 'admin', SYSDATE, 'admin', SYSDATE);
+
+INSERT INTO config_station (station_name, station_code, superior_area_id, period_total,
+   longitude, latitude, province_number, city_number, position,
+   installed_capacity, grid_connected_capacity, fans_pv_panelquantity,
+   elevation, operation_time, boosterstation_voltage_level,
+   booster_station_longitude, boosterstation_latitude,
+   responsible_person_name, responsible_person_phone, is_enable, push_status,
+   subject_total, is_full_power, is_del,
+   create_by, create_time, update_by, update_time,
+   station_type, area_id) VALUES ('渤海一号风电场','BHWP01','EAST01',0,'121.4737','38.9087','370000','370200','山东省青岛市',150000,148000,75,12.5,'2021-06-01','110kV','121.4737','38.9087','张工','13800000001',1,1,2,1,0,'admin',SYSDATE,'admin',SYSDATE,0,'EAST01');
+INSERT INTO config_station (station_name, station_code, superior_area_id, period_total,
+   longitude, latitude, province_number, city_number, position,
+   installed_capacity, grid_connected_capacity, fans_pv_panelquantity,
+   elevation, operation_time, boosterstation_voltage_level,
+   booster_station_longitude, boosterstation_latitude,
+   responsible_person_name, responsible_person_phone, is_enable, push_status,
+   subject_total, is_full_power, is_del,
+   create_by, create_time, update_by, update_time,
+   station_type, area_id) VALUES ('黄海二号风电场','HHWP02','EAST01',0,'122.1108','37.5128','370000','371000','山东省威海市',120000,118500,60,18.0,'2022-03-15','110kV','122.1108','37.5128','李工','13800000002',1,1,1,1,0,'admin',SYSDATE,'admin',SYSDATE,0,'EAST01');
+INSERT INTO config_station (station_name, station_code, superior_area_id, period_total,
+   longitude, latitude, province_number, city_number, position,
+   installed_capacity, grid_connected_capacity, fans_pv_panelquantity,
+   elevation, operation_time, boosterstation_voltage_level,
+   booster_station_longitude, boosterstation_latitude,
+   responsible_person_name, responsible_person_phone, is_enable, push_status,
+   subject_total, is_full_power, is_del,
+   create_by, create_time, update_by, update_time,
+   station_type, area_id) VALUES ('沂蒙光伏电站','YMPV03','EAST01',0,'118.3262','35.0654','370000','371300','山东省临沂市',80000,79200,160000,250.0,'2020-09-20','35kV','118.3262','35.0654','王工','13800000003',1,1,1,1,0,'admin',SYSDATE,'admin',SYSDATE,1,'EAST01');
+INSERT INTO config_station (station_name, station_code, superior_area_id, period_total,
+   longitude, latitude, province_number, city_number, position,
+   installed_capacity, grid_connected_capacity, fans_pv_panelquantity,
+   elevation, operation_time, boosterstation_voltage_level,
+   booster_station_longitude, boosterstation_latitude,
+   responsible_person_name, responsible_person_phone, is_enable, push_status,
+   subject_total, is_full_power, is_del,
+   create_by, create_time, update_by, update_time,
+   station_type, area_id) VALUES ('戈壁光伏电站','GBPV04','EAST01',0,'93.5145','42.8194','650000','650500','新疆哈密',200000,196000,400000,1100.0,'2019-12-01','220kV','93.5145','42.8194','陈工','13800000004',1,1,1,1,0,'admin',SYSDATE,'admin',SYSDATE,1,'EAST01');
+
+-- -----------------------------------------------------------------------------
+-- 2. Real-time and forecast sample rows
+-- -----------------------------------------------------------------------------
+INSERT INTO data_booster_station_real (_id, entity_id, entity_type, entity_name, create_time, record_time, power) VALUES (910001,'STA001',1,'渤海一号风电场',1767225600,1767229200,'126.50');
+INSERT INTO data_booster_station_real (_id, entity_id, entity_type, entity_name, create_time, record_time, power) VALUES (910002,'STA002',1,'黄海二号风电场',1767225600,1767229200,'98.20');
+INSERT INTO data_booster_station_real (_id, entity_id, entity_type, entity_name, create_time, record_time, power) VALUES (910003,'STA003',1,'沂蒙光伏电站',1767225600,1767229200,'66.40');
+INSERT INTO data_booster_station_real (_id, entity_id, entity_type, entity_name, create_time, record_time, power) VALUES (910004,'STA004',1,'戈壁光伏电站',1767225600,1767229200,'158.70');
+
+INSERT INTO data_weather_station_real (_id, entity_id, entity_type, entity_name, create_time, record_time, wind_speed, tirr) VALUES (910101,'STA001',1,'渤海一号风电场',1767225600,1767229200,'8.6','320.0');
+INSERT INTO data_weather_station_real (_id, entity_id, entity_type, entity_name, create_time, record_time, wind_speed, tirr) VALUES (910102,'STA002',1,'黄海二号风电场',1767225600,1767229200,'7.9','280.0');
+INSERT INTO data_weather_station_real (_id, entity_id, entity_type, entity_name, create_time, record_time, wind_speed, tirr) VALUES (910103,'STA003',1,'沂蒙光伏电站',1767225600,1767229200,'3.1','810.0');
+INSERT INTO data_weather_station_real (_id, entity_id, entity_type, entity_name, create_time, record_time, wind_speed, tirr) VALUES (910104,'STA004',1,'戈壁光伏电站',1767225600,1767229200,'4.2','875.0');
+
+INSERT INTO data_station_device_power_real (_id, entity_id, entity_type, entity_name, device_id, device_type, device_name, create_time, record_time, power) VALUES (910201,'STA001',1,'渤海一号风电场','STA001-WTG01',1,'风机 #1',1767225600,1767229200,'42.20');
+INSERT INTO data_station_device_power_real (_id, entity_id, entity_type, entity_name, device_id, device_type, device_name, create_time, record_time, power) VALUES (910202,'STA002',1,'黄海二号风电场','STA002-WTG01',1,'风机 #1',1767225600,1767229200,'32.80');
+INSERT INTO data_station_device_power_real (_id, entity_id, entity_type, entity_name, device_id, device_type, device_name, create_time, record_time, power) VALUES (910203,'STA003',1,'沂蒙光伏电站','STA003-INV01',2,'逆变器 #1',1767225600,1767229200,'22.10');
+INSERT INTO data_station_device_power_real (_id, entity_id, entity_type, entity_name, device_id, device_type, device_name, create_time, record_time, power) VALUES (910204,'STA004',1,'戈壁光伏电站','STA004-INV01',2,'逆变器 #1',1767225600,1767229200,'52.90');
+
+INSERT INTO data_station_device_weather_real (_id, entity_id, entity_type, entity_name, device_id, device_type, device_name, create_time, record_time, wind_speed, tirr) VALUES (910301,'STA001',1,'渤海一号风电场','STA001-WTG01',1,'风机 #1',1767225600,1767229200,'8.8','315.0');
+INSERT INTO data_station_device_weather_real (_id, entity_id, entity_type, entity_name, device_id, device_type, device_name, create_time, record_time, wind_speed, tirr) VALUES (910302,'STA002',1,'黄海二号风电场','STA002-WTG01',1,'风机 #1',1767225600,1767229200,'8.0','276.0');
+INSERT INTO data_station_device_weather_real (_id, entity_id, entity_type, entity_name, device_id, device_type, device_name, create_time, record_time, wind_speed, tirr) VALUES (910303,'STA003',1,'沂蒙光伏电站','STA003-INV01',2,'逆变器 #1',1767225600,1767229200,'3.0','806.0');
+INSERT INTO data_station_device_weather_real (_id, entity_id, entity_type, entity_name, device_id, device_type, device_name, create_time, record_time, wind_speed, tirr) VALUES (910304,'STA004',1,'戈壁光伏电站','STA004-INV01',2,'逆变器 #1',1767225600,1767229200,'4.0','868.0');
+
+INSERT INTO data_short_term_power_forecast_report (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, power) VALUES (920001,1001,'MOCK-REPORT-DM','STA001',1,'渤海一号风电场',1767225600,1767225600,1767312000,1,'130.20');
+INSERT INTO data_short_term_power_forecast_report (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, power) VALUES (920002,1001,'MOCK-REPORT-DM','STA002',1,'黄海二号风电场',1767225600,1767225600,1767312000,1,'101.40');
+INSERT INTO data_short_term_power_forecast_report (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, power) VALUES (920003,1001,'MOCK-REPORT-DM','STA003',1,'沂蒙光伏电站',1767225600,1767225600,1767312000,1,'70.80');
+INSERT INTO data_short_term_power_forecast_report (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, power) VALUES (920004,1001,'MOCK-REPORT-DM','STA004',1,'戈壁光伏电站',1767225600,1767225600,1767312000,1,'165.30');
+
+INSERT INTO data_short_term_power_forecast_raw (_id, latitude, longitude, data_org_type, data_type, business_process_type, data_source, data_sourcegrab_id, data_sourcegrab_pattern_name, data_model_id, data_model_name, source_id, source_name, entity_id, entity_type, create_time, start_time, forecast_time, pre_days, lead_time, station_id, station_name, power) VALUES (920101,'38.9087','121.4737','TIME_SERIES',1,1,1,1001,'MOCK-RAW-DM',1,'EC-Model',1,'EC','STA001','1',1767225600,1767225600,1767312000,1,24,(SELECT id FROM config_station WHERE station_code='BHWP01'),'渤海一号风电场','132.50');
+INSERT INTO data_short_term_power_forecast_raw (_id, latitude, longitude, data_org_type, data_type, business_process_type, data_source, data_sourcegrab_id, data_sourcegrab_pattern_name, data_model_id, data_model_name, source_id, source_name, entity_id, entity_type, create_time, start_time, forecast_time, pre_days, lead_time, station_id, station_name, power) VALUES (920102,'35.0654','118.3262','TIME_SERIES',1,1,1,1001,'MOCK-RAW-DM',1,'EC-Model',1,'EC','STA003','1',1767225600,1767225600,1767312000,1,24,(SELECT id FROM config_station WHERE station_code='YMPV03'),'沂蒙光伏电站','72.10');
+
+INSERT INTO data_short_term_power_forecast_issued (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, power) VALUES (920201,1001,'MOCK-ISSUED-DM','STA001',1,'渤海一号风电场',1767225600,1767225600,1767312000,1,'128.60');
+INSERT INTO data_short_term_power_forecast_issued (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, power) VALUES (920202,1001,'MOCK-ISSUED-DM','STA003',1,'沂蒙光伏电站',1767225600,1767225600,1767312000,1,'69.50');
+
+INSERT INTO data_super_short_term_forecast_report (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, pre_qrts, power) VALUES (920301,1003,'MOCK-SUPER-DM','STA001',1,'渤海一号风电场',1767225600,1767225600,1767229200,4,'127.40');
+INSERT INTO data_super_short_term_forecast_report (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, pre_qrts, power) VALUES (920302,1003,'MOCK-SUPER-DM','STA003',1,'沂蒙光伏电站',1767225600,1767225600,1767229200,4,'67.90');
+
+INSERT INTO data_short_term_weather_forecast_report (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, tcc, tsfc, psfc, rhsfc, tirr, ws_hub, wd_hub, ws) VALUES (920401,1002,'MOCK-WEATHER-DM','STA001',1,'渤海一号风电场',1767225600,1767225600,1767312000,1,'0.45','21.3','1008.2','68.0','330.0','8.7','210.0','7.8');
+INSERT INTO data_short_term_weather_forecast_report (_id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, tcc, tsfc, psfc, rhsfc, tirr, ws_hub, wd_hub, ws) VALUES (920402,1002,'MOCK-WEATHER-DM','STA003',1,'沂蒙光伏电站',1767225600,1767225600,1767312000,1,'0.20','28.5','987.0','46.0','820.0','3.2','260.0','2.8');
+
+-- -----------------------------------------------------------------------------
+-- 3. Weather map and warning data
+-- -----------------------------------------------------------------------------
+INSERT INTO weather_area (area_id, name_cn, district_cn, provcn_cn, nation_cn, continent_cn, city_id, city_name, parent_name, longitude, latitude, area_name, area_number) VALUES ('AREA-SD-QD','青岛','青岛','山东','中国','亚洲','370200','青岛','山东','120.3826','36.0671','华东大区','EAST01');
+INSERT INTO weather_area (area_id, name_cn, district_cn, provcn_cn, nation_cn, continent_cn, city_id, city_name, parent_name, longitude, latitude, area_name, area_number) VALUES ('AREA-SD-WH','威海','威海','山东','中国','亚洲','371000','威海','山东','122.1204','37.5131','华东大区','EAST01');
+INSERT INTO weather_area (area_id, name_cn, district_cn, provcn_cn, nation_cn, continent_cn, city_id, city_name, parent_name, longitude, latitude, area_name, area_number) VALUES ('AREA-NM-BT','包头','包头','内蒙古','中国','亚洲','150200','包头','内蒙古','109.8403','40.6574','华北大区','NORTH01');
+INSERT INTO weather_area (area_id, name_cn, district_cn, provcn_cn, nation_cn, continent_cn, city_id, city_name, parent_name, longitude, latitude, area_name, area_number) VALUES ('AREA-XJ-HM','哈密','哈密','新疆','中国','亚洲','650500','哈密','新疆','93.5145','42.8194','西北大区','WEST01');
+
+INSERT INTO weather_warning_type (id, warning_type, data_source, remark, saved_field, saved_field1, saved_field2) VALUES (9001,'大风',1,'大风预警','wind','warning','');
+INSERT INTO weather_warning_type (id, warning_type, data_source, remark, saved_field, saved_field1, saved_field2) VALUES (9002,'雷电',1,'雷电预警','thunder','warning','');
+INSERT INTO weather_warning_type (id, warning_type, data_source, remark, saved_field, saved_field1, saved_field2) VALUES (9003,'高温',1,'高温预警','heat','warning','');
+INSERT INTO weather_warning_type (id, warning_type, data_source, remark, saved_field, saved_field1, saved_field2) VALUES (9004,'台风',2,'台风预警','typhoon','warning','');
+
+INSERT INTO weather_alert_record (id, alert_id, head_line, publish_date, description, longitude, latitude, type_code, title, effect_area, type_id, warning_type, level, level_name, create_date, update_date, end_date, remark, saved_field, saved_field1, publish_status, province, city, county, area_id, alert_info, html_url) VALUES (90001,'ALERT-WIND-001','大风蓝色预警',SYSDATE,'预计未来 12 小时山东半岛沿海有 7~8 级大风','120.3826','36.0671','wind','山东半岛大风蓝色预警','青岛、威海沿海',9001,'大风',1,'蓝色',SYSDATE,SYSDATE,SYSDATE + 1,'mock','','','发布','山东','青岛','市南区','AREA-SD-QD','大风蓝色预警','https://example.com/wind');
+INSERT INTO weather_alert_record (id, alert_id, head_line, publish_date, description, longitude, latitude, type_code, title, effect_area, type_id, warning_type, level, level_name, create_date, update_date, end_date, remark, saved_field, saved_field1, publish_status, province, city, county, area_id, alert_info, html_url) VALUES (90002,'ALERT-THUNDER-001','雷电黄色预警',SYSDATE,'预计未来 6 小时哈密东部出现雷阵雨','93.5145','42.8194','thunder','哈密雷电黄色预警','哈密东部',9002,'雷电',3,'黄色',SYSDATE,SYSDATE,SYSDATE + 1,'mock','','','发布','新疆','哈密','伊州区','AREA-XJ-HM','雷电黄色预警','https://example.com/thunder');
+
+INSERT INTO typhoon (id, typhoon_number, typhoon_en, typhoon_cn, status, begin_date, end_date) VALUES
+(90101,'TY2418','DemoTyphoon','演示台风','active',SYSDATE - 3,NULL);
+
+INSERT INTO typhoon_warning_record (id, status, typhoon_cn, typhoon_en, typhoon_number, arrival_date, typhoon_level, longitude, latitude, center_pressure, max_wind_speed, future_move_speed, futuredirection, wind_cicle, babj, typhoon_date_content, effect_area, remark, saved_field, saved_field1, create_date, update_date, end_date, dat_info, pub_time) VALUES
+(90101,'current','演示台风','DemoTyphoon','TY2418','2026-07-21 14:00','TY','123.5','27.8',960,38.0,18.0,'西北','{}','{}','演示台风路径','华东沿海','mock','','',SYSDATE,SYSDATE,NULL,'{}','202607211400');
+
+INSERT INTO typhoon_warning_path (id, record_id, xh, arrival_date, typhoon_level, latitude, longitude, center_pressure, max_wind_speed, future_move_speed, futuredirection, babj, wind_cicle, create_date, dat_info, effect_area, end_date, pub_time, remark, saved_field, saved_field1, status, typhoon_number) VALUES (90201,90101,1,'2026-07-21 02:00','TS','24.8','121.0',980,26.0,20.0,'西北','{}','{}',SYSDATE,'{}','华东沿海',NULL,'202607210200','mock','','','history','TY2418');
+INSERT INTO typhoon_warning_path (id, record_id, xh, arrival_date, typhoon_level, latitude, longitude, center_pressure, max_wind_speed, future_move_speed, futuredirection, babj, wind_cicle, create_date, dat_info, effect_area, end_date, pub_time, remark, saved_field, saved_field1, status, typhoon_number) VALUES (90202,90101,2,'2026-07-21 08:00','STS','26.0','122.2',970,32.0,19.0,'西北','{}','{}',SYSDATE,'{}','华东沿海',NULL,'202607210800','mock','','','history','TY2418');
+INSERT INTO typhoon_warning_path (id, record_id, xh, arrival_date, typhoon_level, latitude, longitude, center_pressure, max_wind_speed, future_move_speed, futuredirection, babj, wind_cicle, create_date, dat_info, effect_area, end_date, pub_time, remark, saved_field, saved_field1, status, typhoon_number) VALUES (90203,90101,3,'2026-07-21 14:00','TY','27.8','123.5',960,38.0,18.0,'西北','{}','{}',SYSDATE,'{}','华东沿海',NULL,'202607211400','mock','','','current','TY2418');
+
+-- -----------------------------------------------------------------------------
+-- 4. Data source, prediction task and reporting records
+-- -----------------------------------------------------------------------------
+INSERT INTO data_source_grab (id, data_source_id, data_organization_type, data_type, data_content_type, remote_directory, earliest_start_time, longest_forecast_period, push_time, file_match_pattern, is_del, create_by, create_time, update_by, update_time, pattern_name, batch_of_day, threshold, standard_quantity, warning_time, shortest_parsing_time, data_model_id, data_model_name) VALUES (1001,1,1,1,1,'/data/ec/short_term/power',SYSDATE - 30,24,SYSDATE,'POW_*.txt',0,'admin',SYSDATE,'admin',SYSDATE,'MOCK-短期功率',1,2000,2000,'[]',60,1,'EC-Model');
+INSERT INTO data_source_grab (id, data_source_id, data_organization_type, data_type, data_content_type, remote_directory, earliest_start_time, longest_forecast_period, push_time, file_match_pattern, is_del, create_by, create_time, update_by, update_time, pattern_name, batch_of_day, threshold, standard_quantity, warning_time, shortest_parsing_time, data_model_id, data_model_name) VALUES (1002,1,1,2,1,'/data/ec/short_term/weather',SYSDATE - 30,72,SYSDATE,'WTH_*.grb',0,'admin',SYSDATE,'admin',SYSDATE,'MOCK-短期气象',1,2000,2000,'[]',60,1,'EC-Model');
+INSERT INTO data_source_grab (id, data_source_id, data_organization_type, data_type, data_content_type, remote_directory, earliest_start_time, longest_forecast_period, push_time, file_match_pattern, is_del, create_by, create_time, update_by, update_time, pattern_name, batch_of_day, threshold, standard_quantity, warning_time, shortest_parsing_time, data_model_id, data_model_name) VALUES (1003,2,1,8,1,'/data/wrf/ultra/power',SYSDATE - 30,4,SYSDATE,'USP_*.csv',0,'admin',SYSDATE,'admin',SYSDATE,'MOCK-超短期功率',1,2000,2000,'[]',60,2,'WRF-Model');
+
+INSERT INTO model_prediction_tasks (id, task_name, station_id, model_version_id, version_source, prediction_type, target_time, status, result_path, created_at, executed_at) VALUES (91001,'渤海一号-短期-T+24',(SELECT id FROM config_station WHERE station_code='BHWP01'),1001,'station','short_term',SYSDATE + 1,'SUCCESS','/result/STA001/short.csv',SYSDATE - 1,SYSDATE);
+INSERT INTO model_prediction_tasks (id, task_name, station_id, model_version_id, version_source, prediction_type, target_time, status, result_path, created_at, executed_at) VALUES (91002,'黄海二号-短期-T+24',(SELECT id FROM config_station WHERE station_code='HHWP02'),1001,'station','short_term',SYSDATE + 1,'SUCCESS','/result/STA002/short.csv',SYSDATE - 1,SYSDATE);
+INSERT INTO model_prediction_tasks (id, task_name, station_id, model_version_id, version_source, prediction_type, target_time, status, result_path, created_at, executed_at) VALUES (91003,'沂蒙光伏-超短期-T+15min',(SELECT id FROM config_station WHERE station_code='YMPV03'),1002,'global','ultra_short',SYSDATE,'RUNNING',NULL,SYSDATE,NULL);
+INSERT INTO model_prediction_tasks (id, task_name, station_id, model_version_id, version_source, prediction_type, target_time, status, result_path, created_at, executed_at) VALUES (91004,'戈壁光伏-短期-T+24',(SELECT id FROM config_station WHERE station_code='GBPV04'),1001,'area','short_term',SYSDATE + 1,'PENDING',NULL,SYSDATE,NULL);
+
+INSERT INTO monitoring_send_record (check_record_id, send_status, recipient_email, email_info, create_by, create_time) VALUES (5001,1,'demo@electricity.local','短期功率上报成功,行数 96/96','system',SYSDATE);
+INSERT INTO monitoring_send_record (check_record_id, send_status, recipient_email, email_info, create_by, create_time) VALUES (5002,-1,'demo@electricity.local','超短期功率上报失败:连接超时','system',SYSDATE);
+INSERT INTO monitoring_send_record (check_record_id, send_status, recipient_email, email_info, create_by, create_time) VALUES (5003,1,'demo@electricity.local','短期气象上报成功,行数 96/96','system',SYSDATE);
+
+-- -----------------------------------------------------------------------------
+-- 5. Assessment and statistics
+-- -----------------------------------------------------------------------------
+INSERT INTO config_assessment_rule (id, rule_name, province_number, del_flag, create_by, create_time, update_by, update_time) VALUES ('RULE001','短期功率预测准确率细则','370000',0,'admin',SYSDATE,'admin',SYSDATE);
+INSERT INTO config_assessment_rule (id, rule_name, province_number, del_flag, create_by, create_time, update_by, update_time) VALUES ('RULE002','超短期功率预测准确率细则','370000',0,'admin',SYSDATE,'admin',SYSDATE);
+
+INSERT INTO config_assessment_indicator (id, rule_id, indicator_key, formula, limit_value, assess_description, enable_flag, del_flag, create_by, create_time, update_by, update_time) VALUES ('IND001','RULE001','accuracy','1 - sqrt(sum((actual-pred)^2)/n) / capacity',0.85,'日准确率达标值',1,0,'admin',SYSDATE,'admin',SYSDATE);
+INSERT INTO config_assessment_indicator (id, rule_id, indicator_key, formula, limit_value, assess_description, enable_flag, del_flag, create_by, create_time, update_by, update_time) VALUES ('IND002','RULE001','rmse','sqrt(sum((actual-pred)^2)/n)',0.20,'均方根误差',1,0,'admin',SYSDATE,'admin',SYSDATE);
+INSERT INTO config_assessment_indicator (id, rule_id, indicator_key, formula, limit_value, assess_description, enable_flag, del_flag, create_by, create_time, update_by, update_time) VALUES ('IND003','RULE002','accuracy','1 - sqrt(sum((actual-pred)^2)/n) / capacity',0.90,'超短期日准确率',1,0,'admin',SYSDATE,'admin',SYSDATE);
+
+INSERT INTO config_assessment_task (id, station_id, rule_id, enable_flag, del_flag, create_by, create_time, update_by, update_time) VALUES ('TSK001',(SELECT id FROM config_station WHERE station_code='BHWP01'),'RULE001',1,0,'admin',SYSDATE,'admin',SYSDATE);
+INSERT INTO config_assessment_task (id, station_id, rule_id, enable_flag, del_flag, create_by, create_time, update_by, update_time) VALUES ('TSK002',(SELECT id FROM config_station WHERE station_code='HHWP02'),'RULE001',1,0,'admin',SYSDATE,'admin',SYSDATE);
+INSERT INTO config_assessment_task (id, station_id, rule_id, enable_flag, del_flag, create_by, create_time, update_by, update_time) VALUES ('TSK003',(SELECT id FROM config_station WHERE station_code='YMPV03'),'RULE001',1,0,'admin',SYSDATE,'admin',SYSDATE);
+INSERT INTO config_assessment_task (id, station_id, rule_id, enable_flag, del_flag, create_by, create_time, update_by, update_time) VALUES ('TSK004',(SELECT id FROM config_station WHERE station_code='GBPV04'),'RULE002',1,0,'admin',SYSDATE,'admin',SYSDATE);
+
+INSERT INTO stats_assessment_indicator (id, station_id, rule_id, time_type, data_source, indicator_value, create_by, create_time, update_by, update_time, record_time, business_process_time, model_id) VALUES ('SAI001',(SELECT id FROM config_station WHERE station_code='BHWP01'),'RULE001',1,'EC','{"accuracy":0.926,"rmse":0.082,"mae":0.066}','system',SYSDATE,'system',SYSDATE,DATE '2026-07-21',1,1);
+INSERT INTO stats_assessment_indicator (id, station_id, rule_id, time_type, data_source, indicator_value, create_by, create_time, update_by, update_time, record_time, business_process_time, model_id) VALUES ('SAI002',(SELECT id FROM config_station WHERE station_code='YMPV03'),'RULE001',1,'EC','{"accuracy":0.918,"rmse":0.091,"mae":0.073}','system',SYSDATE,'system',SYSDATE,DATE '2026-07-21',1,1);
+
+INSERT INTO stats_report_indicator (id, station_id, site_id, time_type, indicator_value, create_by, create_time, update_by, update_time, record_time) VALUES ('SRI001',(SELECT id FROM config_station WHERE station_code='BHWP01'),'SITE001',1,'{"total_generation":420000,"theoretical_power":450000,"utilization_hours":6.2,"curtailment":12000}','system',SYSDATE,'system',SYSDATE,DATE '2026-07-21');
+INSERT INTO stats_report_indicator (id, station_id, site_id, time_type, indicator_value, create_by, create_time, update_by, update_time, record_time) VALUES ('SRI002',(SELECT id FROM config_station WHERE station_code='GBPV04'),'SITE001',1,'{"total_generation":680000,"theoretical_power":720000,"utilization_hours":7.1,"curtailment":18000}','system',SYSDATE,'system',SYSDATE,DATE '2026-07-21');
+
+INSERT INTO stats_weather_indicator (station_id, time_type, data_source, indicator_val, create_by, create_time, update_by, update_time, record_time, business_process_times, model_id) VALUES ((SELECT id FROM config_station WHERE station_code='BHWP01'),1,'EC','{"wind_speed_mae":0.92,"wind_speed_rmse":1.16,"tirr_mae":45.2,"temperature_mae":0.8,"forecast_qualified":true}','system',SYSDATE,'system',SYSDATE,DATE '2026-07-21',1,1);
+INSERT INTO stats_weather_indicator (station_id, time_type, data_source, indicator_val, create_by, create_time, update_by, update_time, record_time, business_process_times, model_id) VALUES ((SELECT id FROM config_station WHERE station_code='YMPV03'),1,'EC','{"wind_speed_mae":0.86,"wind_speed_rmse":1.05,"tirr_mae":38.6,"temperature_mae":0.7,"forecast_qualified":true}','system',SYSDATE,'system',SYSDATE,DATE '2026-07-21',1,1);
+
+-- -----------------------------------------------------------------------------
+-- 6. Station configuration modules
+-- -----------------------------------------------------------------------------
+INSERT INTO config_station_pv_module (station_id, model, brand, rated_power, module_type, module_count, conversion_efficiency, temperature_coefficient, install_date, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='BHWP01'),'JKM580N-72HL4','晶科能源',580,'双面',240000,'22.5%','-0.30%/℃','2023-04-01','admin',SYSDATE);
+INSERT INTO config_station_pv_module (station_id, model, brand, rated_power, module_type, module_count, conversion_efficiency, temperature_coefficient, install_date, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='YMPV03'),'LR5-72HTH-590M','隆基绿能',590,'单面',180000,'22.8%','-0.29%/℃','2024-06-15','admin',SYSDATE);
+INSERT INTO config_station_pv_module (station_id, model, brand, rated_power, module_type, module_count, conversion_efficiency, temperature_coefficient, install_date, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='GBPV04'),'Hi-MO 7 620W','隆基绿能',620,'双面',192000,'23.0%','-0.28%/℃','2024-02-01','admin',SYSDATE);
+
+INSERT INTO config_station_power_limit (station_id, limit_type, start_date, end_date, limit_percent, reason, approver, status, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='BHWP01'),'调度限电','2026-06-01','2026-09-30','20%','电网调峰','省调','生效中','admin',SYSDATE);
+INSERT INTO config_station_power_limit (station_id, limit_type, start_date, end_date, limit_percent, reason, approver, status, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='HHWP02'),'检修限电','2026-07-15','2026-07-20','100%','年度检修','场站经理','待执行','admin',SYSDATE);
+INSERT INTO config_station_power_limit (station_id, limit_type, start_date, end_date, limit_percent, reason, approver, status, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='GBPV04'),'调度限电','2026-05-01','2026-10-31','15%','新能源消纳','省调','生效中','admin',SYSDATE);
+
+INSERT INTO config_station_device (station_id, device_name, device_type, brand, model, serial_number, status, install_date, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='BHWP01'),'逆变器A1-001','组串式逆变器','华为','SUN2000-300KTL','HWT202304001','在线','2023-04-01','admin',SYSDATE);
+INSERT INTO config_station_device (station_id, device_name, device_type, brand, model, serial_number, status, install_date, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='BHWP01'),'箱变A-01','箱式变压器','特变电工','ZGS11-ZG-3150','TB202304001','在线','2023-04-01','admin',SYSDATE);
+INSERT INTO config_station_device (station_id, device_name, device_type, brand, model, serial_number, status, install_date, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='HHWP02'),'风机WT-01','直驱永磁','金风科技','GW175-8.0MW','JF202209001','在线','2022-09-15','admin',SYSDATE);
+INSERT INTO config_station_device (station_id, device_name, device_type, brand, model, serial_number, status, install_date, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='YMPV03'),'气象站-WS1','自动气象站','Campbell','CR1000X','CP202311001','在线','2023-11-15','admin',SYSDATE);
+
+INSERT INTO config_station_channel (station_id, channel_name, protocol, host, port, collect_interval, data_type, status, last_sync_time, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='BHWP01'),'SCADA实时通道','Modbus TCP','192.168.100.10',502,'1s','时序','正常','2026-07-21 14:05','admin',SYSDATE);
+INSERT INTO config_station_channel (station_id, channel_name, protocol, host, port, collect_interval, data_type, status, last_sync_time, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='HHWP02'),'风机OPC通道','OPC UA','opc.internal',4840,'1s','时序','正常','2026-07-21 14:03','admin',SYSDATE);
+INSERT INTO config_station_channel (station_id, channel_name, protocol, host, port, collect_interval, data_type, status, last_sync_time, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='YMPV03'),'气象站数据通道','MQTT','mqtt-broker.internal',1883,'1min','JSON','正常','2026-07-21 14:05','admin',SYSDATE);
+INSERT INTO config_station_channel (station_id, channel_name, protocol, host, port, collect_interval, data_type, status, last_sync_time, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='GBPV04'),'NWP-GFS通道','FTP','nwp-server.internal',21,'6h','GRIB2','延迟','2026-07-21 13:30','admin',SYSDATE);
+
+INSERT INTO config_station_point (station_id, device_id, device_name, point_name, unit, precision_value, measure_range, protocol, address, collect_interval, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='BHWP01'),(SELECT id FROM config_station_device WHERE serial_number='HWT202304001'),'逆变器A1-001','直流功率','kW',2,'0-300','Modbus','40001','1s','admin',SYSDATE);
+INSERT INTO config_station_point (station_id, device_id, device_name, point_name, unit, precision_value, measure_range, protocol, address, collect_interval, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='BHWP01'),(SELECT id FROM config_station_device WHERE serial_number='HWT202304001'),'逆变器A1-001','交流功率','kW',2,'0-300','Modbus','40003','1s','admin',SYSDATE);
+INSERT INTO config_station_point (station_id, device_id, device_name, point_name, unit, precision_value, measure_range, protocol, address, collect_interval, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='YMPV03'),(SELECT id FROM config_station_device WHERE serial_number='CP202311001'),'气象站-WS1','环境温度','℃',1,'-40~80','Modbus','40201','1min','admin',SYSDATE);
+INSERT INTO config_station_point (station_id, device_id, device_name, point_name, unit, precision_value, measure_range, protocol, address, collect_interval, create_by, create_time) VALUES ((SELECT id FROM config_station WHERE station_code='HHWP02'),(SELECT id FROM config_station_device WHERE serial_number='JF202209001'),'风机WT-01','有功功率','kW',1,'0-8000','OPC UA','ns=2:s=WT.P','1s','admin',SYSDATE);
+
+COMMIT;
+
+SELECT '=== Dameng mock data loaded ===' AS status FROM DUAL;