vpp_schema.sql 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777
  1. -- VPP专属业务表 DDL
  2. -- 来源: 虚拟电厂平台数据库设计文档 V1.0
  3. CREATE TABLE `vpp_customer` (
  4. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  5. `account_no` VARCHAR(32) NOT NULL COMMENT '电力户号,全局唯一',
  6. `customer_name` VARCHAR(200) NOT NULL COMMENT '客户名称',
  7. `customer_type` TINYINT NOT NULL COMMENT '1高压 2低压商用 3居民充电桩 4自有资产',
  8. `power_company` VARCHAR(50) NOT NULL COMMENT '供电公司简称',
  9. `contract_capacity` DECIMAL(12,4) NOT NULL COMMENT '用电容量 kVA/kW',
  10. `credit_status` TINYINT NULL COMMENT '1正常 2关注 3不良',
  11. `lifecycle_status` TINYINT NOT NULL COMMENT '1待准入 2已准入 3已签约 4履约中 5待续约 6已续约 7已解约',
  12. `dr_notify_minutes` INT NULL COMMENT '需求响应提前通知分钟数,默认30',
  13. `dr_up_capacity_kw` DECIMAL(12,4) NULL COMMENT '登记上调能力 kW',
  14. `dr_down_capacity_kw` DECIMAL(12,4) NULL COMMENT '登记下调能力 kW',
  15. `is_group_user` TINYINT NULL COMMENT '是否集团内用户 0否 1是',
  16. `is_green_power` TINYINT NULL COMMENT '是否绿电用户 0否 1是',
  17. `is_coop_dev_user` TINYINT NULL COMMENT '是否合作开发用户 0否 1是',
  18. `coop_partner_name` VARCHAR(200) NULL COMMENT '合作开发单位名称',
  19. `province` VARCHAR(50) NULL COMMENT '省',
  20. `city` VARCHAR(50) NULL COMMENT '市',
  21. `district` VARCHAR(50) NULL COMMENT '区',
  22. `address` VARCHAR(500) NULL COMMENT '详细地址',
  23. `business_license_url` VARCHAR(500) NULL COMMENT '营业执照附件',
  24. `remark` VARCHAR(500) NULL COMMENT '备注',
  25. `tenant_id` INT NULL COMMENT '租户ID',
  26. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  27. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  28. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  29. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  30. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  31. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  32. `is_vpp_resource` TINYINT NOT NULL COMMENT '是否虚拟电厂资源 0否 1是',
  33. `vpp_category` VARCHAR(32) NULL COMMENT '虚拟电厂分类',
  34. `dr_resource_type` VARCHAR(32) NULL COMMENT '需求响应资源分类',
  35. `vpp_proxy_code` VARCHAR(64) NULL COMMENT '虚拟电厂代理编码',
  36. `industry` VARCHAR(32) NULL COMMENT '所属行业',
  37. `industry_sector` VARCHAR(32) NULL COMMENT '所属产业',
  38. `running_capacity` DECIMAL(12,4) NULL COMMENT '运行容量 kW',
  39. `production_start_date` TIME NULL COMMENT '生产经营开始时间',
  40. `production_end_date` TIME NULL COMMENT '生产经营结束时间',
  41. `power_address` VARCHAR(500) NULL COMMENT '用电地址',
  42. `signing_date` DATETIME(3) NULL COMMENT '签约时间',
  43. PRIMARY KEY (`id`),
  44. UNIQUE KEY `uk_customer_account_no` (account_no),
  45. KEY `idx_customer_name` (customer_name),
  46. KEY `idx_customer_lifecycle` (lifecycle_status, deleted_at)
  47. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户档案';
  48. CREATE TABLE `vpp_customer_access` (
  49. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  50. `apply_no` VARCHAR(32) NOT NULL COMMENT '申请编号',
  51. `account_no` VARCHAR(32) NOT NULL COMMENT '电力户号',
  52. `customer_name` VARCHAR(200) NOT NULL COMMENT '客户名称',
  53. `customer_type` TINYINT NOT NULL COMMENT '客户类型',
  54. `power_company` VARCHAR(50) NOT NULL COMMENT '供电公司',
  55. `contract_capacity` DECIMAL(12,4) NOT NULL COMMENT '用电容量',
  56. `business_license_url` VARCHAR(500) NULL COMMENT '营业执照',
  57. `credit_status` TINYINT NULL COMMENT '信用状况',
  58. `access_status` TINYINT NOT NULL COMMENT '0待审核 1通过 2驳回',
  59. `audit_opinion` VARCHAR(500) NULL COMMENT '审核意见',
  60. `audit_at` DATETIME(3) NULL COMMENT '审核时间',
  61. `customer_id` BIGINT NULL COMMENT '关联客户ID',
  62. `apply_at` DATETIME(3) NOT NULL COMMENT '申请时间',
  63. `tenant_id` INT NULL COMMENT '租户ID',
  64. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  65. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  66. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  67. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  68. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  69. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  70. PRIMARY KEY (`id`),
  71. UNIQUE KEY `uk_access_apply_no` (apply_no),
  72. KEY `idx_access_status` (access_status, apply_at)
  73. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='准入申请';
  74. CREATE TABLE `vpp_customer_contact` (
  75. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  76. `customer_id` BIGINT NOT NULL COMMENT '客户ID',
  77. `contact_name` VARCHAR(100) NOT NULL COMMENT '联系人姓名',
  78. `contact_phone` VARCHAR(20) NOT NULL COMMENT '联系电话',
  79. `contact_email` VARCHAR(100) NULL COMMENT '邮箱',
  80. `is_primary` TINYINT NOT NULL COMMENT '是否主联系人 0否 1是',
  81. `position` VARCHAR(50) NULL COMMENT '职务',
  82. `tenant_id` INT NULL COMMENT '租户ID',
  83. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  84. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  85. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  86. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  87. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  88. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  89. PRIMARY KEY (`id`),
  90. KEY `idx_contact_customer` (customer_id)
  91. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户联系人';
  92. CREATE TABLE `vpp_contract` (
  93. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  94. `contract_no` VARCHAR(64) NOT NULL COMMENT '合同编号',
  95. `customer_id` BIGINT NOT NULL COMMENT '客户ID',
  96. `template_id` BIGINT NULL COMMENT '模板ID',
  97. `related_contract_id` BIGINT NULL COMMENT '关联合同ID',
  98. `contract_type` TINYINT NOT NULL COMMENT '1购售电 2需求响应合作 3聚合代理 4服务代理 5居民充电桩 6自有资产',
  99. `contract_name` VARCHAR(200) NOT NULL COMMENT '合同名称',
  100. `party_a` VARCHAR(200) NULL COMMENT '甲方',
  101. `party_b` VARCHAR(200) NULL COMMENT '乙方',
  102. `contract_amount` DECIMAL(18,4) NULL COMMENT '合同金额',
  103. `contract_status` TINYINT NOT NULL COMMENT '0草稿 1审核中 2已生效 3已到期 4已终止',
  104. `sign_date` DATE NULL COMMENT '签订日期',
  105. `effective_date` DATE NULL COMMENT '生效日期',
  106. `expire_date` DATE NULL COMMENT '到期日期',
  107. `file_url` VARCHAR(500) NULL COMMENT '合同文件URL',
  108. `customer_ratio` DECIMAL(6,4) NULL COMMENT '客户分成比例',
  109. `operator_ratio` DECIMAL(6,4) NULL COMMENT '运营商分成比例',
  110. `price_json` JSON NULL COMMENT '电价条款JSON',
  111. `account_info_json` JSON NULL COMMENT '分成账户信息',
  112. `remark` VARCHAR(500) NULL COMMENT '备注',
  113. `tenant_id` INT NULL COMMENT '租户ID',
  114. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  115. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  116. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  117. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  118. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  119. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  120. PRIMARY KEY (`id`),
  121. UNIQUE KEY `uk_contract_no` (contract_no),
  122. KEY `idx_contract_customer` (customer_id),
  123. KEY `idx_contract_related` (related_contract_id),
  124. KEY `idx_contract_status` (contract_status, sign_date)
  125. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同';
  126. CREATE TABLE `vpp_contract_template` (
  127. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  128. `template_code` VARCHAR(32) NOT NULL COMMENT '模板编码',
  129. `template_name` VARCHAR(200) NOT NULL COMMENT '模板名称',
  130. `contract_type` TINYINT NOT NULL COMMENT '合同类型 ',
  131. `template_kind` TINYINT NULL COMMENT '模板分类 1居间/层间 2普通/直网',
  132. `version` VARCHAR(20) NOT NULL COMMENT '版本号',
  133. `file_url` VARCHAR(500) NOT NULL COMMENT '模板文件URL',
  134. `variables_json` JSON NULL COMMENT '占位符变量定义',
  135. `is_enabled` TINYINT NOT NULL COMMENT '是否启用',
  136. `tenant_id` INT NULL COMMENT '租户ID',
  137. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  138. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  139. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  140. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  141. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  142. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  143. PRIMARY KEY (`id`),
  144. UNIQUE KEY `uk_template_code` (template_code)
  145. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同模板';
  146. CREATE TABLE `vpp_contract_audit_log` (
  147. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  148. `contract_id` BIGINT NOT NULL COMMENT '合同ID',
  149. `action` TINYINT NOT NULL COMMENT '1提交 2通过 3驳回 4归档',
  150. `opinion` VARCHAR(500) NULL COMMENT '意见',
  151. `tenant_id` INT NULL COMMENT '租户ID',
  152. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  153. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  154. PRIMARY KEY (`id`),
  155. KEY `idx_contract_audit_contract` (contract_id, create_time)
  156. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同审核流水';
  157. CREATE TABLE `vpp_resource_point` (
  158. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  159. `resource_code` VARCHAR(64) NOT NULL COMMENT '资源编号',
  160. `resource_name` VARCHAR(200) NOT NULL COMMENT '资源名称',
  161. `site_id` BIGINT NULL COMMENT '所属站点ID',
  162. `device_id` BIGINT NULL COMMENT '关联设备ID',
  163. `resource_type` VARCHAR(16) NOT NULL COMMENT 'PV/ESS/EVCS/IND_LOAD/COM_BLDG',
  164. `capacity_kw` DECIMAL(12,4) NOT NULL COMMENT '装机容量 kW',
  165. `is_control` TINYINT NULL COMMENT '是否可控 0否 1是',
  166. `is_support_peak` TINYINT NULL COMMENT '是否支持削峰 0否 1是',
  167. `is_support_fm` TINYINT NULL COMMENT '是否支持调频 0否 1是',
  168. `response_min` INT NULL COMMENT '最小响应时长 分钟',
  169. `max_up_kw` DECIMAL(12,4) NULL COMMENT '最大上调能力 kW',
  170. `min_down_kw` DECIMAL(12,4) NULL COMMENT '最小下调能力 kW',
  171. `remark` VARCHAR(500) NULL COMMENT '备注',
  172. `tenant_id` INT NULL COMMENT '租户ID',
  173. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  174. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  175. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  176. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  177. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  178. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  179. PRIMARY KEY (`id`),
  180. UNIQUE KEY `uk_resource_code` (resource_code),
  181. KEY `idx_resource_site` (site_id),
  182. KEY `idx_resource_device` (device_id),
  183. KEY `idx_resource_type_deleted` (resource_type, deleted_at)
  184. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='资源点';
  185. CREATE TABLE `vpp_site_config` (
  186. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  187. `site_id` BIGINT NOT NULL COMMENT '站点ID',
  188. `collect_interval_sec` INT NOT NULL COMMENT '采集频率秒 60/300/900',
  189. `power_upper_limit` DECIMAL(12,4) NULL COMMENT '功率上限告警',
  190. `power_lower_limit` DECIMAL(12,4) NULL COMMENT '功率下限告警',
  191. `soc_upper_limit` DECIMAL(5,2) NULL COMMENT 'SOC上限%',
  192. `soc_lower_limit` DECIMAL(5,2) NULL COMMENT 'SOC下限%',
  193. `offline_timeout_sec` INT NULL COMMENT '离线超时秒',
  194. `alarm_rule_json` JSON NULL COMMENT '扩展告警规则',
  195. `tenant_id` INT NULL COMMENT '租户ID',
  196. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  197. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  198. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  199. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  200. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  201. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  202. PRIMARY KEY (`id`),
  203. UNIQUE KEY `uk_site_config_site` (site_id)
  204. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站点运行参数';
  205. CREATE TABLE `vpp_device` (
  206. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  207. `device_code` VARCHAR(64) NOT NULL COMMENT '设备编号',
  208. `device_uuid` VARCHAR(64) NULL COMMENT '物联网设备唯一标识',
  209. `device_name` VARCHAR(200) NOT NULL COMMENT '设备名称',
  210. `site_id` BIGINT NULL COMMENT '所属站点ID',
  211. `device_type` VARCHAR(32) NOT NULL COMMENT 'INVERTER/PCS/EVCS/METER/Gateway等',
  212. `manufacturer` VARCHAR(100) NULL COMMENT '厂商',
  213. `model` VARCHAR(100) NULL COMMENT '型号',
  214. `rated_power_kw` DECIMAL(12,4) NULL COMMENT '额定功率',
  215. `firmware_version` VARCHAR(50) NULL COMMENT '固件版本',
  216. `last_online_at` DATETIME(3) NULL COMMENT '最后在线时间',
  217. `gateway_id` VARCHAR(64) NULL COMMENT 'IoT网关标识',
  218. `un_resource_id` VARCHAR(64) NULL COMMENT '运管资源ID',
  219. `remark` VARCHAR(500) NULL COMMENT '备注',
  220. `tenant_id` INT NULL COMMENT '租户ID',
  221. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  222. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  223. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  224. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  225. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  226. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  227. PRIMARY KEY (`id`),
  228. UNIQUE KEY `uk_device_code` (device_code),
  229. UNIQUE KEY `uk_device_un_resource_id` (`un_resource_id`),
  230. KEY `idx_device_uuid` (device_uuid),
  231. KEY `idx_device_site` (site_id)
  232. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='设备';
  233. CREATE TABLE `vpp_device_control_log` (
  234. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  235. `device_id` BIGINT NOT NULL COMMENT '设备ID',
  236. `control_type` VARCHAR(32) NOT NULL COMMENT 'START/STOP/CONFIG/OTA',
  237. `control_params` JSON NULL COMMENT '控制参数',
  238. `control_result` TINYINT NOT NULL COMMENT '0失败 1成功 2执行中',
  239. `result_message` VARCHAR(500) NULL COMMENT '结果说明',
  240. `tenant_id` INT NULL COMMENT '租户ID',
  241. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  242. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  243. PRIMARY KEY (`id`),
  244. KEY `idx_control_device` (device_id, create_time)
  245. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='设备远程控制日志';
  246. CREATE TABLE `vpp_energy_reading_monthly` (
  247. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  248. `customer_id` BIGINT NOT NULL COMMENT '客户ID',
  249. `site_id` BIGINT NULL COMMENT '站点ID,可空表示户号级',
  250. `settle_year` VARCHAR(4) NOT NULL COMMENT '结算年',
  251. `settle_month` TINYINT NOT NULL COMMENT '结算月',
  252. `total_energy_kwh` DECIMAL(18,4) NOT NULL COMMENT '总用电量 kWh',
  253. `peak_energy_kwh` DECIMAL(18,4) NULL COMMENT '峰电量',
  254. `flat_energy_kwh` DECIMAL(18,4) NULL COMMENT '平电量',
  255. `valley_energy_kwh` DECIMAL(18,4) NULL COMMENT '谷电量',
  256. `sharp_energy_kwh` DECIMAL(18,4) NULL COMMENT '尖电量',
  257. `gen_energy_kwh` DECIMAL(18,4) NULL COMMENT '发电量 kWh',
  258. `calc_status` TINYINT NOT NULL COMMENT '0待核算 1已核算 2异常',
  259. `calc_at` DATETIME(3) NULL COMMENT '核算时间',
  260. `tenant_id` INT NULL COMMENT '租户ID',
  261. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  262. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  263. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  264. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  265. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  266. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  267. PRIMARY KEY (`id`),
  268. UNIQUE KEY `uk_energy_monthly` (customer_id, site_id, settle_year, settle_month),
  269. KEY `idx_energy_period` (settle_year, settle_month)
  270. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='月度电量核算';
  271. CREATE TABLE `vpp_energy_summary_daily` (
  272. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  273. `summary_date` DATE NOT NULL COMMENT '汇总日期',
  274. `resource_id` BIGINT NULL COMMENT '资源点ID,NULL表示全站',
  275. `resource_type` VARCHAR(16) NULL COMMENT '资源类型',
  276. `gen_energy_kwh` DECIMAL(18,4) NULL COMMENT '发电量',
  277. `use_energy_kwh` DECIMAL(18,4) NULL COMMENT '用电量',
  278. `green_ratio` DECIMAL(5,2) NULL COMMENT '绿电消纳比例%',
  279. `max_power_kw` DECIMAL(12,4) NULL COMMENT '日最大有功功率',
  280. `avg_power_kw` DECIMAL(12,4) NULL COMMENT '日平均有功功率',
  281. `tenant_id` INT NULL COMMENT '租户ID',
  282. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  283. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  284. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  285. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  286. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  287. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  288. PRIMARY KEY (`id`),
  289. UNIQUE KEY `uk_summary_daily` (summary_date, resource_id),
  290. KEY `idx_summary_date` (summary_date)
  291. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='日度能源汇总';
  292. CREATE TABLE `vpp_settlement_bill` (
  293. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  294. `bill_no` VARCHAR(64) NOT NULL COMMENT '账单编号',
  295. `customer_id` BIGINT NOT NULL COMMENT '客户ID',
  296. `site_id` BIGINT NULL COMMENT '站点ID,可空表示户号级',
  297. `settle_year` VARCHAR(4) NOT NULL COMMENT '结算年',
  298. `settle_month` TINYINT NOT NULL COMMENT '结算月',
  299. `total_energy_kwh` DECIMAL(18,4) NOT NULL COMMENT '总用电量',
  300. `total_amount` DECIMAL(18,4) NOT NULL COMMENT '应付金额',
  301. `paid_amount` DECIMAL(18,4) NOT NULL COMMENT '已付金额,默认0',
  302. `payment_status` TINYINT NOT NULL COMMENT '0未缴 1部分 2已缴 3逾期',
  303. `due_date` DATE NULL COMMENT '缴费截止日期',
  304. `bill_file_url` VARCHAR(500) NULL COMMENT '账单PDF',
  305. `generated_at` DATETIME(3) NULL COMMENT '生成时间',
  306. `tenant_id` INT NULL COMMENT '租户ID',
  307. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  308. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  309. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  310. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  311. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  312. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  313. PRIMARY KEY (`id`),
  314. UNIQUE KEY `uk_bill_no` (bill_no),
  315. KEY `idx_bill_customer` (customer_id, settle_year, settle_month),
  316. KEY `idx_bill_payment` (payment_status)
  317. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='电费账单';
  318. CREATE TABLE `vpp_settlement_bill_detail` (
  319. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  320. `bill_id` BIGINT NOT NULL COMMENT '账单ID',
  321. `time_period` TINYINT NOT NULL COMMENT '1尖 2峰 3平 4谷',
  322. `energy_kwh` DECIMAL(18,4) NOT NULL COMMENT '时段电量',
  323. `price` DECIMAL(10,4) NOT NULL COMMENT '时段电价',
  324. `amount` DECIMAL(18,4) NOT NULL COMMENT '时段金额',
  325. `tenant_id` INT NULL COMMENT '租户ID',
  326. PRIMARY KEY (`id`),
  327. KEY `idx_bill_detail_bill` (bill_id)
  328. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='账单分时明细';
  329. CREATE TABLE `vpp_payment_record` (
  330. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  331. `bill_id` BIGINT NOT NULL COMMENT '账单ID',
  332. `payment_amount` DECIMAL(18,4) NOT NULL COMMENT '缴费金额',
  333. `payment_method` TINYINT NOT NULL COMMENT '1线下转账 2电费抵扣 3其他',
  334. `payment_date` DATE NOT NULL COMMENT '缴费日期',
  335. `voucher_url` VARCHAR(500) NULL COMMENT '缴费凭证',
  336. `remark` VARCHAR(500) NULL COMMENT '对账备注',
  337. `tenant_id` INT NULL COMMENT '租户ID',
  338. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  339. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  340. PRIMARY KEY (`id`),
  341. KEY `idx_payment_bill` (bill_id)
  342. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='缴费记录';
  343. CREATE TABLE `vpp_report_task` (
  344. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  345. `task_no` VARCHAR(64) NOT NULL COMMENT '任务编号',
  346. `task_name` VARCHAR(200) NOT NULL COMMENT '任务名称',
  347. `report_org` TINYINT NOT NULL COMMENT '1交易中心 2能监局 3经信委 4国网上海',
  348. `report_cycle` TINYINT NOT NULL COMMENT '1月报 2年报 3临时',
  349. `report_type` VARCHAR(64) NOT NULL COMMENT '报表类型编码',
  350. `deadline` DATETIME(3) NOT NULL COMMENT '截止日期',
  351. `task_status` TINYINT NOT NULL COMMENT '0待填报 1待审核 2报送中 3已完成 4已逾期',
  352. `assignee_id` BIGINT NULL COMMENT '填报人',
  353. `remind_days` INT NULL COMMENT '提前提醒天数',
  354. `site_ids` JSON NULL COMMENT '关联站点ID列表',
  355. `tenant_id` INT NULL COMMENT '租户ID',
  356. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  357. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  358. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  359. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  360. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  361. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  362. PRIMARY KEY (`id`),
  363. UNIQUE KEY `uk_report_task_no` (task_no),
  364. KEY `idx_report_task_status` (task_status, deadline)
  365. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='报送任务';
  366. CREATE TABLE `vpp_report_record` (
  367. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  368. `task_id` BIGINT NOT NULL COMMENT '任务ID',
  369. `record_no` VARCHAR(64) NOT NULL COMMENT '报送记录编号',
  370. `report_period` VARCHAR(32) NOT NULL COMMENT '报送周期标识 如2026-05',
  371. `submit_mode` TINYINT NOT NULL COMMENT '1接口推送 2手动上传',
  372. `record_status` TINYINT NOT NULL COMMENT '0草稿 1待审核 2报送中 3成功 4失败',
  373. `report_file_url` VARCHAR(500) NULL COMMENT '报送文件',
  374. `receipt_file_url` VARCHAR(500) NULL COMMENT '官方回执',
  375. `retry_count` TINYINT NOT NULL COMMENT '重试次数,默认0',
  376. `submitted_at` DATETIME(3) NULL COMMENT '报送时间',
  377. `archived_at` DATETIME(3) NULL COMMENT '归档时间',
  378. `tenant_id` INT NULL COMMENT '租户ID',
  379. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  380. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  381. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  382. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  383. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  384. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  385. PRIMARY KEY (`id`),
  386. UNIQUE KEY `uk_report_record_no` (record_no),
  387. KEY `idx_report_record_task` (task_id),
  388. KEY `idx_report_record_period` (report_period)
  389. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='报送记录';
  390. CREATE TABLE `vpp_report_data` (
  391. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  392. `record_id` BIGINT NOT NULL COMMENT '报送记录ID',
  393. `form_data` JSON NOT NULL COMMENT '填报表单JSON',
  394. `validation_errors` JSON NULL COMMENT '校验异常项',
  395. `is_draft` TINYINT NOT NULL COMMENT '是否草稿',
  396. `tenant_id` INT NULL COMMENT '租户ID',
  397. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  398. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  399. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  400. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  401. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  402. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  403. PRIMARY KEY (`id`),
  404. UNIQUE KEY `uk_report_data_record` (record_id)
  405. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='报送填报数据';
  406. CREATE TABLE `vpp_report_audit_log` (
  407. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  408. `record_id` BIGINT NOT NULL COMMENT '报送记录ID',
  409. `audit_level` TINYINT NOT NULL COMMENT '1填报 2复核 3审批',
  410. `action` TINYINT NOT NULL COMMENT '1提交 2通过 3驳回',
  411. `opinion` VARCHAR(500) NULL COMMENT '意见',
  412. `operator_ip` VARCHAR(64) NULL COMMENT '操作IP',
  413. `tenant_id` INT NULL COMMENT '租户ID',
  414. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  415. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  416. PRIMARY KEY (`id`),
  417. KEY `idx_report_audit_record` (record_id, create_time)
  418. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='报送审核流水';
  419. CREATE TABLE `vpp_dr_event` (
  420. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  421. `event_id` VARCHAR(64) NOT NULL COMMENT '运管平台事件ID',
  422. `event_name` VARCHAR(200) NULL COMMENT '事件名称',
  423. `response_type` TINYINT NOT NULL COMMENT '1日前 2日内 3秒级',
  424. `event_type` TINYINT NULL COMMENT '1削峰 2填谷',
  425. `start_time` DATETIME(3) NOT NULL COMMENT '响应开始',
  426. `end_time` DATETIME(3) NOT NULL COMMENT '响应结束',
  427. `declare_deadline` DATETIME(3) NULL COMMENT '申报截止时间',
  428. `invite_scope` VARCHAR(500) NULL COMMENT '邀约范围',
  429. `target_capacity_kw` DECIMAL(12,4) NOT NULL COMMENT '邀约规模 kW',
  430. `cleared_capacity_kw` DECIMAL(12,4) NULL COMMENT '出清规模 kW',
  431. `remark` VARCHAR(500) NULL COMMENT '备注',
  432. `attachment_url` VARCHAR(500) NULL COMMENT '附件URL',
  433. `attachment_name` VARCHAR(200) NULL COMMENT '附件名称',
  434. `subsidy_price` DECIMAL(10,4) NULL COMMENT '补贴标准 元/kWh',
  435. `floating_coefficient` DECIMAL(10,4) NULL COMMENT '下浮系数',
  436. `event_status` TINYINT NOT NULL COMMENT '0待参与 1已申报 2申报完成 3执行中 4已结束 5已取消',
  437. `raw_payload` JSON NULL COMMENT '原始邀约报文',
  438. `tenant_id` INT NULL COMMENT '租户ID',
  439. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  440. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  441. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  442. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  443. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  444. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  445. PRIMARY KEY (`id`),
  446. UNIQUE KEY `uk_dr_event_id` (event_id),
  447. KEY `idx_dr_event_time` (start_time, event_status)
  448. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='需求响应事件';
  449. CREATE TABLE `vpp_dr_participation` (
  450. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  451. `event_id` BIGINT NOT NULL COMMENT '事件ID',
  452. `customer_id` BIGINT NOT NULL COMMENT '客户ID',
  453. `resource_id` BIGINT NULL COMMENT '资源点ID',
  454. `participate_status` TINYINT NOT NULL COMMENT '0待确认 1参与 2拒绝',
  455. `declared_capacity_kw` DECIMAL(12,4) NULL COMMENT '申报出清容量',
  456. `cleared_capacity_kw` DECIMAL(12,4) NULL COMMENT '出清容量',
  457. `completion_rate` DECIMAL(12,4) NULL COMMENT '完成率=出清容量/申报出清容量',
  458. `declared_at` DATETIME(3) NULL COMMENT '申报时间',
  459. `tenant_id` INT NULL COMMENT '租户ID',
  460. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  461. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  462. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  463. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  464. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  465. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  466. PRIMARY KEY (`id`),
  467. KEY `idx_dr_part_event` (event_id),
  468. UNIQUE KEY `uk_dr_part` (event_id, customer_id, resource_id)
  469. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='事件参与记录';
  470. CREATE TABLE `vpp_dr_invitation` (
  471. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  472. `invitation_no` VARCHAR(32) NOT NULL COMMENT '邀约编号',
  473. `dr_event_id` BIGINT NOT NULL COMMENT '需求响应事件ID',
  474. `customer_id` BIGINT NOT NULL COMMENT '客户ID',
  475. `site_id` BIGINT NULL COMMENT '站点ID',
  476. `execute_start_date` DATE NOT NULL COMMENT '执行开始日期',
  477. `execute_end_date` DATE NOT NULL COMMENT '执行结束日期',
  478. `reply_deadline` DATETIME(3) NOT NULL COMMENT '邀约回复截止日期',
  479. `issue_time` DATETIME(3) NOT NULL COMMENT '下发时间',
  480. `transaction_type` TINYINT NULL COMMENT '交易类型 1削峰 2填谷',
  481. `response_type` TINYINT NOT NULL COMMENT '1日前 2日内 3秒级',
  482. `demand_capacity_kw` DECIMAL(12,4) NOT NULL COMMENT '需求容量/邀约规模 kW',
  483. `declared_capacity_kw` DECIMAL(12,4) NULL COMMENT '申报出清容量 kW',
  484. `actual_cleared_capacity_kw` DECIMAL(12,4) NULL COMMENT '实际出清 kW(电网审核通过)',
  485. `estimated_response_capacity_kw` DECIMAL(12,4) NULL COMMENT '预估响应容量 kW(响应完成后本平台评估)',
  486. `estimated_completion_rate` DECIMAL(12,2) NULL COMMENT '预估完成率=预估响应容量/实际出清',
  487. `actual_response_capacity_kw` DECIMAL(12,4) NULL COMMENT '实际响应容量 kW(电网评估最终结果)',
  488. `response_completion_rate` DECIMAL(12,2) NULL COMMENT '响应完成率=实际响应容量/实际出清',
  489. `is_winning_bid` TINYINT NULL COMMENT '是否中标 0否 1是',
  490. `reply_status` TINYINT NOT NULL COMMENT '0待回复 1参与 2拒绝 3超时',
  491. `response_status` TINYINT NOT NULL COMMENT '0待参与 1已申报 2申报完成 3执行中 4已结束 5已取消',
  492. `sms_notify_status` TINYINT NOT NULL DEFAULT 0 COMMENT '0未发送 1已发送 2发送失败',
  493. `sms_notify_at` DATETIME(3) NULL COMMENT '短信通知时间',
  494. `sms_contact_id` BIGINT NULL COMMENT '通知联系人ID',
  495. `participation_id` BIGINT NULL COMMENT '关联参与记录ID',
  496. `remark` VARCHAR(500) NULL COMMENT '备注',
  497. `tenant_id` INT NULL COMMENT '租户ID',
  498. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  499. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  500. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  501. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  502. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  503. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  504. PRIMARY KEY (`id`),
  505. UNIQUE KEY `uk_dr_invitation_no` (invitation_no),
  506. UNIQUE KEY `uk_dr_invitation_event_customer` (dr_event_id, customer_id),
  507. KEY `idx_dr_invitation_customer` (customer_id, reply_status),
  508. KEY `idx_dr_invitation_issue` (issue_time, response_type)
  509. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='需求响应企业邀约';
  510. CREATE TABLE `vpp_dr_strategy` (
  511. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  512. `strategy_code` VARCHAR(64) NOT NULL COMMENT '策略编码',
  513. `strategy_name` VARCHAR(200) NOT NULL COMMENT '策略名称',
  514. `response_type` TINYINT NOT NULL COMMENT '适用响应类型',
  515. `adjust_step_kw` DECIMAL(12,4) NULL COMMENT '调节步长 kW',
  516. `execute_mode` TINYINT NOT NULL COMMENT '1并行 2串行',
  517. `strategy_config` JSON NULL COMMENT '策略扩展配置',
  518. `is_default` TINYINT NOT NULL COMMENT '是否默认策略',
  519. `is_enabled` TINYINT NOT NULL COMMENT '是否启用',
  520. `tenant_id` INT NULL COMMENT '租户ID',
  521. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  522. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  523. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  524. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  525. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  526. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  527. PRIMARY KEY (`id`),
  528. UNIQUE KEY `uk_dr_strategy_code` (strategy_code)
  529. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='响应策略';
  530. CREATE TABLE `vpp_dr_strategy_resource` (
  531. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  532. `strategy_id` BIGINT NOT NULL COMMENT '策略ID',
  533. `resource_id` BIGINT NOT NULL COMMENT '资源点ID',
  534. `priority` TINYINT NOT NULL COMMENT '优先级序号',
  535. `max_adjust_kw` DECIMAL(12,4) NULL COMMENT '最大调节量',
  536. `tenant_id` INT NULL COMMENT '租户ID',
  537. PRIMARY KEY (`id`),
  538. UNIQUE KEY `uk_strategy_resource` (strategy_id, resource_id),
  539. KEY `idx_strategy_resource_priority` (strategy_id, priority)
  540. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='策略-资源关联';
  541. CREATE TABLE `vpp_dr_execution` (
  542. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  543. `event_id` BIGINT NOT NULL COMMENT '事件ID',
  544. `resource_id` BIGINT NOT NULL COMMENT '资源点ID',
  545. `target_kw` DECIMAL(12,4) NOT NULL COMMENT '目标调节量',
  546. `actual_kw` DECIMAL(12,4) NULL COMMENT '实际调节量',
  547. `execute_status` TINYINT NOT NULL COMMENT '0待执行 1执行中 2完成 3异常',
  548. `started_at` DATETIME(3) NULL COMMENT '开始时间',
  549. `finished_at` DATETIME(3) NULL COMMENT '结束时间',
  550. `tenant_id` INT NULL COMMENT '租户ID',
  551. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  552. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  553. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  554. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  555. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  556. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  557. PRIMARY KEY (`id`),
  558. KEY `idx_dr_exec_event` (event_id),
  559. KEY `idx_dr_exec_resource` (resource_id)
  560. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='响应执行明细';
  561. CREATE TABLE `vpp_dr_evaluation` (
  562. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  563. `event_id` BIGINT NOT NULL COMMENT '事件ID',
  564. `actual_capacity_kw` DECIMAL(12,4) NULL COMMENT '实际响应容量',
  565. `response_duration_min` INT NULL COMMENT '响应时长分钟',
  566. `subsidy_amount` DECIMAL(18,4) NULL COMMENT '补贴金额',
  567. `qualified_rate` DECIMAL(5,2) NULL COMMENT '执行合格率%',
  568. `report_file_url` VARCHAR(500) NULL COMMENT '评估报告URL',
  569. `evaluated_at` DATETIME(3) NULL COMMENT '评估时间',
  570. `tenant_id` INT NULL COMMENT '租户ID',
  571. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  572. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  573. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  574. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  575. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  576. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  577. PRIMARY KEY (`id`),
  578. UNIQUE KEY `uk_dr_eval_event` (event_id)
  579. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='响应效果评估';
  580. CREATE TABLE `vpp_registration` (
  581. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  582. `dn_id` VARCHAR(64) NOT NULL COMMENT '虚拟电厂运营商ID',
  583. `registration_id` VARCHAR(128) NOT NULL COMMENT '运管平台registrationID',
  584. `reg_status` TINYINT NOT NULL COMMENT '0未注册 1已注册 2需重新注册',
  585. `registered_at` DATETIME(3) NULL COMMENT '注册时间',
  586. `meta_report_id` VARCHAR(128) NULL COMMENT '元数据报告ID',
  587. `tenant_id` INT NULL COMMENT '租户ID',
  588. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  589. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  590. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  591. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  592. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  593. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  594. PRIMARY KEY (`id`),
  595. UNIQUE KEY `uk_vpp_dn_id` (dn_id)
  596. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='运管平台注册信息';
  597. CREATE TABLE `vpp_report_log` (
  598. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  599. `report_type` VARCHAR(64) NOT NULL COMMENT 'MomentData/IntervalData/RegisterReport等',
  600. `request_id` VARCHAR(64) NULL COMMENT '请求ID',
  601. `report_status` TINYINT NOT NULL COMMENT '0失败 1成功',
  602. `response_code` INT NULL COMMENT '响应码',
  603. `error_message` VARCHAR(500) NULL COMMENT '错误信息',
  604. `payload_size` INT NULL COMMENT '报文大小字节',
  605. `reported_at` DATETIME(3) NOT NULL COMMENT '上报时间',
  606. `tenant_id` INT NULL COMMENT '租户ID',
  607. PRIMARY KEY (`id`),
  608. KEY `idx_vpp_report_type_time` (report_type, reported_at)
  609. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='数据上报日志';
  610. CREATE TABLE `vpp_site` (
  611. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  612. `site_code` VARCHAR(64) NOT NULL COMMENT '站点编号',
  613. `site_name` VARCHAR(200) NOT NULL COMMENT '站点名称',
  614. `customer_id` BIGINT NOT NULL COMMENT '客户ID',
  615. `province` VARCHAR(50) NULL COMMENT '省',
  616. `city` VARCHAR(50) NULL COMMENT '市',
  617. `district` VARCHAR(50) NULL COMMENT '区县',
  618. `address` VARCHAR(500) NULL COMMENT '地址',
  619. `longitude` DECIMAL(10,6) NULL COMMENT '经度',
  620. `latitude` DECIMAL(10,6) NULL COMMENT '纬度',
  621. `owner_name` VARCHAR(200) NULL COMMENT '业主名称',
  622. `contact_name` VARCHAR(100) NULL COMMENT '联系人',
  623. `contact_phone` VARCHAR(20) NULL COMMENT '联系电话',
  624. `response_priority` INT NULL COMMENT '响应优先级',
  625. `un_resource_id` VARCHAR(64) NULL COMMENT '运管平台资源ID',
  626. `remark` VARCHAR(500) NULL COMMENT '备注',
  627. `tenant_id` INT NULL COMMENT '租户ID',
  628. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  629. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  630. `created_by` BIGINT NULL COMMENT '创建人',
  631. `updated_by` BIGINT NULL COMMENT '更新人',
  632. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  633. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  634. `account_no` VARCHAR(32) NULL COMMENT '电力户号',
  635. `street_town` VARCHAR(100) NULL COMMENT '街道乡镇',
  636. `avg_completion_rate` DECIMAL(12,4) NULL COMMENT '平均完成率',
  637. `run_status` INT NULL COMMENT '运行状态',
  638. PRIMARY KEY (`id`),
  639. UNIQUE KEY `uk_site_code` (`site_code`),
  640. KEY `idx_site_customer` (`customer_id`),
  641. KEY `idx_site_region` (`province`, `city`, `district`)
  642. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站点';
  643. CREATE TABLE `vpp_dr_subsidy_prediction` (
  644. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  645. `invitation_id` BIGINT NULL COMMENT '邀约ID',
  646. `dr_event_id` BIGINT NULL COMMENT '需求响应事件ID',
  647. `site_id` BIGINT NULL COMMENT '站点ID',
  648. `site_name` VARCHAR(200) NULL COMMENT '站点名称',
  649. `customer_id` BIGINT NULL COMMENT '企业/客户ID',
  650. `customer_name` VARCHAR(200) NULL COMMENT '企业名称',
  651. `event_start_time` DATETIME(3) NULL COMMENT '事件开始时间',
  652. `event_end_time` DATETIME(3) NULL COMMENT '事件结束时间',
  653. `response_duration_min` INT NULL COMMENT '响应时长 分钟',
  654. `subsidy_price` DECIMAL(5,2) NULL COMMENT '补贴单价',
  655. `estimated_capacity_kw` DECIMAL(12,2) NULL COMMENT '预估响应容量 kW',
  656. `cleared_capacity_kw` DECIMAL(12,2) NULL COMMENT '出清容量 kW',
  657. `actual_response_grid_kw` DECIMAL(12,2) NULL COMMENT '电网实际响应容量 kW',
  658. `actual_response_platform_kw` DECIMAL(12,2) NULL COMMENT '平台实际响应容量 kW',
  659. `declared_cleared_kw` DECIMAL(12,2) NULL COMMENT '申报出清容量 kW',
  660. `share_ratio` DECIMAL(6,4) NULL COMMENT '分成比例',
  661. `price_adjustment_coefficient` DECIMAL(12,4) NULL COMMENT '价格调整系数',
  662. `completion_rate` DECIMAL(12,4) NULL COMMENT '完成率(百分比)=平台实际响应量/申报出清量×100',
  663. `deviation_rate` DECIMAL(12,4) NULL COMMENT '偏差率(百分比)=(电网实际响应量-平台实际响应量)/申报出清量×100',
  664. `estimated_subsidy_amount` DECIMAL(18,4) NULL COMMENT '预估补贴金额',
  665. `tenant_id` INT NULL COMMENT '租户ID',
  666. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  667. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  668. PRIMARY KEY (`id`),
  669. KEY `idx_subsidy_prediction_invitation` (`invitation_id`),
  670. KEY `idx_subsidy_prediction_event_site` (`dr_event_id`, `site_id`),
  671. KEY `idx_subsidy_prediction_customer` (`customer_id`, `customer_name`)
  672. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='需求响应补贴预测';
  673. CREATE TABLE `vpp_response_deviation_price` (
  674. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  675. `coeff_lower` DECIMAL(5,2) NULL COMMENT '响应量系数下限,NULL表示无下界',
  676. `coeff_upper` DECIMAL(5,2) NULL COMMENT '响应量系数上限,NULL表示无上界',
  677. `lower_inclusive` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '下限是否闭区间 1闭 0开',
  678. `upper_inclusive` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '上限是否闭区间 1闭 0开',
  679. `price_adjustment_coefficient` DECIMAL(5,2) NOT NULL COMMENT '价格调整系数',
  680. `remark` VARCHAR(500) NULL COMMENT '备注',
  681. `tenant_id` INT NULL COMMENT '租户ID',
  682. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  683. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  684. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  685. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  686. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  687. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  688. PRIMARY KEY (`id`),
  689. KEY `idx_response_deviation_price_tenant` (`tenant_id`, `delete_flag`),
  690. KEY `idx_response_deviation_price_bounds` (`coeff_lower`, `coeff_upper`),
  691. KEY `idx_response_deviation_price_deleted` (`delete_flag`)
  692. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='响应量偏差价格调整表';
  693. CREATE TABLE vpp_file_archive (
  694. id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  695. archive_name VARCHAR(200) NOT NULL COMMENT '档案名称',
  696. file_name VARCHAR(255) NOT NULL COMMENT '原始文件名',
  697. file_url VARCHAR(500) NOT NULL COMMENT '存储路径',
  698. archive_type TINYINT NOT NULL COMMENT '档案类型',
  699. file_type VARCHAR(32) NULL COMMENT '文件类型',
  700. file_size DOUBLE NULL COMMENT '文件大小 KB',
  701. biz_type VARCHAR(32) NULL COMMENT '业务类型',
  702. biz_id BIGINT NULL COMMENT '业务主键',
  703. site_id BIGINT NOT NULL COMMENT '站点ID',
  704. remark VARCHAR(500) NULL COMMENT '备注',
  705. tenant_id INT NULL COMMENT '租户ID',
  706. create_time DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  707. update_time DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  708. created_by VARCHAR(30) NULL COMMENT '上传人',
  709. updated_by VARCHAR(30) NULL COMMENT '更新人',
  710. delete_flag INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  711. deleted_at DATETIME(3) NULL COMMENT '软删除时间',
  712. version VARCHAR(20) NULL DEFAULT 'V1.0' COMMENT '版本号',
  713. PRIMARY KEY (id),
  714. KEY idx_file_archive_biz (biz_type, biz_id),
  715. KEY idx_file_archive_site (site_id)
  716. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='电子档案';
  717. CREATE TABLE `vpp_bidding_config` (
  718. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  719. `config_name` VARCHAR(200) NOT NULL COMMENT '配置名称',
  720. `effective_start` DATETIME(3) NOT NULL COMMENT '适用开始时间',
  721. `effective_end` DATETIME(3) NOT NULL COMMENT '适用结束时间',
  722. `attachment_url` VARCHAR(500) NULL COMMENT '附件URL',
  723. `attachment_name` VARCHAR(200) NULL COMMENT '附件原始文件名',
  724. `bidding_mode` TINYINT NOT NULL COMMENT '1分时段竞价 2整体竞价',
  725. `typical_coefficient` DECIMAL(6,4) NOT NULL COMMENT '典型系数',
  726. `notice_min_hours` decimal(5,1) DEFAULT NULL COMMENT '提前通知最小小时数(下限,不含本值,如 8 表示 >8)',
  727. `notice_max_hours` decimal(5,1) DEFAULT NULL COMMENT '提前通知最大小时数(上限,含本值,如 24 表示 ≤24)',
  728. `max_price` DECIMAL(12,4) NOT NULL COMMENT '最高价格(元)',
  729. `min_price` DECIMAL(12,4) NOT NULL COMMENT '最低价格(元)',
  730. `tenant_id` INT NULL COMMENT '租户ID',
  731. `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  732. `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  733. `created_by` VARCHAR(30) NULL COMMENT '创建人',
  734. `updated_by` VARCHAR(30) NULL COMMENT '更新人',
  735. `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标识 0未删除 1已删除',
  736. `deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
  737. PRIMARY KEY (`id`),
  738. KEY `idx_bidding_config_effective` (effective_start, effective_end),
  739. KEY `idx_bidding_config_name` (config_name)
  740. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞价配置';
  741. -- 已有库升级:设备表新增运管资源ID(全局唯一,NULL 不参与唯一冲突)
  742. -- ALTER TABLE `vpp_device` ADD COLUMN `un_resource_id` VARCHAR(64) NULL COMMENT '运管资源ID' AFTER `gateway_id`;
  743. -- ALTER TABLE `vpp_device` ADD UNIQUE KEY `uk_device_un_resource_id` (`un_resource_id`);