Merge branch 'main' of http://100.64.131.105:3000/GY/smart_grid_iot
This commit is contained in:
commit
184b8d03e2
21 files changed
+1363
-6
No files matched your search
+33
-4
@@ -322,13 +322,34 @@ ON CONFLICT (id) DO UPDATE SET
|
||||
permission = EXCLUDED.permission,
|
||||
visible = EXCLUDED.visible;
|
||||
|
||||
-- 角色-菜单绑定:ADMIN(role_id=1)拥有 58-60
|
||||
-- 角色-菜单绑定:ADMIN(role_id=1)拥有 58-61
|
||||
INSERT INTO sys_role_menu (role_id, menu_id) VALUES
|
||||
(1, 58), (1, 59), (1, 60)
|
||||
(1, 58), (1, 59), (1, 60), (1, 61)
|
||||
ON CONFLICT (role_id, menu_id) DO NOTHING;
|
||||
|
||||
-- 重置 sys_menu 自增序列(覆盖到 60)
|
||||
SELECT setval('sys_menu_id_seq', 60, true);
|
||||
-- 重置 sys_menu 自增序列(覆盖到 61)
|
||||
SELECT setval('sys_menu_id_seq', 61, true);
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 8a. 设备监控下的智电改造线路台账菜单(id=61,挂设备监控 parent_id=4)
|
||||
-- ------------------------------------------------------------
|
||||
INSERT INTO sys_menu (id, parent_id, menu_name, menu_path, component, icon, sort_order, menu_type, permission, visible) VALUES
|
||||
(61, 4, '智电改造线路台账', '/device/line', 'device/line/index', 'ApartmentOutlined', 2, 2, 'device:list', 1)
|
||||
ON CONFLICT (id) DO UPDATE SET
|
||||
parent_id = EXCLUDED.parent_id,
|
||||
menu_name = EXCLUDED.menu_name,
|
||||
menu_path = EXCLUDED.menu_path,
|
||||
component = EXCLUDED.component,
|
||||
icon = EXCLUDED.icon,
|
||||
sort_order = EXCLUDED.sort_order,
|
||||
menu_type = EXCLUDED.menu_type,
|
||||
permission = EXCLUDED.permission,
|
||||
visible = EXCLUDED.visible;
|
||||
|
||||
-- 角色-菜单绑定:ADMIN(role_id=1)拥有 61
|
||||
INSERT INTO sys_role_menu (role_id, menu_id) VALUES
|
||||
(1, 61)
|
||||
ON CONFLICT (role_id, menu_id) DO NOTHING;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 9. 定时任务种子(sys_job,按 job_key 幂等)
|
||||
@@ -375,6 +396,14 @@ INSERT INTO sys_job (job_key, job_name, cron_expression, freq_type, freq_config,
|
||||
'遍历启用的扫描式通知规则,按模板与接收对象生成站内通知(幂等,默认每日 08:00)')
|
||||
ON CONFLICT (job_key) DO NOTHING;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 10a. 智电线路同步任务种子(sys_job,按 job_key 幂等;默认每 10 分钟)
|
||||
-- ------------------------------------------------------------
|
||||
INSERT INTO sys_job (job_key, job_name, cron_expression, params, retry_times, retry_interval, status, remark) VALUES
|
||||
('icc_line_sync', '智电线路同步', '*/10 * * * *', '{}'::jsonb, 1, 300, 1,
|
||||
'从 ICC 平台拉取智电改造线路并按 line_code 幂等 upsert(默认每 10 分钟)')
|
||||
ON CONFLICT (job_key) DO NOTHING;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 11. 通知规则种子(sys_notice_rule,按 rule_key 幂等;接收对象可在「通知管理」页调整)
|
||||
-- ------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
-- 智电改造线路台账(设备监控):
|
||||
-- 1) 幂等建表 electric_line / line_room / icc_sync_log(若 db_init.sql 已建则跳过)
|
||||
-- 2) 设备监控(id=4)下新增菜单 61「智电改造线路台账」
|
||||
-- 3) ADMIN 角色绑定新菜单
|
||||
-- 4) 注册 icc_line_sync 定时任务(默认每 10 分钟)
|
||||
BEGIN;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 1) 幂等建表(与 db_init.sql 定义保持一致)
|
||||
-- ------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS electric_line (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
line_code VARCHAR(64) NOT NULL UNIQUE,
|
||||
equip_id BIGINT NOT NULL REFERENCES customer_equipment(id),
|
||||
icc_device_code VARCHAR(128),
|
||||
line_name VARCHAR(128),
|
||||
customer_id BIGINT NOT NULL REFERENCES customer(id),
|
||||
building_id BIGINT REFERENCES customer_building(id),
|
||||
floor_no VARCHAR(16),
|
||||
location VARCHAR(256),
|
||||
status SMALLINT NOT NULL DEFAULT 1,
|
||||
synced_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
COMMENT ON TABLE electric_line IS '智电改造线路信息表(ICC 同步)';
|
||||
COMMENT ON COLUMN electric_line.id IS '自增主键';
|
||||
COMMENT ON COLUMN electric_line.line_code IS '线路编码(唯一)';
|
||||
COMMENT ON COLUMN electric_line.equip_id IS '客户设备 ID(→ customer_equipment)';
|
||||
COMMENT ON COLUMN electric_line.icc_device_code IS 'ICC 智电设备编号';
|
||||
COMMENT ON COLUMN electric_line.line_name IS '线路名称(ICC 同步)';
|
||||
COMMENT ON COLUMN electric_line.customer_id IS '客户 ID(逻辑隔离键)';
|
||||
COMMENT ON COLUMN electric_line.building_id IS '所属建筑 ID(→ customer_building)';
|
||||
COMMENT ON COLUMN electric_line.floor_no IS '所在楼层';
|
||||
COMMENT ON COLUMN electric_line.location IS '所在位置';
|
||||
COMMENT ON COLUMN electric_line.status IS '状态:1在线 0离线';
|
||||
COMMENT ON COLUMN electric_line.synced_at IS 'ICC 同步时间';
|
||||
COMMENT ON COLUMN electric_line.created_at IS '创建时间';
|
||||
CREATE INDEX IF NOT EXISTS idx_line_customer ON electric_line (customer_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_line_equip ON electric_line (equip_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_line_icc ON electric_line (icc_device_code);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS line_room (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
line_id BIGINT NOT NULL REFERENCES electric_line(id) ON DELETE CASCADE,
|
||||
room_id BIGINT NOT NULL REFERENCES customer_room(id),
|
||||
customer_id BIGINT NOT NULL REFERENCES customer(id),
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
COMMENT ON TABLE line_room IS '线路所属房间关联表';
|
||||
COMMENT ON COLUMN line_room.id IS '自增主键';
|
||||
COMMENT ON COLUMN line_room.line_id IS '线路 ID(→ electric_line)';
|
||||
COMMENT ON COLUMN line_room.room_id IS '房间 ID(→ customer_room)';
|
||||
COMMENT ON COLUMN line_room.customer_id IS '客户 ID(→ customer)';
|
||||
COMMENT ON COLUMN line_room.created_at IS '创建时间';
|
||||
CREATE INDEX IF NOT EXISTS idx_lr_line ON line_room (line_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_lr_room ON line_room (room_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_lr_customer ON line_room (customer_id);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS icc_sync_log (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
sync_type VARCHAR(32) NOT NULL,
|
||||
start_time TIMESTAMPTZ,
|
||||
end_time TIMESTAMPTZ,
|
||||
record_count INT,
|
||||
status SMALLINT NOT NULL DEFAULT 1,
|
||||
error_message TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
COMMENT ON TABLE icc_sync_log IS 'ICC 数据同步日志表';
|
||||
COMMENT ON COLUMN icc_sync_log.id IS '自增主键';
|
||||
COMMENT ON COLUMN icc_sync_log.sync_type IS '同步类型:客户/设备/用电/报警';
|
||||
COMMENT ON COLUMN icc_sync_log.start_time IS '开始时间';
|
||||
COMMENT ON COLUMN icc_sync_log.end_time IS '结束时间';
|
||||
COMMENT ON COLUMN icc_sync_log.record_count IS '同步记录数';
|
||||
COMMENT ON COLUMN icc_sync_log.status IS '状态:1成功 0失败';
|
||||
COMMENT ON COLUMN icc_sync_log.error_message IS '错误信息';
|
||||
COMMENT ON COLUMN icc_sync_log.created_at IS '创建时间';
|
||||
CREATE INDEX IF NOT EXISTS idx_icc_sync_type ON icc_sync_log (sync_type);
|
||||
CREATE INDEX IF NOT EXISTS idx_icc_sync_time ON icc_sync_log (created_at);
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 2) 设备监控(id=4)下新增菜单 61「智电改造线路台账」(sort 2,排在设备管理台账之后)
|
||||
-- ------------------------------------------------------------
|
||||
INSERT INTO sys_menu (id, parent_id, menu_name, menu_path, component, icon, sort_order, menu_type, permission, visible) VALUES
|
||||
(61, 4, '智电改造线路台账', '/device/line', 'device/line/index', 'ApartmentOutlined', 2, 2, 'device:list', 1)
|
||||
ON CONFLICT (id) DO UPDATE SET
|
||||
parent_id = EXCLUDED.parent_id,
|
||||
menu_name = EXCLUDED.menu_name,
|
||||
menu_path = EXCLUDED.menu_path,
|
||||
component = EXCLUDED.component,
|
||||
icon = EXCLUDED.icon,
|
||||
sort_order = EXCLUDED.sort_order,
|
||||
menu_type = EXCLUDED.menu_type,
|
||||
permission = EXCLUDED.permission,
|
||||
visible = EXCLUDED.visible;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 3) 角色-菜单绑定:ADMIN(role_id=1) 拥有 61
|
||||
-- ------------------------------------------------------------
|
||||
INSERT INTO sys_role_menu (role_id, menu_id) VALUES
|
||||
(1, 61)
|
||||
ON CONFLICT (role_id, menu_id) DO NOTHING;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 4) 定时任务种子:icc_line_sync(默认每 10 分钟,可按 job_key 幂等)
|
||||
-- ------------------------------------------------------------
|
||||
INSERT INTO sys_job (job_key, job_name, cron_expression, params, retry_times, retry_interval, status, remark) VALUES
|
||||
('icc_line_sync', '智电线路同步', '*/10 * * * *', '{}'::jsonb, 1, 300, 1,
|
||||
'从 ICC 平台拉取智电改造线路并按 line_code 幂等 upsert(默认每 10 分钟)')
|
||||
ON CONFLICT (job_key) DO NOTHING;
|
||||
|
||||
-- 重置序列(覆盖到 61)
|
||||
SELECT setval('sys_menu_id_seq', GREATEST((SELECT MAX(id) FROM sys_menu), 61), true);
|
||||
|
||||
COMMIT;
|
||||
Reference in new issue
Block a user