智慧水务管理系统 - 精河县供水工程综合管理平台

bi_forecast_ddl.sql 4.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. -- ============================================================
  2. -- 需水量预测 + 调度推荐 DDL
  3. -- ============================================================
  4. -- 1. 历史需水量数据表
  5. CREATE TABLE IF NOT EXISTS bi_historical_water_demand (
  6. id BIGSERIAL PRIMARY KEY,
  7. area_code VARCHAR(32) NOT NULL, -- 区域编码
  8. area_name VARCHAR(64), -- 区域名称
  9. record_date DATE NOT NULL, -- 日期
  10. volume DECIMAL(12,2), -- 需水量(m³)
  11. max_temp DECIMAL(5,1), -- 最高温度(℃)
  12. min_temp DECIMAL(5,1), -- 最低温度(℃)
  13. weather VARCHAR(16), -- 天气: sunny/cloudy/rainy/snowy
  14. rainfall DECIMAL(8,1), -- 降雨量(mm)
  15. is_holiday BOOLEAN DEFAULT FALSE, -- 是否节假日
  16. day_of_week INTEGER, -- 星期几(1=周一,7=周日)
  17. data_source VARCHAR(16) DEFAULT 'METER', -- 数据来源: METER/ESTIMATED/SIMULATED
  18. deleted INTEGER DEFAULT 0,
  19. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  20. updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  21. );
  22. COMMENT ON TABLE bi_historical_water_demand IS '历史需水量数据';
  23. CREATE INDEX IF NOT EXISTS idx_hwd_area_date ON bi_historical_water_demand(area_code, record_date);
  24. -- 2. 需水量预测记录表
  25. CREATE TABLE IF NOT EXISTS bi_water_demand_forecast (
  26. id BIGSERIAL PRIMARY KEY,
  27. area_code VARCHAR(32) NOT NULL, -- 区域编码
  28. area_name VARCHAR(64), -- 区域名称
  29. forecast_date DATE NOT NULL, -- 预测日期
  30. forecast_volume DECIMAL(12,2), -- 预测水量(m³)
  31. actual_volume DECIMAL(12,2), -- 实际水量(用于评估)
  32. model_type VARCHAR(32) NOT NULL, -- 模型类型: MOVING_AVERAGE/EXPONENTIAL_SMOOTHING/SEASONAL_DECOMPOSITION
  33. model_params TEXT, -- 模型参数JSON
  34. mae DECIMAL(10,2), -- 平均绝对误差
  35. rmse DECIMAL(10,2), -- 均方根误差
  36. mape DECIMAL(8,2), -- 平均绝对百分比误差(%)
  37. confidence DECIMAL(5,4), -- 置信度(0-1)
  38. lower_bound DECIMAL(12,2), -- 置信区间下限
  39. upper_bound DECIMAL(12,2), -- 置信区间上限
  40. generate_time TIMESTAMP, -- 预测生成时间
  41. remark VARCHAR(255),
  42. deleted INTEGER DEFAULT 0,
  43. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  44. updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  45. );
  46. COMMENT ON TABLE bi_water_demand_forecast IS '需水量预测记录';
  47. CREATE INDEX IF NOT EXISTS idx_forecast_area_date ON bi_water_demand_forecast(area_code, forecast_date);
  48. CREATE INDEX IF NOT EXISTS idx_forecast_model ON bi_water_demand_forecast(model_type);
  49. -- 3. 调度推荐方案表
  50. CREATE TABLE IF NOT EXISTS bi_scheduling_recommendation (
  51. id BIGSERIAL PRIMARY KEY,
  52. forecast_id BIGINT, -- 关联预测ID
  53. scheme_name VARCHAR(128) NOT NULL, -- 方案名称
  54. scheme_type VARCHAR(16) NOT NULL, -- 方案类型: NORMAL/PEAK_SHIFT/EMERGENCY
  55. description TEXT, -- 方案描述
  56. pump_combination TEXT, -- 泵站组合JSON
  57. estimated_saving DECIMAL(12,2), -- 预计节水量(m³)
  58. estimated_energy_saving DECIMAL(12,2), -- 预计节能(kWh)
  59. score DECIMAL(6,1), -- 方案评分(0-100)
  60. execute_start TIMESTAMP, -- 执行时间窗口-开始
  61. execute_end TIMESTAMP, -- 执行时间窗口-结束
  62. risk_level VARCHAR(8), -- 风险等级: LOW/MEDIUM/HIGH
  63. status VARCHAR(16) DEFAULT 'PENDING', -- 状态: PENDING/ACCEPTED/EXECUTING/COMPLETED/REJECTED
  64. remark VARCHAR(255),
  65. deleted INTEGER DEFAULT 0,
  66. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  67. updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  68. );
  69. COMMENT ON TABLE bi_scheduling_recommendation IS '调度推荐方案';
  70. CREATE INDEX IF NOT EXISTS idx_scheduling_forecast ON bi_scheduling_recommendation(forecast_id);
  71. CREATE INDEX IF NOT EXISTS idx_scheduling_status ON bi_scheduling_recommendation(status);