feat(line): 智电改造线路台账接入 ICC 消防探测器真实同步
- 重建 electric_line 表结构(迁移20261024_icc_line_rebuild.sql并同步db_init/db_seed):删building_id/floor_no/location/icc_device_code占位字段,equip_id改可空,新增imei/gateway_id/type_code/type_name/fire_system_code/fire_system_name/part_unit_loop_code/channel_no/channel_sn/produce_date,gateway_id外键→electric_gateway - 同步服务IccLineSyncService复用OAuth2真实鉴权分页拉取探测器(POST /detector/subsystem/page,pageSize=50短页停止),按line_code(detectorCode)幂等upsert写icc_sync_log;customer_id由orgCode→customer.icc_code解析、gateway_id由parentCode→electric_gateway.device_code匹配、equip_id同步不填充 - 列表接口返回gateway/type/imei等新字段,keyword检索含imei;前端台账页更新为新列(IMEI/所属网关/探测器类型/回路通道/消防系统/生产日期),保留手动同步按钮与筛选 - 更新系统设计文档electric_line表定义与spec(add-icc-line-sync)
This commit is contained in:
1 parent
cf0a0d4d31
commit
160ad85051
13 files changed
+510
-200
No files matched your search
+38
-26
@@ -614,35 +614,47 @@ CREATE INDEX idx_contract_xt ON contract (xt_contract_no);
|
||||
-- 19. 智电改造线路表(ICC 同步 + 业务分配)
|
||||
DROP TABLE IF EXISTS electric_line CASCADE;
|
||||
CREATE TABLE 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()
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
line_code VARCHAR(64) NOT NULL UNIQUE,
|
||||
equip_id BIGINT,
|
||||
gateway_id BIGINT,
|
||||
customer_id BIGINT NOT NULL REFERENCES customer(id),
|
||||
line_name VARCHAR(128),
|
||||
imei VARCHAR(64),
|
||||
type_code VARCHAR(32),
|
||||
type_name VARCHAR(64),
|
||||
fire_system_code VARCHAR(64),
|
||||
fire_system_name VARCHAR(128),
|
||||
part_unit_loop_code VARCHAR(64),
|
||||
channel_no VARCHAR(64),
|
||||
channel_sn VARCHAR(64),
|
||||
produce_date VARCHAR(16),
|
||||
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 '创建时间';
|
||||
COMMENT ON TABLE electric_line IS '智电改造线路信息表(ICC 探测器同步)';
|
||||
COMMENT ON COLUMN electric_line.line_code IS '探测器编码(ICC detectorCode,唯一幂等键)';
|
||||
COMMENT ON COLUMN electric_line.line_name IS '探测器名称(ICC detectorName)';
|
||||
COMMENT ON COLUMN electric_line.imei IS '设备唯一标识码(ICC imei)';
|
||||
COMMENT ON COLUMN electric_line.equip_id IS '客户设备 ID(→ customer_equipment,可空,同步不填充)';
|
||||
COMMENT ON COLUMN electric_line.gateway_id IS '网关设备 ID(→ electric_gateway,外键由迁移/db_seed 建立)';
|
||||
COMMENT ON COLUMN electric_line.customer_id IS '客户 ID(orgCode→customer.icc_code 解析,逻辑隔离键)';
|
||||
COMMENT ON COLUMN electric_line.type_code IS '探测器类型编码';
|
||||
COMMENT ON COLUMN electric_line.type_name IS '探测器类型名称';
|
||||
COMMENT ON COLUMN electric_line.fire_system_code IS '消防系统编码';
|
||||
COMMENT ON COLUMN electric_line.fire_system_name IS '消防系统名称';
|
||||
COMMENT ON COLUMN electric_line.part_unit_loop_code IS '探测器回路号';
|
||||
COMMENT ON COLUMN electric_line.channel_no IS '探测器通道号';
|
||||
COMMENT ON COLUMN electric_line.channel_sn IS '通道唯一标识码';
|
||||
COMMENT ON COLUMN electric_line.produce_date IS '生产日期(yyyy-MM-dd)';
|
||||
COMMENT ON COLUMN electric_line.status IS '探测器状态:1在线 0离线(detectorStatus 01→1 / 02→0)';
|
||||
COMMENT ON COLUMN electric_line.synced_at IS 'ICC 同步时间';
|
||||
COMMENT ON COLUMN electric_line.created_at IS '创建时间';
|
||||
CREATE INDEX idx_line_customer ON electric_line (customer_id);
|
||||
CREATE INDEX idx_line_equip ON electric_line (equip_id);
|
||||
CREATE INDEX idx_line_icc ON electric_line (icc_device_code);
|
||||
CREATE INDEX idx_line_gateway ON electric_line (gateway_id);
|
||||
CREATE INDEX idx_line_imei ON electric_line (imei);
|
||||
|
||||
-- 20. 线路所属房间关联表
|
||||
DROP TABLE IF EXISTS line_room CASCADE;
|
||||
|
||||
Reference in new issue
Block a user