-- ================================================================ -- BMS 应收账单导出模板恢复脚本 -- -- 用途:恢复应收账单导出功能使用的内置默认模板配置。 -- 特点: -- 1. 可重复执行,不删除现有模板数据。 -- 2. 模板表不存在时自动创建;模板记录已存在时不会重复插入。 -- 3. storage_key 必须与后端 resources 下的模板路径一致。 -- ================================================================ SET NAMES utf8mb4; -- 1. 创建导出模板表(表已存在时不会重复创建) CREATE TABLE IF NOT EXISTS ar_export_template ( template_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '导出模板ID', template_code VARCHAR(50) NOT NULL COMMENT '模板编码,例如 AR_CUSTOMER_BILL', template_name VARCHAR(100) NOT NULL COMMENT '模板名称', business_type VARCHAR(50) NOT NULL COMMENT '业务类型,例如 AR_BILL', template_version VARCHAR(50) NOT NULL COMMENT '模板版本,已启用版本不可覆盖', storage_type VARCHAR(20) NOT NULL DEFAULT 'CLASSPATH' COMMENT '存储类型:CLASSPATH=应用内置资源,FILE=服务器文件,OSS=对象存储,MINIO=MinIO对象存储', storage_key VARCHAR(500) NOT NULL COMMENT '模板文件存储Key或classpath资源路径', file_hash VARCHAR(128) DEFAULT NULL COMMENT '模板文件SHA-256校验值', status VARCHAR(20) NOT NULL DEFAULT 'ENABLED' COMMENT '状态:ENABLED=启用,DISABLED=停用', is_default CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否默认模板:1是0否', effective_start DATE DEFAULT NULL COMMENT '生效开始日期', effective_end DATE DEFAULT NULL COMMENT '生效结束日期', remark VARCHAR(500) DEFAULT NULL COMMENT '备注', create_by VARCHAR(64) NOT NULL COMMENT '创建人', create_time DATETIME NOT NULL COMMENT '创建时间', update_by VARCHAR(64) DEFAULT NULL COMMENT '更新人', update_time DATETIME DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (template_id), UNIQUE KEY uk_ar_export_template_code_version (business_type, template_code, template_version), KEY idx_ar_export_template_default (business_type, status, is_default, effective_start, effective_end) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应收账单导出模板管理'; -- 2. 恢复系统内置的应收账单默认模板 -- 模板文件位置: -- bms-back/ruoyi-system/src/main/resources/templates/ar/ar_bill_template.xlsx INSERT INTO ar_export_template ( template_code, template_name, business_type, template_version, storage_type, storage_key, file_hash, status, is_default, effective_start, effective_end, remark, create_by, create_time, update_by, update_time ) SELECT 'AR_CUSTOMER_BILL', '应收账单默认模板', 'AR_BILL', '1.0', 'CLASSPATH', 'templates/ar/ar_bill_template.xlsx', '735002ac3561e0579b724c0612a2c5ce2d6725bc7fd39c450b0aeff70911a45e', 'ENABLED', '1', NULL, NULL, '系统内置默认模板', 'system', NOW(), 'system', NOW() FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM ar_export_template WHERE business_type = 'AR_BILL' AND template_code = 'AR_CUSTOMER_BILL' AND template_version = '1.0' ); -- 3. 执行后核验:应返回 1 条启用的默认模板记录 SELECT template_id, template_code, template_name, business_type, template_version, storage_type, storage_key, status, is_default, file_hash FROM ar_export_template WHERE business_type = 'AR_BILL' AND template_code = 'AR_CUSTOMER_BILL' AND template_version = '1.0';