-- 设施价格表(设施损坏修复与租用价格表)业务表(可重复执行) -- 目标库:db_gxtyzx(master) -- 执行顺序:05-approval_phase2.sql -> ... -> 11-approval-facility.sql -- -- ADR 0012:审批实例即版本,不建独立价格表主数据表。 -- approval_facility_form 每个审批实例一行,业务字段只有生效日期(必填) -- approval_facility_item 实例的明细行,行即该版本条目,金额服务端重算 -- -- 当前生效版本 = 同租户同 flow_code 下 status=ARCHIVED 且 effective_date <= today -- 中 effective_date 最大者;历史版本按 effective_date 倒序(查询时算,不落库)。 CREATE TABLE IF NOT EXISTS approval_facility_form ( id BIGINT NOT NULL AUTO_INCREMENT, tenant_id INT NOT NULL DEFAULT 10150, instance_id BIGINT NOT NULL, effective_date DATE NOT NULL COMMENT '生效日期,不允许早于归档日', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_instance (instance_id), KEY idx_effective (tenant_id, effective_date) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设施价格表'; CREATE TABLE IF NOT EXISTS approval_facility_item ( id BIGINT NOT NULL AUTO_INCREMENT, tenant_id INT NOT NULL DEFAULT 10150, instance_id BIGINT NOT NULL, line_no INT NOT NULL COMMENT '行号,按提交顺序 1..N', item_name VARCHAR(200) NOT NULL COMMENT '名称', location VARCHAR(200) DEFAULT NULL COMMENT '位置', unit VARCHAR(20) NOT NULL COMMENT '单位', quantity DECIMAL(12,3) NOT NULL COMMENT '数量', unit_price DECIMAL(12,2) NOT NULL COMMENT '单价', amount DECIMAL(12,2) NOT NULL COMMENT '金额,服务端按 quantity × unit_price 重算', remark VARCHAR(200) DEFAULT NULL COMMENT '备注', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_instance_line (instance_id, line_no), KEY idx_instance (instance_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设施价格表明细';