diff --git a/pbs/src/main/java/com/sdm/pbs/model/req/QueryJobReq.java b/pbs/src/main/java/com/sdm/pbs/model/req/QueryJobReq.java index a8de0155..f882df28 100644 --- a/pbs/src/main/java/com/sdm/pbs/model/req/QueryJobReq.java +++ b/pbs/src/main/java/com/sdm/pbs/model/req/QueryJobReq.java @@ -10,4 +10,7 @@ public class QueryJobReq extends BaseReq { @Schema(description = "计算任务名称") private String jobName; + @Schema(description = "求解器名称") + private String solverName; + } diff --git a/pbs/src/main/java/com/sdm/pbs/service/impl/PbsServiceDecorator.java b/pbs/src/main/java/com/sdm/pbs/service/impl/PbsServiceDecorator.java index fae96ca5..a4f94dd5 100644 --- a/pbs/src/main/java/com/sdm/pbs/service/impl/PbsServiceDecorator.java +++ b/pbs/src/main/java/com/sdm/pbs/service/impl/PbsServiceDecorator.java @@ -76,6 +76,7 @@ public class PbsServiceDecorator implements IPbsServiceDecorator { public SdmResponse submitHpcJob(SubmitHpcTaskReq req) { //1. 上传hpc主文件 及 其他文件 MultipartFile masterFile = req.getMasterFile(); + // hpc共享机器+ subDir 这个就确定是工作目录了 String subDir = req.getJobName()+"\\"+System.currentTimeMillis(); // webClient 调用上传,这个是主文件,求解算出的文件,及stdout文件都指定这个文件夹下面 String masterFilePath = hpcCommandExcuteUtil.uploaHpcFile(masterFile,subDir); @@ -83,7 +84,7 @@ public class PbsServiceDecorator implements IPbsServiceDecorator { // 任务输出的文件夹 String hpcOutPutDir = extractDirectory(masterFilePath); req.setWorkDir(hpcOutPutDir); - // 前置处理 替换求解文件 todo 从数据库查询 + // 前置处理 替换求解文件 String command=""; if(StringUtils.isNotBlank(req.getCommand())) { command=req.getCommand(); @@ -184,15 +185,12 @@ public class PbsServiceDecorator implements IPbsServiceDecorator { if (fullPath == null || fullPath.isEmpty()) { return fullPath; } - // 找到最后一个反斜杠的位置 int lastSeparatorIndex = fullPath.lastIndexOf("\\"); - // 若没有找到分隔符,返回原路径;否则截取到最后一个分隔符(包含) if (lastSeparatorIndex == -1) { return fullPath; } - return fullPath.substring(0, lastSeparatorIndex + 1); } @@ -240,10 +238,15 @@ public class PbsServiceDecorator implements IPbsServiceDecorator { public SdmResponse>> queryJobs(QueryJobReq req){ PageHelper.startPage(req.getCurrent(), req.getSize()); // 构建查询条件 - LambdaQueryChainWrapper queryChain = simulationJobService.lambdaQuery(); - if (req.getJobName() != null && !req.getJobName().trim().isEmpty()) { - queryChain.eq(SimulationJob::getJobName, req.getJobName().trim()); - } + LambdaQueryChainWrapper queryChain = simulationJobService.lambdaQuery(); + if (req.getJobName() != null && !req.getJobName().trim().isEmpty()) { + // like,实现 包含关键词 的模糊查询(%关键词%) + queryChain.like(SimulationJob::getJobName, req.getJobName().trim()); + } + if (req.getSolverName() != null && !req.getSolverName().trim().isEmpty()) { + // like,实现 包含关键词 的模糊查询(%关键词%) + queryChain.like(SimulationJob::getSolverName, req.getSolverName().trim()); + } List results = queryChain.list(); PageInfo page = new PageInfo<>(results); return PageUtils.getJsonObjectSdmResponse(results, page);