-- ============================================================ -- 智能质检报告设计平台 建表脚本 -- 模块:yudao-module-qcreport -- 说明:项目不使用多租户,故不含 tenant_id 字段 -- ============================================================ -- ---------------------------- -- 报告模板 -- ---------------------------- DROP TABLE IF EXISTS `qc_report_template`; CREATE TABLE `qc_report_template` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '模板编号', `template_code` VARCHAR(64) NOT NULL COMMENT '模板编码', `template_name` VARCHAR(128) NOT NULL COMMENT '模板名称', `industry` VARCHAR(32) DEFAULT NULL COMMENT '所属行业', `report_type` VARCHAR(32) DEFAULT NULL COMMENT '报告类型', `page_size` VARCHAR(16) NOT NULL DEFAULT 'A4' COMMENT '纸张尺寸:A3/A4/A5/Letter', `orientation` VARCHAR(16) NOT NULL DEFAULT 'portrait' COMMENT '纸张方向:portrait/landscape', `status` TINYINT NOT NULL DEFAULT 0 COMMENT '模板状态:0启用 1停用', `current_version` VARCHAR(32) DEFAULT NULL COMMENT '当前版本号', `description` VARCHAR(512) DEFAULT NULL COMMENT '模板描述', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_template_code` (`template_code`), KEY `idx_template_name` (`template_name`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '智能质检报告-报告模板'; -- ---------------------------- -- 模板版本(发布后不可覆盖) -- ---------------------------- DROP TABLE IF EXISTS `qc_report_template_version`; CREATE TABLE `qc_report_template_version` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '版本编号', `template_id` BIGINT NOT NULL COMMENT '模板编号', `version` VARCHAR(32) NOT NULL COMMENT '版本号,如 v1.0', `schema_json` LONGTEXT COMMENT '模板 Schema(GrapesJS JSON + 组件 + 数据源 + 绑定 + 规则 + 样式)', `status` TINYINT NOT NULL DEFAULT 0 COMMENT '版本状态:0草稿 1已发布 2已停用', `description` VARCHAR(512) DEFAULT NULL COMMENT '版本说明', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_template_version` (`template_id`, `version`), KEY `idx_template_id` (`template_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '智能质检报告-模板版本'; -- ---------------------------- -- 报告实例(必须保存数据快照) -- ---------------------------- DROP TABLE IF EXISTS `qc_report_instance`; CREATE TABLE `qc_report_instance` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '实例编号', `report_no` VARCHAR(64) NOT NULL COMMENT '报告编号(业务唯一)', `template_id` BIGINT NOT NULL COMMENT '模板编号', `template_version` VARCHAR(32) NOT NULL COMMENT '生成时使用的模板版本号', `business_id` VARCHAR(64) DEFAULT NULL COMMENT '业务单据编号', `business_type` VARCHAR(64) DEFAULT NULL COMMENT '业务单据类型,如 mes_qc_iqc', `data_snapshot` LONGTEXT COMMENT '数据快照:渲染时的完整数据上下文', `render_html` LONGTEXT COMMENT '渲染产物 HTML', `status` TINYINT NOT NULL DEFAULT 0 COMMENT '报告状态:0生成中 1生成成功 2生成失败', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_report_no` (`report_no`), KEY `idx_template_id` (`template_id`), KEY `idx_business` (`business_type`, `business_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '智能质检报告-报告实例'; -- ---------------------------- -- 数据源定义 -- ---------------------------- DROP TABLE IF EXISTS `qc_report_data_source`; CREATE TABLE `qc_report_data_source` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '编号', `template_id` BIGINT NOT NULL COMMENT '模板编号', `source_key` VARCHAR(64) NOT NULL COMMENT '数据源标识,如 inspectionItems', `source_type` VARCHAR(32) NOT NULL COMMENT '数据源类型:BUILTIN/SQL/API', `config` LONGTEXT COMMENT '数据源配置 JSON', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_template_id` (`template_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '智能质检报告-数据源'; -- ---------------------------- -- 判定规则 -- ---------------------------- DROP TABLE IF EXISTS `qc_report_rule`; CREATE TABLE `qc_report_rule` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '编号', `template_id` BIGINT NOT NULL COMMENT '模板编号', `rule_name` VARCHAR(128) NOT NULL COMMENT '规则名称', `target_path` VARCHAR(256) NOT NULL COMMENT '作用目标路径,如 inspectionItems[].actualValue', `expression` VARCHAR(1024) NOT NULL COMMENT '判定表达式,如 actualValue >= lowerLimit AND actualValue <= upperLimit', `pass_value` VARCHAR(64) DEFAULT 'PASS' COMMENT '合格时输出值', `fail_value` VARCHAR(64) DEFAULT 'FAIL' COMMENT '不合格时输出值', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_template_id` (`template_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '智能质检报告-判定规则'; -- ---------------------------- -- 渲染记录(排查用:耗时、浏览器状态、异常栈) -- ---------------------------- DROP TABLE IF EXISTS `qc_report_render_record`; CREATE TABLE `qc_report_render_record` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '编号', `report_id` BIGINT DEFAULT NULL COMMENT '报告实例编号', `template_id` BIGINT DEFAULT NULL COMMENT '模板编号', `business_id` VARCHAR(64) DEFAULT NULL COMMENT '业务单据编号', `render_start_time` DATETIME DEFAULT NULL COMMENT '渲染开始时间', `render_end_time` DATETIME DEFAULT NULL COMMENT '渲染结束时间', `render_duration` BIGINT DEFAULT NULL COMMENT '渲染耗时(毫秒)', `pdf_duration` BIGINT DEFAULT NULL COMMENT 'PDF 生成耗时(毫秒)', `browser_status` VARCHAR(64) DEFAULT NULL COMMENT '浏览器状态', `error_stack` LONGTEXT COMMENT '异常堆栈', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_report_id` (`report_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '智能质检报告-渲染记录';