feat(testreport): 添加多模板普测报告生成功能

- 创建多模板普测任务表(ai_testreport_multi)用于管理批量任务
- 扩展测试报告表添加多模板关联字段和模板目录路径信息
- 添加测试报告点表的Word附件相关字段用于文件存储
- 实现多模板批任务控制器提供压缩包校验和任务创建功能
- 开发多模板批任务服务接口支持任务管理和报告生成
- 添加多模板批任务存储服务实现文件上传和元数据管理
- 创建多模板常量类定义任务状态和存储路径常量
- 实现多模板批任务参数验证和数据传输对象
- 添加多模板批任务验证结果和模板目录汇总视图对象
- 完善测试报告台账导入服务删除旧文件时处理Word存储路径
This commit is contained in:
dk
2026-07-21 15:47:58 +08:00
parent 598ff9ea81
commit 664703f139
22 changed files with 2607 additions and 23 deletions

View File

@@ -0,0 +1,37 @@
SET NAMES utf8mb4;
CREATE TABLE `ai_testreport_multi` (
`id` varchar(36) NOT NULL COMMENT '多模板普测任务IDGUID',
`no` varchar(64) NOT NULL COMMENT '批任务编号',
`zip_file_name` varchar(255) NOT NULL COMMENT '上传压缩包文件名',
`zip_storage_path` varchar(500) NOT NULL COMMENT '上传压缩包存储路径',
`summary_file_name` varchar(255) NOT NULL COMMENT '台账汇总文件名',
`summary_storage_path` varchar(500) NOT NULL COMMENT '台账汇总存储路径',
`dir_count` int NOT NULL DEFAULT 0 COMMENT '模板目录数',
`child_report_count` int NOT NULL DEFAULT 0 COMMENT '子报告数',
`point_count` int NOT NULL DEFAULT 0 COMMENT '监测点总数',
`import_state` tinyint(1) NOT NULL DEFAULT 0 COMMENT '导入状态0待上传 1已上传待解析 2解析通过待创建 3已创建 4创建失败',
`generate_state` tinyint(1) NOT NULL DEFAULT 0 COMMENT '整体生成状态0未生成 1部分生成成功 2全部生成成功 3生成中 4生成失败',
`data` json DEFAULT NULL COMMENT '批任务快照数据',
`status` tinyint(1) NOT NULL COMMENT '状态(0删除 1正常)',
`create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
INDEX `idx_ai_testreport_multi_no` (`no`),
INDEX `idx_ai_testreport_multi_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='多模板普测任务表';
ALTER TABLE `ai_testreport`
ADD COLUMN `multi_id` varchar(36) DEFAULT NULL COMMENT '所属多模板普测任务IDGUID' AFTER `id`,
ADD COLUMN `template_dir_name` varchar(128) DEFAULT NULL COMMENT '压缩包一级模板目录名称' AFTER `report_model_id`,
ADD COLUMN `template_dir_path` varchar(255) DEFAULT NULL COMMENT '压缩包一级模板目录相对路径' AFTER `template_dir_name`,
ADD COLUMN `sort_no` int NOT NULL DEFAULT 0 COMMENT '父任务内排序号' AFTER `template_dir_path`,
ADD INDEX `idx_ai_testreport_multi_id` (`multi_id`);
ALTER TABLE `ai_testreport_point`
ADD COLUMN `excel_attachment_relative_path` varchar(500) DEFAULT NULL COMMENT 'Excel附件相对路径' AFTER `excel_attachment_name`,
ADD COLUMN `word_attachment_name` varchar(255) DEFAULT NULL COMMENT 'Word附件文件名' AFTER `excel_storage_path`,
ADD COLUMN `word_attachment_relative_path` varchar(500) DEFAULT NULL COMMENT 'Word附件相对路径' AFTER `word_attachment_name`,
ADD COLUMN `word_storage_path` varchar(500) DEFAULT NULL COMMENT 'Word附件存储路径' AFTER `word_attachment_relative_path`;