diff --git a/management-platform/pom.xml b/management-platform/pom.xml
new file mode 100644
index 0000000..97f18ed
--- /dev/null
+++ b/management-platform/pom.xml
@@ -0,0 +1,59 @@
+
+
+
+ ruoyi
+ com.ruoyi
+ 3.8.3
+
+ 4.0.0
+ management-platform
+
+
+
+
+
+
+ com.ruoyi
+ ruoyi-common
+
+
+ org.projectlombok
+ lombok
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.5
+
+
+ org.apache.httpcomponents
+ httpmime
+ 4.5
+
+
+
+
+ org.apache.httpcomponents
+ httpcore
+ 4.4.13
+
+
+ com.ruoyi
+ ruoyi-generator
+
+
+ io.kubernetes
+ client-java
+ 16.0.3
+
+
+ com.github.docker-java
+ docker-java
+ 3.1.1
+
+
+
+
+
\ No newline at end of file
diff --git a/management-platform/src/main/java/com/ruoyi/platform/dao/ComponentDao.java b/management-platform/src/main/java/com/ruoyi/platform/dao/ComponentDao.java
new file mode 100644
index 0000000..64b316e
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/dao/ComponentDao.java
@@ -0,0 +1,83 @@
+package com.ruoyi.platform.dao;
+
+import com.ruoyi.platform.entity.Component;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Pageable;
+import java.util.List;
+
+/**
+ * (Component)表数据库访问层
+ *
+ * @author makejava
+ * @since 2023-10-18 13:36:35
+ */
+public interface ComponentDao {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ Component queryById(Integer id);
+
+ /**
+ * 查询指定行数据
+ *
+ * @param component 查询条件
+ * @param pageable 分页对象
+ * @return 对象列表
+ */
+ List queryAllByLimit(Component component, @Param("pageable") Pageable pageable);
+
+ /**
+ * 统计总行数
+ *
+ * @param component 查询条件
+ * @return 总行数
+ */
+ long count(Component component);
+
+ /**
+ * 新增数据
+ *
+ * @param component 实例对象
+ * @return 影响行数
+ */
+ int insert(Component component);
+
+ /**
+ * 批量新增数据(MyBatis原生foreach方法)
+ *
+ * @param entities List 实例对象列表
+ * @return 影响行数
+ */
+ int insertBatch(@Param("entities") List entities);
+
+ /**
+ * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+ *
+ * @param entities List 实例对象列表
+ * @return 影响行数
+ * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+ */
+ int insertOrUpdateBatch(@Param("entities") List entities);
+
+ /**
+ * 修改数据
+ *
+ * @param component 实例对象
+ * @return 影响行数
+ */
+ int update(Component component);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 影响行数
+ */
+ int deleteById(Integer id);
+
+}
+
diff --git a/management-platform/src/main/java/com/ruoyi/platform/dao/ExperimentDao.java b/management-platform/src/main/java/com/ruoyi/platform/dao/ExperimentDao.java
new file mode 100644
index 0000000..15d6efe
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/dao/ExperimentDao.java
@@ -0,0 +1,84 @@
+package com.ruoyi.platform.dao;
+
+import com.ruoyi.platform.entity.Experiment;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+
+/**
+ * (Experiment)表数据库访问层
+ *
+ * @author makejava
+ * @since 2023-10-18 13:37:48
+ */
+public interface ExperimentDao {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ Experiment queryById(Integer id);
+
+ /**
+ * 查询指定行数据
+ *
+ * @param experiment 查询条件
+ * @param pageable 分页对象
+ * @return 对象列表
+ */
+ List queryAllByLimit(Experiment experiment, @Param("pageable") Pageable pageable);
+
+ /**
+ * 统计总行数
+ *
+ * @param experiment 查询条件
+ * @return 总行数
+ */
+ long count(Experiment experiment);
+
+ /**
+ * 新增数据
+ *
+ * @param experiment 实例对象
+ * @return 影响行数
+ */
+ int insert(Experiment experiment);
+
+ /**
+ * 批量新增数据(MyBatis原生foreach方法)
+ *
+ * @param entities List 实例对象列表
+ * @return 影响行数
+ */
+ int insertBatch(@Param("entities") List entities);
+
+ /**
+ * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+ *
+ * @param entities List 实例对象列表
+ * @return 影响行数
+ * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+ */
+ int insertOrUpdateBatch(@Param("entities") List entities);
+
+ /**
+ * 修改数据
+ *
+ * @param experiment 实例对象
+ * @return 影响行数
+ */
+ int update(Experiment experiment);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 影响行数
+ */
+ int deleteById(Integer id);
+
+}
+
diff --git a/management-platform/src/main/java/com/ruoyi/platform/dao/WorkflowDao.java b/management-platform/src/main/java/com/ruoyi/platform/dao/WorkflowDao.java
new file mode 100644
index 0000000..87a8784
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/dao/WorkflowDao.java
@@ -0,0 +1,83 @@
+package com.ruoyi.platform.dao;
+
+import com.ruoyi.platform.entity.Workflow;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Pageable;
+import java.util.List;
+
+/**
+ * DAG workflow(Workflow)表数据库访问层
+ *
+ * @author makejava
+ * @since 2023-10-18 13:41:09
+ */
+public interface WorkflowDao {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ Workflow queryById(Long id);
+
+ /**
+ * 查询指定行数据
+ *
+ * @param workflow 查询条件
+ * @param pageable 分页对象
+ * @return 对象列表
+ */
+ List queryAllByLimit(Workflow workflow, @Param("pageable") Pageable pageable);
+
+ /**
+ * 统计总行数
+ *
+ * @param workflow 查询条件
+ * @return 总行数
+ */
+ long count(Workflow workflow);
+
+ /**
+ * 新增数据
+ *
+ * @param workflow 实例对象
+ * @return 影响行数
+ */
+ int insert(Workflow workflow);
+
+ /**
+ * 批量新增数据(MyBatis原生foreach方法)
+ *
+ * @param entities List 实例对象列表
+ * @return 影响行数
+ */
+ int insertBatch(@Param("entities") List entities);
+
+ /**
+ * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+ *
+ * @param entities List 实例对象列表
+ * @return 影响行数
+ * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+ */
+ int insertOrUpdateBatch(@Param("entities") List entities);
+
+ /**
+ * 修改数据
+ *
+ * @param workflow 实例对象
+ * @return 影响行数
+ */
+ int update(Workflow workflow);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 影响行数
+ */
+ int deleteById(Long id);
+
+}
+
diff --git a/management-platform/src/main/java/com/ruoyi/platform/entity/Component.java b/management-platform/src/main/java/com/ruoyi/platform/entity/Component.java
new file mode 100644
index 0000000..a7641a5
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/entity/Component.java
@@ -0,0 +1,149 @@
+package com.ruoyi.platform.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * (Component)实体类
+ *
+ * @author makejava
+ * @since 2023-10-18 13:36:36
+ */
+public class Component implements Serializable {
+ private static final long serialVersionUID = 189714963458219059L;
+ /**
+ * 主键
+ */
+ private Integer id;
+ /**
+ * 类别ID,数据字典配置
+ */
+ private Integer categoryId;
+ /**
+ * 组件name
+ */
+ private String componentName;
+ /**
+ * 组件ID,根据主键类别自动生成
+ */
+ private String componentId;
+ /**
+ * 输入
+ */
+ private String inParameters;
+ /**
+ * 输出
+ */
+ private String outParameters;
+ /**
+ * 创建者
+ */
+ private String createBy;
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+ /**
+ * 更新者
+ */
+ private String updateBy;
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+ /**
+ * 0,失效 1生效
+ */
+ private Integer state;
+
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getCategoryId() {
+ return categoryId;
+ }
+
+ public void setCategoryId(Integer categoryId) {
+ this.categoryId = categoryId;
+ }
+
+ public String getComponentName() {
+ return componentName;
+ }
+
+ public void setComponentName(String componentName) {
+ this.componentName = componentName;
+ }
+
+ public String getComponentId() {
+ return componentId;
+ }
+
+ public void setComponentId(String componentId) {
+ this.componentId = componentId;
+ }
+
+ public String getInParameters() {
+ return inParameters;
+ }
+
+ public void setInParameters(String inParameters) {
+ this.inParameters = inParameters;
+ }
+
+ public String getOutParameters() {
+ return outParameters;
+ }
+
+ public void setOutParameters(String outParameters) {
+ this.outParameters = outParameters;
+ }
+
+ public String getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(String createBy) {
+ this.createBy = createBy;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getUpdateBy() {
+ return updateBy;
+ }
+
+ public void setUpdateBy(String updateBy) {
+ this.updateBy = updateBy;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Integer getState() {
+ return state;
+ }
+
+ public void setState(Integer state) {
+ this.state = state;
+ }
+
+}
+
diff --git a/management-platform/src/main/java/com/ruoyi/platform/entity/Experiment.java b/management-platform/src/main/java/com/ruoyi/platform/entity/Experiment.java
new file mode 100644
index 0000000..e2b4fdf
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/entity/Experiment.java
@@ -0,0 +1,157 @@
+package com.ruoyi.platform.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * (Experiment)实体类
+ *
+ * @author makejava
+ * @since 2023-10-18 13:37:48
+ */
+public class Experiment implements Serializable {
+ private static final long serialVersionUID = 107822750572849353L;
+
+ private Integer id;
+
+ private Integer workflowId;
+ /**
+ * 全局参数
+ */
+ private String globalParam;
+ /**
+ * 简介
+ */
+ private String describe;
+ /**
+ * argo返回name
+ */
+ private String argoInsName;
+ /**
+ * argo返回id
+ */
+ private String argoInsId;
+ /**
+ * 业务状态,数据字典配置
+ */
+ private Integer status;
+ /**
+ * 创建者
+ */
+ private String createBy;
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+ /**
+ * 更新者
+ */
+ private String updateBy;
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+ /**
+ * 0,失效 1生效
+ */
+ private Integer state;
+
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getWorkflowId() {
+ return workflowId;
+ }
+
+ public void setWorkflowId(Integer workflowId) {
+ this.workflowId = workflowId;
+ }
+
+ public String getGlobalParam() {
+ return globalParam;
+ }
+
+ public void setGlobalParam(String globalParam) {
+ this.globalParam = globalParam;
+ }
+
+ public String getDescribe() {
+ return describe;
+ }
+
+ public void setDescribe(String describe) {
+ this.describe = describe;
+ }
+
+ public String getArgoInsName() {
+ return argoInsName;
+ }
+
+ public void setArgoInsName(String argoInsName) {
+ this.argoInsName = argoInsName;
+ }
+
+ public String getArgoInsId() {
+ return argoInsId;
+ }
+
+ public void setArgoInsId(String argoInsId) {
+ this.argoInsId = argoInsId;
+ }
+
+ public Integer getStatus() {
+ return status;
+ }
+
+ public void setStatus(Integer status) {
+ this.status = status;
+ }
+
+ public String getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(String createBy) {
+ this.createBy = createBy;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getUpdateBy() {
+ return updateBy;
+ }
+
+ public void setUpdateBy(String updateBy) {
+ this.updateBy = updateBy;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Integer getState() {
+ return state;
+ }
+
+ public void setState(Integer state) {
+ this.state = state;
+ }
+
+}
+
diff --git a/management-platform/src/main/java/com/ruoyi/platform/entity/Workflow.java b/management-platform/src/main/java/com/ruoyi/platform/entity/Workflow.java
new file mode 100644
index 0000000..3226dec
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/entity/Workflow.java
@@ -0,0 +1,125 @@
+package com.ruoyi.platform.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * DAG workflow(Workflow)实体类
+ *
+ * @author makejava
+ * @since 2023-10-18 13:41:09
+ */
+public class Workflow implements Serializable {
+ private static final long serialVersionUID = -61495379838862559L;
+ /**
+ * id
+ */
+ private Long id;
+ /**
+ * 工作流名称
+ */
+ private String name;
+ /**
+ * DAG工作流描述
+ */
+ private String description;
+ /**
+ * DAG图
+ */
+ private String dag;
+ /**
+ * 创建人
+ */
+ private String createBy;
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+ /**
+ * 更新人
+ */
+ private String updateBy;
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+ /**
+ * 0,失效 1生效
+ */
+ private Integer state;
+
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getDag() {
+ return dag;
+ }
+
+ public void setDag(String dag) {
+ this.dag = dag;
+ }
+
+ public String getCreateBy() {
+ return createBy;
+ }
+
+ public void setCreateBy(String createBy) {
+ this.createBy = createBy;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getUpdateBy() {
+ return updateBy;
+ }
+
+ public void setUpdateBy(String updateBy) {
+ this.updateBy = updateBy;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Integer getState() {
+ return state;
+ }
+
+ public void setState(Integer state) {
+ this.state = state;
+ }
+
+}
+
diff --git a/management-platform/src/main/java/com/ruoyi/platform/service/ComponentService.java b/management-platform/src/main/java/com/ruoyi/platform/service/ComponentService.java
new file mode 100644
index 0000000..8ab0463
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/service/ComponentService.java
@@ -0,0 +1,56 @@
+package com.ruoyi.platform.service;
+
+import com.ruoyi.platform.entity.Component;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+
+/**
+ * (Component)表服务接口
+ *
+ * @author makejava
+ * @since 2023-10-18 13:36:38
+ */
+public interface ComponentService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ Component queryById(Integer id);
+
+ /**
+ * 分页查询
+ *
+ * @param component 筛选条件
+ * @param pageRequest 分页对象
+ * @return 查询结果
+ */
+ Page queryByPage(Component component, PageRequest pageRequest);
+
+ /**
+ * 新增数据
+ *
+ * @param component 实例对象
+ * @return 实例对象
+ */
+ Component insert(Component component);
+
+ /**
+ * 修改数据
+ *
+ * @param component 实例对象
+ * @return 实例对象
+ */
+ Component update(Component component);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer id);
+
+}
diff --git a/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentService.java b/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentService.java
new file mode 100644
index 0000000..a623375
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentService.java
@@ -0,0 +1,56 @@
+package com.ruoyi.platform.service;
+
+import com.ruoyi.platform.entity.Experiment;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+
+/**
+ * (Experiment)表服务接口
+ *
+ * @author makejava
+ * @since 2023-10-18 13:37:48
+ */
+public interface ExperimentService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ Experiment queryById(Integer id);
+
+ /**
+ * 分页查询
+ *
+ * @param experiment 筛选条件
+ * @param pageRequest 分页对象
+ * @return 查询结果
+ */
+ Page queryByPage(Experiment experiment, PageRequest pageRequest);
+
+ /**
+ * 新增数据
+ *
+ * @param experiment 实例对象
+ * @return 实例对象
+ */
+ Experiment insert(Experiment experiment);
+
+ /**
+ * 修改数据
+ *
+ * @param experiment 实例对象
+ * @return 实例对象
+ */
+ Experiment update(Experiment experiment);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Integer id);
+
+}
diff --git a/management-platform/src/main/java/com/ruoyi/platform/service/WorkflowService.java b/management-platform/src/main/java/com/ruoyi/platform/service/WorkflowService.java
new file mode 100644
index 0000000..75cbb67
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/service/WorkflowService.java
@@ -0,0 +1,56 @@
+package com.ruoyi.platform.service;
+
+import com.ruoyi.platform.entity.Workflow;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+
+/**
+ * DAG workflow(Workflow)表服务接口
+ *
+ * @author makejava
+ * @since 2023-10-18 13:41:09
+ */
+public interface WorkflowService {
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ Workflow queryById(Long id);
+
+ /**
+ * 分页查询
+ *
+ * @param workflow 筛选条件
+ * @param pageRequest 分页对象
+ * @return 查询结果
+ */
+ Page queryByPage(Workflow workflow, PageRequest pageRequest);
+
+ /**
+ * 新增数据
+ *
+ * @param workflow 实例对象
+ * @return 实例对象
+ */
+ Workflow insert(Workflow workflow);
+
+ /**
+ * 修改数据
+ *
+ * @param workflow 实例对象
+ * @return 实例对象
+ */
+ Workflow update(Workflow workflow);
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ boolean deleteById(Long id);
+
+}
diff --git a/management-platform/src/main/java/com/ruoyi/platform/service/impl/ComponentServiceImpl.java b/management-platform/src/main/java/com/ruoyi/platform/service/impl/ComponentServiceImpl.java
new file mode 100644
index 0000000..18bec78
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/service/impl/ComponentServiceImpl.java
@@ -0,0 +1,82 @@
+package com.ruoyi.platform.service.impl;
+
+import com.ruoyi.platform.entity.Component;
+import com.ruoyi.platform.dao.ComponentDao;
+import com.ruoyi.platform.service.ComponentService;
+import org.springframework.stereotype.Service;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+
+import javax.annotation.Resource;
+
+/**
+ * (Component)表服务实现类
+ *
+ * @author makejava
+ * @since 2023-10-18 13:36:39
+ */
+@Service("componentService")
+public class ComponentServiceImpl implements ComponentService {
+ @Resource
+ private ComponentDao componentDao;
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ @Override
+ public Component queryById(Integer id) {
+ return this.componentDao.queryById(id);
+ }
+
+ /**
+ * 分页查询
+ *
+ * @param component 筛选条件
+ * @param pageRequest 分页对象
+ * @return 查询结果
+ */
+ @Override
+ public Page queryByPage(Component component, PageRequest pageRequest) {
+ long total = this.componentDao.count(component);
+ return new PageImpl<>(this.componentDao.queryAllByLimit(component, pageRequest), pageRequest, total);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param component 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Component insert(Component component) {
+ this.componentDao.insert(component);
+ return component;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param component 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Component update(Component component) {
+ this.componentDao.update(component);
+ return this.queryById(component.getId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer id) {
+ return this.componentDao.deleteById(id) > 0;
+ }
+}
diff --git a/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java b/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java
new file mode 100644
index 0000000..f4eb9e0
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java
@@ -0,0 +1,82 @@
+package com.ruoyi.platform.service.impl;
+
+import com.ruoyi.platform.entity.Experiment;
+import com.ruoyi.platform.dao.ExperimentDao;
+import com.ruoyi.platform.service.ExperimentService;
+import org.springframework.stereotype.Service;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+
+import javax.annotation.Resource;
+
+/**
+ * (Experiment)表服务实现类
+ *
+ * @author makejava
+ * @since 2023-10-18 13:37:48
+ */
+@Service("experimentService")
+public class ExperimentServiceImpl implements ExperimentService {
+ @Resource
+ private ExperimentDao experimentDao;
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ @Override
+ public Experiment queryById(Integer id) {
+ return this.experimentDao.queryById(id);
+ }
+
+ /**
+ * 分页查询
+ *
+ * @param experiment 筛选条件
+ * @param pageRequest 分页对象
+ * @return 查询结果
+ */
+ @Override
+ public Page queryByPage(Experiment experiment, PageRequest pageRequest) {
+ long total = this.experimentDao.count(experiment);
+ return new PageImpl<>(this.experimentDao.queryAllByLimit(experiment, pageRequest), pageRequest, total);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param experiment 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Experiment insert(Experiment experiment) {
+ this.experimentDao.insert(experiment);
+ return experiment;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param experiment 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Experiment update(Experiment experiment) {
+ this.experimentDao.update(experiment);
+ return this.queryById(experiment.getId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Integer id) {
+ return this.experimentDao.deleteById(id) > 0;
+ }
+}
diff --git a/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java b/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java
new file mode 100644
index 0000000..a8b98a7
--- /dev/null
+++ b/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java
@@ -0,0 +1,82 @@
+package com.ruoyi.platform.service.impl;
+
+import com.ruoyi.platform.entity.Workflow;
+import com.ruoyi.platform.dao.WorkflowDao;
+import com.ruoyi.platform.service.WorkflowService;
+import org.springframework.stereotype.Service;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+
+import javax.annotation.Resource;
+
+/**
+ * DAG workflow(Workflow)表服务实现类
+ *
+ * @author makejava
+ * @since 2023-10-18 13:41:09
+ */
+@Service("workflowService")
+public class WorkflowServiceImpl implements WorkflowService {
+ @Resource
+ private WorkflowDao workflowDao;
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param id 主键
+ * @return 实例对象
+ */
+ @Override
+ public Workflow queryById(Long id) {
+ return this.workflowDao.queryById(id);
+ }
+
+ /**
+ * 分页查询
+ *
+ * @param workflow 筛选条件
+ * @param pageRequest 分页对象
+ * @return 查询结果
+ */
+ @Override
+ public Page queryByPage(Workflow workflow, PageRequest pageRequest) {
+ long total = this.workflowDao.count(workflow);
+ return new PageImpl<>(this.workflowDao.queryAllByLimit(workflow, pageRequest), pageRequest, total);
+ }
+
+ /**
+ * 新增数据
+ *
+ * @param workflow 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Workflow insert(Workflow workflow) {
+ this.workflowDao.insert(workflow);
+ return workflow;
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param workflow 实例对象
+ * @return 实例对象
+ */
+ @Override
+ public Workflow update(Workflow workflow) {
+ this.workflowDao.update(workflow);
+ return this.queryById(workflow.getId());
+ }
+
+ /**
+ * 通过主键删除数据
+ *
+ * @param id 主键
+ * @return 是否成功
+ */
+ @Override
+ public boolean deleteById(Long id) {
+ return this.workflowDao.deleteById(id) > 0;
+ }
+}
diff --git a/management-platform/src/main/resources/mapper/ComponentDao.xml b/management-platform/src/main/resources/mapper/ComponentDao.xml
new file mode 100644
index 0000000..0e6827e
--- /dev/null
+++ b/management-platform/src/main/resources/mapper/ComponentDao.xml
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into component(category_id, component_name, component_id, in_parameters, out_parameters, create_by, create_time, update_by, update_time, state)
+ values (#{categoryId}, #{componentName}, #{componentId}, #{inParameters}, #{outParameters}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{state})
+
+
+
+ insert into component(category_id, component_name, component_id, in_parameters, out_parameters, create_by, create_time, update_by, update_time, state)
+ values
+
+ (#{entity.categoryId}, #{entity.componentName}, #{entity.componentId}, #{entity.inParameters}, #{entity.outParameters}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.state})
+
+
+
+
+ insert into component(category_id, component_name, component_id, in_parameters, out_parameters, create_by, create_time, update_by, update_time, state)
+ values
+
+ (#{entity.categoryId}, #{entity.componentName}, #{entity.componentId}, #{entity.inParameters}, #{entity.outParameters}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.state})
+
+ on duplicate key update
+ category_id = values(category_id),
+ component_name = values(component_name),
+ component_id = values(component_id),
+ in_parameters = values(in_parameters),
+ out_parameters = values(out_parameters),
+ create_by = values(create_by),
+ create_time = values(create_time),
+ update_by = values(update_by),
+ update_time = values(update_time),
+ state = values(state)
+
+
+
+
+ update component
+
+
+ category_id = #{categoryId},
+
+
+ component_name = #{componentName},
+
+
+ component_id = #{componentId},
+
+
+ in_parameters = #{inParameters},
+
+
+ out_parameters = #{outParameters},
+
+
+ create_by = #{createBy},
+
+
+ create_time = #{createTime},
+
+
+ update_by = #{updateBy},
+
+
+ update_time = #{updateTime},
+
+
+ state = #{state},
+
+
+ where id = #{id}
+
+
+
+
+ delete from component where id = #{id}
+
+
+
+
diff --git a/management-platform/src/main/resources/mapper/ExperimentDao.xml b/management-platform/src/main/resources/mapper/ExperimentDao.xml
new file mode 100644
index 0000000..681f7c9
--- /dev/null
+++ b/management-platform/src/main/resources/mapper/ExperimentDao.xml
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into experiment(workflow_id, global_param, describe, argo_ins_name, argo_ins_id, status, create_by, create_time, update_by, update_time, state)
+ values (#{workflowId}, #{globalParam}, #{describe}, #{argoInsName}, #{argoInsId}, #{status}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{state})
+
+
+
+ insert into experiment(workflow_id, global_param, describe, argo_ins_name, argo_ins_id, status, create_by,
+ create_time, update_by, update_time, state)
+ values
+
+ (#{entity.workflowId}, #{entity.globalParam}, #{entity.describe}, #{entity.argoInsName},
+ #{entity.argoInsId}, #{entity.status}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy},
+ #{entity.updateTime}, #{entity.state})
+
+
+
+
+ insert into experiment(workflow_id, global_param, describe, argo_ins_name, argo_ins_id, status, create_by,
+ create_time, update_by, update_time, state)
+ values
+
+ (#{entity.workflowId}, #{entity.globalParam}, #{entity.describe}, #{entity.argoInsName},
+ #{entity.argoInsId}, #{entity.status}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy},
+ #{entity.updateTime}, #{entity.state})
+
+ on duplicate key update
+ workflow_id = values(workflow_id),
+ global_param = values(global_param),
+ describe = values(describe),
+ argo_ins_name = values(argo_ins_name),
+ argo_ins_id = values(argo_ins_id),
+ status = values(status),
+ create_by = values(create_by),
+ create_time = values(create_time),
+ update_by = values(update_by),
+ update_time = values(update_time),
+ state = values(state)
+
+
+
+
+ update experiment
+
+
+ workflow_id = #{workflowId},
+
+
+ global_param = #{globalParam},
+
+
+ describe = #{describe},
+
+
+ argo_ins_name = #{argoInsName},
+
+
+ argo_ins_id = #{argoInsId},
+
+
+ status = #{status},
+
+
+ create_by = #{createBy},
+
+
+ create_time = #{createTime},
+
+
+ update_by = #{updateBy},
+
+
+ update_time = #{updateTime},
+
+
+ state = #{state},
+
+
+ where id = #{id}
+
+
+
+
+ delete from experiment where id = #{id}
+
+
+
+
diff --git a/management-platform/src/main/resources/mapper/WorkflowDao.xml b/management-platform/src/main/resources/mapper/WorkflowDao.xml
new file mode 100644
index 0000000..a58c320
--- /dev/null
+++ b/management-platform/src/main/resources/mapper/WorkflowDao.xml
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into workflow(name, description, dag, create_by, create_time, update_by, update_time, state)
+ values (#{name}, #{description}, #{dag}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{state})
+
+
+
+ insert into workflow(name, description, dag, create_by, create_time, update_by, update_time, state)
+ values
+
+ (#{entity.name}, #{entity.description}, #{entity.dag}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.state})
+
+
+
+
+ insert into workflow(name, description, dag, create_by, create_time, update_by, update_time, state)
+ values
+
+ (#{entity.name}, #{entity.description}, #{entity.dag}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.state})
+
+ on duplicate key update
+ name = values(name),
+ description = values(description),
+ dag = values(dag),
+ create_by = values(create_by),
+ create_time = values(create_time),
+ update_by = values(update_by),
+ update_time = values(update_time),
+ state = values(state)
+
+
+
+
+ update workflow
+
+
+ name = #{name},
+
+
+ description = #{description},
+
+
+ dag = #{dag},
+
+
+ create_by = #{createBy},
+
+
+ create_time = #{createTime},
+
+
+ update_by = #{updateBy},
+
+
+ update_time = #{updateTime},
+
+
+ state = #{state},
+
+
+ where id = #{id}
+
+
+
+
+ delete from workflow where id = #{id}
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 9d5389d..7e69408 100644
--- a/pom.xml
+++ b/pom.xml
@@ -180,6 +180,7 @@
ruoyi-quartz
ruoyi-generator
ruoyi-common
+ management-platform
pom