drop table simulation_soft_config;
drop table simulation_command_placeholder;
--  下面的表和app注册表 simulation_app_repository 主键id关联
CREATE TABLE `spdm_baseline`.`simulation_hpc_command` (
                                                          `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
                                                          `appUuid` varchar(128) NOT NULL COMMENT 'app注册的uuId',
                                                          `softName` varchar(255) NOT NULL COMMENT '软件名称,对应的simulation_app_repository的appName，名字建议格式appName_v1',
                                                          `softVersion` varchar(32) DEFAULT NULL COMMENT '软件版本号',
                                                          `functionDsc` varchar(255) DEFAULT NULL COMMENT '功能描述（如：电池仿真）',
                                                          `command` text NOT NULL COMMENT '功能对应的CMD命令',
                                                          `postFileRegular` varchar(512) DEFAULT NULL COMMENT '预留-软件执行完成后筛选回传文件正则，用于过滤回传文件',
                                                          `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 '修改时间',
                                                          PRIMARY KEY (`id`),
                                                          KEY `simulation_command_soft_name` (`softName`) COMMENT '按软件名称查询',
                                                          KEY `simulation_command_appUuid` (`appUuid`) COMMENT '按appid查询'
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='仿真软件hpc命令配置表';

CREATE TABLE `spdm_baseline`.`simulation_hpc_command_placeholder` (
                                                                      `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
                                                                      `appUuid` varchar(128)NOT NULL COMMENT 'app注册的uuId',
                                                                      `keyEnName` varchar(255) NOT NULL COMMENT '占位符英文名称',
                                                                      `keyCnName` varchar(255) NOT NULL COMMENT '占位符中文名称',
                                                                      `valueType` varchar(50) NOT NULL COMMENT '占位符值的类型（file:共享云盘文件；input:用户自定义输入）',
                                                                      `isDisplay` varchar(1) NOT NULL DEFAULT 'Y' COMMENT '是否展示（Y:是，N:否），N时必须填写默认值',
                                                                      `featchType` varchar(16) NOT NULL DEFAULT 'input' COMMENT '动态参数获取值的来源，input：用户自定义，default:默认值，param:从参数里取',
                                                                      `defaultValue` varchar(512) DEFAULT NULL COMMENT '默认值：valueType为Input且isDisplay为N时必填',
                                                                      `fileRegular` varchar(512) DEFAULT NULL COMMENT '文件正则表达式：valueType为file时必填，用于过滤对应的求解文件',
                                                                      `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 '修改时间',
                                                                      PRIMARY KEY (`id`),
                                                                      KEY `placeholder_appUuid` (`appUuid`) COMMENT 'app表hpc求解器id查询'
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='仿真工具hpc命令占位符配置表';

-- 记得仿真任务执行的时候也记录 appRepositoryId
-- isDisplay 是N 假如 defaultValue是null,则在从提交对象的参数获取数据赋值
-- 回传的正则没有就是全部所有的文件
-- file类型的，先收集正则，把文件先上传到工作目录


-- job 表修改
drop table simulation_job;
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 '使用软件的uuid',
                                  `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_softwareId` (`softwareId`) COMMENT '按软件id查询',
                                  KEY `idx_node_name` (`nodeName`) COMMENT '按节点名称查询'
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='仿真计算任务表';

-- 家里修改
-- 修改softwareId字段类型为varchar(128)
ALTER TABLE `simulation_job`  MODIFY COLUMN `softwareId` varchar(128) DEFAULT NULL COMMENT '使用软件的id';
