-- ============================================================
|
-- 智能质检报告设计平台 建表脚本
|
-- 模块: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 = '智能质检报告-渲染记录';
|