feat(aihr): complete company message R1-R3
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
-- 公司消息 R2:单文件异步提炼、原文件受控下载及消息追问上下文。
|
||||
-- 可重复执行,需在 aihr_20260723_broadcast_targeting_mysql8.sql 之后执行。
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `aihr_broadcast_attachment` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '公司文件ID',
|
||||
`tenant_id` varchar(20) NOT NULL COMMENT '租户编号',
|
||||
`message_id` bigint DEFAULT NULL COMMENT '绑定的公司消息ID',
|
||||
`oss_id` bigint NOT NULL COMMENT '原文件OSS编号',
|
||||
`file_name` varchar(255) NOT NULL COMMENT '原文件名',
|
||||
`file_size` bigint NOT NULL COMMENT '文件字节数',
|
||||
`content_type` varchar(100) NOT NULL COMMENT '内容类型',
|
||||
`status` varchar(20) NOT NULL DEFAULT 'QUEUED' COMMENT 'QUEUED/PROCESSING/READY/FAILED',
|
||||
`extracted_text` longtext DEFAULT NULL COMMENT '提取文本,仅供服务端上下文使用',
|
||||
`summary` varchar(1000) DEFAULT NULL COMMENT 'AI提炼摘要',
|
||||
`error_message` varchar(500) DEFAULT NULL COMMENT '公开失败说明',
|
||||
`uploaded_by` bigint NOT NULL COMMENT '上传账号ID',
|
||||
`create_time` datetime NOT NULL COMMENT '上传时间',
|
||||
`update_time` datetime NOT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_aihr_broadcast_attachment_oss` (`tenant_id`, `oss_id`),
|
||||
UNIQUE KEY `uk_aihr_broadcast_attachment_message` (`tenant_id`, `message_id`),
|
||||
KEY `idx_aihr_broadcast_attachment_queue` (`status`, `update_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='银城大喇叭公司文件提炼';
|
||||
|
||||
SET @has_broadcast_attachment_id := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE table_schema = DATABASE() AND table_name = 'aihr_broadcast_message'
|
||||
AND column_name = 'attachment_id'
|
||||
);
|
||||
SET @broadcast_attachment_ddl := IF(
|
||||
@has_broadcast_attachment_id = 0,
|
||||
'ALTER TABLE aihr_broadcast_message ADD COLUMN attachment_id bigint DEFAULT NULL COMMENT ''公司文件ID'' AFTER content, ADD KEY idx_aihr_broadcast_message_attachment (tenant_id, attachment_id)',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE aihr_broadcast_attachment_stmt FROM @broadcast_attachment_ddl; EXECUTE aihr_broadcast_attachment_stmt; DEALLOCATE PREPARE aihr_broadcast_attachment_stmt;
|
||||
|
||||
SET @broadcast_attachment_target_collation := (
|
||||
SELECT collation_name FROM information_schema.columns
|
||||
WHERE table_schema = DATABASE() AND table_name = 'aihr_knowledge_info' AND column_name = 'tenant_id'
|
||||
LIMIT 1
|
||||
);
|
||||
SET @broadcast_attachment_target_collation := COALESCE(@broadcast_attachment_target_collation, @@collation_database);
|
||||
SET @broadcast_attachment_table_collation := (
|
||||
SELECT table_collation FROM information_schema.tables
|
||||
WHERE table_schema = DATABASE() AND table_name = 'aihr_broadcast_attachment'
|
||||
LIMIT 1
|
||||
);
|
||||
SET @broadcast_attachment_ddl := IF(
|
||||
@broadcast_attachment_table_collation = @broadcast_attachment_target_collation,
|
||||
'SELECT 1',
|
||||
CONCAT('ALTER TABLE aihr_broadcast_attachment CONVERT TO CHARACTER SET utf8mb4 COLLATE ', @broadcast_attachment_target_collation)
|
||||
);
|
||||
PREPARE aihr_broadcast_attachment_stmt FROM @broadcast_attachment_ddl; EXECUTE aihr_broadcast_attachment_stmt; DEALLOCATE PREPARE aihr_broadcast_attachment_stmt;
|
||||
|
||||
SET @has_broadcast_attachment_id := NULL;
|
||||
SET @broadcast_attachment_target_collation := NULL;
|
||||
SET @broadcast_attachment_table_collation := NULL;
|
||||
SET @broadcast_attachment_ddl := NULL;
|
||||
Reference in New Issue
Block a user