Files
bot_pm f337ebedfd Phase 1 #18: PostgreSQL + TDengine 完整 DDL 建表脚本
- 15+张核心表: sys_*(部门/用户/角色/菜单/日志/字典/通知/文件)
- iot_*: 设备模型/设备实例/设备影子/设备事件/站点(PostGIS空间坐标)
- rev_*: 用水户/水价阶梯/水表档案/水表操作日志/抄表/账单/缴费/报装
- production: alert_rule(报警规则)/alert_event(报警事件)/dispatch_command(调度)/duty(值班)/patrol(巡检)/water_quality(水质)
- TDengine: iot_telemetry超级表(6类设备子表)+事件表+小时聚合
- 种子数据: admin管理员/5个角色/6个片区/基础字典
2026-06-14 13:15:38 +08:00

80 lines
3.1 KiB
SQL

-- =============================================
-- 种子数据:管理员 + 基础角色 + 字典
-- =============================================
-- 插入部门
INSERT INTO sys_dept (id, parent_id, dept_name, dept_type, sort_order) VALUES
(1, NULL, '精河县水利局', 'water_bureau', 1),
(2, NULL, '安阜清源水务公司', 'water_company', 2),
(3, 2, '一体化水厂', 'water_company', 1),
(4, 2, '精芒片区', 'water_company', 2),
(5, 2, '八家户片区', 'water_company', 3),
(6, 2, '托里片区', 'water_company', 4),
(7, 2, '大镇阿合其片区', 'water_company', 5),
(8, 2, '托托片区', 'water_company', 6),
(9, 2, '运维中心', 'ops', 7)
ON CONFLICT DO NOTHING;
-- 重置序列
SELECT setval('sys_dept_id_seq', (SELECT MAX(id) FROM sys_dept));
-- 插入角色
INSERT INTO sys_role (id, role_name, role_key, role_sort, data_scope, remark) VALUES
(1, '系统管理员', 'admin', 1, 'ALL', '最高权限,管理全部功能'),
(2, '水务分管领导', 'leader', 2, 'ALL', '查看全部数据、BI看板'),
(3, '水务业务管理人员', 'manager', 3, 'DEPT', '调度、营收、水质管理'),
(4, '现场运维操作人员', 'operator', 4, 'DEPT', '巡检、值班、工单处理'),
(5, '系统技术维护人员', 'tech', 5, 'DEPT', '配置管理、设备维护')
ON CONFLICT (role_key) DO NOTHING;
-- 插入管理员用户 (密码: admin123, BCrypt加密)
INSERT INTO sys_user (id, dept_id, username, password, real_name, role_type, status) VALUES
(1, 1, 'admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6Z5Eh', '系统管理员', 'admin', 1)
ON CONFLICT (username) DO NOTHING;
-- 管理员关联角色
INSERT INTO sys_user_role (user_id, role_id) VALUES (1, 1) ON CONFLICT DO NOTHING;
-- 插入字典类型
INSERT INTO sys_dict_type (id, dict_key, dict_name) VALUES
(1, 'device_type', '设备类型'),
(2, 'area', '片区'),
(3, 'customer_type', '用水户类型'),
(4, 'alert_level', '报警等级'),
(5, 'meter_status', '水表状态')
ON CONFLICT (dict_key) DO NOTHING;
-- 插入字典数据
INSERT INTO sys_dict_data (dict_type_id, dict_label, dict_value, sort_order) VALUES
-- 设备类型
(1, '流量计', 'flow_meter', 1),
(1, '压力传感器', 'pressure_sensor', 2),
(1, '电动阀门', 'valve', 3),
(1, '水质监测仪', 'water_quality', 4),
(1, '液位计', 'level_sensor', 5),
(1, '水泵', 'pump', 6),
-- 片区
(2, '一体化水厂', '一体化水厂', 1),
(2, '精芒片区', '精芒片区', 2),
(2, '八家户片区', '八家户片区', 3),
(2, '托里片区', '托里片区', 4),
(2, '大镇阿合其片区', '大镇阿合其片区', 5),
(2, '托托片区', '托托片区', 6),
-- 用水户类型
(3, '居民', 'residential', 1),
(3, '商业', 'business', 2),
(3, '企业', 'enterprise', 3),
(3, '事业单位', 'institution', 4),
-- 报警等级
(4, '提示', 'info', 1),
(4, '一般', 'warning', 2),
(4, '严重', 'critical', 3),
(4, '紧急', 'emergency', 4),
-- 水表状态
(5, '正常使用', 'active', 1),
(5, '已拆除', 'dismantled', 2),
(5, '已报废', 'scrapped', 3),
(5, '维修中', 'repaired', 4),
(5, '库存', 'warehouse', 5)
ON CONFLICT DO NOTHING;