| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- -- 20260917 增加气象、功率文件数据同步任务 (aicoding/2026091706)
- -- 可重复执行
- -- -----------------------------------------------------
- -- 1. 待处理文件表 data_file_sync_files
- -- -----------------------------------------------------
- CREATE TABLE IF NOT EXISTS data_file_sync_files (
- id SERIAL NOT NULL,
- type VARCHAR(64),
- file VARCHAR(1024) NOT NULL,
- status INTEGER NOT NULL DEFAULT 0,
- handler VARCHAR(255),
- create_time TIMESTAMP NOT NULL DEFAULT now(),
- update_time TIMESTAMP NOT NULL DEFAULT now(),
- fail_reason VARCHAR(1024),
- process_times INTEGER NOT NULL DEFAULT 0,
- priority INTEGER NOT NULL DEFAULT 3,
- CONSTRAINT pk_data_file_sync_files PRIMARY KEY (id)
- );
- -- 文件路径查重保险(扫描任务按 file 去重插入)
- CREATE UNIQUE INDEX IF NOT EXISTS uk_data_file_sync_files_file ON data_file_sync_files (file);
- COMMENT ON TABLE data_file_sync_files IS '待处理数据文件同步';
- COMMENT ON COLUMN data_file_sync_files.id IS '唯一标识';
- COMMENT ON COLUMN data_file_sync_files.type IS '类型';
- COMMENT ON COLUMN data_file_sync_files.file IS '文件(完整路径)';
- COMMENT ON COLUMN data_file_sync_files.status IS '状态(0待处理,1处理中,2完成,99失败,-1取消)';
- COMMENT ON COLUMN data_file_sync_files.handler IS '处理器bean名称';
- COMMENT ON COLUMN data_file_sync_files.create_time IS '创建时间';
- COMMENT ON COLUMN data_file_sync_files.update_time IS '更新时间';
- COMMENT ON COLUMN data_file_sync_files.fail_reason IS '失败原因';
- COMMENT ON COLUMN data_file_sync_files.process_times IS '处理次数';
- COMMENT ON COLUMN data_file_sync_files.priority IS '优先级';
- -- -----------------------------------------------------
- -- 2. 字典配置项 data_file_sync_config
- -- dict_value 存整个 JSON 数组: [{scanFolder, updateInterval, handler, type?}]
- -- 例: [{"scanFolder":"/data/weather","updateInterval":12,"handler":"weatherFileSyncHandler","type":"weather"}]
- -- -----------------------------------------------------
- -- JSON 数组配置可能超过 dict_value 原长度(VARCHAR(100)), 扩容(可重复执行)
- ALTER TABLE sys_dict_data ALTER COLUMN dict_value TYPE VARCHAR(2000);
- INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, remark)
- SELECT
- nextval(pg_get_serial_sequence('sys_dict_type', 'dict_id')),
- '数据文件同步配置', 'data_file_sync_config', '0', 'admin', now(), '气象、功率数据文件同步扫描目录配置'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type t WHERE t.dict_type = 'data_file_sync_config');
- 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, remark)
- SELECT
- nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')),
- 1, '文件同步配置', '[]', 'data_file_sync_config', '', '', 'Y', '0', 'admin', now(), 'JSON数组, 每项含 scanFolder/updateInterval/handler, type可选'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data t WHERE t.dict_type = 'data_file_sync_config');
|