-- 智能体物料导入幂等命令与逐行回执。执行前备份目标库,并在应用发布前完成迁移。 CREATE TABLE IF NOT EXISTS `mdm_agent_import_command` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `command_id` varchar(64) NOT NULL COMMENT '智能体提交命令 ID(幂等)', `idempotency_key` varchar(128) NOT NULL COMMENT '幂等键', `request_digest` char(64) NOT NULL COMMENT '请求摘要 SHA-256', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户 ID', `owner_user_id` bigint NOT NULL COMMENT '提交用户 ID', `session_id` bigint DEFAULT NULL COMMENT '补录会话 ID', `attachment_id` bigint NOT NULL COMMENT '附件 ID', `source_sha256` char(64) NOT NULL COMMENT '附件内容摘要', `preflight_hash` char(64) NOT NULL COMMENT '预检计划摘要', `proposal_hash` varchar(128) DEFAULT NULL COMMENT '智能体方案摘要', `sync_mes` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否同步 MES(本阶段固定关闭)', `status` varchar(20) NOT NULL DEFAULT 'RUNNING' COMMENT 'RUNNING/SUCCEEDED/PARTIAL_FAILED/FAILED/UNKNOWN', `total_count` int NOT NULL DEFAULT 0 COMMENT '总行数', `success_count` int NOT NULL DEFAULT 0 COMMENT '成功行数', `failed_count` int NOT NULL DEFAULT 0 COMMENT '失败行数', `skipped_count` int NOT NULL DEFAULT 0 COMMENT '跳过行数', `error_code` varchar(64) DEFAULT NULL COMMENT '命令级错误码', `error_message` varchar(512) DEFAULT NULL COMMENT '命令级错误信息', `lease_expires_at` datetime DEFAULT NULL COMMENT '执行租约到期时间', `creator` varchar(64) DEFAULT NULL, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updater` varchar(64) DEFAULT NULL, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `deleted` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`id`), UNIQUE KEY `uk_agent_import_command` (`tenant_id`, `owner_user_id`, `command_id`), UNIQUE KEY `uk_agent_import_idempotency` (`tenant_id`, `owner_user_id`, `idempotency_key`), KEY `idx_agent_import_command_session` (`tenant_id`, `session_id`, `create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='智能体物料导入命令'; CREATE TABLE IF NOT EXISTS `mdm_agent_import_command_row` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `command_id` varchar(64) NOT NULL COMMENT '提交命令 ID', `candidate_id` varchar(64) NOT NULL COMMENT '导入行标识', `source_row` int DEFAULT NULL COMMENT '源文件行号', `code` varchar(64) DEFAULT NULL COMMENT '物料编码', `name` varchar(255) DEFAULT NULL COMMENT '物料名称', `action` varchar(16) NOT NULL COMMENT 'CREATE/SKIP', `status` varchar(16) NOT NULL COMMENT 'SUCCESS/FAILED/SKIPPED/UNKNOWN', `target_item_id` bigint DEFAULT NULL COMMENT '创建的物料 ID', `target_version` varchar(64) DEFAULT NULL COMMENT '目标版本(预留)', `error_code` varchar(64) DEFAULT NULL COMMENT '行级错误码', `error_message` varchar(512) DEFAULT NULL COMMENT '行级错误信息', `retryable` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否可重试', `creator` varchar(64) DEFAULT NULL, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updater` varchar(64) DEFAULT NULL, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `deleted` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`id`), UNIQUE KEY `uk_agent_import_row` (`command_id`, `candidate_id`), KEY `idx_agent_import_row_command` (`command_id`, `source_row`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='智能体物料导入逐行回执';