高效能源监控管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

376 lines
20 KiB

--1、创建设备台账管理 device_ledger 表
CREATE TABLE device_ledger (
id VARCHAR(36) NOT NULL, -- 设备id
device_name VARCHAR(50) NULL, -- 设备名称
model_specs VARCHAR(100) NULL, -- 规格型号
asset_num VARCHAR(50) NULL, -- 资产编号
qr_code_id VARCHAR(36) NULL, -- 二维码id
service_life VARCHAR(10) NULL, -- 使用寿命
device_type VARCHAR(50) NULL, -- 设备类型(字典)
tech_params VARCHAR(200) NULL, -- 技术参数
tech_doc VARCHAR(100) NULL, -- 技术文档
install_time TIMESTAMP NULL, -- 安装时间
create_time TIMESTAMP NULL, -- 创建时间
update_time TIMESTAMP NULL, -- 更新时间
create_by VARCHAR(100) NULL, -- 创建者
status int null, -- 状态(0:在线或者使用中,1:不在线或者停用)
is_collection int null, -- 是否是需要采集(0:是,1:不采集)
is_calc_energy int null, -- 是否计算能效(0:计算,1不计算)
PRIMARY KEY (id)
);
-- 为表添加备注
COMMENT ON TABLE device_ledger IS '设备台账表,用于记录所有设备的基本信息、安装及维护情况';
-- 为各列添加备注
COMMENT ON COLUMN device_ledger.id IS '设备唯一标识符';
COMMENT ON COLUMN device_ledger.device_name IS '设备的名称';
COMMENT ON COLUMN device_ledger.model_specs IS '设备的规格和型号';
COMMENT ON COLUMN device_ledger.asset_num IS '设备的资产编号';
COMMENT ON COLUMN device_ledger.qr_code_id IS '与设备关联的二维码ID';
COMMENT ON COLUMN device_ledger.service_life IS '设备的预计使用寿命';
COMMENT ON COLUMN device_ledger.device_type IS '设备所属类型(字典值获取)';
COMMENT ON COLUMN device_ledger.tech_params IS '设备的技术参数描述';
COMMENT ON COLUMN device_ledger.tech_doc IS '设备相关的技术文档链接或文件名';
COMMENT ON COLUMN device_ledger.install_time IS '设备的安装日期和时间';
COMMENT ON COLUMN device_ledger.create_time IS '记录创建的时间戳';
COMMENT ON COLUMN device_ledger.update_time IS '记录最后一次更新的时间戳';
COMMENT ON COLUMN device_ledger.create_by IS '创建该记录的用户';
COMMENT ON COLUMN device_ledger.status IS '状态(0:在线或者使用中,1:不在线或者停用)';
COMMENT ON COLUMN device_ledger.is_collection IS '是否是需要采集(0:是,1:不采集)';
COMMENT ON COLUMN device_ledger.is_calc_energy IS '是否计算能效(0:计算,1不计算)';
-- 为 device_ledger 表的 device_type_id 字段添加索引
CREATE INDEX idx_device_ledger_device_ledger_id ON device_ledger (device_type);
-- 为 device_ledger 表的 create_time 字段添加索引(倒序)
CREATE INDEX idx_device_ledger_create_time_desc ON device_ledger (create_time DESC);
ALTER TABLE public.device_ledger ADD update_by varchar(100) NULL;
COMMENT ON COLUMN public.device_ledger.update_by IS '更新者';
--2、创建二维码管理 device_qr_manage 表
CREATE TABLE device_qr_manage (
id VARCHAR(36) NOT NULL, -- 设备二维码管理记录ID
serial_num VARCHAR(50) NULL, -- 设备序列号编号
pic_content VARCHAR(100) NULL, -- 二维码图片内容或链接
device_ledger_id VARCHAR(36), -- 关联的设备台账ID
device_name VARCHAR(50), -- 设备名称(冗余字段,方便查询)
bind_time TIMESTAMP NULL, -- 二维码与设备绑定的时间
create_time TIMESTAMP NULL, -- 记录创建的时间戳
update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳
create_by VARCHAR(100) NULL, -- 创建该记录的用户
PRIMARY KEY (id)
);
-- 为表添加备注
COMMENT ON TABLE device_qr_manage IS '设备二维码管理表,用于记录设备与二维码之间的绑定关系及二维码相关信息';
-- 为各列添加备注
COMMENT ON COLUMN device_qr_manage.id IS '设备二维码管理记录的唯一标识符';
COMMENT ON COLUMN device_qr_manage.serial_num IS '设备的序列号,用于唯一识别每个设备';
COMMENT ON COLUMN device_qr_manage.pic_content IS '二维码图片的内容或存储路径';
COMMENT ON COLUMN device_qr_manage.device_ledger_id IS '关联到设备台账表的设备ID,建立外键关系';
COMMENT ON COLUMN device_qr_manage.device_name IS '设备名称,作为冗余字段便于快速查询';
COMMENT ON COLUMN device_qr_manage.bind_time IS '二维码与设备绑定的具体时间';
COMMENT ON COLUMN device_qr_manage.create_time IS '记录创建的时间戳';
COMMENT ON COLUMN device_qr_manage.update_time IS '记录最后一次更新的时间戳';
COMMENT ON COLUMN device_qr_manage.create_by IS '创建该记录的用户';
-- 为 device_qr_manage 表的 device_ledger_id 字段添加索引
CREATE INDEX idx_device_qr_manage_device_ledger_id ON device_qr_manage (device_ledger_id);
-- 为 device_qr_manage 表的 create_time 字段添加索引(倒序)
CREATE INDEX idx_device_qr_manage_create_time_desc ON device_qr_manage (create_time DESC);
ALTER TABLE public.device_qr_manage ADD update_by varchar(100) NULL;
COMMENT ON COLUMN public.device_qr_manage.update_by IS '更新者';
ALTER TABLE public.device_qr_manage ADD status int NULL;
COMMENT ON COLUMN public.device_qr_manage.status IS '二维码状态:0:已绑定,1:未绑定';
--3、采集参数管理表 collection_params_manage 表
CREATE TABLE collection_params_manage (
id varchar(36) NOT NULL, -- 主键
device_ledger_id varchar(36) NULL, -- 设备台账id
mt_type varchar(10), -- 设备类型(字典)
mt_num VARCHAR(20) NULL, -- 设备地址
mt_code VARCHAR(20) NULL, -- 设备采集地址
register_addr VARCHAR(20) NULL, -- 寄存器地址
func_code VARCHAR(20) NULL, -- 功能码
identify_code VARCHAR(20) NULL, -- 数据标识码
mt_caliber_pulse VARCHAR(20) NULL, -- 口径
mt_range NUMERIC(24, 3) NULL, -- 取值范围
mt_ratio INT NULL, -- 倍率
mt_init_value NUMERIC(24, 3) NULL, -- 初始值
digits INT NULL, -- 保留小数位
data_type INT NULL, -- 数据类型(字典)
cur_value NUMERIC(24, 3) NULL, -- 当前值
cur_time TIMESTAMP NULL, -- 采集时间
mt_is_sum BOOLEAN NULL, -- 是否是总表
unit VARCHAR(20) NULL, -- 单位
sort BIGINT NULL, -- 排序
gateway_id varchar(36) NULL, -- 网关id
param_id varchar(36) NULL, -- 串口采集通讯配置id
protocol_type varchar(5) NULL, -- 协议类型
communication_type varchar(5) NULL, -- 通讯类型(字典)
remark varchar(200) NULL, -- 备注
register_size INT NULL, -- 读取寄存器大小
is_use INT NULL, -- 是否启用采集(0:正常,1:不采集)
create_time TIMESTAMP NULL, -- 创建时间
update_time TIMESTAMP NULL, -- 更新时间
PRIMARY KEY (id)
);
-- 为表添加备注
COMMENT ON TABLE collection_params_manage IS '仪表管理表,用于记录各种仪表的基本信息、配置及状态';
-- 为各列添加备注
COMMENT ON COLUMN collection_params_manage.id IS '自增主键';
COMMENT ON COLUMN collection_params_manage.mt_type IS '仪表类型ID';
COMMENT ON COLUMN collection_params_manage.mt_name IS '仪表名称';
COMMENT ON COLUMN collection_params_manage.other_name IS '其他名称';
COMMENT ON COLUMN collection_params_manage.mt_brand IS '仪表品牌';
COMMENT ON COLUMN collection_params_manage.mt_num IS '仪表编号';
COMMENT ON COLUMN collection_params_manage.mt_code IS '仪表代码';
COMMENT ON COLUMN collection_params_manage.register_addr IS '注册地址';
COMMENT ON COLUMN collection_params_manage.func_code IS '功能代码';
COMMENT ON COLUMN collection_params_manage.identify_code IS '识别代码';
COMMENT ON COLUMN collection_params_manage.mt_caliber_pulse IS '口径脉冲';
COMMENT ON COLUMN collection_params_manage.mt_range IS '量程';
COMMENT ON COLUMN collection_params_manage.mt_ratio IS '比例';
COMMENT ON COLUMN collection_params_manage.mt_init_value IS '初始值';
COMMENT ON COLUMN collection_params_manage.digits IS '位数';
COMMENT ON COLUMN collection_params_manage.data_type IS '数据类型';
COMMENT ON COLUMN collection_params_manage.cur_value IS '当前值';
COMMENT ON COLUMN collection_params_manage.cur_time IS '当前时间';
COMMENT ON COLUMN collection_params_manage.mt_is_sum IS '是否累计(0: 否, 1: 是)';
COMMENT ON COLUMN collection_params_manage.create_time IS '记录创建的时间戳';
COMMENT ON COLUMN collection_params_manage.update_time IS '记录最后一次更新的时间戳';
COMMENT ON COLUMN collection_params_manage.unit IS '单位';
COMMENT ON COLUMN collection_params_manage.sort IS '排序';
COMMENT ON COLUMN collection_params_manage.data_com IS '数据通信配置';
COMMENT ON COLUMN collection_params_manage.device_id IS '设备ID';
COMMENT ON COLUMN collection_params_manage.gateway_id IS '网关ID';
COMMENT ON COLUMN collection_params_manage.param_id IS '参数ID';
COMMENT ON COLUMN collection_params_manage.protocol_type IS '协议类型ID';
COMMENT ON COLUMN collection_params_manage.communication_type IS '通信类型';
COMMENT ON COLUMN collection_params_manage.remark IS '备注';
COMMENT ON COLUMN collection_params_manage.register_size IS '注册大小';
COMMENT ON COLUMN collection_params_manage.is_use IS '是否使用(0: 使用, 1: 不使用)';
-- 为 device_qr_manage 表的 device_ledger_id 字段添加索引
CREATE INDEX idx_meter_manage_mt_type ON collection_params_manage (mt_type);
-- 为 device_qr_manage 表的 create_time 字段添加索引(倒序)
CREATE INDEX idx_meter_manage_create_time_desc ON collection_params_manage (create_time DESC);
--4、创建备件/备品管理 spare_parts_manage 表
CREATE TABLE spare_parts_manage (
id VARCHAR(36) NOT NULL, -- 备件ID
serial_num VARCHAR(50) NULL, -- 序列号编号
spare_name VARCHAR(100) NULL, -- 备件名称
model_specs VARCHAR(100) NULL, -- 规格型号
device_type_id VARCHAR(50) NULL, -- 设备类型ID
inventory_levels INT NULL, -- 当前库存量
min_inventory_levels INT NULL, -- 最低库存量阈值
service_life INT NULL, -- 使用年限(单位:年)
unit_price NUMERIC(24, 3), -- 单价(保留三位小数)
create_time TIMESTAMP NULL, -- 记录创建的时间戳
update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳
create_by VARCHAR(100) NULL, -- 创建该记录的用户
PRIMARY KEY (id)
);
-- 为表添加备注
COMMENT ON TABLE spare_parts_manage IS '备品/备件管理表,用于记录所有备件的基本信息、库存情况及价格';
-- 为各列添加备注
COMMENT ON COLUMN spare_parts_manage.id IS '备件的唯一标识符';
COMMENT ON COLUMN spare_parts_manage.serial_num IS '备件的序列号,用于唯一识别每个备件';
COMMENT ON COLUMN spare_parts_manage.spare_name IS '备件的名称';
COMMENT ON COLUMN spare_parts_manage.model_specs IS '备件的规格和型号';
COMMENT ON COLUMN spare_parts_manage.device_type_id IS '关联到设备类型的ID,标识备件适用于哪种设备类型';
COMMENT ON COLUMN spare_parts_manage.inventory_levels IS '当前备件的库存数量';
COMMENT ON COLUMN spare_parts_manage.min_inventory_levels IS '最低库存量阈值,当库存低于此值时需要补货';
COMMENT ON COLUMN spare_parts_manage.service_life IS '备件的预计使用年限,单位为年';
COMMENT ON COLUMN spare_parts_manage.unit_price IS '备件的单价,保留三位小数';
COMMENT ON COLUMN spare_parts_manage.create_time IS '记录创建的时间戳';
COMMENT ON COLUMN spare_parts_manage.update_time IS '记录最后一次更新的时间戳';
COMMENT ON COLUMN spare_parts_manage.create_by IS '创建该记录的用户';
CREATE INDEX idx_spare_parts_device_type_id ON spare_parts_manage (device_type_id);
CREATE INDEX idx_spare_parts_create_time_desc ON spare_parts_manage (create_time DESC);
ALTER TABLE public.spare_parts_manage ADD update_by varchar NULL;
COMMENT ON COLUMN public.spare_parts_manage.update_by IS '更新者';
--5、创建出入库管理device_in_out_manage
CREATE TABLE device_in_out_manage (
id VARCHAR(36) NOT NULL, -- 出入库管理ID
spare_parts_id VARCHAR(36) NULL, -- 备件ID
spare_name VARCHAR(100) NULL, -- 备件名称
opera_type VARCHAR(10) NULL, -- 出入库操作类型(0:入库,1:出库)
int_out_num INT NULL, -- 出入库数量
inventory_levels INT NULL, -- 当前库存量
create_time TIMESTAMP NULL, -- 记录创建的时间戳
update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳
create_by VARCHAR(100) NULL, -- 创建该记录的用户
update_by VARCHAR(100) NULL, -- 更新该记录的用户
PRIMARY KEY (id)
);
-- 为表添加备注
COMMENT ON TABLE device_in_out_manage IS '备品/备件出入库管理表,用于记录备件的出入库操作及当前库存情况';
-- 为各列添加备注
COMMENT ON COLUMN device_in_out_manage.id IS '出入库管理记录的唯一标识符';
COMMENT ON COLUMN device_in_out_manage.spare_parts_id IS '关联到备件的唯一标识符,用于标识具体的备件';
COMMENT ON COLUMN device_in_out_manage.spare_name IS '备件的名称,便于快速识别';
COMMENT ON COLUMN device_in_out_manage.opera_type IS '出入库操作类型,0表示入库,1表示出库';
COMMENT ON COLUMN device_in_out_manage.int_out_num IS '本次出入库操作的数量,正值表示入库,负值表示出库';
COMMENT ON COLUMN device_in_out_manage.inventory_levels IS '当前备件的库存数量,在每次出入库操作后更新';
COMMENT ON COLUMN device_in_out_manage.create_time IS '记录创建的时间戳,表示此次出入库操作的时间';
COMMENT ON COLUMN device_in_out_manage.update_time IS '记录最后一次更新的时间戳,通常与 create_time 相同,除非后续有修改';
COMMENT ON COLUMN device_in_out_manage.create_by IS '创建该记录的用户,记录是谁执行了此次出入库操作';
CREATE INDEX idx_device_in_out_manage_opera_type ON device_in_out_manage (opera_type);
CREATE INDEX idx_device_in_out_manage_spare_parts_id ON device_in_out_manage (spare_parts_id);
CREATE INDEX idx_device_in_out_manage_create_time_desc ON device_in_out_manage (create_time DESC);
-- 6、创建网关管理 gateway_manage 表
CREATE TABLE gateway_manage (
id varchar(36) NOT NULL, -- 自增主键
gw_name VARCHAR(100) NULL, -- 网关名称
gw_ip VARCHAR(20) NULL, -- 网关IP地址
gw_addr VARCHAR(100) NULL, -- 网关对应的编号地址
port INT NULL, -- 网关端口
collection_loop INT NULL, -- 采集周期
create_time TIMESTAMP NULL, -- 创建时间
update_time TIMESTAMP NULL, -- 更新时间
connect_time TIMESTAMP NULL, -- 连接时间
internet_card VARCHAR(50) NULL, -- 卡号
operator_type INT NULL, -- 运营商类型(0: 中国移动, 1: 中国联通, 2: 中国电信)
remark VARCHAR(100) NULL, -- 备注
communication_type INT NULL, -- 通信类型(字典表)
grade INT NULL, -- 预留字段
PRIMARY KEY (id)
);
-- 为表添加备注
COMMENT ON TABLE gateway_manage IS '网关管理表,用于记录网关的基本信息、配置及状态';
-- 为各列添加备注
COMMENT ON COLUMN gateway_manage.id IS '编号';
COMMENT ON COLUMN gateway_manage.gw_name IS '网关名称';
COMMENT ON COLUMN gateway_manage.gw_ip IS '网关IP地址';
COMMENT ON COLUMN gateway_manage.gw_addr IS '网关对应的编号地址';
COMMENT ON COLUMN gateway_manage.port IS '网关端口';
COMMENT ON COLUMN gateway_manage.collection_loop IS '采集周期';
COMMENT ON COLUMN gateway_manage.create_time IS '创建时间';
COMMENT ON COLUMN gateway_manage.update_time IS '更新时间';
COMMENT ON COLUMN gateway_manage.connect_time IS '连接时间';
COMMENT ON COLUMN gateway_manage.internet_card IS '卡号';
COMMENT ON COLUMN gateway_manage.operator_type IS '运营商类型(0: 中国移动, 1: 中国联通, 2: 中国电信)';
COMMENT ON COLUMN gateway_manage.remark IS '备注';
COMMENT ON COLUMN gateway_manage.communication_type IS '通信类型(字典表)';
COMMENT ON COLUMN gateway_manage.grade IS '预留字段';
CREATE INDEX idx_gateway_manage_gw_name ON gateway_manage (gw_name);
CREATE INDEX idx_gateway_manage_status ON gateway_manage (status);
CREATE INDEX idx_gateway_manage_create_time_desc ON gateway_manage (create_time DESC);
ALTER TABLE public.gateway_manage ADD create_by varchar(100) NULL;
COMMENT ON COLUMN public.gateway_manage.create_by IS '创建者';
ALTER TABLE public.gateway_manage ADD update_by varchar(100) NULL;
COMMENT ON COLUMN public.gateway_manage.update_by IS '更新者';
ALTER TABLE public.gateway_manage ADD status int NULL;
COMMENT ON COLUMN public.gateway_manage.status IS '状态(0:在线,1:离线)';
-- 7、通讯采集参数创建 device_params 表
CREATE TABLE communication_params (
id varchar(36) NOT NULL, -- 自增主键
mt_type INT NOT NULL, -- 仪表类型(从字典中获取)
baud_rate INT NOT NULL, -- 波特率
data_bit INT NOT NULL, -- 数据位
stop_bit INT NOT NULL, -- 停止位
parity VARCHAR(10) NOT NULL, -- 校验位
remark VARCHAR(100) NULL, -- 备注
PRIMARY KEY (id)
);
-- 为表添加备注
COMMENT ON TABLE communication_params IS '设备采集参数表,用于记录设备的通信参数';
-- 为各列添加备注
COMMENT ON COLUMN communication_params.id IS '编号';
COMMENT ON COLUMN communication_params.mt_type IS '仪表类型(从字典中获取)';
COMMENT ON COLUMN communication_params.baud_rate IS '波特率';
COMMENT ON COLUMN communication_params.data_bit IS '数据位';
COMMENT ON COLUMN communication_params.stop_bit IS '停止位';
COMMENT ON COLUMN communication_params.parity IS '校验位';
COMMENT ON COLUMN communication_params.remark IS '备注';
ALTER TABLE public.communication_params ADD create_by varchar(100) NULL;
COMMENT ON COLUMN public.communication_params.create_by IS '创建者';
ALTER TABLE public.communication_params ADD update_by varchar(100) NULL;
COMMENT ON COLUMN public.communication_params.update_by IS '更新者';
ALTER TABLE public.communication_params ADD create_time TIMESTAMP NULL;
COMMENT ON COLUMN public.communication_params.create_time IS '创建时间';
ALTER TABLE public.communication_params ADD update_time TIMESTAMP NULL;
COMMENT ON COLUMN public.communication_params.update_time IS '更新时间';
-- 8、维保管理
CREATE TABLE maintain_info
(
id varchar(36) NOT NULL,
device_id varchar(36) , -- 设备表id
device_type VARCHAR(32) NULL,
maintain_type VARCHAR(50) NULL,
maintain_people VARCHAR(50) NULL,
cost NUMERIC(24, 2) NULL,
contents VARCHAR(100) NULL,
evaluate VARCHAR(10) NULL,
exec_time timestamp NULL, -- 维修时间
spend_times int NULL, -- 花费时间
create_time TIMESTAMP NULL, -- 创建时间
update_time TIMESTAMP NULL, -- 更新时间
create_by varchar(100) NULL,
update_by varchar(100) NULL,
PRIMARY KEY (id)
);
CREATE INDEX idx_maintain_info_create_time_desc ON maintain_info (create_time DESC);
CREATE INDEX idx_maintain_info_maintain_people_desc ON maintain_info (maintain_people);
COMMENT ON TABLE maintain_info IS '维保管理:登记维护信息';
-- Extended properties
COMMENT
ON COLUMN maintain_info.id IS '序号';
COMMENT
ON COLUMN maintain_info.device_id IS '设备id';
COMMENT
ON COLUMN maintain_info.device_type IS '设备类型';
COMMENT
ON COLUMN maintain_info.maintain_type IS '维护类型';
COMMENT
ON COLUMN maintain_info.maintain_people IS '维护人员';
COMMENT
ON COLUMN maintain_info.cost IS '材料费用';
COMMENT
ON COLUMN maintain_info.contents IS '维保内容';
COMMENT
ON COLUMN maintain_info.evaluate IS '评价内容';
COMMENT
ON COLUMN maintain_info.create_time IS '创建时间';
COMMENT
ON COLUMN maintain_info.update_time IS '更新时间';
COMMENT
ON COLUMN maintain_info.create_by IS '创建者';
COMMENT
ON COLUMN maintain_info.update_by IS '更新者';
COMMENT
ON COLUMN maintain_info.exec_time IS '执行维修时间';
COMMENT
ON COLUMN maintain_info.spend_times IS '维修花费时间';