-- 收据申请单业务表(可重复执行) -- 目标库:db_gxtyzx(master) -- 执行顺序:01-approval.sql -> 02-approval_menu.sql -> 03-approval_orgs_roles.sql -- -> 04-approval_role_grants.sql -> 05-approval_phase2.sql -> 07-approval-receipt.sql -- -- 覆盖 ADR 0014(收据申请单):金额、付款方(检索主语)、事由、收据号(出纳回填)、申请日期; -- 不设「用途分类」等模板之外的自造字段。1:1 审批实例,业务表不随引擎回滚, -- 撤回/驳回由单据服务显式清空 receipt_no 并写 approval_field_change。 -- -- 收据号唯一性范围是「同租户 + 同 flow_code + 实例状态非 REJECTED/WITHDRAWN」, -- 跨表条件无法用唯一索引表达,因此这里只建普通索引供占用查询。 CREATE TABLE IF NOT EXISTS approval_receipt_form ( id BIGINT NOT NULL AUTO_INCREMENT, tenant_id INT NOT NULL DEFAULT 10150, instance_id BIGINT NOT NULL, amount DECIMAL(12,2) NOT NULL COMMENT '金额(元),0~99999999.99', payer_name VARCHAR(200) NOT NULL COMMENT '付款方,检索主语', reason VARCHAR(500) NOT NULL COMMENT '事由', receipt_no VARCHAR(64) DEFAULT NULL COMMENT '收据号,出纳回填;撤回/驳回清空', apply_date DATE 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 (instance_id), KEY idx_tenant_receipt_no (tenant_id, receipt_no) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收据申请单';