42 lines
2.2 KiB
SQL
42 lines
2.2 KiB
SQL
-- 设施价格表(设施损坏修复与租用价格表)业务表(可重复执行)
|
||
-- 目标库: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='设施价格表明细';
|