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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. -- =====================================================
  2. -- V_smart_meter_sms_alipay.sql
  3. -- 智能表平台 + 短信平台 + 支付宝生活缴费 DDL
  4. -- =====================================================
  5. -- 1. 智能水表表
  6. CREATE TABLE IF NOT EXISTS rev_smart_meter (
  7. id BIGSERIAL PRIMARY KEY,
  8. meter_no VARCHAR(64) NOT NULL,
  9. customer_no VARCHAR(64),
  10. signal_strength INTEGER DEFAULT 100,
  11. battery_level INTEGER DEFAULT 100,
  12. valve_status VARCHAR(16) DEFAULT 'OPEN',
  13. last_report_time TIMESTAMP,
  14. online_status VARCHAR(16) DEFAULT 'ONLINE',
  15. current_reading DOUBLE PRECISION DEFAULT 0,
  16. install_address VARCHAR(256),
  17. area_code VARCHAR(32),
  18. remark VARCHAR(512),
  19. create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  20. update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  21. );
  22. CREATE INDEX IF NOT EXISTS idx_smart_meter_meter_no ON rev_smart_meter(meter_no);
  23. CREATE INDEX IF NOT EXISTS idx_smart_meter_customer_no ON rev_smart_meter(customer_no);
  24. CREATE INDEX IF NOT EXISTS idx_smart_meter_online_status ON rev_smart_meter(online_status);
  25. CREATE INDEX IF NOT EXISTS idx_smart_meter_area_code ON rev_smart_meter(area_code);
  26. -- 2. 短信模板表
  27. CREATE TABLE IF NOT EXISTS rev_sms_template (
  28. id BIGSERIAL PRIMARY KEY,
  29. template_name VARCHAR(128) NOT NULL,
  30. template_type VARCHAR(32) NOT NULL,
  31. content TEXT NOT NULL,
  32. variables VARCHAR(512),
  33. enabled INTEGER DEFAULT 1,
  34. remark VARCHAR(512),
  35. create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  36. update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  37. );
  38. CREATE INDEX IF NOT EXISTS idx_sms_template_type ON rev_sms_template(template_type);
  39. -- 3. 短信发送记录表
  40. CREATE TABLE IF NOT EXISTS rev_sms_record (
  41. id BIGSERIAL PRIMARY KEY,
  42. phone VARCHAR(32) NOT NULL,
  43. content TEXT,
  44. template_id BIGINT,
  45. send_status VARCHAR(16) DEFAULT 'PENDING',
  46. send_time TIMESTAMP,
  47. error_msg VARCHAR(512),
  48. customer_no VARCHAR(64),
  49. biz_type VARCHAR(32),
  50. create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  51. );
  52. CREATE INDEX IF NOT EXISTS idx_sms_record_phone ON rev_sms_record(phone);
  53. CREATE INDEX IF NOT EXISTS idx_sms_record_send_status ON rev_sms_record(send_status);
  54. CREATE INDEX IF NOT EXISTS idx_sms_record_send_time ON rev_sms_record(send_time);
  55. CREATE INDEX IF NOT EXISTS idx_sms_record_customer_no ON rev_sms_record(customer_no);
  56. -- 4. 支付宝生活缴费订单表
  57. CREATE TABLE IF NOT EXISTS rev_alipay_order (
  58. id BIGSERIAL PRIMARY KEY,
  59. out_trade_no VARCHAR(128) NOT NULL,
  60. alipay_trade_no VARCHAR(128),
  61. customer_no VARCHAR(64),
  62. bill_id BIGINT,
  63. amount DECIMAL(12, 2),
  64. status VARCHAR(16) DEFAULT 'CREATED',
  65. notify_data TEXT,
  66. bill_period VARCHAR(32),
  67. pay_time TIMESTAMP,
  68. refund_amount DECIMAL(12, 2),
  69. refund_time TIMESTAMP,
  70. remark VARCHAR(512),
  71. create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  72. update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  73. );
  74. CREATE UNIQUE INDEX IF NOT EXISTS idx_alipay_order_out_trade_no ON rev_alipay_order(out_trade_no);
  75. CREATE INDEX IF NOT EXISTS idx_alipay_order_customer_no ON rev_alipay_order(customer_no);
  76. CREATE INDEX IF NOT EXISTS idx_alipay_order_status ON rev_alipay_order(status);
  77. CREATE INDEX IF NOT EXISTS idx_alipay_order_pay_time ON rev_alipay_order(pay_time);
  78. -- =====================================================
  79. -- 默认短信模板数据
  80. -- =====================================================
  81. INSERT INTO rev_sms_template (template_name, template_type, content, variables, enabled, remark) VALUES
  82. ('账单通知', 'BILL_NOTICE',
  83. '【XX水务】尊敬的${customerName},您${billPeriod}的水费账单已出,应缴金额${amount}元,请及时缴费。',
  84. '["customerName","billPeriod","amount"]', 1, '月度账单通知'),
  85. ('欠费提醒', 'ARREARS_WARNING',
  86. '【XX水务】尊敬的${customerName},您有${overdueAmount}元水费已逾期${overdueDays}天,请尽快缴清,逾期将影响正常用水。',
  87. '["customerName","overdueAmount","overdueDays"]', 1, '欠费催缴提醒'),
  88. ('阀门控制通知', 'VALVE_CONTROL',
  89. '【XX水务】尊敬的${customerName},您编号为${meterNo}的水表阀门已${action},如有疑问请联系客服。',
  90. '["customerName","meterNo","action"]', 1, '远程阀门操作通知'),
  91. ('停水通知', 'GENERAL',
  92. '【XX水务】${areaName}将于${startTime}至${endTime}进行${reason},届时将暂停供水,请提前做好储水准备。',
  93. '["areaName","startTime","endTime","reason"]', 1, '通用停水通知');