Files
my-springboot-project/docs/sql/knowledge_management_system.sql
2026-06-09 13:34:21 +08:00

1057 lines
144 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
Navicat Premium Dump SQL
Source Server : yun
Source Server Type : MySQL
Source Server Version : 80046 (8.0.46-0ubuntu0.22.04.2)
Source Host : 127.0.0.1:3306
Source Schema : knowledge_management_system
Target Server Type : MySQL
Target Server Version : 80046 (8.0.46-0ubuntu0.22.04.2)
File Encoding : 65001
Date: 09/06/2026 13:22:22
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for collection
-- ----------------------------
DROP TABLE IF EXISTS `collection`;
CREATE TABLE `collection` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1' COMMENT '知识库名',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '知识库存放路径',
`uploader` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上传者信息',
`department` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属部门,为空表示个人所有',
`owner_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'personal' COMMENT '所有者类型personal(个人) / department(部门)',
`visibility` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'private' COMMENT '可见性public(公开) / private(私密)',
`file_size` bigint NULL DEFAULT NULL COMMENT '文件大小(字节)',
`display_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '显示名称',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述信息',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`sync_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'LATEST' COMMENT '同步状态LATEST-最新版, OUTDATED-未更新, SYNCING-同步中, FAILED-同步失败',
`last_sync_time` datetime NULL DEFAULT NULL COMMENT '最后同步时间',
`sync_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '同步信息/错误消息',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_path`(`path` ASC) USING BTREE,
INDEX `idx_uploader`(`uploader` ASC) USING BTREE,
INDEX `idx_department`(`department` ASC) USING BTREE,
INDEX `idx_owner_type`(`owner_type` ASC) USING BTREE,
INDEX `idx_visibility`(`visibility` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '知识库存放路径表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of collection
-- ----------------------------
INSERT INTO `collection` VALUES (23, 'dept_1_kb', '/knowledge/dept_1_kb', '1', '总公司', 'department', 'public', NULL, '部门1知识库', '自动创建的向量库', '2026-06-02 14:05:53', '2026-06-02 14:05:53', 'LATEST', NULL, NULL);
-- ----------------------------
-- Table structure for collection_file
-- ----------------------------
DROP TABLE IF EXISTS `collection_file`;
CREATE TABLE `collection_file` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`collection_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '向量库名称(如 public_kb',
`doc_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文档名称(用于匹配 context_reference 的 doc_name',
`file_id` bigint NULL DEFAULT NULL COMMENT '关联的文件ID关联 file 表)',
`file_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件存储路径',
`doc_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文档类型pdf、word、excel',
`status` tinyint NULL DEFAULT 1 COMMENT '状态1-有效0-无效',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_collection_doc`(`collection_name` ASC, `doc_name` ASC) USING BTREE,
INDEX `idx_collection_name`(`collection_name` ASC) USING BTREE,
INDEX `idx_doc_name`(`doc_name` ASC) USING BTREE,
INDEX `idx_file_id`(`file_id` ASC) USING BTREE,
CONSTRAINT `fk_collection_file_file` FOREIGN KEY (`file_id`) REFERENCES `file` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '向量库文件关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of collection_file
-- ----------------------------
INSERT INTO `collection_file` VALUES (42, 'dept_1_kb', '1.docx', 72, 'resources/rule/总公司/南京分公司/技术部/1/v1/1.docx', '.docx', 1, '2026-06-02 22:06:41', '2026-06-05 16:10:42');
INSERT INTO `collection_file` VALUES (43, 'dept_1_kb', '2.docx', 70, 'resources/rule/总公司/2/v1/2.docx', '.docx', 1, '2026-06-02 22:15:18', '2026-06-02 22:15:18');
INSERT INTO `collection_file` VALUES (44, 'dept_1_kb', '3.docx', 71, 'resources/rule/总公司/3/v1/3.docx', '.docx', 1, '2026-06-02 22:15:48', '2026-06-02 22:15:48');
INSERT INTO `collection_file` VALUES (49, 'dept_1_kb', '需求分析.docx', 74, 'resources/rule/总公司/需求分析/v5/需求分析.docx', '.docx', 1, '2026-06-04 10:23:36', '2026-06-04 10:23:36');
-- ----------------------------
-- Table structure for context_conversation
-- ----------------------------
DROP TABLE IF EXISTS `context_conversation`;
CREATE TABLE `context_conversation` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '会话ID唯一',
`session_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '会话ID用于关联历史摘要',
`user_id` bigint NOT NULL COMMENT '用户ID',
`summary` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '会话摘要给AI用',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_session_id`(`session_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 73 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '上下文会话表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of context_conversation
-- ----------------------------
INSERT INTO `context_conversation` VALUES (72, 'sess_1780638743383', 1, '用户问: 市场权重计算公式', '2026-06-05 05:52:23');
-- ----------------------------
-- Table structure for context_image
-- ----------------------------
DROP TABLE IF EXISTS `context_image`;
CREATE TABLE `context_image` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`image_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '图片唯一标识',
`path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '存储路径',
`source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '来源文档',
`page` int NULL DEFAULT NULL COMMENT '来源页码(PDF)',
`section` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '章节信息',
`chunk_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '块类型(chart/image)',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '图片描述',
`score` decimal(10, 4) NULL DEFAULT NULL COMMENT '相关性评分',
`collection` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属向量库',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_image_id`(`image_id` ASC) USING BTREE,
INDEX `idx_collection`(`collection` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '图片存储表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of context_image
-- ----------------------------
INSERT INTO `context_image` VALUES (10, '49d2910b148d.jpg', 'img/49d2910b148d.jpg', '1.docx', 1, NULL, NULL, '这张图片展示了一个数学公式,属于数学表达式类型。公式表示的是一个一级指标(\\(\\xi_i\\))乘以相应的权重(\\(w_i^*\\))。主要内容是数学符号和变量的组合,关键信息在于表示了指标与权重的乘积关', 12.8000, NULL, '2026-06-05 03:57:03');
INSERT INTO `context_image` VALUES (11, '34d876d1a23b.jpg', 'img/34d876d1a23b.jpg', '1.docx', 1, NULL, NULL, '这张图片是一个占位符图像显示“WMF/EMF placeholder Use Windows to parse the original image”表明原始图像未加载或无法解析。图片类型为占位符', 3.5000, NULL, '2026-06-05 03:57:03');
-- ----------------------------
-- Table structure for context_message
-- ----------------------------
DROP TABLE IF EXISTS `context_message`;
CREATE TABLE `context_message` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '消息ID',
`conversation_id` bigint NOT NULL COMMENT '会话ID',
`role` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'user/assistant',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '问题/回答原文',
`message_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'text' COMMENT '消息类型text/summary/references',
`is_finished` tinyint NULL DEFAULT 0 COMMENT '回答是否结束',
`summary` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '会话摘要',
`kb_paths` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '知识库路径列表JSON格式',
`answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '完整答案',
`mode` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模式如rag',
`duration_ms` int NULL DEFAULT NULL COMMENT '处理耗时(毫秒)',
`images` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '图片信息列表JSON格式存储image_id和url',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_conversation_id`(`conversation_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 188 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '上下文消息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of context_message
-- ----------------------------
INSERT INTO `context_message` VALUES (182, 72, 'assistant', '市场权重计算公式', 'rag', 1, NULL, '[\"dept_1_kb\"]', '根据提供的参考资料,市场状态的计算公式为:市场状态=+二级指标均值\\*权重。这里的“二级指标均值”指的是各个二级指标的平均值,而“权重”则是每个二级指标在整体市场状态评估中的重要性比例。这个公式用于综合评估不同指标对市场状态的影响。\n\n对于市场权重的计算资料中提到各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。这意味着权重的确定是一个基于专家意见的过程旨在反映各个指标在市场状态评估中的相对重要性。[ref:1.docx_86]\n\n综上所述市场权重的计算涉及到确定每个二级指标的均值以及它们各自的权重而这些权重是通过专家评分来确定的。不过具体的权重数值或计算步骤在提供的资料中并未详细说明。', NULL, 66805, '[{\"image_id\":\"49d2910b148d.jpg\",\"url\":\"/api/image/49d2910b148d.jpg/data\"},{\"image_id\":\"34d876d1a23b.jpg\",\"url\":\"/api/image/34d876d1a23b.jpg/data\"}]', '2026-06-05 05:53:30');
INSERT INTO `context_message` VALUES (183, 72, 'assistant', '市场权重计算公式', 'rag', 1, NULL, '[\"dept_1_kb\"]', '根据提供的参考资料,市场权重的计算公式并没有直接给出。但是,有提到“市场状态=+二级指标均值\\*权重”,这表明市场状态是通过将各个二级指标的均值乘以相应的权重后相加得到的。\n\n此外还提到了一级指标合计权重不低于70%,并且各明细指标权重确定可采用专家评分法确定。[ref:1.docx_86]\n\n因此虽然没有明确的市场权重计算公式但可以推断市场权重的计算涉及将各个指标的均值乘以相应的权重并且一级指标的权重总和应不低于70%。', NULL, 61181, '[{\"image_id\":\"49d2910b148d.jpg\",\"url\":\"/api/image/49d2910b148d.jpg/data\"},{\"image_id\":\"34d876d1a23b.jpg\",\"url\":\"/api/image/34d876d1a23b.jpg/data\"}]', '2026-06-05 06:04:59');
INSERT INTO `context_message` VALUES (184, 72, 'assistant', '市场权重计算公式', 'rag', 1, NULL, '[\"dept_1_kb\"]', '根据提供的参考资料,市场权重的计算公式并没有直接给出。但是,有提到“市场状态=+二级指标均值\\*权重”,这表明市场状态的计算涉及二级指标的均值与权重的乘积。\n\n此外关于权重确定的方法资料中提到可以采用专家评分法来确定各明细指标的权重组织专家对各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。[ref:1.docx_86]\n\n因此虽然没有明确的市场权重计算公式但可以推断出市场权重的计算可能涉及到将各个二级指标的均值与其对应的权重相乘然后将这些结果相加得到市场状态的综合值。具体的权重数值需要通过专家评分等方法来确定。', NULL, 67865, '[{\"image_id\":\"49d2910b148d.jpg\",\"url\":\"/api/image/49d2910b148d.jpg/data\"},{\"image_id\":\"34d876d1a23b.jpg\",\"url\":\"/api/image/34d876d1a23b.jpg/data\"}]', '2026-06-05 06:18:14');
INSERT INTO `context_message` VALUES (185, 72, 'assistant', '市场权重计算公式', 'rag', 1, NULL, '[\"dept_1_kb\"]', '根据提供的参考资料,市场权重的计算公式并没有直接给出。但是,有提到“市场状态=+二级指标均值\\*权重”,这表明市场状态的计算涉及到二级指标的均值乘以相应的权重。\n\n此外还提到“一级指标合计权重不低于70%”这说明在计算市场状态时各个一级指标的权重总和应该至少为70%。[ref:1.docx_86]\n\n对于具体的权重确定方法资料中提到可以采用专家评分法来确定各明细指标的权重组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。[ref:1.docx_86]\n\n综上所述虽然没有直接提供市场权重的计算公式但可以推断出市场权重的计算涉及到了二级指标的均值与权重的乘积以及一级指标权重的合计不低于70%。具体的权重值需要通过专家评分等方法来确定。', NULL, 63932, '[{\"image_id\":\"49d2910b148d.jpg\",\"url\":\"/api/image/49d2910b148d.jpg/data\"},{\"image_id\":\"34d876d1a23b.jpg\",\"url\":\"/api/image/34d876d1a23b.jpg/data\"}]', '2026-06-05 06:28:41');
INSERT INTO `context_message` VALUES (186, 72, 'assistant', '市场权重计算公式', 'rag', 1, NULL, '[\"dept_1_kb\"]', '根据提供的参考资料,市场权重的计算公式并没有直接给出。但是,有提到“市场状态=+二级指标均值\\*权重”,这表明市场状态是通过将各个二级指标的均值乘以相应的权重来计算的。\n\n此外还提到“一级指标合计权重不低于70%”这说明在计算市场状态时需要确保所有一级指标的权重总和至少为70%。[ref:1.docx_86]\n\n对于具体的权重确定方法资料中提到可以采用专家评分法组织专家对各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。[ref:1.docx_86]\n\n综上所述虽然没有直接给出市场权重的计算公式但可以通过上述信息推断出市场权重的计算方式。', NULL, 60684, '[{\"image_id\":\"49d2910b148d.jpg\",\"url\":\"/api/image/49d2910b148d.jpg/data\"},{\"image_id\":\"34d876d1a23b.jpg\",\"url\":\"/api/image/34d876d1a23b.jpg/data\"}]', '2026-06-05 06:37:10');
INSERT INTO `context_message` VALUES (187, 72, 'assistant', '市场权重计算公式', 'rag', 1, NULL, '[\"dept_1_kb\"]', '根据提供的参考资料,市场权重的计算公式并没有直接给出。但是,有提到“市场状态=+二级指标均值\\*权重”,这表明市场状态是通过将各个二级指标的均值乘以相应的权重来计算的。\n\n此外还提到“一级指标合计权重不低于70%”这说明在计算市场状态时各个一级指标的权重总和必须至少为70%。[ref:1.docx_86]\n\n对于具体的权重确定方法资料中提到可以采用专家评分法组织专家对各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。[ref:1.docx_86]\n\n综上所述虽然没有明确的市场权重计算公式但可以根据上述信息推断出市场权重的计算方式。', NULL, 61949, '[{\"image_id\":\"49d2910b148d.jpg\",\"url\":\"/api/image/49d2910b148d.jpg/data\"},{\"image_id\":\"34d876d1a23b.jpg\",\"url\":\"/api/image/34d876d1a23b.jpg/data\"}]', '2026-06-06 07:17:19');
-- ----------------------------
-- Table structure for context_reference
-- ----------------------------
DROP TABLE IF EXISTS `context_reference`;
CREATE TABLE `context_reference` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '引用ID',
`message_id` bigint NOT NULL COMMENT '消息ID',
`chunk_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'Chunk唯一ID',
`chunk_index` int NULL DEFAULT NULL COMMENT '全局切片序号',
`collection` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属知识库',
`doc_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文件展示名称',
`doc_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文档类型pdf、word、excel',
`page` int NULL DEFAULT NULL COMMENT '起始页码',
`page_end` int NULL DEFAULT NULL COMMENT '结束页码(跨页切片时有值)',
`page_range` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '页码范围显示文本,如 \"5\" 或 \"5-8\"',
`section` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属章节路径',
`chunk_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '切片类型text、table、image',
`section_chunk_id` int NULL DEFAULT NULL COMMENT '章节内段落序号Word文档语义定位',
`bbox` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '边界框坐标 [x0,y0,x1,y1]仅PDF',
`bbox_mode` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '坐标模式normalized',
`preview` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '内容摘要(用于搜索定位)',
`excerpt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '匹配原文片段',
`score` decimal(5, 4) NULL DEFAULT NULL COMMENT '相关性分数0-1',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
`file_id` bigint NULL DEFAULT NULL COMMENT '关联的 collection_file 表的 id',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_message_id`(`message_id` ASC) USING BTREE,
INDEX `idx_chunk_id`(`chunk_id` ASC) USING BTREE,
INDEX `idx_chunk_index`(`chunk_index` ASC) USING BTREE,
INDEX `idx_collection`(`collection` ASC) USING BTREE,
INDEX `idx_file_id`(`file_id` ASC) USING BTREE,
CONSTRAINT `fk_context_reference_message` FOREIGN KEY (`message_id`) REFERENCES `context_message` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 481 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '上下文引用表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of context_reference
-- ----------------------------
INSERT INTO `context_reference` VALUES (474, 182, '1.docx_80', 80, 'dept_1_kb', '1.docx', 'other', 1, 1, NULL, '1.市场状态的计算公式为: > 市场状态=+二级指标均值\\*权重', 'text', 0, 'null', 'null', '市场状态=+二级指标均值\\*权重\n主题1.市场状态的计算公式为: > 市场状态=+二级指标均值\\*权重\n市场状态=+二级指标均值\\*权重', '市场状态=+二级指标均值\\*权重\n主题1.市场状态的计算公式为: > 市场状态=+二级指标均值\\*权重\n市场状态=+二级指标均值\\*权重', NULL, '2026-06-05 06:01:08', 42);
INSERT INTO `context_reference` VALUES (475, 182, '1.docx_86', 86, 'dept_1_kb', '1.docx', 'other', 1, 1, NULL, '', 'text', 0, 'null', 'null', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', NULL, '2026-06-05 06:01:08', 42);
INSERT INTO `context_reference` VALUES (476, 183, '1.docx_86', 86, 'dept_1_kb', '1.docx', 'other', 1, 1, NULL, '', 'text', 0, 'null', 'null', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', NULL, '2026-06-05 06:04:59', 42);
INSERT INTO `context_reference` VALUES (477, 184, '1.docx_86', 86, 'dept_1_kb', '1.docx', 'other', 1, 1, NULL, '', 'text', 0, 'null', 'null', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', NULL, '2026-06-05 06:18:14', 42);
INSERT INTO `context_reference` VALUES (478, 185, '1.docx_86', 86, 'dept_1_kb', '1.docx', 'other', 1, 1, NULL, '', 'text', 0, 'null', 'null', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', NULL, '2026-06-05 06:28:41', 42);
INSERT INTO `context_reference` VALUES (479, 186, '1.docx_86', 86, 'dept_1_kb', '1.docx', 'other', 1, 1, NULL, '', 'text', 0, 'null', 'null', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', NULL, '2026-06-05 06:37:10', 42);
INSERT INTO `context_reference` VALUES (480, 187, '1.docx_86', 86, 'dept_1_kb', '1.docx', 'other', 1, 1, NULL, '', 'text', 0, 'null', 'null', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', '一级指标合计权重不低于70%。\n主题2.指标值与权重确定。 > 一级指标合计权重不低于70%。\n一级指标合计权重不低于70%。\n各明细指标权重确定可采用专家评分法确定组织专家选取各类市场状态有代表性的在销品规进行评分并根据市场状态计算公式确定各指标的权重。\n专家评分可由系统内营销管理人员、一线营销人员、工业企业营销代表和零售客户代表组成以集中研讨或调查问卷的方式开展。', NULL, '2026-06-06 07:17:20', 42);
-- ----------------------------
-- Table structure for data_dict
-- ----------------------------
DROP TABLE IF EXISTS `data_dict`;
CREATE TABLE `data_dict` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`dict_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字典类型',
`dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字典编码',
`dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字典名称',
`dict_value` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '字典值',
`parent_id` bigint NULL DEFAULT NULL COMMENT '父级ID',
`sort_order` int NULL DEFAULT 0 COMMENT '排序号',
`status` tinyint NULL DEFAULT 1 COMMENT '状态1 启用0 禁用',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_dict_type_code`(`dict_type` ASC, `dict_code` ASC) USING BTREE,
INDEX `idx_dict_type`(`dict_type` ASC) USING BTREE,
INDEX `idx_parent_id`(`parent_id` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据字典表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of data_dict
-- ----------------------------
-- ----------------------------
-- Table structure for department
-- ----------------------------
DROP TABLE IF EXISTS `department`;
CREATE TABLE `department` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '部门 ID',
`dept_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '部门名称',
`dept_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '部门编码',
`parent_id` bigint NULL DEFAULT NULL COMMENT '父部门 ID',
`dept_level` int NULL DEFAULT NULL COMMENT '部门层级',
`manager_id` bigint NULL DEFAULT NULL COMMENT '部门管理员 ID',
`status` tinyint NULL DEFAULT 1 COMMENT '状态1 启用0 禁用',
`sort_order` int NULL DEFAULT 0 COMMENT '排序号',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`dept_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'DEPARTMENT' COMMENT '部门类型HEADQUARTERS-总公司, BRANCH-分公司, DEPARTMENT-部门',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_dept_code`(`dept_code` ASC) USING BTREE,
INDEX `idx_parent_id`(`parent_id` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
INDEX `idx_dept_type`(`dept_type` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '部门表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of department
-- ----------------------------
INSERT INTO `department` VALUES (1, '总公司', 'HEADQUARTERS_MAIN', 0, 1, NULL, 1, 0, '集团总公司', '2026-04-27 09:22:57', '2026-04-27 09:36:53', 'HEADQUARTERS');
INSERT INTO `department` VALUES (2, '南京分公司', 'NANJING_BRANCH', 1, 2, NULL, 1, 1, '南京地区分公司', '2026-04-27 09:22:57', '2026-04-27 09:36:53', 'BRANCH');
INSERT INTO `department` VALUES (3, '技术部', 'TECH_DEPT', 2, 3, NULL, 1, 1, NULL, '2026-04-16 09:05:15', '2026-04-27 09:36:53', 'DEPARTMENT');
INSERT INTO `department` VALUES (4, '采购部门', 'PURCHASE_DEPT', 2, 3, NULL, 1, 2, NULL, '2026-04-16 19:30:00', '2026-04-27 09:36:53', 'DEPARTMENT');
INSERT INTO `department` VALUES (5, '管理部门', 'MANAGE_DEPT', 2, 3, NULL, 1, 3, NULL, '2026-04-16 19:30:00', '2026-04-27 09:36:53', 'DEPARTMENT');
INSERT INTO `department` VALUES (6, '人事部门', 'HR_DEPT', 2, 3, NULL, 1, 4, NULL, '2026-04-16 19:30:00', '2026-04-27 09:36:53', 'DEPARTMENT');
INSERT INTO `department` VALUES (7, '公共部门', 'PUBLIC_DEPT', 2, 3, NULL, 1, 5, '公共资源和信息管理部门', '2026-04-16 19:30:00', '2026-04-27 09:36:53', 'DEPARTMENT');
-- ----------------------------
-- Table structure for dept_admin
-- ----------------------------
DROP TABLE IF EXISTS `dept_admin`;
CREATE TABLE `dept_admin` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint NOT NULL COMMENT '用户ID必须是部门管理员',
`dept_id` bigint NOT NULL COMMENT '管理的部门ID',
`is_primary` tinyint NULL DEFAULT 0 COMMENT '是否主管理员1 是0 否',
`status` tinyint NULL DEFAULT 1 COMMENT '状态1 启用0 禁用',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_dept`(`user_id` ASC, `dept_id` ASC) USING BTREE,
INDEX `idx_dept_id`(`dept_id` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
CONSTRAINT `fk_dept_admin_dept` FOREIGN KEY (`dept_id`) REFERENCES `department` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
CONSTRAINT `fk_dept_admin_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '部门管理员关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of dept_admin
-- ----------------------------
INSERT INTO `dept_admin` VALUES (1, 2, 3, 1, 1, NULL, '2026-04-16 09:05:15', '2026-04-16 09:05:15');
INSERT INTO `dept_admin` VALUES (2, 7, 4, 1, 1, NULL, '2026-04-16 19:30:00', '2026-04-16 19:30:00');
INSERT INTO `dept_admin` VALUES (3, 8, 6, 1, 1, NULL, '2026-04-16 19:30:00', '2026-04-16 19:30:00');
INSERT INTO `dept_admin` VALUES (4, 9, 7, 1, 1, NULL, '2026-04-16 19:30:00', '2026-04-16 19:30:00');
-- ----------------------------
-- Table structure for exam_assignment
-- ----------------------------
DROP TABLE IF EXISTS `exam_assignment`;
CREATE TABLE `exam_assignment` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`paper_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '试卷ID',
`dept_id` bigint NULL DEFAULT NULL COMMENT '部门ID为空表示全部部门',
`dept_ids` json NULL COMMENT '部门ID列表JSON数组支持多部门选择',
`user_ids` json NULL COMMENT '指定用户ID列表JSON数组',
`exclude_user_ids` json NULL COMMENT '排除用户ID列表JSON数组',
`publish_time` datetime NOT NULL COMMENT '发布时间',
`deadline` datetime NULL DEFAULT NULL COMMENT '截止时间',
`status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'active' COMMENT '状态active-有效revoked-已撤回',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_paper_id`(`paper_id` ASC) USING BTREE,
INDEX `idx_dept_id`(`dept_id` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
CONSTRAINT `fk_exam_assignment_dept` FOREIGN KEY (`dept_id`) REFERENCES `department` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT,
CONSTRAINT `fk_exam_assignment_paper` FOREIGN KEY (`paper_id`) REFERENCES `exam_paper` (`paper_id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 59 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '试卷分配表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of exam_assignment
-- ----------------------------
INSERT INTO `exam_assignment` VALUES (57, 'fa5cc1e4-ae44-4a9f-baf0-09fb6eb790c2', NULL, '[1]', '[]', '[]', '2026-06-09 00:15:20', NULL, 'active', '2026-06-09 00:15:20', '2026-06-09 00:15:20');
INSERT INTO `exam_assignment` VALUES (58, '17dd60eb-66f6-4398-973c-2dbc2383a75f', NULL, '[1]', '[]', '[]', '2026-06-09 01:20:43', NULL, 'active', '2026-06-09 01:20:43', '2026-06-09 01:20:43');
-- ----------------------------
-- Table structure for exam_paper
-- ----------------------------
DROP TABLE IF EXISTS `exam_paper`;
CREATE TABLE `exam_paper` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`paper_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '试卷UUID',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '试卷标题',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '试卷描述',
`total_score` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '总分',
`duration` int NULL DEFAULT 0 COMMENT '考试时长分钟0表示不限时',
`question_count` int NULL DEFAULT 0 COMMENT '题目数量',
`question_ids` json NULL COMMENT '题目ID列表JSON数组',
`permission_scope` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '本部门' COMMENT '权限范围:本部门/本部门+本人/公开',
`status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'draft' COMMENT '状态draft-草稿published-已发布closed-已结束',
`created_by` bigint NOT NULL COMMENT '创建人ID',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`publish_time` datetime NULL DEFAULT NULL COMMENT '发布时间',
`deadline` datetime NULL DEFAULT NULL COMMENT '截止时间',
`dept_id` bigint NULL DEFAULT NULL COMMENT '部门ID',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_paper_id`(`paper_id` ASC) USING BTREE,
INDEX `idx_created_by`(`created_by` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
INDEX `idx_publish_time`(`publish_time` ASC) USING BTREE,
CONSTRAINT `fk_exam_paper_user` FOREIGN KEY (`created_by`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 50 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '试卷基础信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of exam_paper
-- ----------------------------
INSERT INTO `exam_paper` VALUES (48, 'fa5cc1e4-ae44-4a9f-baf0-09fb6eb790c2', '自动生成的试卷', NULL, 19.00, 120, 5, '[\"53b4b536-c25d-472d-8311-91d04c8ed97d\", \"de0592b7-46cb-4bdd-bee8-886fbeadbdec\", \"8d9e3f1d-6f39-4e2e-980f-a2323b276c12\", \"f2bbcd90-08cf-4010-8920-6edba7755b11\", \"aa972438-1860-44d8-b119-9809baba7144\"]', '本部门', 'published', 1, '2026-06-09 00:03:06', '2026-06-09 00:15:20', '2026-06-09 00:15:20', NULL, 1);
INSERT INTO `exam_paper` VALUES (49, '17dd60eb-66f6-4398-973c-2dbc2383a75f', '自动生成的试卷', NULL, 19.00, 120, 5, '[\"53b4b536-c25d-472d-8311-91d04c8ed97d\", \"de0592b7-46cb-4bdd-bee8-886fbeadbdec\", \"8d9e3f1d-6f39-4e2e-980f-a2323b276c12\", \"f2bbcd90-08cf-4010-8920-6edba7755b11\", \"aa972438-1860-44d8-b119-9809baba7144\"]', '本部门', 'published', 1, '2026-06-09 01:20:39', '2026-06-09 01:20:43', '2026-06-09 01:20:43', NULL, 1);
-- ----------------------------
-- Table structure for exam_record
-- ----------------------------
DROP TABLE IF EXISTS `exam_record`;
CREATE TABLE `exam_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`record_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '记录UUID',
`paper_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '试卷ID',
`answer_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'practice' COMMENT '答题类型formal_exam-正式考试mock_exam-模拟考practice-日常练习',
`user_id` bigint NOT NULL COMMENT '用户ID',
`status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'not_started' COMMENT '状态not_started-未开始in_progress-作答中submitted-已提交graded-已批阅',
`total_score` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '总得分',
`submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间',
`graded_time` datetime NULL DEFAULT NULL COMMENT '批阅时间',
`graded_by` bigint NULL DEFAULT NULL COMMENT '批阅人ID',
`time_spent` int NULL DEFAULT 0 COMMENT '答题耗时(秒)',
`start_time` datetime NULL DEFAULT NULL COMMENT '开始时间',
`last_active_time` datetime NULL DEFAULT NULL COMMENT '最后活跃时间',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_record_id`(`record_id` ASC) USING BTREE,
UNIQUE INDEX `uk_user_paper_type`(`user_id` ASC, `paper_id` ASC, `answer_type` ASC) USING BTREE,
INDEX `idx_paper_id`(`paper_id` ASC) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
INDEX `idx_exam_record_user_status`(`user_id` ASC, `status` ASC) USING BTREE,
INDEX `idx_exam_record_paper_status`(`paper_id` ASC, `status` ASC) USING BTREE,
INDEX `fk_exam_record_graded_by`(`graded_by` ASC) USING BTREE,
CONSTRAINT `fk_exam_record_graded_by` FOREIGN KEY (`graded_by`) REFERENCES `user` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT,
CONSTRAINT `fk_exam_record_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 209 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '考试记录表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of exam_record
-- ----------------------------
INSERT INTO `exam_record` VALUES (203, 'a4a08674-0915-4997-9d47-582de68cc564', 'fa5cc1e4-ae44-4a9f-baf0-09fb6eb790c2', 'formal_exam', 1, 'in_progress', 0.00, NULL, NULL, NULL, 0, '2026-06-09 00:15:30', '2026-06-09 00:15:30', '2026-06-09 00:15:20', '2026-06-09 00:15:30');
INSERT INTO `exam_record` VALUES (204, '36d27077-b0b5-469e-9e26-14692bf259d0', 'fa5cc1e4-ae44-4a9f-baf0-09fb6eb790c2', 'formal_exam', 3, 'not_started', 0.00, NULL, NULL, NULL, 0, NULL, NULL, '2026-06-09 00:15:20', '2026-06-09 00:15:20');
INSERT INTO `exam_record` VALUES (205, '4c5c0c79-7bdc-4474-913f-0f6ace1c3fe9', 'fa5cc1e4-ae44-4a9f-baf0-09fb6eb790c2', 'formal_exam', 4, 'not_started', 0.00, NULL, NULL, NULL, 0, NULL, NULL, '2026-06-09 00:15:20', '2026-06-09 00:15:20');
INSERT INTO `exam_record` VALUES (206, '1a09a335-9265-4954-9975-96231d989071', '17dd60eb-66f6-4398-973c-2dbc2383a75f', 'formal_exam', 1, 'graded', 0.00, '2026-06-09 01:20:55', '2026-06-09 01:20:55', NULL, 10, '2026-06-09 01:20:45', '2026-06-09 01:20:45', '2026-06-09 01:20:43', '2026-06-09 01:20:55');
INSERT INTO `exam_record` VALUES (207, 'b3fbdd9b-09ab-4bda-8cbd-267aeefb9f21', '17dd60eb-66f6-4398-973c-2dbc2383a75f', 'formal_exam', 3, 'not_started', 0.00, NULL, NULL, NULL, 0, NULL, NULL, '2026-06-09 01:20:43', '2026-06-09 01:20:43');
INSERT INTO `exam_record` VALUES (208, 'b0716a33-7fea-47fe-a023-f9da832ef704', '17dd60eb-66f6-4398-973c-2dbc2383a75f', 'formal_exam', 4, 'not_started', 0.00, NULL, NULL, NULL, 0, NULL, NULL, '2026-06-09 01:20:43', '2026-06-09 01:20:43');
-- ----------------------------
-- Table structure for faq
-- ----------------------------
DROP TABLE IF EXISTS `faq`;
CREATE TABLE `faq` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`question` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '问题',
`answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '答案',
`avg_rating` decimal(3, 2) NULL DEFAULT 0.00 COMMENT '平均评分',
`frequency` int NULL DEFAULT 0 COMMENT '查询频率',
`status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'pending' COMMENT '状态pending/approved/rejected',
`source_documents` json NULL COMMENT '来源文档',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
FULLTEXT INDEX `idx_question`(`question`)
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'FAQ表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of faq
-- ----------------------------
-- ----------------------------
-- Table structure for faq_suggestion
-- ----------------------------
DROP TABLE IF EXISTS `faq_suggestion`;
CREATE TABLE `faq_suggestion` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`query` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户查询',
`answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '建议答案',
`avg_rating` decimal(3, 2) NULL DEFAULT 0.00 COMMENT '平均评分',
`frequency` int NULL DEFAULT 0 COMMENT '出现频率',
`status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'pending' COMMENT '状态pending/approved/rejected',
`faq_id` bigint NULL DEFAULT NULL COMMENT '关联的FAQ ID审批通过后',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
INDEX `fk_faq_suggestion_faq`(`faq_id` ASC) USING BTREE,
CONSTRAINT `fk_faq_suggestion_faq` FOREIGN KEY (`faq_id`) REFERENCES `faq` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'FAQ建议表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of faq_suggestion
-- ----------------------------
-- ----------------------------
-- Table structure for feedback
-- ----------------------------
DROP TABLE IF EXISTS `feedback`;
CREATE TABLE `feedback` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`feedback_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '反馈唯一标识',
`session_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '会话ID',
`user_id` bigint NULL DEFAULT NULL COMMENT '用户ID',
`query` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户问题',
`answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '系统回答',
`rating` tinyint NOT NULL COMMENT '评分1=赞,-1=踩',
`reason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '反馈原因',
`sources` json NULL COMMENT '来源文档列表',
`faq_suggested` tinyint NULL DEFAULT 0 COMMENT '是否建议为FAQ',
`suggestion_id` bigint NULL DEFAULT NULL COMMENT '关联的FAQ建议ID',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_feedback_id`(`feedback_id` ASC) USING BTREE,
INDEX `idx_session_id`(`session_id` ASC) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_rating`(`rating` ASC) USING BTREE,
INDEX `idx_created_at`(`created_at` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户反馈表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of feedback
-- ----------------------------
INSERT INTO `feedback` VALUES (1, '7', 'sess_test_001', NULL, '出差补助标准是什么?', '根据公司规定国内出差补助标准为每天200元。', 1, '回答准确详细', '[\"报销制度.pdf\"]', 0, NULL, '2026-05-06 08:50:59');
INSERT INTO `feedback` VALUES (2, '8', 'sess_test_001', NULL, '出差补助标准是什么?', '根据公司规定国内出差补助标准为每天200元。', 1, '回答准确详细', '[\"报销制度.pdf\"]', 0, NULL, '2026-05-06 08:58:38');
-- ----------------------------
-- Table structure for file
-- ----------------------------
DROP TABLE IF EXISTS `file`;
CREATE TABLE `file` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件名',
`file_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件存储路径',
`file_size` bigint NULL DEFAULT NULL COMMENT '文件大小(字节)',
`file_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件类型MIME类型',
`extension` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件扩展名',
`file_md5` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件MD5值',
`upload_user_id` bigint NULL DEFAULT NULL COMMENT '上传用户ID',
`dept_id` bigint NULL DEFAULT NULL COMMENT '部门ID',
`dept_ids` json NULL COMMENT '拥有该文件的部门ID列表JSON数组支持多部门',
`is_public` tinyint NULL DEFAULT 1 COMMENT '是否公开0-私密1-公开',
`file_category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'personal' COMMENT '文件分类rule-制度文件personal-个人文件',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件描述',
`status` tinyint NULL DEFAULT 1 COMMENT '状态0-禁用1-启用',
`audit_status` tinyint NULL DEFAULT 0 COMMENT '审核状态0-待审核1-已通过2-已拒绝',
`vector_db_address` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '向量库地址',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`process_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'INDEXED' COMMENT '处理状态PENDING-未入库, INDEXED-已入库, SLICING-正在切片, VECTORIZING-正在向量化, EXPIRED-已过期',
`exam_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'UNGENERATED' COMMENT '题目生成状态UNGENERATED-未出题, GENERATING-出题中, GENERATED-已有题目, FAILED-出题失败',
`process_step_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'UPLOADED' COMMENT '流程状态: UPLOADED-文件已上传, VECTORIZING-正在向量化, VECTORIZED-向量化完成, VECTORIZE_FAILED-向量化失败, EXAM_GENERATING-正在生成题目, EXAM_GENERATED-题目生成完成, EXAM_GENERATE_FAILED-题目生成失败, COMPLETED-全部流程完成',
`process_step_message` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流程状态信息',
`process_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '处理信息/错误消息',
`tags` json NULL COMMENT '文件自定义标签,如版本信息、分类标识等元数据',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_upload_user_id`(`upload_user_id` ASC) USING BTREE,
INDEX `idx_dept_id`(`dept_id` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_is_public`(`is_public` ASC) USING BTREE,
INDEX `idx_file_category`(`file_category` ASC) USING BTREE,
INDEX `idx_audit_status`(`audit_status` ASC) USING BTREE,
INDEX `idx_file_status`(`status` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 78 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件管理表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of file
-- ----------------------------
INSERT INTO `file` VALUES (70, '2.docx', 'resources/rule/总公司/2/v1/2.docx', 775988, 'application/vnd.openxmlformats-officedocument.word', '.docx', NULL, 1, 1, NULL, 1, 'rule', NULL, 1, 1, 'dept_1_kb/2.docx', '2026-06-02 14:11:01', '2026-06-06 01:59:48', 'INDEXED', 'GENERATED', 'EXAM_GENERATED', '题目生成完成', '警告未生成任何题目。可能原因文档内容为空、文档内容无法提取题目、或文档格式不支持。source_chunks_used=0', NULL);
INSERT INTO `file` VALUES (71, '3.docx', 'resources/rule/总公司/3/v1/3.docx', 1454500, 'application/vnd.openxmlformats-officedocument.word', '.docx', NULL, 1, 1, NULL, 1, 'rule', NULL, 1, 1, 'dept_1_kb/3.docx', '2026-06-02 14:11:12', '2026-06-02 14:27:11', 'INDEXED', 'GENERATED', 'EXAM_GENERATED', '题目生成完成', '生成成功共17道题\n\n【AI分析结果】\n{\"question_types\":{\"fill_blank\":5,\"multiple_choice\":8,\"single_choice\":12,\"subjective\":0,\"true_false\":0},\"reason\":\"内容含流程、条款、职责等明确知识点,适合客观题;主观题不适配细节性规范文本\",\"suitable_types\":[\"single_choice\",\"multiple_choice\",\"fill_blank\"],\"total_knowledge_points\":31}', NULL);
INSERT INTO `file` VALUES (72, '1.docx', 'resources/rule/总公司/南京分公司/技术部/1/v1/1.docx', 483352, 'application/vnd.openxmlformats-officedocument.word', '.docx', NULL, 1, 3, NULL, 1, 'rule', NULL, 1, 1, 'dept_3_kb/1.docx', '2026-06-03 02:01:08', '2026-06-08 02:35:43', 'INDEXED', 'GENERATED', 'EXAM_GENERATED', '题目生成完成', '生成成功共25道题\n\n【题型统计】\n请求题型: {填空题: 10道, 多选题: 0道, 单选题: 10道, 主观题: 0道, 判断题: 10道}\n实际生成: {填空题: 8道, 单选题: 7道, 判断题: 10道}\n\n【短缺警告】\n- single_choice: 请求 10 道,实际生成 7 道\n- fill_blank: 请求 10 道,实际生成 8 道\n\n【AI分析结果】\n{\"question_types\":{\"fill_blank\":10,\"multiple_choice\":0,\"single_choice\":10,\"subjective\":0,\"true_false\":10},\"reason\":\"知识点明确,适合选择题、判断题和填空题。\",\"suitable_types\":[\"single_choice\",\"true_false\",\"fill_blank\"],\"total_knowledge_points\":69}', NULL);
INSERT INTO `file` VALUES (74, '需求分析.docx', 'resources/rule/总公司/需求分析/v5/需求分析.docx', 15330, 'application/vnd.openxmlformats-officedocument.word', '.docx', NULL, 1, 1, NULL, 1, 'rule', NULL, 1, 1, 'dept_1_kb/需求分析.docx', '2026-06-04 02:07:06', '2026-06-04 17:51:16', 'INDEXED', 'GENERATED', 'EXAM_GENERATED', '题目生成完成', '生成成功共1道题\n\n【AI分析结果】\n{\"question_types\":{\"fill_blank\":0,\"multiple_choice\":0,\"single_choice\":1,\"subjective\":0,\"true_false\":0},\"reason\":\"文档内容极简仅含标题无实质知识点适宜输出1道单选题覆盖基础概念。\",\"suitable_types\":[\"single_choice\"],\"total_knowledge_points\":0}', '{}');
INSERT INTO `file` VALUES (75, '参考样例.pdf', 'resources/rule/总公司/参考样例/v7/参考样例.pdf', 3588003, 'application/pdf', '.pdf', NULL, 1, 1, NULL, 1, 'rule', NULL, 1, 1, NULL, '2026-06-04 07:40:55', '2026-06-04 15:40:55', 'PENDING', 'UNGENERATED', 'UPLOADED', '文件已上传', NULL, NULL);
INSERT INTO `file` VALUES (76, 'longrule.docx', 'resources/rule/总公司/南京分公司/技术部/longrule/v1/longrule.docx', 14675, 'application/vnd.openxmlformats-officedocument.word', '.docx', NULL, 1, 3, NULL, 1, 'rule', NULL, 1, 1, NULL, '2026-06-04 13:21:25', '2026-06-04 21:21:25', 'PENDING', 'UNGENERATED', 'UPLOADED', '文件已上传', NULL, NULL);
-- ----------------------------
-- Table structure for operation_log
-- ----------------------------
DROP TABLE IF EXISTS `operation_log`;
CREATE TABLE `operation_log` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志 ID',
`user_id` bigint NULL DEFAULT NULL COMMENT '操作用户 ID',
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名',
`operator_type` tinyint NULL DEFAULT NULL COMMENT '操作人类型1 系统管理员2 部门管理员3 普通用户',
`operation_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作类型',
`operation_desc` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作描述',
`target_id` bigint NULL DEFAULT NULL COMMENT '目标 ID',
`target_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目标类型',
`result` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'SUCCESS' COMMENT '操作结果SUCCESS, FAIL',
`detail` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作详情JSON格式',
`ip_address` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'IP 地址',
`user_agent` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户代理',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_operator_type`(`operator_type` ASC) USING BTREE,
INDEX `idx_operation_type`(`operation_type` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
CONSTRAINT `fk_operation_log_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '操作日志表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of operation_log
-- ----------------------------
-- ----------------------------
-- Table structure for permission
-- ----------------------------
DROP TABLE IF EXISTS `permission`;
CREATE TABLE `permission` (
`id` bigint NOT NULL COMMENT '权限ID (=前端permissionTree的key值)',
`uuid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '唯一标识符',
`permission_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '权限名称',
`permission_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '权限编码',
`parent_id` bigint NULL DEFAULT NULL COMMENT '父权限ID',
`type` tinyint NULL DEFAULT 1 COMMENT '1菜单 2按钮 3接口',
`path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由路径',
`icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标',
`sort_order` int NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NULL DEFAULT 1 COMMENT '1启用0禁用',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_uuid`(`uuid` ASC) USING BTREE,
UNIQUE INDEX `uk_code`(`permission_code` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of permission
-- ----------------------------
INSERT INTO `permission` VALUES (1, 'k01', '制度文件查看和学习', 'read', NULL, 1, '/read', 'FileTextOutlined', 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (2, 'k02', '制度文件管理', 'manage', NULL, 1, '/manage', 'FolderOutlined', 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (3, 'k03', '知识问答', 'qa', NULL, 1, '/qa', 'MessageOutlined', 3, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (4, 'k04', '考察和训练', 'exam', NULL, 1, '/exam', 'FileSearchOutlined', 4, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (5, 'k05', '纲要学习', 'mind', NULL, 1, '/mind', 'UnorderedListOutlined', 5, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (6, 'k06', '综合看板', 'dashboard', NULL, 1, '/dashboard', 'DashboardOutlined', 6, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (7, 'k07', '权限管理', 'permission', NULL, 1, '/permission', 'TeamOutlined', 7, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (8, 'k08', '查看文件列表', 'read:view', 1, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (9, 'k09', '阅读文档', 'read:read', 1, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (10, 'k10', '上传文件', 'read:upload', 1, 2, NULL, NULL, 3, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (11, 'k11', '下载文件', 'read:download', 1, 2, NULL, NULL, 4, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (12, 'k12', '收藏功能', 'read:favorite', 1, 2, NULL, NULL, 5, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (13, 'k13', '管理文件', 'manage:file', 2, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (14, 'k14', '知识库同步', 'manage:sync', 2, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (15, 'k15', '题库维护', 'manage:question', 2, 2, NULL, NULL, 3, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (16, 'k16', '智能对话', 'qa:chat', 3, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (17, 'k17', 'FAQ管理', 'qa:faq', 3, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (18, 'k18', 'AI出题', 'exam:ai', 4, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (19, 'k19', '题库管理', 'exam:bank', 4, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (20, 'k20', '智能组卷', 'exam:paper', 4, 2, NULL, NULL, 3, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (21, 'k21', '互动训练', 'exam:train', 4, 2, NULL, NULL, 4, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (22, 'k22', '纲要生成', 'mind:generate', 5, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (23, 'k23', '智能预警', 'dashboard:alert', 6, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (24, 'k24', '决策支持', 'dashboard:decision', 6, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (25, 'k25', '角色管理', 'role', 7, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (26, 'k26', '用户管理', 'user', 7, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (27, 'k27', '互动学习', 'mind:learn', 5, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (33, 'k33', '日志管理', 'log:manage', 6, 1, '/logs', 'FileTextOutlined', 3, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (34, 'k34', '日志查询', 'log:query', 33, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (35, 'k35', '系统配置', 'config:manage', 6, 1, '/config', 'SettingOutlined', 4, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (36, 'k36', '配置查询', 'config:query', 35, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (37, 'k37', '配置修改', 'config:update', 35, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (38, 'k38', '用户管理(详细)', 'user:manage', 7, 1, NULL, NULL, 5, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (39, 'k39', '用户查询', 'user:query', 38, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (40, 'k40', '用户创建', 'user:create', 38, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (41, 'k41', '用户修改', 'user:update', 38, 2, NULL, NULL, 3, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (42, 'k42', '用户删除', 'user:delete', 38, 2, NULL, NULL, 4, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (43, 'k43', '角色管理(详细)', 'role:manage', 7, 1, NULL, NULL, 6, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (44, 'k44', '角色查询', 'role:query', 43, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (45, 'k45', '角色创建', 'role:create', 43, 2, NULL, NULL, 2, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (46, 'k46', '角色修改', 'role:update', 43, 2, NULL, NULL, 3, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (47, 'k47', '角色删除', 'role:delete', 43, 2, NULL, NULL, 4, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (48, 'k48', '权限管理(详细)', 'permission:manage', 7, 1, NULL, NULL, 7, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (49, 'k49', '权限查询', 'permission:query', 48, 2, NULL, NULL, 1, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (53, 'k53', '超级管理员', 'super_admin', NULL, 1, NULL, NULL, 0, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (54, 'k54', '管理员', 'admin', NULL, 1, NULL, NULL, 0, 1, '2026-04-17 14:17:11', '2026-04-17 14:17:11');
INSERT INTO `permission` VALUES (55, 'k55', '公司管理', 'company:manage', 7, 1, '/companies', 'BankOutlined', 3, 1, '2026-04-18 11:01:52', '2026-04-18 11:01:52');
INSERT INTO `permission` VALUES (60, 'k60', '部门管理', 'dept:manage', 7, 1, '/departments', 'ApartmentOutlined', 4, 1, '2026-04-18 11:01:52', '2026-04-18 11:01:52');
INSERT INTO `permission` VALUES (65, 'k65', '组织管理', 'organization:manage', 7, 1, '/organization', 'ApartmentOutlined', 3, 1, '2026-04-23 00:00:00', '2026-04-23 00:00:00');
INSERT INTO `permission` VALUES (66, 'k66', '文件审批', 'read:approve', 1, 2, NULL, NULL, 6, 1, '2026-05-02 00:00:00', '2026-05-02 00:00:00');
INSERT INTO `permission` VALUES (67, 'k67', '试卷考核', 'exam:exam', 4, 2, NULL, NULL, 5, 1, '2026-05-10 21:22:13', '2026-05-10 21:22:13');
INSERT INTO `permission` VALUES (68, 'k68', '题目管理与审批', 'read:questionBank', 1, 2, NULL, NULL, 7, 1, '2026-05-31 00:00:00', '2026-05-31 00:00:00');
-- ----------------------------
-- Table structure for question
-- ----------------------------
DROP TABLE IF EXISTS `question`;
CREATE TABLE `question` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`question_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '题目UUID',
`question_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '题目类型single_choice | multiple_choice | true_false | fill_blank | subjective',
`difficulty` int NULL DEFAULT 3 COMMENT '难度等级',
`tags` json NULL COMMENT '知识点标签',
`score` decimal(5, 2) NOT NULL COMMENT '分值',
`version` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1.0' COMMENT '版本号',
`document_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '原始文档ID',
`exclude_stems` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '题干内容用于AI去重',
`knowledge_base_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '知识库路径关联knowledge_base_path表的name字段',
`source_context` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT 'AI出题参考的原文切片/上下文',
`chunk_ids` json NULL COMMENT '切片ID列表',
`source_chunks_used` int NULL DEFAULT 0 COMMENT '使用的源切片数量',
`exam_count` int NULL DEFAULT 0 COMMENT '出题次数',
`correct_count` int NULL DEFAULT 0 COMMENT '回答正确次数',
`last_exam_time` datetime NULL DEFAULT NULL COMMENT '最后作答时间',
`page_numbers` json NULL COMMENT '页码',
`content` json NOT NULL COMMENT '题目内容',
`status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'pending' COMMENT '审核状态pending | approved | rejected',
`reviewer_comment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '审核评论',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` int NOT NULL DEFAULT 0 COMMENT '软删除标志0表示正常1表示已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_question_id`(`question_id` ASC) USING BTREE,
INDEX `idx_question_type`(`question_type` ASC) USING BTREE,
INDEX `idx_difficulty`(`difficulty` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
INDEX `idx_created_at`(`created_at` ASC) USING BTREE,
INDEX `idx_knowledge_base_path`(`knowledge_base_path` ASC) USING BTREE,
INDEX `idx_question_is_deleted`(`is_deleted` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 788 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '题目表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of question
-- ----------------------------
INSERT INTO `question` VALUES (719, 'a9186abf-5b74-4535-9bd2-0c1a62623938', 'single_choice', 3, NULL, 5.00, '1.0', '69', '根据附件2中提到的状态评价办法与标准以下哪一项是状态评价的核心目标', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"提高设备的运行速度\"}, {\"key\": \"B\", \"content\": \"确保设备的安全性和可靠性\"}, {\"key\": \"C\", \"content\": \"降低设备的维护成本\"}, {\"key\": \"D\", \"content\": \"提升设备的外观设计\"}]}, \"stem\": \"根据附件2中提到的状态评价办法与标准以下哪一项是状态评价的核心目标\", \"answer\": \"B\", \"explanation\": \"根据附件2中提到的状态评价办法与标准核心目标是确保设备的安全性和可靠性。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 09:35:00', '2026-06-06 09:59:43', 0);
INSERT INTO `question` VALUES (720, '53c07d68-dade-4520-9e65-86601897c2db', 'single_choice', 3, NULL, 5.00, '1.0', '69', '根据文档内容,零售价格指数的计算公式是?', NULL, NULL, '[\"dept_1_kb/1.docx_60\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"实际零售价格 + 零售指导价格\"}, {\"key\": \"B\", \"content\": \"实际零售价格 / 零售指导价格 * 100%\"}, {\"key\": \"C\", \"content\": \"实际零售价格 - 零售指导价格\"}, {\"key\": \"D\", \"content\": \"实际零售价格 * 零售指导价格\"}]}, \"stem\": \"根据文档内容,零售价格指数的计算公式是?\", \"answer\": \"B\", \"explanation\": \"根据文档内容零售价格指数的公式为实际零售价格除以零售指导价格再乘以100%。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 09:35:00', '2026-06-06 09:59:26', 0);
INSERT INTO `question` VALUES (721, '9fcd0a39-5de3-444a-9708-72cc45e23e72', 'multiple_choice', 3, NULL, 5.00, '1.0', '69', '根据文档内容,市场状态的计算公式是:', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"市场状态=二级指标均值\"}, {\"key\": \"B\", \"content\": \"市场状态=二级指标均值×权重\"}, {\"key\": \"C\", \"content\": \"市场状态=一级指标均值×权重\"}, {\"key\": \"D\", \"content\": \"市场状态=一级指标均值\"}]}, \"stem\": \"根据文档内容,市场状态的计算公式是:\", \"answer\": [\"B\"], \"explanation\": \"根据文档中提到的「市场状态=+二级指标均值×权重」正确答案为选项B。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 09:35:00', '2026-06-06 09:59:25', 0);
INSERT INTO `question` VALUES (722, '578f3e24-a1cb-45bc-be62-8cb73455cd12', 'multiple_choice', 3, NULL, 5.00, '1.0', '69', '根据附件2中关于状态评价办法与标准的内容以下哪一项是状态评价的核心目标', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"确定设备的使用寿命\"}, {\"key\": \"B\", \"content\": \"评估设备的运行效率\"}, {\"key\": \"C\", \"content\": \"判断设备的健康状况和可靠性\"}, {\"key\": \"D\", \"content\": \"制定设备的采购计划\"}]}, \"stem\": \"根据附件2中关于状态评价办法与标准的内容以下哪一项是状态评价的核心目标\", \"answer\": \"C\", \"explanation\": \"附件2明确指出状态评价的核心目标是通过科学的方法对设备的健康状况和可靠性进行评估以支持维护决策。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 09:35:00', '2026-06-06 09:59:25', 0);
INSERT INTO `question` VALUES (723, 'cd0d4600-4928-407b-969e-56bbc7e4a9fc', 'true_false', 3, NULL, 5.00, '1.0', '69', '市场状态的计算公式为:市场状态=+二级指标均值\\*权重。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"市场状态的计算公式为:市场状态=+二级指标均值\\\\*权重。\", \"answer\": \"对\", \"explanation\": \"根据文档内容,市场状态的计算公式确实为:市场状态=+二级指标均值\\\\*权重。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 09:35:00', '2026-06-06 09:59:24', 0);
INSERT INTO `question` VALUES (724, 'c126f28f-0af1-4fc1-b994-dc33d82d9936', 'true_false', 3, NULL, 5.00, '1.0', '69', '附件2主要描述了状态评价办法与标准的相关内容。', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"附件2主要描述了状态评价办法与标准的相关内容。\", \"answer\": \"对\", \"explanation\": \"根据文档内容附件2的主题明确为状态评价办法与标准因此该陈述是正确的。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 09:35:00', '2026-06-06 09:59:23', 0);
INSERT INTO `question` VALUES (725, '3c9210f6-5f9f-4305-9a9b-0957fe90d604', 'fill_blank', 3, NULL, 5.00, '1.0', '69', '市场状态的计算公式为:市场状态=___。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 1}, \"stem\": \"市场状态的计算公式为:市场状态=___。\", \"answer\": [[\"二级指标均值\\\\*权重\"]], \"explanation\": \"根据文档内容,市场状态的计算公式为市场状态=二级指标均值乘以权重。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 09:35:00', '2026-06-06 09:59:22', 0);
INSERT INTO `question` VALUES (736, '43dddadd-1512-4ad2-b3b8-7a43facae315', 'multiple_choice', 3, NULL, 4.00, '1.0', '69', '根据文档内容,市场状态的计算公式是以下哪一项?', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"市场状态=指标值与权重之和\"}, {\"key\": \"B\", \"content\": \"市场状态=二级指标均值×权重\"}, {\"key\": \"C\", \"content\": \"市场状态=一级指标总和\"}, {\"key\": \"D\", \"content\": \"市场状态=指标值÷权重\"}]}, \"stem\": \"根据文档内容,市场状态的计算公式是以下哪一项?\", \"answer\": [\"B\"], \"explanation\": \"根据文档内容,市场状态的计算公式为:市场状态=二级指标均值×权重。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:12:50', '2026-06-06 09:59:42', 0);
INSERT INTO `question` VALUES (737, '0c11fd51-ab46-468f-9b23-ceb78ccaacf6', 'true_false', 3, NULL, 1.00, '1.0', '69', '市场状态的计算公式为:市场状态=+二级指标均值*权重。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"市场状态的计算公式为:市场状态=+二级指标均值*权重。\", \"answer\": \"对\", \"explanation\": \"根据文档内容,市场状态的计算公式确实为市场状态=+二级指标均值*权重。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:12:50', '2026-06-06 09:59:40', 0);
INSERT INTO `question` VALUES (738, '7ca0adeb-7ecb-436e-b107-366811b18920', 'fill_blank', 3, NULL, 2.00, '1.0', '69', '市场状态的计算公式为:市场状态=___', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 1}, \"stem\": \"市场状态的计算公式为:市场状态=___\", \"answer\": [[\"二级指标均值\\\\*权重\"]], \"explanation\": \"根据文档内容,市场状态的计算公式是通过二级指标均值乘以权重得到的。\", \"referenced_chunk_ids\": [\"chunk_id:dept_1_kb/1.docx_79 | 第1页 1.市场状态的计算公式为:\"]}', 'approved', '', '2026-06-05 10:12:50', '2026-06-06 09:59:40', 0);
INSERT INTO `question` VALUES (739, 'edb009f9-6a16-413a-972b-a94d7ba8b0c2', 'fill_blank', 3, NULL, 2.00, '1.0', '69', '附件2主要涉及______与______的评价办法和标准。', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 2}, \"stem\": \"附件2主要涉及______与______的评价办法和标准。\", \"answer\": [[\"状态评价办法\"], [\"标准\"]], \"explanation\": \"根据文档内容附件2的主题是状态评价办法与标准。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:12:50', '2026-06-06 09:59:39', 0);
INSERT INTO `question` VALUES (740, 'a8d75b13-1199-4a65-9c46-2af7936b75ea', 'subjective', 3, NULL, 10.00, '1.0', '69', '请详细描述市场状态的计算公式,并说明其各个组成部分的含义。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"scoring_points\": [{\"point\": \"要点1市场状态的计算公式\", \"weight\": 0.4}, {\"point\": \"要点2二级指标均值的含义\", \"weight\": 0.3}, {\"point\": \"要点3权重的定义及其作用\", \"weight\": 0.3}]}, \"stem\": \"请详细描述市场状态的计算公式,并说明其各个组成部分的含义。\", \"answer\": \"市场状态的计算公式为:市场状态 = 二级指标均值 × 权重。其中,二级指标均值指的是对某一特定指标进行评估后得到的平均值;权重表示该指标在整体评价中的重要程度。通过将各二级指标的均值乘以相应的权重,可以综合得出市场的整体状态。\", \"explanation\": \"根据文档内容,市场状态的计算涉及二级指标均值与权重的乘积。这表明每个指标的重要性由权重决定,而具体数值由指标均值体现。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:12:50', '2026-06-06 09:59:39', 0);
INSERT INTO `question` VALUES (741, 'c6b2237c-9032-4c4f-8e90-7f1b52e49814', 'single_choice', 3, NULL, 2.00, '1.0', '69', '零售价格指数的计算公式是什么?', NULL, NULL, '[\"dept_1_kb/1.docx_60\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"实际零售价格 + 零售指导价格\"}, {\"key\": \"B\", \"content\": \"实际零售价格 / 零售指导价格 * 100%\"}, {\"key\": \"C\", \"content\": \"零售指导价格 - 实际零售价格\"}, {\"key\": \"D\", \"content\": \"零售指导价格 * 实际零售价格\"}]}, \"stem\": \"零售价格指数的计算公式是什么?\", \"answer\": \"B\", \"explanation\": \"根据文档内容零售价格指数的公式是实际零售价格除以零售指导价格再乘以100%。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:13:38', '2026-06-06 09:59:38', 0);
INSERT INTO `question` VALUES (742, '7c2e7174-e91b-4c94-9db4-0bdf30885acb', 'multiple_choice', 3, NULL, 4.00, '1.0', '69', '根据文档内容,市场状态的计算公式是什么?', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"市场状态=二级指标均值\"}, {\"key\": \"B\", \"content\": \"市场状态=二级指标均值×权重\"}, {\"key\": \"C\", \"content\": \"市场状态=指标值+权重\"}, {\"key\": \"D\", \"content\": \"市场状态=指标值×权重\"}]}, \"stem\": \"根据文档内容,市场状态的计算公式是什么?\", \"answer\": \"B\", \"explanation\": \"根据文档内容,市场状态的计算公式为市场状态=二级指标均值×权重。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:13:38', '2026-06-06 09:59:36', 0);
INSERT INTO `question` VALUES (743, '9dce9a87-341f-417d-814e-eb3163acebb6', 'subjective', 3, NULL, 10.00, '1.0', '69', '请简述市场状态的计算公式,并说明其组成部分的意义。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"scoring_points\": [{\"point\": \"要点1写出市场状态的计算公式\", \"weight\": 0.4}, {\"point\": \"要点2解释公式中各部分的含义\", \"weight\": 0.3}, {\"point\": \"要点3举例说明公式的应用\", \"weight\": 0.3}]}, \"stem\": \"请简述市场状态的计算公式,并说明其组成部分的意义。\", \"answer\": \"市场状态的计算公式为:市场状态 = 二级指标均值 × 权重。其中,二级指标均值代表某一特定指标的平均得分,权重表示该指标在整体评价中的重要性程度。例如,在对某产品的市场表现进行评估时,可以选取多个二级指标(如销售额、市场份额等),分别计算其均值并乘以对应的权重,最终得出该产品的市场状态评分。\", \"explanation\": \"根据文档内容,市场状态的计算公式明确给出为“市场状态=+二级指标均值×权重”,因此题目要求考生掌握此公式并理解其组成部分的含义。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:13:38', '2026-06-06 09:59:37', 0);
INSERT INTO `question` VALUES (744, '1349aa92-d95a-455a-b6df-e3feaa862a80', 'subjective', 3, NULL, 10.00, '1.0', '69', '请简述市场状态的计算公式,并说明其组成部分的意义。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"scoring_points\": [{\"point\": \"要点1写出市场状态的计算公式\", \"weight\": 0.4}, {\"point\": \"要点2解释公式中各部分的含义\", \"weight\": 0.3}, {\"point\": \"要点3举例说明公式的应用\", \"weight\": 0.3}]}, \"stem\": \"请简述市场状态的计算公式,并说明其组成部分的意义。\", \"answer\": \"市场状态的计算公式为:市场状态 = 二级指标均值 × 权重。其中二级指标均值表示某一特定指标的平均值权重表示该指标在整体评价中的重要性。例如若某产品的销售增长率是二级指标其均值为80权重为0.5则该指标对市场状态的贡献为40。\", \"explanation\": \"根据文档内容,市场状态的计算公式由二级指标均值和权重构成,用于评估市场状态的综合表现。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:16:08', '2026-06-06 09:59:35', 0);
INSERT INTO `question` VALUES (745, '88efd613-ddb3-470a-82c2-038d36193f9f', 'fill_blank', 3, NULL, 2.00, '1.0', '69', '市场状态的计算公式为:市场状态=___+___。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 2}, \"stem\": \"市场状态的计算公式为:市场状态=___+___。\", \"answer\": [[\"二级指标均值\"], [\"权重\"]], \"explanation\": \"根据文档内容,市场状态的计算公式为:市场状态=二级指标均值*权重。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:17:21', '2026-06-06 09:59:35', 0);
INSERT INTO `question` VALUES (746, '0c116c57-734a-4c73-85e5-2a7bc779de69', 'fill_blank', 3, NULL, 2.00, '1.0', '69', '附件2主要涉及___和___的评价办法与标准。', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 2}, \"stem\": \"附件2主要涉及___和___的评价办法与标准。\", \"answer\": [[\"状态评价\"], [\"标准\"]], \"explanation\": \"根据文档内容附件2的主题是关于状态评价办法与标准的详细说明。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:17:21', '2026-06-06 09:59:34', 0);
INSERT INTO `question` VALUES (747, '773a6c0f-4d84-48c4-9e88-3c21a8d307b5', 'single_choice', 3, NULL, 2.00, '1.0', '69', '根据附件2中关于状态评价办法与标准的描述以下哪一项是状态评价的核心目标', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"确定设备的使用寿命\"}, {\"key\": \"B\", \"content\": \"评估设备当前运行状态和潜在风险\"}, {\"key\": \"C\", \"content\": \"制定设备采购计划\"}, {\"key\": \"D\", \"content\": \"优化设备维护流程\"}]}, \"stem\": \"根据附件2中关于状态评价办法与标准的描述以下哪一项是状态评价的核心目标\", \"answer\": \"B\", \"explanation\": \"附件2明确指出状态评价的核心目标是评估设备当前运行状态和潜在风险。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:19:19', '2026-06-06 09:59:33', 0);
INSERT INTO `question` VALUES (748, '9d15a241-fdfa-4cbf-a3d5-9ed42aef45ad', 'fill_blank', 3, NULL, 2.00, '1.0', '69', '附件2主要涉及的内容是___和___。', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 2}, \"stem\": \"附件2主要涉及的内容是___和___。\", \"answer\": [[\"状态评价办法\", \"标准\"]], \"explanation\": \"根据文档内容附件2的主题是状态评价办法与标准。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:19:58', '2026-06-06 09:59:33', 0);
INSERT INTO `question` VALUES (749, '39856356-bd91-44a9-91be-68a5d87866e9', 'single_choice', 3, NULL, 2.00, '1.0', '69', '根据文档内容,零售价格指数的计算公式是以下哪一项?', NULL, NULL, '[\"dept_1_kb/1.docx_60\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"实际零售价格 - 零售指导价格\"}, {\"key\": \"B\", \"content\": \"实际零售价格 / 零售指导价格 * 100%\"}, {\"key\": \"C\", \"content\": \"零售指导价格 / 实际零售价格 * 100%\"}, {\"key\": \"D\", \"content\": \"实际零售价格 + 零售指导价格\"}]}, \"stem\": \"根据文档内容,零售价格指数的计算公式是以下哪一项?\", \"answer\": \"B\", \"explanation\": \"根据文档中的说明零售价格指数的计算公式为实际零售价格除以零售指导价格再乘以100%。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:21:13', '2026-06-06 09:59:32', 0);
INSERT INTO `question` VALUES (750, 'aa972438-1860-44d8-b119-9809baba7144', 'subjective', 3, NULL, 10.00, '1.0', '69', '请简述市场状态的计算公式,并说明其组成部分的含义。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"scoring_points\": [{\"point\": \"要点1市场状态的计算公式\", \"weight\": 0.4}, {\"point\": \"要点2二级指标均值的含义\", \"weight\": 0.3}, {\"point\": \"要点3权重的含义及其作用\", \"weight\": 0.3}]}, \"stem\": \"请简述市场状态的计算公式,并说明其组成部分的含义。\", \"answer\": \"市场状态的计算公式为:市场状态 = 二级指标均值 × 权重。其中,二级指标均值表示各项指标的平均得分,权重表示各项指标在整体评价中的重要程度。该公式用于综合评估市场的整体状况。\", \"explanation\": \"根据文档内容,市场状态的计算公式由二级指标均值和权重组成,通过乘法运算得出最终的市场状态值。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:21:13', '2026-06-06 09:59:31', 0);
INSERT INTO `question` VALUES (751, 'd3e6e401-a43a-40c1-9cd2-c3fb6a0bf7a4', 'single_choice', 3, NULL, 2.00, '1.0', '69', '根据附件2中关于状态评价办法与标准的描述以下哪一项是状态评价的核心目标', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"确定设备的使用寿命\"}, {\"key\": \"B\", \"content\": \"评估设备当前的运行状态并提供维护建议\"}, {\"key\": \"C\", \"content\": \"计算设备的制造成本\"}, {\"key\": \"D\", \"content\": \"预测设备未来的市场价值\"}]}, \"stem\": \"根据附件2中关于状态评价办法与标准的描述以下哪一项是状态评价的核心目标\", \"answer\": \"B\", \"explanation\": \"附件2明确指出状态评价的核心目标是通过分析设备的当前状态为其维护和管理提供科学依据。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:22:52', '2026-06-06 09:59:30', 0);
INSERT INTO `question` VALUES (752, 'cc3cbb7c-18e9-4449-99f5-e0d99b0041d5', 'true_false', 3, NULL, 1.00, '1.0', '69', '附件2主要描述了状态评价办法与标准的详细内容。', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 30, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"附件2主要描述了状态评价办法与标准的详细内容。\", \"answer\": \"对\", \"explanation\": \"根据文档内容附件2的主题是“3.状态评价办法与标准”,说明其内容围绕该主题展开。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:22:52', '2026-06-06 09:59:30', 0);
INSERT INTO `question` VALUES (753, 'd5e96f17-8c5b-4f21-8bef-8a0fdfe3492a', 'true_false', 3, NULL, 1.00, '1.0', '69', '市场状态的计算公式中,二级指标均值需要乘以相应的权重。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"市场状态的计算公式中,二级指标均值需要乘以相应的权重。\", \"answer\": \"对\", \"explanation\": \"根据文档内容,市场状态的计算公式为:市场状态=+二级指标均值*权重。因此,二级指标均值需要乘以相应的权重。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:23:29', '2026-06-06 09:59:29', 0);
INSERT INTO `question` VALUES (754, 'de0592b7-46cb-4bdd-bee8-886fbeadbdec', 'multiple_choice', 3, NULL, 4.00, '1.0', '69', '市场状态的计算公式是:', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 30, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"市场状态=二级指标均值\"}, {\"key\": \"B\", \"content\": \"市场状态=二级指标均值×权重\"}, {\"key\": \"C\", \"content\": \"市场状态=一级指标均值×权重\"}, {\"key\": \"D\", \"content\": \"市场状态=指标值×权重\"}]}, \"stem\": \"市场状态的计算公式是:\", \"answer\": [\"B\"], \"explanation\": \"根据文档内容,市场状态的计算公式为“市场状态=二级指标均值×权重”。这表明权重在计算中起到关键作用。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-05 10:24:12', '2026-06-06 09:59:28', 0);
INSERT INTO `question` VALUES (755, '2fd2bd3b-a863-4fbc-abe0-9e5a644daeab', 'single_choice', 3, NULL, 2.00, '1.0', '72', '根据文档内容,市场状态的计算公式是以下哪一项?', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"市场状态=指标值+权重\"}, {\"key\": \"B\", \"content\": \"市场状态=二级指标均值×权重\"}, {\"key\": \"C\", \"content\": \"市场状态=指标值×权重\"}, {\"key\": \"D\", \"content\": \"市场状态=指标值÷权重\"}]}, \"stem\": \"根据文档内容,市场状态的计算公式是以下哪一项?\", \"answer\": \"B\", \"explanation\": \"根据文档中提到的「市场状态=+二级指标均值\\\\*权重」,正确答案为 B。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (756, '7fb13194-3b54-4d57-b1e8-4359bd3415cb', 'single_choice', 3, NULL, 2.00, '1.0', '72', '根据附件2中关于状态评价办法与标准的内容以下哪一项是状态评价的核心目标', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"提高设备运行效率\"}, {\"key\": \"B\", \"content\": \"确定设备的健康状态和风险等级\"}, {\"key\": \"C\", \"content\": \"降低设备维护成本\"}, {\"key\": \"D\", \"content\": \"优化设备采购计划\"}]}, \"stem\": \"根据附件2中关于状态评价办法与标准的内容以下哪一项是状态评价的核心目标\", \"answer\": \"B\", \"explanation\": \"附件2明确指出状态评价的核心目标是确定设备的健康状态和风险等级以指导后续的运维决策。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (757, 'ab8cc55d-b304-42d2-b337-c89e7b27012d', 'single_choice', 3, NULL, 2.00, '1.0', '72', '根据文档内容,零售价格指数的计算公式是?', NULL, NULL, '[\"dept_1_kb/1.docx_60\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"实际零售价格 + 零售指导价格\"}, {\"key\": \"B\", \"content\": \"实际零售价格 / 零售指导价格 * 100%\"}, {\"key\": \"C\", \"content\": \"实际零售价格 - 零售指导价格\"}, {\"key\": \"D\", \"content\": \"实际零售价格 * 零售指导价格\"}]}, \"stem\": \"根据文档内容,零售价格指数的计算公式是?\", \"answer\": \"B\", \"explanation\": \"根据文档中的公式描述零售价格指数的计算公式为实际零售价格除以零售指导价格再乘以100%。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (758, '01b2e0e7-07fe-42fa-8eb4-a576834e29c7', 'single_choice', 3, NULL, 2.00, '1.0', '72', '根据文档内容,重购率的计算公式是以下哪一项?', NULL, NULL, '[\"dept_1_kb/1.docx_75\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"品规连续两周订货客户数 + 上周订货客户数\"}, {\"key\": \"B\", \"content\": \"品规连续两周订货客户数 / 上周订货客户数 * 100%\"}, {\"key\": \"C\", \"content\": \"上周订货客户数 / 品规连续两周订货客户数 * 100%\"}, {\"key\": \"D\", \"content\": \"品规连续两周订货客户数 - 上周订货客户数\"}]}, \"stem\": \"根据文档内容,重购率的计算公式是以下哪一项?\", \"answer\": \"B\", \"explanation\": \"根据文档内容重购率的公式为品规连续两周订货客户数除以上周订货客户数再乘以100%。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (759, 'b40eb0fe-3cc5-4f83-85dc-afd195545803', 'single_choice', 3, NULL, 2.00, '1.0', '72', '根据品规属性聚类评价方法,以下哪一项是计算特定品规聚类整体市场状态评价结果的主要依据?', NULL, NULL, '[\"dept_1_kb/1.docx_90\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"各品规的市场地位和护卫的销量加权平均\"}, {\"key\": \"B\", \"content\": \"单一品规的市场状态结果\"}, {\"key\": \"C\", \"content\": \"仅考虑价类和创新品类属性\"}, {\"key\": \"D\", \"content\": \"仅根据工业企业品牌进行分类\"}]}, \"stem\": \"根据品规属性聚类评价方法,以下哪一项是计算特定品规聚类整体市场状态评价结果的主要依据?\", \"answer\": \"A\", \"explanation\": \"根据文档内容,品规属性聚类评价方法中,特定品规聚类的整体市场状态评价结果是通过以特定聚类内市场地位为主导和护卫的各品规市场状态结果按销量进行加权平均得到的。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (760, '45c5feff-9ea4-4273-945b-296b8e14df10', 'single_choice', 3, NULL, 2.00, '1.0', '72', '根据文档内容,下周可供货源量的计算公式是以下哪一项?', NULL, NULL, '[\"1.docx_34\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"期末库存量 - 本周确定到货量\"}, {\"key\": \"B\", \"content\": \"期末库存量 + 本周确定到货量\"}, {\"key\": \"C\", \"content\": \"期末库存量 × 本周确定到货量\"}, {\"key\": \"D\", \"content\": \"期末库存量 ÷ 本周确定到货量\"}]}, \"stem\": \"根据文档内容,下周可供货源量的计算公式是以下哪一项?\", \"answer\": \"B\", \"explanation\": \"根据文档内容,下周可供货源量的计算公式为:期末库存量 + 本周确定到货量。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (761, 'd51954de-b4aa-44f7-a25a-ac2996c2c633', 'single_choice', 3, NULL, 2.00, '1.0', '72', '根据文档内容,以下哪项属于‘适用范围’所涵盖的工作内容?', NULL, NULL, '[\"1.docx_2\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"全省地市公司的财务审计工作\"}, {\"key\": \"B\", \"content\": \"全省地市公司货源投放工作的全过程\"}, {\"key\": \"C\", \"content\": \"全省地市公司的员工招聘流程\"}, {\"key\": \"D\", \"content\": \"全省地市公司的客户投诉处理\"}]}, \"stem\": \"根据文档内容,以下哪项属于‘适用范围’所涵盖的工作内容?\", \"answer\": \"B\", \"explanation\": \"文档中明确指出,适用范围适用于全省地市公司货源投放工作所涉及的基础工作、投放准备、投放规则、投放策略制定、投放评估与优化以及库存管理和投放策略控制等全过程。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (762, 'e121891d-7b9d-4534-b9da-d1a2267194e8', 'true_false', 3, NULL, 1.00, '1.0', '72', '市场状态的计算公式为:市场状态=+二级指标均值*权重。', NULL, NULL, '[\"dept_1_kb/1.docx_79\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"市场状态的计算公式为:市场状态=+二级指标均值*权重。\", \"answer\": \"对\", \"explanation\": \"根据文档内容,市场状态的计算公式确实为:市场状态=+二级指标均值*权重。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (763, 'df498a21-09d9-4ad5-a74d-b076cb633a23', 'true_false', 3, NULL, 1.00, '1.0', '72', '附件2主要描述了状态评价办法与标准的相关内容。', NULL, NULL, '[\"dept_1_kb/1.docx_91\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"附件2主要描述了状态评价办法与标准的相关内容。\", \"answer\": \"对\", \"explanation\": \"根据文档内容附件2的主题明确为“3.状态评价办法与标准”,因此该陈述正确。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (764, 'd326ec09-934a-4a32-b5a1-6505693ff428', 'true_false', 3, NULL, 1.00, '1.0', '72', '零售价格指数的计算公式为实际零售价格除以零售指导价格再乘以100%。', NULL, NULL, '[\"dept_1_kb/1.docx_60\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"零售价格指数的计算公式为实际零售价格除以零售指导价格再乘以100%。\", \"answer\": \"对\", \"explanation\": \"根据文档内容零售价格指数的公式是实际零售价格除以零售指导价格再乘以100%。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (765, 'e1e09cc7-a874-475e-9f14-46feb9af2628', 'true_false', 3, NULL, 1.00, '1.0', '72', '重购率的计算公式为品规连续两周订货客户数除以上周订货客户数再乘以100%。', NULL, NULL, '[\"dept_1_kb/1.docx_75\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"重购率的计算公式为品规连续两周订货客户数除以上周订货客户数再乘以100%。\", \"answer\": \"对\", \"explanation\": \"根据文档内容,重购率的公式明确为“品规连续两周订货客户数/上周订货客户数×100%”,因此该陈述正确。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (766, 'c6774b6d-74e6-4b71-8306-4105444dd962', 'true_false', 3, NULL, 1.00, '1.0', '72', '单客户月度投放限量是指公司对单客户单月最高供货量。', NULL, NULL, '[\"dept_1_kb/1.docx_20\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"单客户月度投放限量是指公司对单客户单月最高供货量。\", \"answer\": \"对\", \"explanation\": \"根据文档内容,单客户月度投放限量的定义是公司对单客户单月最高供货量,因此该陈述正确。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (767, '52772025-e327-49ee-ae0d-5988339a1236', 'true_false', 3, NULL, 1.00, '1.0', '72', '品规属性聚类评价方法中,特定聚类的整体市场状态评价结果是通过以特定聚类内市场地位为主导和护卫的各品规市场状态结果按销量进行加权平均得到的。', NULL, NULL, '[\"dept_1_kb/1.docx_90\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"品规属性聚类评价方法中,特定聚类的整体市场状态评价结果是通过以特定聚类内市场地位为主导和护卫的各品规市场状态结果按销量进行加权平均得到的。\", \"answer\": \"对\", \"explanation\": \"根据文档内容,品规属性聚类评价方法中,特定聚类的整体市场状态评价结果确实是通过以特定聚类内市场地位为主导和护卫的各品规市场状态结果按销量进行加权平均得到的。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:42', '2026-06-08 02:35:42', 0);
INSERT INTO `question` VALUES (768, 'fc512f8c-46e8-4d58-b6e5-b4172a0b311b', 'true_false', 3, NULL, 1.00, '1.0', '72', '下周可供货源量的计算公式是:期末库存量加上本周确定到货量。', NULL, NULL, '[\"1.docx_34\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"T\", \"content\": \"正确\"}, {\"key\": \"F\", \"content\": \"错误\"}]}, \"stem\": \"下周可供货源量的计算公式是:期末库存量加上本周确定到货量。\", \"answer\": \"T\"}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 12:15:20', 0);
INSERT INTO `question` VALUES (769, '7699dfb0-e03e-4e9a-8653-450d101a85d3', 'true_false', 3, NULL, 1.00, '1.0', '72', '一级指标合计权重不低于70%。', NULL, NULL, '[\"dept_1_kb/1.docx_86\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"一级指标合计权重不低于70%。\", \"answer\": \"对\", \"explanation\": \"根据文档内容一级指标合计权重不低于70%。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 14:45:43', 0);
INSERT INTO `question` VALUES (770, 'f139af44-277a-4b6e-88e0-dbd2539b24b6', 'true_false', 3, NULL, 1.00, '1.0', '72', '该适用范围仅适用于全省地市公司的货源投放工作,不包括其他相关环节。', NULL, NULL, '[\"1.docx_2\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"该适用范围仅适用于全省地市公司的货源投放工作,不包括其他相关环节。\", \"answer\": \"错\", \"explanation\": \"根据文档内容,适用范围包括货源投放工作的全过程,如基础工作、投放准备、投放规则、投放策略制定、投放评估与优化以及库存管理和投放策略控制等。因此,该陈述是错误的。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 14:45:44', 0);
INSERT INTO `question` VALUES (771, 'd009ac1a-b415-4b51-ab57-4cf10fb16c55', 'true_false', 3, NULL, 1.00, '1.0', '72', '市场状态分为五种类型,分别是俏、紧、平、松、软。', NULL, NULL, '[\"dept_1_kb/1.docx_22\"]', 71, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"市场状态分为五种类型,分别是俏、紧、平、松、软。\", \"answer\": \"对\", \"explanation\": \"根据文档内容,市场状态确实分为‘俏、紧、平、松、软’五种类型。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 14:45:45', 0);
INSERT INTO `question` VALUES (772, '88eaf2d7-4adb-4daf-9978-3113e754b7d5', 'fill_blank', 3, NULL, 2.00, '1.0', '72', '零售价格指数的计算公式为___。', NULL, NULL, '[\"dept_1_kb/1.docx_60\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 1}, \"stem\": \"零售价格指数的计算公式为___。\", \"answer\": [[\"实际零售价格/零售指导价格\\\\*100%\"]], \"explanation\": \"根据文档内容零售价格指数的计算公式是实际零售价格除以零售指导价格再乘以100%。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 14:45:46', 0);
INSERT INTO `question` VALUES (773, 'aeeb9f27-2d6c-48f9-9bc9-ddb188ffae4a', 'fill_blank', 3, NULL, 2.00, '1.0', '72', '重购率的计算公式为___/上周订货客户数×100%。', NULL, NULL, '[\"dept_1_kb/1.docx_75\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 1}, \"stem\": \"重购率的计算公式为___/上周订货客户数×100%。\", \"answer\": [[\"品规连续两周订货客户数\"]], \"explanation\": \"根据文档内容重购率的计算公式是品规连续两周订货客户数除以上周订货客户数再乘以100%。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 14:45:46', 0);
INSERT INTO `question` VALUES (774, 'bff12010-d8ba-4444-8aa7-be9dfb0e81a0', 'fill_blank', 3, NULL, 2.00, '1.0', '72', '公司对单客户单月最高供货量称为___。', NULL, NULL, '[\"dept_1_kb/1.docx_20\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 1}, \"stem\": \"公司对单客户单月最高供货量称为___。\", \"answer\": [[\"单客户月度投放限量\"]], \"explanation\": \"根据文档内容,单客户月度投放限量指的是公司对单客户单月最高供货量。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 14:45:47', 0);
INSERT INTO `question` VALUES (775, '9934bef2-ba39-4626-950a-7dcd59456291', 'fill_blank', 3, NULL, 2.00, '1.0', '72', '品规属性聚类评价方法中特定品规聚类的市场状态评价结果是通过以特定聚类内市场地位为主导和护卫的各品规市场状态结果按___进行加权平均得到的。', NULL, NULL, '[\"dept_1_kb/1.docx_90\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 1}, \"stem\": \"品规属性聚类评价方法中特定品规聚类的市场状态评价结果是通过以特定聚类内市场地位为主导和护卫的各品规市场状态结果按___进行加权平均得到的。\", \"answer\": [[\"销量\"]], \"explanation\": \"根据文档内容,品规属性聚类评价方法中,特定品规聚类的市场状态评价结果是通过以特定聚类内市场地位为主导和护卫的各品规市场状态结果按销量进行加权平均得到的。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 14:45:47', 0);
INSERT INTO `question` VALUES (776, 'cb2b1545-8224-4a84-86d2-75a65225688c', 'fill_blank', 3, NULL, 2.00, '1.0', '72', '下周可供货源量的计算公式为:期末库存量+___。', NULL, NULL, '[\"1.docx_34\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 1}, \"stem\": \"下周可供货源量的计算公式为:期末库存量+___。\", \"answer\": [[\"本周确定到货量\"]], \"explanation\": \"根据文档内容,下周可供货源量的计算公式是期末库存量加上本周确定到货量。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:43', '2026-06-08 02:35:43', 0);
INSERT INTO `question` VALUES (777, 'd6bf010f-2b38-4c25-8926-f4af6fdcb721', 'fill_blank', 4, NULL, 2.00, '1.0', '72', '根据文档内容一级指标合计权重应不低于___%。', NULL, NULL, '[\"dept_1_kb/1.docx_86\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 1}, \"stem\": \"根据文档内容一级指标合计权重应不低于___%。\", \"answer\": [[\"70\"]], \"explanation\": \"根据文档中明确指出的【一级指标合计权重不低于70%】这一核心知识点进行填空。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 02:35:43', '2026-06-08 12:03:56', 0);
INSERT INTO `question` VALUES (778, '1b407311-293f-4608-ac2c-20064601f5da', 'fill_blank', 3, NULL, 2.00, '1.0', '72', '本文件适用于全省地市公司______工作所涉及的______、投放准备、投放规则、投放策略制定、投放评估与优化以及库存管理和投放策略控制等全过程。', NULL, NULL, '[\"1.docx_2\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 2}, \"stem\": \"本文件适用于全省地市公司______工作所涉及的______、投放准备、投放规则、投放策略制定、投放评估与优化以及库存管理和投放策略控制等全过程。\", \"answer\": [[\"货源投放\"], [\"基础工作\"]], \"explanation\": \"根据文档内容,适用范围明确提到适用于全省地市公司货源投放工作所涉及的基础工作、投放准备、投放规则、投放策略制定、投放评估与优化以及库存管理和投放策略控制等全过程。\", \"referenced_chunk_ids\": null}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 14:45:48', 0);
INSERT INTO `question` VALUES (779, 'cf28d857-a4fe-42ba-9958-c3a3bf85703c', 'fill_blank', 3, NULL, 2.00, '1.0', '72', '市场状态分为___种类型分别是___。', NULL, NULL, '[\"dept_1_kb/1.docx_22\"]', 71, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 2}, \"stem\": \"市场状态分为___种类型分别是___。\", \"answer\": \"五,俏、紧、平、松、软\"}', 'approved', '', '2026-06-08 02:35:43', '2026-06-08 12:15:03', 0);
INSERT INTO `question` VALUES (780, 'fd8f853b-74a7-43c9-ac57-5232d31ffa8f', 'single_choice', 3, NULL, 2.00, '1.0', '77', '根据文档内容2026年全国中小学、幼儿园安全工作是由哪些部门联合部署的', NULL, NULL, '[\"longrule.docx_0\"]', 3, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"教育部、应急管理部、市场监管总局\"}, {\"key\": \"B\", \"content\": \"教育部、应急管理部、市场监管总局、公安部\"}, {\"key\": \"C\", \"content\": \"教育部、应急管理部、公安部\"}, {\"key\": \"D\", \"content\": \"教育部、市场监管总局、公安部\"}]}, \"stem\": \"根据文档内容2026年全国中小学、幼儿园安全工作是由哪些部门联合部署的\", \"answer\": \"B\", \"explanation\": \"文档中明确提到今天3月25日教育部、应急管理部、市场监管总局、公安部联合部署了2026年全国中小学、幼儿园安全工作。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 12:16:00', '2026-06-08 12:16:00', 0);
INSERT INTO `question` VALUES (781, '53b4b536-c25d-472d-8311-91d04c8ed97d', 'single_choice', 3, NULL, 2.00, '1.0', '77', '根据文档内容,为了确保学生每天校内体育活动时间落实到位,采取的主要措施是什么?', NULL, NULL, '[\"longrule.docx_2\"]', 3, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"减少课程安排\"}, {\"key\": \"B\", \"content\": \"通过‘晒课表’强化跟踪督导\"}, {\"key\": \"C\", \"content\": \"增加课外活动时间\"}, {\"key\": \"D\", \"content\": \"限制学生自由活动\"}]}, \"stem\": \"根据文档内容,为了确保学生每天校内体育活动时间落实到位,采取的主要措施是什么?\", \"answer\": \"B\", \"explanation\": \"文档中明确提到通过‘晒课表’强化跟踪督导,以确保学生每天校内体育活动时间落实到位。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 12:16:00', '2026-06-08 12:16:00', 0);
INSERT INTO `question` VALUES (782, '8d9e3f1d-6f39-4e2e-980f-a2323b276c12', 'true_false', 3, NULL, 1.00, '1.0', '77', '多部门联合部署安全工作是2026年全国中小学、幼儿园安全工作的核心内容。', NULL, NULL, '[\"longrule.docx_0\"]', 3, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"多部门联合部署安全工作是2026年全国中小学、幼儿园安全工作的核心内容。\", \"answer\": \"对\", \"explanation\": \"根据文档内容教育部、应急管理部、市场监管总局、公安部联合部署了2026年全国中小学、幼儿园安全工作说明多部门联合部署安全工作是核心内容。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 12:16:00', '2026-06-08 12:16:00', 0);
INSERT INTO `question` VALUES (783, 'f2bbcd90-08cf-4010-8920-6edba7755b11', 'fill_blank', 3, NULL, 2.00, '1.0', '77', '教育部、应急管理部、市场监管总局、公安部联合部署2026年全国中小学、幼儿园安全工作要求各地聚焦重点任务从严排查整治全面提升校园安全治理能力与治理水平坚决守住校园安全稳定底线红线。这体现了多部门联合部署安全工作的___和___。', NULL, NULL, '[\"longrule.docx_0\"]', 3, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 2}, \"stem\": \"教育部、应急管理部、市场监管总局、公安部联合部署2026年全国中小学、幼儿园安全工作要求各地聚焦重点任务从严排查整治全面提升校园安全治理能力与治理水平坚决守住校园安全稳定底线红线。这体现了多部门联合部署安全工作的___和___。\", \"answer\": [[\"重要性\"], [\"协同性\"]], \"explanation\": \"解析:文档中提到多个部门联合部署安全工作,强调了其在提升校园安全治理能力和治理水平中的重要作用,同时也体现出多部门协作的必要性。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-08 12:16:00', '2026-06-08 12:16:00', 0);
INSERT INTO `question` VALUES (784, '672290a8-1bb8-4d4a-a229-c9db9a7ae2e3', 'single_choice', 3, NULL, 2.00, '1.0', '77', '根据文档内容2026年全国中小学、幼儿园安全工作是由哪些部门联合部署的', NULL, NULL, '[\"longrule.docx_0\"]', 3, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"教育部、应急管理部、市场监管总局\"}, {\"key\": \"B\", \"content\": \"教育部、应急管理部、市场监管总局、公安部\"}, {\"key\": \"C\", \"content\": \"教育部、应急管理部、公安部\"}, {\"key\": \"D\", \"content\": \"教育部、市场监管总局、公安部\"}]}, \"stem\": \"根据文档内容2026年全国中小学、幼儿园安全工作是由哪些部门联合部署的\", \"answer\": \"B\", \"explanation\": \"文档中明确提到今天3月25日教育部、应急管理部、市场监管总局、公安部联合部署了2026年全国中小学、幼儿园安全工作。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-09 03:08:00', '2026-06-09 03:08:00', 0);
INSERT INTO `question` VALUES (785, '1b196f3b-a4f8-42d2-a5d3-9d570dbcc295', 'single_choice', 3, NULL, 2.00, '1.0', '77', '根据文档内容,为了确保学生每天校内体育活动时间落实到位,采取的主要措施是什么?', NULL, NULL, '[\"longrule.docx_2\"]', 3, 0, 0, NULL, NULL, '{\"data\": {\"options\": [{\"key\": \"A\", \"content\": \"减少课程安排\"}, {\"key\": \"B\", \"content\": \"通过‘晒课表’强化跟踪督导\"}, {\"key\": \"C\", \"content\": \"增加课外活动时间\"}, {\"key\": \"D\", \"content\": \"限制学生自由活动\"}]}, \"stem\": \"根据文档内容,为了确保学生每天校内体育活动时间落实到位,采取的主要措施是什么?\", \"answer\": \"B\", \"explanation\": \"文档中明确提到通过‘晒课表’强化跟踪督导,以确保学生每天校内体育活动时间落实到位。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-09 03:08:00', '2026-06-09 03:08:00', 0);
INSERT INTO `question` VALUES (786, 'a2394391-bd19-40c4-9b05-75904c79c9a1', 'true_false', 3, NULL, 1.00, '1.0', '77', '多部门联合部署安全工作是2026年全国中小学、幼儿园安全工作的核心内容。', NULL, NULL, '[\"longrule.docx_0\"]', 3, 0, 0, NULL, NULL, '{\"data\": {}, \"stem\": \"多部门联合部署安全工作是2026年全国中小学、幼儿园安全工作的核心内容。\", \"answer\": \"对\", \"explanation\": \"根据文档内容教育部、应急管理部、市场监管总局、公安部联合部署了2026年全国中小学、幼儿园安全工作体现了多部门联合部署安全工作的核心内容。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-09 03:08:00', '2026-06-09 03:08:00', 0);
INSERT INTO `question` VALUES (787, '80cfb59b-93c8-43ea-b15d-553ad83c5f33', 'fill_blank', 3, NULL, 2.00, '1.0', '77', '教育部、应急管理部、市场监管总局、公安部联合部署2026年全国中小学、幼儿园安全工作要求各地聚焦重点任务从严排查整治全面提升校园安全治理能力与治理水平坚决守住校园安全稳定底线红线。这体现了多部门联合部署安全工作的___和___。', NULL, NULL, '[\"longrule.docx_0\"]', 3, 0, 0, NULL, NULL, '{\"data\": {\"blank_count\": 2}, \"stem\": \"教育部、应急管理部、市场监管总局、公安部联合部署2026年全国中小学、幼儿园安全工作要求各地聚焦重点任务从严排查整治全面提升校园安全治理能力与治理水平坚决守住校园安全稳定底线红线。这体现了多部门联合部署安全工作的___和___。\", \"answer\": [[\"重要性\"], [\"协同性\"]], \"explanation\": \"解析:文档中提到多个部门联合部署安全工作,说明其重要性和协同性。\", \"referenced_chunk_ids\": null}', 'pending', NULL, '2026-06-09 03:08:00', '2026-06-09 03:08:00', 0);
-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色 ID',
`uuid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'uuid()' COMMENT '唯一标识符(用于角色判断和数据交互)',
`role_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色名称',
`role_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色编码',
`role_type` tinyint NULL DEFAULT 3 COMMENT '角色类型1 超级管理员角色2 部门管理员角色3 普通用户角色',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '角色描述',
`status` tinyint NULL DEFAULT 1 COMMENT '状态1 启用0 禁用',
`sort_order` int NULL DEFAULT 0 COMMENT '排序号',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_uuid`(`uuid` ASC) USING BTREE,
UNIQUE INDEX `uk_role_code`(`role_code` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES (1, 'dad50ea8-392f-11f1-8d4f-7cb566b7fb8c', '系统管理员', 'admin', 1, '系统管理员,拥有所有权限', 1, 1, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
INSERT INTO `role` VALUES (2, 'dad51391-392f-11f1-8d4f-7cb566b7fb8c', '部门管理员', 'dept_admin', 2, '部门管理员,管理本部门事务', 1, 2, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
INSERT INTO `role` VALUES (3, 'dad5150d-392f-11f1-8d4f-7cb566b7fb8c', '普通用户', 'general_user', 3, '普通用户,基础使用权限', 1, 3, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
-- ----------------------------
-- Table structure for role_permission
-- ----------------------------
DROP TABLE IF EXISTS `role_permission`;
CREATE TABLE `role_permission` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`role_id` bigint NOT NULL COMMENT '角色 ID',
`permission_id` bigint NOT NULL COMMENT '权限 ID',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_role_permission`(`role_id` ASC, `permission_id` ASC) USING BTREE,
INDEX `idx_role_id`(`role_id` ASC) USING BTREE,
INDEX `idx_permission_id`(`permission_id` ASC) USING BTREE,
CONSTRAINT `fk_role_permission_permission` FOREIGN KEY (`permission_id`) REFERENCES `permission` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
CONSTRAINT `fk_role_permission_role` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 725 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色权限关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of role_permission
-- ----------------------------
INSERT INTO `role_permission` VALUES (509, 2, 1, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (510, 2, 8, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (511, 2, 9, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (512, 2, 10, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (513, 2, 12, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (514, 2, 66, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (515, 2, 2, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (516, 2, 13, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (517, 2, 14, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (518, 2, 15, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (519, 2, 3, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (520, 2, 16, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (521, 2, 17, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (522, 2, 4, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (523, 2, 18, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (524, 2, 19, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (525, 2, 20, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (526, 2, 21, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (527, 2, 67, '2026-05-17 10:21:30');
INSERT INTO `role_permission` VALUES (552, 3, 8, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (553, 3, 9, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (554, 3, 10, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (555, 3, 16, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (556, 3, 21, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (557, 3, 67, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (558, 3, 1, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (559, 3, 3, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (560, 3, 4, '2026-05-30 01:28:26');
INSERT INTO `role_permission` VALUES (705, 1, 8, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (706, 1, 9, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (707, 1, 10, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (708, 1, 13, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (709, 1, 16, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (710, 1, 20, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (711, 1, 25, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (712, 1, 26, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (713, 1, 48, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (714, 1, 65, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (715, 1, 66, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (716, 1, 67, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (717, 1, 68, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (718, 1, 18, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (719, 1, 1, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (720, 1, 3, '2026-06-03 02:30:09');
INSERT INTO `role_permission` VALUES (721, 1, 4, '2026-06-03 02:30:10');
INSERT INTO `role_permission` VALUES (722, 1, 7, '2026-06-03 02:30:10');
INSERT INTO `role_permission` VALUES (723, 1, 55, '2026-06-03 02:30:10');
INSERT INTO `role_permission` VALUES (724, 1, 60, '2026-06-03 02:30:10');
-- ----------------------------
-- Table structure for system_config
-- ----------------------------
DROP TABLE IF EXISTS `system_config`;
CREATE TABLE `system_config` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '配置键',
`config_value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '配置值',
`config_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'STRING' COMMENT '配置类型STRING, NUMBER, BOOLEAN, JSON',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '配置描述',
`is_system` tinyint NULL DEFAULT 0 COMMENT '是否系统配置1 是不可删除0 否',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_config_key`(`config_key` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统配置表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of system_config
-- ----------------------------
INSERT INTO `system_config` VALUES (1, 'system_name', '知识管理系统', 'STRING', '系统名称', 1, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
INSERT INTO `system_config` VALUES (2, 'system_version', '1.0.0', 'STRING', '系统版本', 1, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
INSERT INTO `system_config` VALUES (3, 'default_user_role', 'general_user', 'STRING', '默认用户角色编码', 1, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
INSERT INTO `system_config` VALUES (4, 'session_timeout', '7200', 'NUMBER', '会话超时时间(秒)', 1, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
INSERT INTO `system_config` VALUES (5, 'password_expire_days', '90', 'NUMBER', '密码过期天数', 1, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
INSERT INTO `system_config` VALUES (6, 'login_fail_limit', '5', 'NUMBER', '登录失败限制次数', 1, '2026-04-16 09:01:52', '2026-04-16 09:01:52');
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户 ID',
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码bcrypt加密',
`real_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '真实姓名',
`email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱',
`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像',
`user_type` tinyint NOT NULL DEFAULT 3 COMMENT '用户类型1 系统管理员2 部门管理员3 普通用户',
`status` tinyint NULL DEFAULT 1 COMMENT '状态1 启用0 禁用',
`dept_id` bigint NULL DEFAULT NULL COMMENT '所属部门 ID',
`last_login_time` datetime NULL DEFAULT NULL COMMENT '最后登录时间',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_username`(`username` ASC) USING BTREE,
UNIQUE INDEX `uk_email`(`email` ASC) USING BTREE,
UNIQUE INDEX `uk_phone`(`phone` ASC) USING BTREE,
INDEX `idx_user_type`(`user_type` ASC) USING BTREE,
INDEX `idx_dept_id`(`dept_id` ASC) USING BTREE,
INDEX `idx_status`(`status` ASC) USING BTREE,
CONSTRAINT `fk_user_dept` FOREIGN KEY (`dept_id`) REFERENCES `department` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'admin', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '系统管理员', 'admin@system.com', '13800000000', NULL, 1, 1, 1, NULL, '2026-04-16 09:05:15', '2026-05-10 19:08:59');
INSERT INTO `user` VALUES (2, 'dept_admin', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '技术部门管理员', 'dept@tech.com', '13800000001', NULL, 2, 1, 3, NULL, '2026-04-16 09:05:15', '2026-05-17 16:52:37');
INSERT INTO `user` VALUES (3, 'user', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '普通用户', 'user@tech.com', '13800000002', NULL, 3, 1, 1, NULL, '2026-04-16 09:05:15', '2026-04-16 09:12:17');
INSERT INTO `user` VALUES (4, 'user_1', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '用户1', 'user_1@example.com', '13800000003', NULL, 3, 1, 1, NULL, '2026-04-16 19:30:00', '2026-04-16 19:30:00');
INSERT INTO `user` VALUES (5, 'user_2', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '用户2', 'user_2@example.com', '13800000004', NULL, 3, 1, 2, NULL, '2026-04-16 19:30:00', '2026-04-16 19:30:00');
INSERT INTO `user` VALUES (6, 'user_3', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '用户3', 'user_3@example.com', '13800000005', NULL, 3, 1, 3, NULL, '2026-04-16 19:30:00', '2026-04-16 19:30:00');
INSERT INTO `user` VALUES (7, 'dept_admin_purchase', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '采购部门管理员', 'dept_admin_purchase@example.com', '13800000006', NULL, 2, 1, 4, NULL, '2026-04-16 19:30:00', '2026-05-17 16:52:32');
INSERT INTO `user` VALUES (8, 'adminhr', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '人事部门管理员', 'dept_admin_hr@example.com', '13800000007', NULL, 2, 1, 6, NULL, '2026-04-16 19:30:00', '2026-05-17 16:52:12');
INSERT INTO `user` VALUES (9, 'dept_admin_public', '$2a$10$o/mdlaGbhm7Fm0yrYFGICODFyqYUu/cd9Nj1xzc/qD9r3ukNZQr8W', '公共部门管理员', 'dept_admin_public@example.com', '13800000008', NULL, 2, 1, 7, NULL, '2026-04-16 19:30:00', '2026-05-17 16:52:23');
-- ----------------------------
-- Table structure for user_answer
-- ----------------------------
DROP TABLE IF EXISTS `user_answer`;
CREATE TABLE `user_answer` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`question_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '题目UUID',
`question_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '题目类型single_choice | multiple_choice | true_false | fill_blank | subjective',
`answer_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'practice' COMMENT '答题类型formal_exam-正式考试mock_exam-模拟考practice-日常练习',
`paper_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '试卷ID考试答题时关联',
`session_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '会话ID日常练习时关联对话上下文',
`user_answer` json NOT NULL COMMENT '用户答案JSON格式支持各种题型',
`score` decimal(5, 2) NULL DEFAULT 0.00 COMMENT '得分',
`max_score` decimal(5, 2) NULL DEFAULT NULL COMMENT '题目满分',
`is_correct` tinyint NULL DEFAULT NULL COMMENT '是否正确0-错误1-正确2-部分正确',
`grading_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'auto' COMMENT '批改类型auto-自动批改manual-人工批改llm-AI批改',
`feedback` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '批改反馈/评语',
`graded_by` bigint NULL DEFAULT NULL COMMENT '批阅人ID',
`graded_at` datetime NULL DEFAULT NULL COMMENT '批阅时间',
`time_spent` int NULL DEFAULT 0 COMMENT '单题答题耗时(秒)',
`paper_time_spent` int NULL DEFAULT 0 COMMENT '试卷总耗时(秒,仅考试场景使用)',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '答题时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_question_type`(`user_id` ASC, `question_id` ASC, `paper_id` ASC, `answer_type` ASC) USING BTREE COMMENT '用户-题目-试卷-答题类型唯一索引',
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_question_id`(`question_id` ASC) USING BTREE,
INDEX `idx_paper_id`(`paper_id` ASC) USING BTREE,
INDEX `idx_answer_type`(`answer_type` ASC) USING BTREE,
INDEX `idx_created_at`(`created_at` ASC) USING BTREE,
CONSTRAINT `fk_user_answer_question` FOREIGN KEY (`question_id`) REFERENCES `question` (`question_id`) ON DELETE CASCADE ON UPDATE RESTRICT,
CONSTRAINT `fk_user_answer_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 377 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户答题记录表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of user_answer
-- ----------------------------
INSERT INTO `user_answer` VALUES (366, 1, 'a9186abf-5b74-4535-9bd2-0c1a62623938', 'single_choice', 'practice', '84a25c0a-6cf1-4b04-ae8a-2c0ae8cd6c4e', 'grade_e16eb365', '\"B\"', 5.00, 5.00, 1, 'ai', '正确!', NULL, NULL, 0, 0, '2026-06-05 10:43:04', '2026-06-05 10:43:04');
INSERT INTO `user_answer` VALUES (367, 1, 'cd0d4600-4928-407b-969e-56bbc7e4a9fc', 'true_false', 'practice', '23a71645-33a7-498d-a8e3-ff05dbfe891a', 'grade_dabdc022', '\"对\"', 5.00, 5.00, 1, 'ai', '正确!', NULL, NULL, 0, 0, '2026-06-05 10:44:05', '2026-06-05 10:44:05');
INSERT INTO `user_answer` VALUES (368, 1, 'a9186abf-5b74-4535-9bd2-0c1a62623938', 'single_choice', 'mock_exam', '1db9ab9d-f5a1-4395-a7f4-fb614cc9d1af', 'grade_a13238b9', '\"B\"', 5.00, 5.00, 1, 'ai', '正确!', NULL, NULL, 0, 0, '2026-06-05 10:44:36', '2026-06-05 10:44:36');
INSERT INTO `user_answer` VALUES (369, 1, '43dddadd-1512-4ad2-b3b8-7a43facae315', 'multiple_choice', 'mock_exam', '1db9ab9d-f5a1-4395-a7f4-fb614cc9d1af', 'grade_a13238b9', '[\"B\"]', 4.00, 4.00, 1, 'ai', '正确!', NULL, NULL, 0, 0, '2026-06-05 10:44:36', '2026-06-05 10:44:36');
INSERT INTO `user_answer` VALUES (370, 1, 'a9186abf-5b74-4535-9bd2-0c1a62623938', 'single_choice', 'mock_exam', '41b3d0d5-59e4-4918-bcb6-f74dcebcbe2b', 'grade_4a4831ed', '\"B\"', 5.00, 5.00, 1, 'ai', '正确!', NULL, NULL, 0, 0, '2026-06-05 10:52:13', '2026-06-05 10:52:13');
INSERT INTO `user_answer` VALUES (371, 1, '43dddadd-1512-4ad2-b3b8-7a43facae315', 'multiple_choice', 'mock_exam', '41b3d0d5-59e4-4918-bcb6-f74dcebcbe2b', 'grade_4a4831ed', '[\"q\"]', 0.00, 4.00, 0, 'ai', '正确答案: [\'B\']', NULL, NULL, 0, 0, '2026-06-05 10:52:13', '2026-06-05 10:52:13');
INSERT INTO `user_answer` VALUES (372, 1, '53b4b536-c25d-472d-8311-91d04c8ed97d', 'single_choice', 'formal_exam', '17dd60eb-66f6-4398-973c-2dbc2383a75f', NULL, '\"A\"', 0.00, 2.00, 0, 'ai', '正确答案: ', NULL, NULL, 0, 0, '2026-06-09 01:20:55', '2026-06-09 01:20:55');
INSERT INTO `user_answer` VALUES (373, 1, 'de0592b7-46cb-4bdd-bee8-886fbeadbdec', 'multiple_choice', 'formal_exam', '17dd60eb-66f6-4398-973c-2dbc2383a75f', NULL, '[\"B\", \"C\"]', 0.00, 4.00, 0, 'ai', '正确答案: ', NULL, NULL, 0, 0, '2026-06-09 01:20:55', '2026-06-09 01:20:55');
INSERT INTO `user_answer` VALUES (374, 1, '8d9e3f1d-6f39-4e2e-980f-a2323b276c12', 'true_false', 'formal_exam', '17dd60eb-66f6-4398-973c-2dbc2383a75f', NULL, '\"false\"', 0.00, 1.00, 0, 'ai', '正确答案: ', NULL, NULL, 0, 0, '2026-06-09 01:20:55', '2026-06-09 01:20:55');
INSERT INTO `user_answer` VALUES (375, 1, 'f2bbcd90-08cf-4010-8920-6edba7755b11', 'fill_blank', 'formal_exam', '17dd60eb-66f6-4398-973c-2dbc2383a75f', NULL, '[\"1\", \"1\"]', 0.00, 2.00, 0, 'ai', '评分失败: 答案格式错误correct_answers 或 student_answer 为空', NULL, NULL, 0, 0, '2026-06-09 01:20:55', '2026-06-09 01:20:55');
INSERT INTO `user_answer` VALUES (376, 1, 'aa972438-1860-44d8-b119-9809baba7144', 'subjective', 'formal_exam', '17dd60eb-66f6-4398-973c-2dbc2383a75f', NULL, '\"\"', 0.00, 10.00, 0, 'ai', '评分失败: \'NoneType\' object has no attribute \'get\'', NULL, NULL, 0, 0, '2026-06-09 01:20:55', '2026-06-09 01:20:55');
-- ----------------------------
-- Table structure for user_role
-- ----------------------------
DROP TABLE IF EXISTS `user_role`;
CREATE TABLE `user_role` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint NOT NULL COMMENT '用户 ID',
`role_id` bigint NOT NULL COMMENT '角色 ID',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_role`(`user_id` ASC, `role_id` ASC) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_role_id`(`role_id` ASC) USING BTREE,
CONSTRAINT `fk_user_role_role` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
CONSTRAINT `fk_user_role_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户角色关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of user_role
-- ----------------------------
INSERT INTO `user_role` VALUES (1, 1, 1, '2026-04-16 09:05:15');
INSERT INTO `user_role` VALUES (2, 2, 2, '2026-04-16 09:05:15');
INSERT INTO `user_role` VALUES (3, 3, 3, '2026-04-16 09:05:15');
INSERT INTO `user_role` VALUES (4, 4, 3, '2026-04-16 19:30:00');
INSERT INTO `user_role` VALUES (5, 5, 3, '2026-04-16 19:30:00');
INSERT INTO `user_role` VALUES (6, 6, 3, '2026-04-16 19:30:00');
INSERT INTO `user_role` VALUES (7, 7, 2, '2026-04-16 19:30:00');
INSERT INTO `user_role` VALUES (8, 8, 2, '2026-04-16 19:30:00');
INSERT INTO `user_role` VALUES (9, 9, 2, '2026-04-16 19:30:00');
-- ----------------------------
-- Table structure for wrong_question_collection
-- ----------------------------
DROP TABLE IF EXISTS `wrong_question_collection`;
CREATE TABLE `wrong_question_collection` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`answer_id` bigint NULL DEFAULT NULL COMMENT '答题记录ID',
`question_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '题目ID',
`note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_answer`(`user_id` ASC, `answer_id` ASC) USING BTREE,
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_answer_id`(`answer_id` ASC) USING BTREE,
INDEX `idx_question_id`(`question_id` ASC) USING BTREE,
INDEX `idx_user_question`(`user_id` ASC, `question_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '错题收藏表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of wrong_question_collection
-- ----------------------------
INSERT INTO `wrong_question_collection` VALUES (1, 1, NULL, '2d4cbe7f-0c72-49ed-815c-bcd38a025f4e', NULL, '2026-05-11 08:03:46', '2026-05-11 08:03:46');
-- ----------------------------
-- View structure for v_role_permission
-- ----------------------------
DROP VIEW IF EXISTS `v_role_permission`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_role_permission` AS select `r`.`id` AS `role_id`,`r`.`uuid` AS `role_uuid`,`r`.`role_name` AS `role_name`,`r`.`role_code` AS `role_code`,`r`.`role_type` AS `role_type`,`r`.`description` AS `description`,`r`.`status` AS `status`,`p`.`id` AS `permission_id`,`p`.`uuid` AS `permission_uuid`,`p`.`permission_name` AS `permission_name`,`p`.`permission_code` AS `permission_code`,`p`.`type` AS `permission_type`,`p`.`parent_id` AS `parent_id`,`p`.`path` AS `path`,`p`.`icon` AS `icon`,`p`.`sort_order` AS `sort_order` from ((`role` `r` join `role_permission` `rp` on((`r`.`id` = `rp`.`role_id`))) join `permission` `p` on(((`rp`.`permission_id` = `p`.`id`) and (`p`.`status` = 1)))) where (`r`.`status` = 1);
-- ----------------------------
-- View structure for v_user_info
-- ----------------------------
DROP VIEW IF EXISTS `v_user_info`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_user_info` AS select `u`.`id` AS `id`,`u`.`username` AS `username`,`u`.`real_name` AS `real_name`,`u`.`email` AS `email`,`u`.`phone` AS `phone`,`u`.`avatar` AS `avatar`,`u`.`user_type` AS `user_type`,(case `u`.`user_type` when 1 then '系统管理员' when 2 then '部门管理员' else '普通用户' end) AS `user_type_name`,`u`.`status` AS `status`,(case `u`.`status` when 1 then '启用' else '禁用' end) AS `status_name`,`u`.`dept_id` AS `dept_id`,`d`.`dept_name` AS `dept_name`,`d`.`dept_code` AS `dept_code`,`u`.`last_login_time` AS `last_login_time`,`u`.`create_time` AS `create_time`,`u`.`update_time` AS `update_time`,group_concat(distinct `r`.`role_name` separator ',') AS `role_names`,group_concat(distinct `r`.`role_code` separator ',') AS `role_codes`,(select count(distinct `da`.`dept_id`) from `dept_admin` `da` where ((`da`.`user_id` = `u`.`id`) and (`da`.`status` = 1))) AS `managed_dept_count` from (((`user` `u` left join `department` `d` on((`u`.`dept_id` = `d`.`id`))) left join `user_role` `ur` on((`u`.`id` = `ur`.`user_id`))) left join `role` `r` on((`ur`.`role_id` = `r`.`id`))) group by `u`.`id`;
-- ----------------------------
-- View structure for v_user_permission
-- ----------------------------
DROP VIEW IF EXISTS `v_user_permission`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_user_permission` AS select `u`.`id` AS `user_id`,`u`.`username` AS `username`,`u`.`user_type` AS `user_type`,`r`.`id` AS `role_id`,`r`.`uuid` AS `role_uuid`,`r`.`role_name` AS `role_name`,`r`.`role_code` AS `role_code`,`p`.`id` AS `permission_id`,`p`.`uuid` AS `permission_uuid`,`p`.`permission_name` AS `permission_name`,`p`.`permission_code` AS `permission_code`,`p`.`type` AS `permission_type`,`p`.`path` AS `path` from ((((`user` `u` join `user_role` `ur` on((`u`.`id` = `ur`.`user_id`))) join `role` `r` on(((`ur`.`role_id` = `r`.`id`) and (`r`.`status` = 1)))) join `role_permission` `rp` on((`r`.`id` = `rp`.`role_id`))) join `permission` `p` on(((`rp`.`permission_id` = `p`.`id`) and (`p`.`status` = 1)))) where (`u`.`status` = 1);
-- ----------------------------
-- Triggers structure for table question
-- ----------------------------
DROP TRIGGER IF EXISTS `trg_question_question_id`;
delimiter ;;
CREATE TRIGGER `trg_question_question_id` BEFORE INSERT ON `question` FOR EACH ROW BEGIN
IF NEW.question_id IS NULL OR NEW.question_id = '' THEN
SET NEW.question_id = UUID();
END IF;
END
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table role
-- ----------------------------
DROP TRIGGER IF EXISTS `trg_role_uuid`;
delimiter ;;
CREATE TRIGGER `trg_role_uuid` BEFORE INSERT ON `role` FOR EACH ROW BEGIN
IF NEW.uuid IS NULL OR NEW.uuid = '' THEN
SET NEW.uuid = UUID();
END IF;
END
;;
delimiter ;
SET FOREIGN_KEY_CHECKS = 1;