新增凭证管理

This commit is contained in:
2026-08-12 12:42:07 +08:00
parent 7f31952bff
commit 4ad3108c4d
28 changed files with 732 additions and 2 deletions
@@ -0,0 +1,42 @@
-- 文件服务数据库:分片上传任务主表。
-- 本脚本需与 blade_file_task_part 表配套执行;请在 blade-file 服务配置的数据源中运行。
CREATE TABLE IF NOT EXISTS `blade_file_task` (
`id` bigint NOT NULL COMMENT '主键ID',
`md5` varchar(128) NOT NULL COMMENT '文件MD5',
`object_key` varchar(1000) NOT NULL COMMENT '对象存储对象键',
`attachment_name` varchar(500) NOT NULL COMMENT '附件名称',
`suffix` varchar(50) DEFAULT NULL COMMENT '文件后缀',
`size` bigint NOT NULL COMMENT '文件大小,单位:字节',
`chunk_size` int NOT NULL COMMENT '分片大小,单位:字节',
`chunk_total` int NOT NULL COMMENT '分片总数',
`current_index` int NOT NULL DEFAULT 0 COMMENT '已完成分片数',
`upload_id` varchar(255) DEFAULT NULL COMMENT '对象存储上传任务ID',
`status` varchar(20) NOT NULL DEFAULT 'uploading' COMMENT '状态:uploading、completed、failed、paused',
`business_type` varchar(50) DEFAULT NULL COMMENT '业务类型,例如 voucher',
`business_id` varchar(64) DEFAULT NULL COMMENT '业务标识,例如凭证批次号',
`create_user_name` varchar(50) DEFAULT NULL COMMENT '创建人名称',
`create_user` bigint DEFAULT NULL COMMENT '创建人ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_user_name` varchar(50) DEFAULT NULL COMMENT '更新人名称',
`update_user` bigint DEFAULT NULL COMMENT '更新人ID',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`is_deleted` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除:0否、1是',
PRIMARY KEY (`id`),
KEY `idx_file_task_md5` (`md5`),
KEY `idx_file_task_business` (`business_type`, `business_id`),
KEY `idx_file_task_create_user_time` (`create_user`, `create_time`),
KEY `idx_file_task_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件分片上传任务';
CREATE TABLE IF NOT EXISTS `blade_file_task_part` (
`id` bigint NOT NULL COMMENT '主键ID',
`file_task_id` bigint NOT NULL COMMENT '文件上传任务ID',
`part_number` int NOT NULL COMMENT '分片编号,从1开始',
`etag` varchar(255) NOT NULL COMMENT '分片ETag',
`create_user` bigint DEFAULT NULL COMMENT '创建人ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_file_task_part` (`file_task_id`, `part_number`),
KEY `idx_file_task_part_task` (`file_task_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件分片上传任务分片记录';
@@ -0,0 +1,4 @@
-- 修复旧版 blade_file_task 的逻辑删除字段默认值。
-- 请在 blade-file 服务配置的数据源执行。
UPDATE `blade_file_task` SET `is_deleted` = 0 WHERE `is_deleted` IS NULL;
ALTER TABLE `blade_file_task` MODIFY COLUMN `is_deleted` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除:0否、1是';
@@ -0,0 +1,8 @@
-- 请在 blade_file 服务所使用的数据源执行本脚本,不要在 transport 库执行。
-- MySQL 8.0.29+ 支持 IF NOT EXISTS;若版本较低,请先确认字段和索引不存在再执行。
ALTER TABLE `blade_file_task`
ADD COLUMN IF NOT EXISTS `business_type` varchar(50) DEFAULT NULL COMMENT '业务类型',
ADD COLUMN IF NOT EXISTS `business_id` varchar(64) DEFAULT NULL COMMENT '业务标识';
CREATE INDEX IF NOT EXISTS `idx_file_task_business`
ON `blade_file_task` (`business_type`, `business_id`);