-- 1. 先删除表（如果存在），避免表已存在导致创建失败
DROP TABLE IF EXISTS `simulation_job`;

-- 2. 重新创建仿真计算任务表（保留原所有字段、索引、注释配置）
CREATE TABLE `simulation_job` (
                                  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID，自增',
                                  `jobName` varchar(255) NOT NULL COMMENT '计算任务名称',
                                  `coreNum` int DEFAULT NULL COMMENT '计算所需要核数',
                                  `software` varchar(100) DEFAULT NULL COMMENT '计算软件的名称',
                                  `jobType` varchar(255) DEFAULT NULL COMMENT '计算任务类型',
                                  `independence` tinyint(1) NOT NULL DEFAULT '0' COMMENT '计算任务是否独立存在 0：非独立任务 1：独立任务',
                                  `inputFiles` text COMMENT '求解文件（JSON格式存储文件UUID列表）',
                                  `masterFile` varchar(255) DEFAULT NULL COMMENT '计算主文件（文件UUID）',
                                  `taskId` varchar(64) DEFAULT NULL COMMENT '计算任务所属任务ID',
                                  `taskName` varchar(255) DEFAULT NULL COMMENT '计算任务所属任务名称',
                                  `runId` varchar(64) DEFAULT NULL COMMENT '计算任务所属算力ID',
                                  `runName` varchar(255) DEFAULT NULL COMMENT '计算任务所属算力名称',
                                  `softwareId` varchar(128) DEFAULT NULL COMMENT '使用软件的id',
                                  `inputFileId` bigint DEFAULT NULL COMMENT '求解文件对应的文件Id',
                                  `jobId` varchar(255) DEFAULT NULL COMMENT '计算任务Id,job new 生成',
                                  `jobDetailId` varchar(255) DEFAULT NULL COMMENT '计算任务添加时Id,job add 生成',
                                  `stdoutHpcFilePath` varchar(512) DEFAULT NULL COMMENT '任务执行输出的文件在Hpc的绝对路径，共享目录+jobName（文件回传)+uuid，下面可能有多个文件',
                                  `stdoutSpdmMinoFilePath` varchar(1024) DEFAULT NULL COMMENT '任务执行输出的文件在 MinIO 上的路径（baseDir+jobName+uuid，可能包含多个文件）',
                                  `nodeName` varchar(256) DEFAULT NULL COMMENT '节点名称',
                                  `executCommand` text COMMENT '记录最终执行的执行对应工具命令',
                                  `startTime` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '任务开始时间',
                                  `endTime` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '任务结束时间',
                                  `jobStatus` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '' COMMENT '任务状态，spdm,+hpc返回的其他状态（定时任务维护）',
                                  `solverName` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '求解器名称',
                                  `totalKernelTime` bigint DEFAULT NULL COMMENT '总内核态时间（单位：毫秒）',
                                  `totalUserTime` bigint DEFAULT NULL COMMENT '总用户态时间（单位：毫秒）',
                                  `totalElapsedTime` bigint DEFAULT NULL COMMENT '作业耗费总秒数（单位：秒）',
                                  `uuid` varchar(64) DEFAULT NULL COMMENT '配置提交前端生成不带横线的uuid',
                                  `fileStatus` varchar(16) DEFAULT NULL COMMENT '任务结果回传状态，generating,uploading,finished',
                                  `creatorId` bigint DEFAULT NULL COMMENT '创建者ID',
                                  `createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                                  `updaterId` bigint DEFAULT NULL COMMENT '更新者ID',
                                  `updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
                                  `stdoutSpdmNasFilePath` varchar(1024) DEFAULT NULL COMMENT '任务执行输出的文件在 NAS 上的路径（baseDir+jobName+uuid，可能包含多个文件）',
                                  `tenantId` bigint DEFAULT NULL COMMENT '租户ID',
                                  PRIMARY KEY (`id`),
                                  KEY `idx_task_id` (`taskId`) COMMENT '按所属任务ID查询',
                                  KEY `idx_run_id` (`runId`) COMMENT '按所属算力ID查询',
                                  KEY `idx_job_name` (`jobName`) COMMENT '按任务名称查询',
                                  KEY `idx_job_status` (`jobStatus`) COMMENT '按任务状态查询',
                                  KEY `idx_node_name` (`nodeName`) COMMENT '按节点名称查询'
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='仿真计算任务表';