Files
smart_grid_iot/database/migrations/20261011_customer_circuit.sql
T
andyesfly f72644c24f feat: 新增客户用电回路全链路功能
新增客户用电回路表及相关数据库迁移、后端服务、控制器、DTO、实体类和权限配置;新增前端API封装,同时调整路由名称以匹配新业务模块,复用现有菜单权限避免403错误。
2026-10-12 15:20:08 +08:00

44 lines
2.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 空间拓扑与用电架构:客户用电回路表 customer_circuit
-- 语义:左树最末端节点(建筑 → 楼层 → 房间 → 回路),其中"楼层"为按 floor_no 聚合的虚拟层,不单独建表。
-- 幂等:CREATE TABLE IF NOT EXISTS / CREATE INDEX IF NOT EXISTS / COMMENT 均可重复执行。
-- 说明:rated_* 为配置额定值;实时电气量(电压/电流/功率/温度)本系统暂无采集数据源,不落库。
CREATE TABLE IF NOT EXISTS customer_circuit (
id BIGSERIAL PRIMARY KEY,
customer_id BIGINT NOT NULL REFERENCES customer(id),
building_id BIGINT NOT NULL REFERENCES customer_building(id),
room_id BIGINT REFERENCES customer_room(id),
floor_no VARCHAR(16),
circuit_code VARCHAR(64) NOT NULL UNIQUE,
circuit_name VARCHAR(128) NOT NULL,
loop_spec VARCHAR(128),
load_type VARCHAR(32),
rated_voltage VARCHAR(32),
rated_current VARCHAR(32),
rated_power NUMERIC(10,2),
status SMALLINT NOT NULL DEFAULT 1,
remark TEXT,
sort_order INT NOT NULL DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
COMMENT ON TABLE customer_circuit IS '客户用电回路表(空间拓扑末端节点)';
COMMENT ON COLUMN customer_circuit.id IS '自增主键';
COMMENT ON COLUMN customer_circuit.customer_id IS '客户 ID(→ customer)';
COMMENT ON COLUMN customer_circuit.building_id IS '所属建筑 ID(→ customer_building)';
COMMENT ON COLUMN customer_circuit.room_id IS '所属房间 ID(→ customer_room,可空:公共区域回路不挂房间)';
COMMENT ON COLUMN customer_circuit.floor_no IS '所在楼层(冗余,便于按楼层分组)';
COMMENT ON COLUMN customer_circuit.circuit_code IS '回路编号(全局唯一,如 CIR-0219)';
COMMENT ON COLUMN customer_circuit.circuit_name IS '回路名称';
COMMENT ON COLUMN customer_circuit.loop_spec IS '回路规格(如 三相380V / 铜芯4×25+1×16)';
COMMENT ON COLUMN customer_circuit.load_type IS '负荷类型(照明/动力/空调/插座等)';
COMMENT ON COLUMN customer_circuit.rated_voltage IS '额定电压(配置值)';
COMMENT ON COLUMN customer_circuit.rated_current IS '额定电流(配置值)';
COMMENT ON COLUMN customer_circuit.rated_power IS '额定功率 kW(配置值)';
COMMENT ON COLUMN customer_circuit.status IS '状态:1 正常 / 0 停用';
COMMENT ON COLUMN customer_circuit.remark IS '备注';
COMMENT ON COLUMN customer_circuit.sort_order IS '排序值';
COMMENT ON COLUMN customer_circuit.created_at IS '创建时间';
CREATE INDEX IF NOT EXISTS idx_circuit_customer ON customer_circuit (customer_id);
CREATE INDEX IF NOT EXISTS idx_circuit_building ON customer_circuit (building_id);
CREATE INDEX IF NOT EXISTS idx_circuit_room ON customer_circuit (room_id);