Files
BMS/bms-back/sql/ar/ar_export_template_restore.sql
T
2026-09-21 17:59:09 +08:00

100 lines
3.7 KiB
SQL

-- ================================================================
-- 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';