From 6ccdb11fbe4bc93208dc86a26afe023d929ef33e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A5=BF=E5=A4=A7=E9=94=90?= <1070211640@qq.com> Date: Wed, 17 Jan 2024 15:20:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E5=AE=9E=E4=BE=8B=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=BC=80=E5=A7=8B=E3=80=81=E7=BB=93=E6=9D=9F=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../experiment/ExperimentController.java | 5 ++-- .../experiment/ExperimentInsController.java | 1 + .../ruoyi/platform/domain/ExperimentIns.java | 27 +++++++++++++++++++ .../platform/mapper/DatasetVersionDao.java | 4 +++ .../platform/mapper/ExperimentInsDao.java | 4 +-- .../service/ExperimentInsService.java | 1 + .../platform/service/ExperimentService.java | 2 +- .../impl/ExperimentInsServiceImpl.java | 3 +-- .../service/impl/ExperimentServiceImpl.java | 26 +++++++++++++++--- .../ExperimentInsDaoMapper.xml | 6 ++--- 10 files changed, 64 insertions(+), 15 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentController.java index c5d097a6..8eac37d7 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentController.java @@ -44,7 +44,8 @@ public class ExperimentController { @GetMapping(("/status")) @ApiOperation("查询实验状态") - public Page selectStatus(@RequestBody Experiment experiment, PageRequest pageRequest){ + public Page selectStatus(Experiment experiment, int page,int size){ + PageRequest pageRequest = PageRequest.of(page,size); return this.experimentService.selectStatus(experiment, pageRequest); } @@ -115,7 +116,7 @@ public class ExperimentController { */ @PutMapping("/experiments/{id}") @ApiOperation("运行实验") - public ResponseEntity runExperiment(@PathVariable("id") Integer id) { + public ResponseEntity runExperiment(@PathVariable("id") Integer id) throws Exception { return ResponseEntity.ok(this.experimentService.runExperiment(id)); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentInsController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentInsController.java index 609e7685..3b486ae4 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentInsController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentInsController.java @@ -100,6 +100,7 @@ public class ExperimentInsController { @ApiOperation("终止实验实例") public boolean terminateExperimentIns(@PathVariable("id") Integer id) { return this.experimentInsService.terminateExperimentIns(id); + } /** diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ExperimentIns.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ExperimentIns.java index 6da30f60..e9ccb8ac 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ExperimentIns.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ExperimentIns.java @@ -41,6 +41,20 @@ public class ExperimentIns implements Serializable { private String nodesStatus; @ApiModelProperty(name = "nodes_logs") private String nodesLogs; + + /** + * 开始时间 + */ + @ApiModelProperty(name = "start_time") + private Date startTime; + + /** + * 结束时间 + */ + @ApiModelProperty(name = "finish_time") + private Date finishTime; + + /** * 创建者 */ @@ -127,6 +141,19 @@ public class ExperimentIns implements Serializable { this.nodesLogs = nodesLogs; } + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getStartTime() {return startTime;} + + public void setFinishTime(Date finishTime) { + this.finishTime = finishTime; + } + + public Date getFinishTime() {return finishTime;} + + public String getCreateBy() { return createBy; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java index cd03cf26..56c4751d 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java @@ -55,6 +55,8 @@ public interface DatasetVersionDao { */ int insertBatch(@Param("entities") List entities); + + /** * 批量新增或按主键更新数据(MyBatis原生foreach方法) * @@ -83,5 +85,7 @@ public interface DatasetVersionDao { List queryByDatasetId(Integer datasetId); DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion); + + } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ExperimentInsDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ExperimentInsDao.java index 063a1a87..a8169bbc 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ExperimentInsDao.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ExperimentInsDao.java @@ -37,7 +37,7 @@ public interface ExperimentInsDao { * @param experimentIns 查询条件 * @return 总行数 */ - long count(@Param("experimentIns")ExperimentIns experimentIns); + long count(@Param("experimentIns") ExperimentIns experimentIns); /** * 新增数据 @@ -45,7 +45,7 @@ public interface ExperimentInsDao { * @param experimentIns 实例对象 * @return 影响行数 */ - int insert(ExperimentIns experimentIns); + int insert(@Param("experimentIns") ExperimentIns experimentIns); /** * 批量新增数据(MyBatis原生foreach方法) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentInsService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentInsService.java index 821c7e89..e86fa575 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentInsService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentInsService.java @@ -68,6 +68,7 @@ public interface ExperimentInsService { */ boolean deleteById(Integer id); + List queryByExperimentId(Integer id); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentService.java index 7e112e59..9e3b8a63 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentService.java @@ -56,7 +56,7 @@ public interface ExperimentService { */ boolean deleteById(Integer id); String removeById(Integer id); - Experiment runExperiment(Integer id); + Experiment runExperiment(Integer id) throws Exception; Experiment addAndRunExperiment(Experiment experiment); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java index ec2a041d..17836896 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java @@ -301,9 +301,8 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { // 检查响应是否为空或无内容 if (StringUtils.isEmpty(req)) { throw new RuntimeException("终止响应内容为空。"); - } - + } // 将响应的JSON字符串转换为Map对象 Map runResMap = JsonUtils.jsonToMap(req); // 从响应Map中直接获取"errCode"的值 diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java index 644f206c..bb2344d5 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java @@ -5,6 +5,7 @@ import com.ruoyi.platform.domain.Experiment; import com.ruoyi.platform.domain.ExperimentIns; import com.ruoyi.platform.domain.Workflow; import com.ruoyi.platform.mapper.ExperimentDao; +import com.ruoyi.platform.mapper.ExperimentInsDao; import com.ruoyi.platform.service.ExperimentInsService; import com.ruoyi.platform.service.ExperimentService; import com.ruoyi.platform.service.WorkflowService; @@ -35,6 +36,11 @@ public class ExperimentServiceImpl implements ExperimentService { @Resource private ExperimentDao experimentDao; + @Resource + private ExperimentInsDao experimentInsDao; + + + @Resource @Lazy private WorkflowService workflowService; @@ -192,7 +198,7 @@ public class ExperimentServiceImpl implements ExperimentService { * @return 是否成功 */ @Override - public Experiment runExperiment(Integer id) { + public Experiment runExperiment(Integer id) throws Exception { //先查出实验记录 Experiment experiment = this.queryById(id); @@ -200,13 +206,18 @@ public class ExperimentServiceImpl implements ExperimentService { System.out.println("No experiment"); } + Workflow workflow = workflowService.queryById(experiment.getWorkflowId()); + if(workflow == null) { + throw new RuntimeException("流水线不存在,请先创建流水线"); + } + String dag = workflow.getDag(); // 调argo转换接口 try { String convertRes = HttpUtils.sendPost(argoUrl + argoConvert, dag); if (convertRes == null || StringUtils.isEmpty(convertRes)) { - throw new RuntimeException("Failed to convert workflow."); + throw new RuntimeException("转换流水线失败"); } Map converMap = JsonUtils.jsonToMap(convertRes); // 组装运行接口json @@ -234,13 +245,16 @@ public class ExperimentServiceImpl implements ExperimentService { experimentIns.setArgoInsNs((String) metadata.get("namespace")); experimentIns.setArgoInsName((String) metadata.get("name")); //插入ExperimentIns表中 - experimentInsService.insert(experimentIns); + experimentInsDao.insert(experimentIns); }catch (Exception e){ throw new RuntimeException(e); } List experimentIns = experimentInsService.queryByExperimentId(id); + + experiment.setExperimentInsList(experimentIns); + return experiment; } @@ -253,7 +267,11 @@ public class ExperimentServiceImpl implements ExperimentService { throw new RuntimeException("Failed to add experiment."); } // 调用runExperiment方法运行实验 - newExperiment = this.runExperiment(newExperiment.getId()); + try { + newExperiment = this.runExperiment(newExperiment.getId()); + } catch (Exception e) { + throw new RuntimeException(e); + } return newExperiment; } diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ExperimentInsDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ExperimentInsDaoMapper.xml index 8b522836..dcbc102b 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ExperimentInsDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ExperimentInsDaoMapper.xml @@ -19,8 +19,6 @@ - -