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

chemical_dosing_ddl.sql 4.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. -- 药剂投加监控 DDL
  2. -- 全工艺药剂投加监控(混凝→沉淀→过滤→消毒)
  3. -- 1. 药剂投加记录表
  4. CREATE TABLE IF NOT EXISTS prod_chemical_dosing (
  5. id BIGSERIAL PRIMARY KEY,
  6. process_stage VARCHAR(32) NOT NULL, -- 工艺段: coagulation/sedimentation/filtration/disinfection
  7. chemical_name VARCHAR(64) NOT NULL, -- 药剂名称
  8. chemical_code VARCHAR(32), -- 药剂编码
  9. dosing_amount DECIMAL(12,4), -- 投加量(kg)
  10. dosing_rate DECIMAL(10,4), -- 投加速率(kg/h)
  11. concentration DECIMAL(10,4), -- 投加浓度(mg/L)
  12. flow_rate DECIMAL(12,4), -- 当时流量(m³/h)
  13. station VARCHAR(64), -- 站点/水厂
  14. operator VARCHAR(32), -- 操作员
  15. status VARCHAR(16) DEFAULT 'active', -- active/paused/stopped
  16. remark VARCHAR(255),
  17. created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  18. updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  19. );
  20. COMMENT ON TABLE prod_chemical_dosing IS '药剂投加监控记录';
  21. COMMENT ON COLUMN prod_chemical_dosing.process_stage IS '工艺段: coagulation(混凝)/sedimentation(沉淀)/filtration(过滤)/disinfection(消毒)';
  22. -- 2. 投加历史记录表
  23. CREATE TABLE IF NOT EXISTS prod_dosing_record (
  24. id BIGSERIAL PRIMARY KEY,
  25. dosing_id BIGINT, -- 关联投加记录
  26. process_stage VARCHAR(32) NOT NULL,
  27. chemical_name VARCHAR(64) NOT NULL,
  28. dosing_amount DECIMAL(12,4),
  29. dosing_rate DECIMAL(10,4),
  30. concentration DECIMAL(10,4),
  31. flow_rate DECIMAL(12,4),
  32. station VARCHAR(64),
  33. record_time TIMESTAMP NOT NULL, -- 记录时间
  34. created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  35. );
  36. COMMENT ON TABLE prod_dosing_record IS '投加历史记录(用于趋势分析)';
  37. -- 3. 药剂库存表
  38. CREATE TABLE IF NOT EXISTS prod_chemical_stock (
  39. id BIGSERIAL PRIMARY KEY,
  40. chemical_name VARCHAR(64) NOT NULL,
  41. chemical_code VARCHAR(32),
  42. current_stock DECIMAL(12,4) NOT NULL, -- 当前库存(kg)
  43. max_stock DECIMAL(12,4), -- 最大库存
  44. min_stock DECIMAL(12,4), -- 安全库存(低于此值预警)
  45. unit VARCHAR(16) DEFAULT 'kg',
  46. warehouse VARCHAR(64), -- 仓库位置
  47. supplier VARCHAR(128), -- 供应商
  48. station VARCHAR(64),
  49. status VARCHAR(16) DEFAULT 'normal', -- normal/low/out
  50. last_inbound TIMESTAMP, -- 最近入库时间
  51. created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  52. updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  53. );
  54. COMMENT ON TABLE prod_chemical_stock IS '药剂库存管理';
  55. -- 4. 投加策略表
  56. CREATE TABLE IF NOT EXISTS prod_dosing_strategy (
  57. id BIGSERIAL PRIMARY KEY,
  58. strategy_name VARCHAR(64) NOT NULL,
  59. process_stage VARCHAR(32) NOT NULL,
  60. chemical_name VARCHAR(64) NOT NULL,
  61. strategy_type VARCHAR(32), -- auto/manual/semi-auto
  62. base_dosing_rate DECIMAL(10,4), -- 基础投加速率
  63. min_dosing_rate DECIMAL(10,4), -- 最小投加速率
  64. max_dosing_rate DECIMAL(10,4), -- 最大投加速率
  65. turbidity_threshold DECIMAL(10,4), -- 浊度阈值联动
  66. flow_threshold DECIMAL(12,4), -- 流量阈值联动
  67. ph_threshold_min DECIMAL(6,2), -- pH下限
  68. ph_threshold_max DECIMAL(6,2), -- pH上限
  69. formula VARCHAR(255), -- 投加公式
  70. enabled BOOLEAN DEFAULT true,
  71. station VARCHAR(64),
  72. remark VARCHAR(255),
  73. created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  74. updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  75. );
  76. COMMENT ON TABLE prod_dosing_strategy IS '自动投加策略配置(基于原水水质/流量联动)';
  77. -- 索引
  78. CREATE INDEX IF NOT EXISTS idx_dosing_stage ON prod_chemical_dosing(process_stage);
  79. CREATE INDEX IF NOT EXISTS idx_dosing_station ON prod_chemical_dosing(station);
  80. CREATE INDEX IF NOT EXISTS idx_dosing_created ON prod_chemical_dosing(created_time);
  81. CREATE INDEX IF NOT EXISTS idx_record_stage ON prod_dosing_record(process_stage);
  82. CREATE INDEX IF NOT EXISTS idx_record_time ON prod_dosing_record(record_time);
  83. CREATE INDEX IF NOT EXISTS idx_stock_station ON prod_chemical_stock(station);
  84. CREATE INDEX IF NOT EXISTS idx_strategy_stage ON prod_dosing_strategy(process_stage);