8 小时以前 9bad721754fe8bbe2e5f459d0706e0fefac569f3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
-- ============================================================
-- 智能质检报告设计平台 建表脚本
-- 模块: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 = '智能质检报告-渲染记录';