backend_ddl_2026112.sql 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. -- 创建序列
  2. CREATE SEQUENCE IF NOT EXISTS data_ultra_short_term_power_forecasting_id_seq;
  3. DROP TABLE IF EXISTS data_ultra_short_term_power_forecasting;
  4. -- 建表语句
  5. CREATE TABLE data_ultra_short_term_power_forecasting (
  6. _id BIGINT NOT NULL DEFAULT nextval('data_ultra_short_term_power_forecasting_id_seq'::regclass),
  7. data_sourcegrab_id INTEGER NOT NULL,
  8. data_sourcegrab_pattern_name VARCHAR(255) NOT NULL,
  9. entity_id VARCHAR(255) NOT NULL,
  10. entity_type INTEGER NOT NULL,
  11. entity_name VARCHAR(255),
  12. create_time INTEGER NOT NULL,
  13. start_time INTEGER NOT NULL,
  14. forecast_time INTEGER NOT NULL,
  15. power VARCHAR(255),
  16. power15 VARCHAR(255),
  17. power30 VARCHAR(255),
  18. power45 VARCHAR(255),
  19. power60 VARCHAR(255),
  20. power75 VARCHAR(255),
  21. power90 VARCHAR(255),
  22. power105 VARCHAR(255),
  23. power120 VARCHAR(255),
  24. power135 VARCHAR(255),
  25. power150 VARCHAR(255),
  26. power165 VARCHAR(255),
  27. power180 VARCHAR(255),
  28. power195 VARCHAR(255),
  29. power210 VARCHAR(255),
  30. power225 VARCHAR(255),
  31. power240 VARCHAR(255),
  32. CONSTRAINT data_ultra_short_term_power_forecasting_pkey PRIMARY KEY (_id)
  33. );
  34. -- 表注释
  35. COMMENT ON TABLE "public"."data_ultra_short_term_power_forecasting" IS '超短期功率预测数据表';
  36. -- 字段注释
  37. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."_id" IS '唯一标识';
  38. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."data_sourcegrab_id" IS '数据源抓取ID';
  39. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."data_sourcegrab_pattern_name" IS '数据抓取模式名称';
  40. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."entity_id" IS '实体ID';
  41. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."entity_type" IS '实体类型(场站/交易主体/省域)';
  42. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."entity_name" IS '实体名称';
  43. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."create_time" IS '创建时间';
  44. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."start_time" IS '起报时间(日期)';
  45. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."forecast_time" IS '起报时间(日期)';
  46. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power" IS '实发功率';
  47. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power15" IS 't+15min预测功率';
  48. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power30" IS 't+30min预测功率';
  49. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power45" IS 't+45min预测功率';
  50. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power60" IS 't+60min预测功率';
  51. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power75" IS 't+75min预测功率';
  52. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power90" IS 't+90min预测功率';
  53. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power105" IS 't+105min预测功率';
  54. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power120" IS 't+120min预测功率';
  55. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power135" IS 't+135min预测功率';
  56. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power150" IS 't+150min预测功率';
  57. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power165" IS 't+165min预测功率';
  58. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power180" IS 't+180min预测功率';
  59. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power195" IS 't+195min预测功率';
  60. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power210" IS 't+210min预测功率';
  61. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power225" IS 't+225min预测功率';
  62. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."power240" IS 't+240min预测功率';
  63. -- 超短期功率预报时间
  64. ALTER TABLE "public"."data_ultra_short_term_power_forecasting" ADD COLUMN IF NOT EXISTS "forecast_time" integer;
  65. COMMENT ON COLUMN "public"."data_ultra_short_term_power_forecasting"."forecast_time" IS '预报时间';
  66. CREATE SEQUENCE IF NOT EXISTS "public"."data_medium_term_power_forecast_raw__id_seq";
  67. DROP TABLE IF EXISTS "public"."data_medium_term_power_forecast_raw";
  68. CREATE TABLE "public"."data_medium_term_power_forecast_raw" (
  69. "_id" integer NOT NULL DEFAULT nextval(
  70. 'data_medium_term_power_forecast_raw__id_seq'::regclass
  71. ),
  72. "latitude" character varying(255),
  73. "longitude" character varying(255),
  74. "data_org_type" character varying(255) NOT NULL,
  75. "data_type" integer NOT NULL,
  76. "business_process_type" integer NOT NULL,
  77. "data_source" integer NOT NULL,
  78. "data_sourcegrab_id" integer NOT NULL,
  79. "data_sourcegrab_pattern_name" character varying(255) NOT NULL,
  80. "data_model_id" integer NOT NULL,
  81. "data_model_name" character varying(255) NOT NULL,
  82. "source_id" integer NOT NULL,
  83. "source_name" character varying(255) NOT NULL,
  84. "entity_id" character varying(255) NOT NULL,
  85. "entity_type" character varying(255) NOT NULL,
  86. "create_time" integer NOT NULL,
  87. "start_time" integer NOT NULL,
  88. "forecast_time" integer NOT NULL,
  89. "pre_days" integer NOT NULL,
  90. "lead_time" integer NOT NULL,
  91. "station_id" bigint,
  92. "station_name" character varying(255),
  93. "subject_id" integer,
  94. "subject_name" character varying(255),
  95. "machine_id" character varying(255),
  96. "machine_name" character varying(255),
  97. "analyze_his_id" integer,
  98. "archive_record_id" integer,
  99. "power" character varying(255)
  100. );
  101. COMMENT ON TABLE "public"."data_medium_term_power_forecast_raw" IS '中期功率原始数据表';
  102. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."_id" IS '唯一标识';
  103. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."latitude" IS '经度';
  104. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."longitude" IS '纬度';
  105. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."data_org_type" IS '数据种类:单点时间序列';
  106. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."data_type" IS '数据类型:短期气象';
  107. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."business_process_type" IS '数据业务类型:原始';
  108. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."data_source" IS '数据来源';
  109. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."data_sourcegrab_id" IS '数据源抓取ID';
  110. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."data_sourcegrab_pattern_name" IS '数据抓取模式名称';
  111. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."data_model_id" IS '数据模型ID';
  112. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."data_model_name" IS '数据模型名称';
  113. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."source_id" IS '数据源ID';
  114. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."source_name" IS '数据源名称';
  115. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."entity_id" IS '实体ID';
  116. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."entity_type" IS '实体类型';
  117. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."create_time" IS '创建时间';
  118. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."start_time" IS '起报时间';
  119. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."forecast_time" IS '预测时间';
  120. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."pre_days" IS '预报天数';
  121. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."lead_time" IS '预报时效';
  122. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."station_id" IS '场站ID';
  123. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."station_name" IS '场站名称';
  124. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."subject_id" IS '交易主题ID';
  125. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."subject_name" IS '交易主题名称';
  126. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."machine_id" IS '风机ID';
  127. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."machine_name" IS '风机名称';
  128. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."analyze_his_id" IS '文件解析ID:文件解析时存在';
  129. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."archive_record_id" IS '文件归档ID:文件解析时存在';
  130. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_raw"."power" IS '预测功率';
  131. CREATE SEQUENCE IF NOT EXISTS "public"."data_medium_term_power_forecast_issued__id_seq";
  132. DROP TABLE IF EXISTS "public"."data_medium_term_power_forecast_issued";
  133. CREATE TABLE "public"."data_medium_term_power_forecast_issued" (
  134. "_id" integer NOT NULL DEFAULT nextval(
  135. 'data_medium_term_power_forecast_issued__id_seq'::regclass
  136. ),
  137. "data_sourcegrab_id" integer NOT NULL,
  138. "data_sourcegrab_pattern_name" character varying(255) NOT NULL,
  139. "entity_id" character varying(255) NOT NULL,
  140. "entity_type" integer NOT NULL,
  141. "entity_name" character varying(255),
  142. "create_time" integer NOT NULL,
  143. "start_time" integer NOT NULL,
  144. "forecast_time" integer NOT NULL,
  145. "predays" integer NOT NULL,
  146. "power" character varying(255)
  147. );
  148. COMMENT ON TABLE "public"."data_medium_term_power_forecast_issued" IS '中期功率下发数据表';
  149. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."_id" IS '唯一标识';
  150. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."data_sourcegrab_id" IS '数据源抓取ID';
  151. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."data_sourcegrab_pattern_name" IS '数据抓取模式名称';
  152. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."entity_id" IS '实体ID';
  153. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."entity_type" IS '实体类型';
  154. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."entity_name" IS '实体名称';
  155. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."create_time" IS '创建时间';
  156. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."start_time" IS '起报时间';
  157. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."forecast_time" IS '预测时间';
  158. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."predays" IS '预报天数';
  159. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_issued"."power" IS '预测功率';
  160. CREATE SEQUENCE IF NOT EXISTS "public"."data_medium_term_power_forecast_correct__id_seq";
  161. DROP TABLE IF EXISTS "public"."data_medium_term_power_forecast_correct";
  162. CREATE TABLE "public"."data_medium_term_power_forecast_correct" (
  163. "_id" integer NOT NULL DEFAULT nextval(
  164. 'data_medium_term_power_forecast_correct__id_seq'::regclass
  165. ),
  166. "data_sourcegrab_id" integer NOT NULL,
  167. "data_sourcegrab_pattern_name" character varying(255) NOT NULL,
  168. "entity_id" character varying(255) NOT NULL,
  169. "entity_type" integer NOT NULL,
  170. "entity_name" character varying(255),
  171. "create_time" integer NOT NULL,
  172. "start_time" integer NOT NULL,
  173. "forecast_time" integer NOT NULL,
  174. "predays" integer NOT NULL,
  175. "power" character varying(255)
  176. );
  177. COMMENT ON TABLE "public"."data_medium_term_power_forecast_correct" IS '中期功率修正数据表';
  178. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."_id" IS '唯一标识';
  179. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."data_sourcegrab_id" IS '数据源抓取ID';
  180. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."data_sourcegrab_pattern_name" IS '数据抓取模式名称';
  181. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."entity_id" IS '实体ID';
  182. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."entity_type" IS '实体类型';
  183. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."entity_name" IS '实体名称';
  184. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."create_time" IS '创建时间';
  185. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."start_time" IS '起报时间';
  186. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."forecast_time" IS '预测时间';
  187. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."predays" IS '预报天数';
  188. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_correct"."power" IS '预测功率';
  189. CREATE SEQUENCE IF NOT EXISTS "public"."data_medium_term_power_forecast_report__id_seq";
  190. DROP TABLE IF EXISTS "public"."data_medium_term_power_forecast_report";
  191. CREATE TABLE "public"."data_medium_term_power_forecast_report" (
  192. "_id" integer NOT NULL DEFAULT nextval(
  193. 'data_medium_term_power_forecast_report__id_seq'::regclass
  194. ),
  195. "data_sourcegrab_id" integer NOT NULL,
  196. "data_sourcegrab_pattern_name" character varying(255) NOT NULL,
  197. "entity_id" character varying(255) NOT NULL,
  198. "entity_type" integer NOT NULL,
  199. "entity_name" character varying(255),
  200. "create_time" integer NOT NULL,
  201. "start_time" integer NOT NULL,
  202. "forecast_time" integer NOT NULL,
  203. "predays" integer NOT NULL,
  204. "power" character varying(255)
  205. );
  206. COMMENT ON TABLE "public"."data_medium_term_power_forecast_report" IS '中期功率上报数据表';
  207. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."_id" IS '唯一标识';
  208. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."data_sourcegrab_id" IS '数据源抓取ID';
  209. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."data_sourcegrab_pattern_name" IS '数据抓取模式名称';
  210. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."entity_id" IS '实体ID';
  211. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."entity_type" IS '实体类型';
  212. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."entity_name" IS '实体名称';
  213. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."create_time" IS '创建时间';
  214. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."start_time" IS '起报时间';
  215. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."forecast_time" IS '预测时间';
  216. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."predays" IS '预报天数';
  217. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_report"."power" IS '预测功率';
  218. CREATE SEQUENCE IF NOT EXISTS "public"."data_medium_term_power_forecast_back__id_seq";
  219. DROP TABLE IF EXISTS "public"."data_medium_term_power_forecast_back";
  220. CREATE TABLE "public"."data_medium_term_power_forecast_back" (
  221. "_id" integer NOT NULL DEFAULT nextval(
  222. 'data_medium_term_power_forecast_back__id_seq'::regclass
  223. ),
  224. "data_sourcegrab_id" integer NOT NULL,
  225. "data_sourcegrab_pattern_name" character varying(255) NOT NULL,
  226. "entity_id" character varying(255) NOT NULL,
  227. "entity_type" integer NOT NULL,
  228. "entity_name" character varying(255),
  229. "create_time" integer NOT NULL,
  230. "start_time" integer NOT NULL,
  231. "forecast_time" integer NOT NULL,
  232. "predays" integer NOT NULL,
  233. "power" character varying(255)
  234. );
  235. COMMENT ON TABLE "public"."data_medium_term_power_forecast_back" IS '中期功率回传数据表';
  236. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."_id" IS '唯一标识';
  237. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."data_sourcegrab_id" IS '数据源抓取ID';
  238. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."data_sourcegrab_pattern_name" IS '数据抓取模式名称';
  239. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."entity_id" IS '实体ID';
  240. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."entity_type" IS '实体类型';
  241. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."entity_name" IS '实体名称';
  242. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."create_time" IS '创建时间';
  243. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."start_time" IS '起报时间';
  244. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."forecast_time" IS '预测时间';
  245. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."predays" IS '预报天数';
  246. COMMENT ON COLUMN "public"."data_medium_term_power_forecast_back"."power" IS '预测功率';
  247. -- JSON 数组配置可能超过 dict_value 原长度(VARCHAR(100)), 扩容(可重复执行)
  248. ALTER TABLE sys_dict_data ALTER COLUMN dict_value TYPE VARCHAR(2000);
  249. ALTER TABLE "public"."sys_dict_data" ALTER COLUMN "dict_value" DROP DEFAULT,
  250. ALTER COLUMN "dict_value" TYPE character varying(1000) USING "dict_value"::character varying(1000),
  251. ALTER COLUMN "dict_value" SET DEFAULT '';
  252. -- -----------------------------------------------------
  253. -- 1. 待处理文件表 data_file_sync_files
  254. -- -----------------------------------------------------
  255. CREATE TABLE IF NOT EXISTS data_file_sync_files (
  256. id SERIAL NOT NULL,
  257. type VARCHAR(64),
  258. file VARCHAR(1024) NOT NULL,
  259. status INTEGER NOT NULL DEFAULT 0,
  260. handler VARCHAR(255),
  261. create_time TIMESTAMP NOT NULL DEFAULT now(),
  262. update_time TIMESTAMP NOT NULL DEFAULT now(),
  263. fail_reason VARCHAR(1024),
  264. process_times INTEGER NOT NULL DEFAULT 0,
  265. priority INTEGER NOT NULL DEFAULT 3,
  266. CONSTRAINT pk_data_file_sync_files PRIMARY KEY (id)
  267. );
  268. -- 文件路径查重保险(扫描任务按 file 去重插入)
  269. CREATE UNIQUE INDEX IF NOT EXISTS uk_data_file_sync_files_file ON data_file_sync_files (file);
  270. COMMENT ON TABLE data_file_sync_files IS '待处理数据文件同步';
  271. COMMENT ON COLUMN data_file_sync_files.id IS '唯一标识';
  272. COMMENT ON COLUMN data_file_sync_files.type IS '类型';
  273. COMMENT ON COLUMN data_file_sync_files.file IS '文件(完整路径)';
  274. COMMENT ON COLUMN data_file_sync_files.status IS '状态(0待处理,1处理中,2完成,99失败,-1取消)';
  275. COMMENT ON COLUMN data_file_sync_files.handler IS '处理器bean名称';
  276. COMMENT ON COLUMN data_file_sync_files.create_time IS '创建时间';
  277. COMMENT ON COLUMN data_file_sync_files.update_time IS '更新时间';
  278. COMMENT ON COLUMN data_file_sync_files.fail_reason IS '失败原因';
  279. COMMENT ON COLUMN data_file_sync_files.process_times IS '处理次数';
  280. COMMENT ON COLUMN data_file_sync_files.priority IS '优先级';
  281. -- 增加告警类别字段(幂等)
  282. ALTER TABLE alarm_event_record ADD COLUMN IF NOT EXISTS alarm_category VARCHAR(50);
  283. COMMENT ON COLUMN alarm_event_record.alarm_category IS '告警类别';