From 51e80031ba7d8a12844f6c1022c7cecfd0e6abcf Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Tue, 13 May 2025 10:47:23 +0800
Subject: [PATCH 01/50] =?UTF-8?q?[=E4=BF=AE=E6=94=B9]:=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=BB=A5=E5=8F=8Apom?=
=?UTF-8?q?=E6=96=87=E4=BB=B6=E3=80=81test=E6=B5=8B=E8=AF=95=E7=B1=BB?=
=?UTF-8?q?=E7=94=A8=E4=BA=8E=E6=95=B0=E6=8D=AE=E5=BA=93=E8=BF=9E=E6=8E=A5?=
=?UTF-8?q?=EF=BC=8C[=E6=B7=BB=E5=8A=A0]:=E6=96=B0=E5=A2=9E=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E5=BA=93=E9=A9=B1=E5=8A=A8=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 7 +++++++
src/main/resources/application.properties | 10 ++++++++++
...ationOrchestrationServiceApplicationTests.java | 15 +++++++++++++--
3 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index f469829..2e126ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,6 +49,13 @@
lombok
true
+
+
+
+ com.kingbase8
+ kingbase8
+ 9.0.0
+
org.springframework.boot
spring-boot-starter-test
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index d53e06e..c50d915 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1 +1,11 @@
spring.application.name=intelligent-application-orchestration-service
+
+
+# 数据库配置
+spring.datasource.url=jdbc:kingbase8://116.205.121.200:54321/Ipz
+spring.datasource.username=system
+spring.datasource.password=root
+spring.datasource.driver-class-name=com.kingbase8.Driver
+spring.datasource.hikari.maximum-pool-size=10
+spring.datasource.hikari.minimum-idle=5
+spring.datasource.hikari.connection-timeout=30000
\ No newline at end of file
diff --git a/src/test/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplicationTests.java b/src/test/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplicationTests.java
index ea39d17..ca59f9d 100644
--- a/src/test/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplicationTests.java
+++ b/src/test/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplicationTests.java
@@ -1,13 +1,24 @@
package com.bipt.intelligentapplicationorchestrationservice;
import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import javax.sql.DataSource;
+
+import java.sql.SQLException;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
@SpringBootTest
class IntelligentApplicationOrchestrationServiceApplicationTests {
-
+ @Autowired
+ private DataSource dataSource;
@Test
- void contextLoads() {
+ void contextLoads() throws SQLException {
+ // 尝试获取连接
+ assertNotNull(dataSource.getConnection(), "无法获取数据库连接!");
+ System.out.println("数据库连接成功!");
}
}
From b953e85704506e96eedb9704c4a88aeaafa9a234 Mon Sep 17 00:00:00 2001
From: xiaohucoding <2307520758@qq.com>
Date: Tue, 13 May 2025 21:36:29 +0800
Subject: [PATCH 02/50] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E5=8F=8A=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD=E7=89=88?=
=?UTF-8?q?=E6=9C=AC1.0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 11 ++++
.../controller/DatasetController.java | 43 +++++++++++++
.../enumeration/OperationType.java | 27 ++++++++
.../mapper/DatasetMapper.java | 13 ++++
.../pojo/DatasetDTO.java | 17 ++++++
.../pojo/DatasetEntity.java | 28 +++++++++
.../pojo/OptResult.java | 40 ++++++++++++
.../service/DatasetService.java | 11 ++++
.../service/Impl/DatasetServiceImpl.java | 61 +++++++++++++++++++
src/main/resources/application.properties | 4 ++
src/main/resources/mapper/DatasetMapper.xml | 32 ++++++++++
11 files changed, 287 insertions(+)
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/OperationType.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/OptResult.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
create mode 100644 src/main/resources/mapper/DatasetMapper.xml
diff --git a/pom.xml b/pom.xml
index f469829..5443fde 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,17 @@
spring-boot-starter-test
test
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 3.0.4
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter-test
+ 3.0.4
+ test
+
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
new file mode 100644
index 0000000..fa47e8c
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
@@ -0,0 +1,43 @@
+package com.bipt.intelligentapplicationorchestrationservice.controller;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetDTO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult;
+import com.bipt.intelligentapplicationorchestrationservice.service.DatasetService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/dataset")
+@Slf4j
+public class DatasetController {
+ @Autowired
+ private DatasetService datasetService;
+
+ /**
+ * 新增数据集
+ * @param datasetDTO
+ * @return
+ */
+ @PostMapping
+ public OptResult save(@RequestBody DatasetDTO datasetDTO) {
+ log.info("新增数据集:{}", datasetDTO);
+ datasetService.save(datasetDTO);
+ return OptResult.success();
+ }
+
+ /**
+ * 修改数据集
+ * @param datasetEntity
+ * @return
+ */
+ @PutMapping
+ public OptResult update(@RequestBody DatasetEntity datasetEntity){
+ log.info("修改数据集",datasetEntity);
+ datasetService.update(datasetEntity);
+ return OptResult.success();
+ }
+
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/OperationType.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/OperationType.java
new file mode 100644
index 0000000..cb6c5a1
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/OperationType.java
@@ -0,0 +1,27 @@
+package com.bipt.intelligentapplicationorchestrationservice.enumeration;
+
+import org.apache.ibatis.annotations.Delete;
+
+/**
+ * 数据库操作类型
+ */
+public enum OperationType {
+ /**
+ * 更新操作
+ */
+ UPDATE,
+
+ /**
+ * 插入操作
+ */
+ INSERT,
+
+ /**
+ * 删除操作
+ */
+ DELETE,
+ /**
+ * 查询操作
+ */
+ SELECT
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
new file mode 100644
index 0000000..4c55a0a
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
@@ -0,0 +1,13 @@
+package com.bipt.intelligentapplicationorchestrationservice.mapper;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.Map;
+
+@Mapper
+public interface DatasetMapper {
+
+ void updata(DatasetEntity datasetEntity);
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java
new file mode 100644
index 0000000..ee86df6
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java
@@ -0,0 +1,17 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * @author hky
+ */
+@Data
+public class DatasetDTO implements Serializable {
+ private Integer datasetId;
+ private String datasetName;
+ private Integer datasetType;
+ private Map args;
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java
new file mode 100644
index 0000000..7409971
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java
@@ -0,0 +1,28 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Map;
+
+/**
+ * @author hky
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DatasetEntity implements Serializable {
+ private Integer datasetId;
+ private String datasetName;
+ private Integer datasetType;
+ private Integer datasetStatus;
+ private String dsPath;
+ private Map args;
+ private LocalDateTime createTime;
+ private LocalDateTime updateTime;
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/OptResult.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/OptResult.java
new file mode 100644
index 0000000..d89c6de
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/OptResult.java
@@ -0,0 +1,40 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 后端统一返回结果
+ * @author hky
+ * @param
+ */
+@Data
+public class OptResult implements Serializable {
+
+ private boolean isSuccess;
+ private String errorInfo;
+ private int statusCode;
+ private T data;
+
+ public static OptResult success() {
+ OptResult result = new OptResult<>();
+ result.isSuccess = true;
+ return result;
+ }
+
+ public static OptResult success(T object) {
+ OptResult result = new OptResult<>();
+ result.data = object;
+ result.isSuccess = true;
+ return result;
+ }
+
+ public static OptResult error(String errorInfo) {
+ OptResult result = new OptResult();
+ result.errorInfo = errorInfo;
+ result.isSuccess = false;
+ return result;
+ }
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
new file mode 100644
index 0000000..377d960
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
@@ -0,0 +1,11 @@
+package com.bipt.intelligentapplicationorchestrationservice.service;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetDTO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
+import org.springframework.stereotype.Service;
+
+public interface DatasetService {
+ void save(DatasetDTO datasetDTO);
+
+ void update(DatasetEntity datasetEntity);
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
new file mode 100644
index 0000000..6b04606
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
@@ -0,0 +1,61 @@
+package com.bipt.intelligentapplicationorchestrationservice.service.Impl;
+
+import com.bipt.intelligentapplicationorchestrationservice.mapper.DatasetMapper;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetDTO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
+import com.bipt.intelligentapplicationorchestrationservice.service.DatasetService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class DatasetServiceImpl implements DatasetService {
+ @Autowired
+ private DatasetMapper datasetMapper;
+
+ /**
+ * 新增数据集
+ * @param datasetDTO
+ */
+ @Override
+ public void save(DatasetDTO datasetDTO) {
+ //判断数据集类型,如果是本地上传则保存,若用调用数据仓库进入下一步
+ if (datasetDTO.getDatasetType()==0){
+ //TODO 保存到分布式文件系统
+
+ }else {
+ Map args = datasetDTO.getArgs();
+ Integer datasetType = datasetDTO.getDatasetType();
+ //TODO 根据筛选条件调用数据仓库中的数据
+
+ //TODO 调用数据仓库保存到分布式文件系统
+ }
+
+ }
+
+ /**
+ * 修改数据集
+ * @param datasetEntity
+ */
+ @Override
+ @Transactional
+ public void update(DatasetEntity datasetEntity) {
+ if (datasetEntity.getDatasetType()==0){
+ //TODO 覆盖保存到分布式文件系统中
+
+ }else {
+
+ //TODO 覆盖数据文件
+
+ datasetEntity.setUpdateTime(LocalDateTime.now());
+ //maybe需要判断
+ datasetMapper.updata(datasetEntity);
+ }
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index d53e06e..28612b7 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1 +1,5 @@
spring.application.name=intelligent-application-orchestration-service
+# ?????
+spring.datasource.url=jdbc:kingbase8://116.205.121.200:54321/Ipz
+spring.datasource.username=system
+spring.datasource.password=root
\ No newline at end of file
diff --git a/src/main/resources/mapper/DatasetMapper.xml b/src/main/resources/mapper/DatasetMapper.xml
new file mode 100644
index 0000000..4d89113
--- /dev/null
+++ b/src/main/resources/mapper/DatasetMapper.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+ update dataset
+
+
+ dataset_name=#{datasetName},
+
+
+ dataset_type=#{datasetType},
+
+
+ dataset_status=#{datasetStatus},
+
+
+ ds_path=#{dsPath},
+
+
+ args=#{args},
+
+
+ create_time=#{createTime},
+
+
+ update_time=#{updateTime}
+
+
+ where dataset_id = #{datasetId}
+
+
\ No newline at end of file
From 2f8c8940c079abf4aa527b0cc76c1d5da7051a7b Mon Sep 17 00:00:00 2001
From: Lpz
Date: Wed, 14 May 2025 09:24:17 +0800
Subject: [PATCH 03/50] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E6=8A=A5?=
=?UTF-8?q?=E6=A8=A1=E7=89=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 doc/WorkReport/2025-05.md
diff --git a/doc/WorkReport/2025-05.md b/doc/WorkReport/2025-05.md
new file mode 100644
index 0000000..9ea39c5
--- /dev/null
+++ b/doc/WorkReport/2025-05.md
@@ -0,0 +1,17 @@
+# 工作日报
+## 2025-05-14
+
+### xxx
+#### ✅ 今日完成
+- 完成支付接口单元测试
+- 优化数据库查询性能(响应时间降低40%)
+
+#### 🚧 进行中
+- 用户积分系统开发(完成前端部分)
+
+#### ⚠️ 问题/障碍
+- 第三方短信服务不稳定(已联系供应商)
+
+#### 📅 明日计划
+- 继续开发积分系统后端
+- 参加架构设计会议
\ No newline at end of file
From e8eddb9c539946e00652cbc028508fe052c00c21 Mon Sep 17 00:00:00 2001
From: Lpz
Date: Wed, 14 May 2025 09:33:19 +0800
Subject: [PATCH 04/50] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A8=A1=E7=89=88?=
=?UTF-8?q?=EF=BC=8C=E5=8F=98=E6=9B=B4=E4=B8=BA=E6=AF=8F=E4=BA=BA=E6=AF=8F?=
=?UTF-8?q?=E6=9C=88=E5=8D=95=E7=8B=AC=E7=9A=84=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/{2025-05.md => 2025-05-name.md} | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
rename doc/WorkReport/{2025-05.md => 2025-05-name.md} (59%)
diff --git a/doc/WorkReport/2025-05.md b/doc/WorkReport/2025-05-name.md
similarity index 59%
rename from doc/WorkReport/2025-05.md
rename to doc/WorkReport/2025-05-name.md
index 9ea39c5..f29c8e4 100644
--- a/doc/WorkReport/2025-05.md
+++ b/doc/WorkReport/2025-05-name.md
@@ -1,17 +1,15 @@
-# 工作日报
-## 2025-05-14
-
-### xxx
-#### ✅ 今日完成
+# 工作日报 - 2025年5月
+## 2025年5月14日
+### ✅ 今日完成
- 完成支付接口单元测试
- 优化数据库查询性能(响应时间降低40%)
-#### 🚧 进行中
+### 🚧 进行中
- 用户积分系统开发(完成前端部分)
-#### ⚠️ 问题/障碍
+### ⚠️ 问题/障碍
- 第三方短信服务不稳定(已联系供应商)
-#### 📅 明日计划
+### 📅 明日计划
- 继续开发积分系统后端
- 参加架构设计会议
\ No newline at end of file
From d6625b52f4f2f1f1c5e6de57501a5498b365fc49 Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Wed, 14 May 2025 21:16:03 +0800
Subject: [PATCH 05/50] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]:=E5=AE=8C=E6=88=90?=
=?UTF-8?q?=E6=A8=A1=E5=9E=8B=E8=AF=84=E4=BC=B0=E6=A8=A1=E5=9D=97=E7=9A=84?=
=?UTF-8?q?=E4=B8=80=E9=83=A8=E5=88=86=E5=BC=80=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...cationOrchestrationServiceApplication.java | 2 ++
.../controller/EvaluationController.java | 31 +++++++++++++++++++
.../enumeration/LogType.java | 7 +++++
.../mapper/EvaluationMapper.java | 13 ++++++++
.../pojo/ModelEvaluation.java | 24 ++++++++++++++
.../pojo/ModelInfo.java | 20 ++++++++++++
.../pojo/ModelLog.java | 24 ++++++++++++++
.../pojo/ModelLogVO.java | 15 +++++++++
.../pojo/ModelVersion.java | 28 +++++++++++++++++
.../service/EvaluationService.java | 7 +++++
.../service/Impl/EvaluationServiceImpl.java | 26 ++++++++++++++++
src/main/resources/application.properties | 9 +++++-
.../resources/mapper/EvaluationMapper.xml | 14 +++++++++
13 files changed, 219 insertions(+), 1 deletion(-)
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/EvaluationController.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/LogType.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/EvaluationMapper.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelEvaluation.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelInfo.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLog.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLogVO.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/EvaluationService.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/EvaluationServiceImpl.java
create mode 100644 src/main/resources/mapper/EvaluationMapper.xml
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
index c592c40..47290d7 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
@@ -1,8 +1,10 @@
package com.bipt.intelligentapplicationorchestrationservice;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+@MapperScan("com.bipt.intelligentapplicationorchestrationservice.mapper")//指定扫描Mapper接口的包
@SpringBootApplication
public class IntelligentApplicationOrchestrationServiceApplication {
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/EvaluationController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/EvaluationController.java
new file mode 100644
index 0000000..fae3608
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/EvaluationController.java
@@ -0,0 +1,31 @@
+package com.bipt.intelligentapplicationorchestrationservice.controller;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelLogVO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult;
+import com.bipt.intelligentapplicationorchestrationservice.service.EvaluationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/evaluation")
+@Slf4j
+public class EvaluationController {
+ @Autowired
+ private EvaluationService evaluationService;
+
+ /**
+ * 获取日志详情
+ * @param id
+ * @return
+ */
+ @GetMapping("/detail")
+ public OptResult detail(Long id){
+// log.info("id:{}", id);
+ ModelLogVO modelLogVO = evaluationService.detail(id);
+ return OptResult.success(modelLogVO);
+ }
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/LogType.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/LogType.java
new file mode 100644
index 0000000..485372b
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/LogType.java
@@ -0,0 +1,7 @@
+package com.bipt.intelligentapplicationorchestrationservice.enumeration;
+
+/**
+ * 日志类型
+ */
+public enum LogType {
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/EvaluationMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/EvaluationMapper.java
new file mode 100644
index 0000000..b23ffe5
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/EvaluationMapper.java
@@ -0,0 +1,13 @@
+package com.bipt.intelligentapplicationorchestrationservice.mapper;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelLogVO;
+
+public interface EvaluationMapper {
+ /*
+ * 查询模型评估日志详情
+ * @param id 模型评估日志id
+ * @return 模型评估日志详情
+ */
+ ModelLogVO selectLogDetail(Long id);
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelEvaluation.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelEvaluation.java
new file mode 100644
index 0000000..1429342
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelEvaluation.java
@@ -0,0 +1,24 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+/**
+ * @author nh
+ * @description:模型评估记录实体类
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ModelEvaluation implements Serializable {
+ private Long id; // 评估记录id
+ private Long modelId; // 关联模型id
+ private LocalDateTime evaluationTime; // 评估时间
+ private String evaluationResult; // 评估结果
+ private String operator; // 评估操作人员
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelInfo.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelInfo.java
new file mode 100644
index 0000000..268fdd7
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelInfo.java
@@ -0,0 +1,20 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+/**
+ * @author nh
+ * @description:模型实体类
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ModelInfo implements Serializable {
+ private Long id; // 模型id
+ private String modelName; // 模型名称
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLog.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLog.java
new file mode 100644
index 0000000..b1b15ee
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLog.java
@@ -0,0 +1,24 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+/**
+ * @author :nh
+ * @description:模型日志实体类
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ModelLog implements Serializable {
+ private Long id; // 日志id
+ private Long modelId; // 关联模型id
+ private Integer logType; // 日志类型(1,2,3...)
+ private String logPath; // 日志存储路径
+ private LocalDateTime logTime; // 日志生成时间
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLogVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLogVO.java
new file mode 100644
index 0000000..6eb6c04
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLogVO.java
@@ -0,0 +1,15 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import java.time.LocalDateTime;
+
+public class ModelLogVO {
+ private Long id; // 日志id
+ private Long modelId; // 关联模型id
+ private String modelName; // 模型名称
+ private String version; // 模型版本
+ private String modelConfig; // 模型配置
+ private Integer logType; // 日志类型(1,2,3...)
+ private String logPath; // 日志存储路径
+ private LocalDateTime logTime; // 日志生成时间
+}
+
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
new file mode 100644
index 0000000..6297b43
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
@@ -0,0 +1,28 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+/**
+ * @author :nh
+ * @description:模型版本信息实体类
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ModelVersion implements Serializable {
+ private Long id; // 版本信息表id
+ private Long modelId; // 关联模型id
+ private String version; // 模型版本
+ private Integer datasetId; // 数据集id
+ private String modelConfig; // 模型配置信息
+ private String modelPath; // 模型存储路径
+ private Integer status; // 模型状态(1代表上线,0代表不上线)
+ private LocalDateTime createTime; // 创建时间
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/EvaluationService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/EvaluationService.java
new file mode 100644
index 0000000..5f327d5
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/EvaluationService.java
@@ -0,0 +1,7 @@
+package com.bipt.intelligentapplicationorchestrationservice.service;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelLogVO;
+
+public interface EvaluationService {
+ ModelLogVO detail(Long id);
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/EvaluationServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/EvaluationServiceImpl.java
new file mode 100644
index 0000000..8b77c10
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/EvaluationServiceImpl.java
@@ -0,0 +1,26 @@
+package com.bipt.intelligentapplicationorchestrationservice.service.Impl;
+
+import com.bipt.intelligentapplicationorchestrationservice.mapper.EvaluationMapper;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelLogVO;
+import com.bipt.intelligentapplicationorchestrationservice.service.EvaluationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class EvaluationServiceImpl implements EvaluationService {
+ @Autowired
+ private EvaluationMapper evaluationMapper;
+ /**
+ * 获取日志详情
+ * @param id 模型日志id
+ * @return 日志详情
+ */
+ @Override
+ public ModelLogVO detail(Long id) {
+// log.info("id:{}", id);
+ ModelLogVO modelLogVO = evaluationMapper.selectLogDetail(id);
+ return modelLogVO;
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index c50d915..fdc5805 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -8,4 +8,11 @@ spring.datasource.password=root
spring.datasource.driver-class-name=com.kingbase8.Driver
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
-spring.datasource.hikari.connection-timeout=30000
\ No newline at end of file
+spring.datasource.hikari.connection-timeout=30000
+
+# SQL映射文件路径配置
+mybatis.mapper-locations=classpath:mapper/*.xml
+# 配置实体类别名所在包
+mybatis.type-aliases-package=com.bipt.intelligentapplicationorchestrationservice.pojo
+# 开启驼峰命名转换
+mybatis.configuration.map-underscore-to-camel-case=true
\ No newline at end of file
diff --git a/src/main/resources/mapper/EvaluationMapper.xml b/src/main/resources/mapper/EvaluationMapper.xml
new file mode 100644
index 0000000..c6db155
--- /dev/null
+++ b/src/main/resources/mapper/EvaluationMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
From 272d1ea54db13fa5e1139c9afa5982c232ec2b43 Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Wed, 14 May 2025 21:49:23 +0800
Subject: [PATCH 06/50] =?UTF-8?q?[=E6=8F=90=E4=BA=A4]:=E4=BB=8A=E6=97=A5?=
=?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=A5=E6=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-nh.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
create mode 100644 doc/WorkReport/2025-05-nh.md
diff --git a/doc/WorkReport/2025-05-nh.md b/doc/WorkReport/2025-05-nh.md
new file mode 100644
index 0000000..a23b408
--- /dev/null
+++ b/doc/WorkReport/2025-05-nh.md
@@ -0,0 +1,16 @@
+# 工作日报 - 2025年5月
+## 2025年5月14日
+### ✅ 今日完成
+- 完成相关数据库表的创建
+- 模型评估部分实体类的定义
+- 新增了SpringBoot配置文件中的一些配置
+
+### 🚧 进行中
+- 模型评估部分显示日志后端部分开发
+
+### ⚠️ 问题/障碍
+- lombok注解出现问题,没法正常使用
+
+### 📅 明日计划
+- 继续开发模型评估部分
+- 尽量解决lombok存在的问题
\ No newline at end of file
From 84421e5ae50ae7eb937ff9c594ffd0466a876ccf Mon Sep 17 00:00:00 2001
From: syc <3778699244@qq.com>
Date: Wed, 14 May 2025 21:51:38 +0800
Subject: [PATCH 07/50] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20doc/=E7=AE=97?=
=?UTF-8?q?=E6=B3=95=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E8=AE=BE=E8=AE=A1?=
=?UTF-8?q?=E6=96=87=E6=A1=A3=5F=E5=AD=99=E4=B8=80=E5=9F=8E.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-nh.md | 16 ++++++
...法生命周期设计文档_孙一城.md | 55 ++++++-------------
2 files changed, 32 insertions(+), 39 deletions(-)
create mode 100644 doc/WorkReport/2025-05-nh.md
diff --git a/doc/WorkReport/2025-05-nh.md b/doc/WorkReport/2025-05-nh.md
new file mode 100644
index 0000000..a23b408
--- /dev/null
+++ b/doc/WorkReport/2025-05-nh.md
@@ -0,0 +1,16 @@
+# 工作日报 - 2025年5月
+## 2025年5月14日
+### ✅ 今日完成
+- 完成相关数据库表的创建
+- 模型评估部分实体类的定义
+- 新增了SpringBoot配置文件中的一些配置
+
+### 🚧 进行中
+- 模型评估部分显示日志后端部分开发
+
+### ⚠️ 问题/障碍
+- lombok注解出现问题,没法正常使用
+
+### 📅 明日计划
+- 继续开发模型评估部分
+- 尽量解决lombok存在的问题
\ No newline at end of file
diff --git a/doc/算法生命周期设计文档_孙一城.md b/doc/算法生命周期设计文档_孙一城.md
index 70dd6b9..2edebbf 100644
--- a/doc/算法生命周期设计文档_孙一城.md
+++ b/doc/算法生命周期设计文档_孙一城.md
@@ -1,39 +1,16 @@
-# 算法生命周期管理数据库设计文档
-
-## 1. 数据表设计
-
-### 1.1 algorithm_info(算法基础信息表)
-| 字段名 | 类型 | 是否为空 | 默认值 | 说明 |
-|--------|------|----------|--------|------|
-| id | BIGINT | NOT NULL | AUTO_INCREMENT | 主键ID |
-| algorithm_name | VARCHAR(100) | NOT NULL | | 算法名称(唯一) |
-| algorithm_type | VARCHAR(50) | NOT NULL | | 算法分类 |
-| description | TEXT | NULL | | 算法描述 |
-| created_by | VARCHAR(50) | NOT NULL | | 创建人 |
-| create_time | DATETIME | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
-| update_time | DATETIME | NOT NULL | CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
-| status | TINYINT | NOT NULL | 1 | 状态(1启用 0禁用 -1删除) |
-
-### 1.2 algorithm_version(算法版本表)
-| 字段名 | 类型 | 是否为空 | 默认值 | 说明 |
-|--------|------|----------|--------|------|
-| id | BIGINT | NOT NULL | AUTO_INCREMENT | 版本ID |
-| algorithm_id | BIGINT | NOT NULL | | 关联算法ID |
-| version | VARCHAR(50) | NOT NULL | | 语义版本号 |
-| version_desc | TEXT | NULL | | 版本说明 |
-| storage_path | VARCHAR(255) | NOT NULL | | 存储路径 |
-| config_params | JSON | NULL | | 配置参数 |
-| creator | VARCHAR(50) | NOT NULL | | 创建人 |
-| create_time | DATETIME | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
-| status | TINYINT | NOT NULL | 0 | 状态(1发布 0开发 -1废弃) |
-
-### 1.3 algorithm_dependency(算法依赖表)
-| 字段名 | 类型 | 是否为空 | 默认值 | 说明 |
-|--------|------|----------|--------|------|
-| id | BIGINT | NOT NULL | AUTO_INCREMENT | 依赖ID |
-| algorithm_id | BIGINT | NOT NULL | | 关联算法ID |
-| version_id | BIGINT | NOT NULL | | 关联版本ID |
-| dependency_type | VARCHAR(50) | NOT NULL | | 依赖类型 |
-| dep_name | VARCHAR(100) | NOT NULL | | 依赖名称 |
-| dep_version | VARCHAR(50) | NOT NULL | | 依赖版本 |
-| create_time | DATETIME | NULL | CURRENT_TIMESTAMP | 创建时间 |
+# 算法生命周期管理数据库设计文档
+
+## 1. 数据表设计
+
+### 1.1 algorithm_info(算法基础信息表)
+| 字段名 | 类型 | 是否为空 | 默认值 | 说明 |
+|--------|------|----------|--------|------|
+| id | BIGINT | NOT NULL | AUTO_INCREMENT | 算法ID |
+| algorithm_name | VARCHAR(100) | NOT NULL | | 算法名称(唯一) |
+| algorithm_file | VARCHAR(255) | NOT NULL | | 算法文件路径 |
+| algorithm_type | VARCHAR(50) | NOT NULL | | 算法分类 |
+| description | TEXT | NULL | | 算法描述 |
+| created_by | VARCHAR(50) | NOT NULL | | 创建人 |
+| create_time | DATETIME | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | DATETIME | NOT NULL | CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
+| file_size | BIGINT | NULL | | 文件大小(字节) |
\ No newline at end of file
From 606d7cf728cf101f648bcea366a489e01b050e02 Mon Sep 17 00:00:00 2001
From: dc <1736585778@qq.com>
Date: Wed, 14 May 2025 21:52:06 +0800
Subject: [PATCH 08/50] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?=
=?UTF-8?q?=E8=87=B3=20doc/WorkReport?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/数据库文档-杜冲.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 doc/WorkReport/数据库文档-杜冲.md
diff --git a/doc/WorkReport/数据库文档-杜冲.md b/doc/WorkReport/数据库文档-杜冲.md
new file mode 100644
index 0000000..f34c069
--- /dev/null
+++ b/doc/WorkReport/数据库文档-杜冲.md
@@ -0,0 +1,9 @@
+**TableName: Gpu_Resource**
+
+| ֶ | | Լ | ֶ |
+|:-------------:|:-------------:|:-----------------:|:----------------------------------:|
+| GPUId | BIGINT | | GPUIDȫΨһʶ |
+| GPUModel | VARCHAR(64) | NOT NULL | GPUͺ |
+| GPUMemorySize | INT | NOT NULL | GPUڴС |
+| Ip | VARCHAR(15) | NOT NULL | GPUip |
+| CreatedTime | DATETIME | NOT NULL | GPUʱ |
From e3b2e24ba1cab0449722264b07037be7814e3da3 Mon Sep 17 00:00:00 2001
From: dc <1736585778@qq.com>
Date: Wed, 14 May 2025 21:52:54 +0800
Subject: [PATCH 09/50] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?=
=?UTF-8?q?=E8=87=B3=20doc/WorkReport?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-杜冲.md | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 doc/WorkReport/2025-05-杜冲.md
diff --git a/doc/WorkReport/2025-05-杜冲.md b/doc/WorkReport/2025-05-杜冲.md
new file mode 100644
index 0000000..5ed9a6d
--- /dev/null
+++ b/doc/WorkReport/2025-05-杜冲.md
@@ -0,0 +1,15 @@
+# 工作日报 - 2025年5月
+## 2025年5月14日
+### ✅ 今日完成
+- 完成数据传输对象的编写
+- 完成容错处理和警告信息的编写
+
+### 🚧 进行中
+- GPU资源增删改查功能(增加和更改已完成)
+
+### ⚠️ 问题/障碍
+- 暂无
+
+### 📅 明日计划
+- 继续完成删除和查询功能
+- 完成API请求调度缓存层设计实现
\ No newline at end of file
From e7099f3a8556a74e4d2bc99639865d2443a9015d Mon Sep 17 00:00:00 2001
From: syc <3778699244@qq.com>
Date: Wed, 14 May 2025 22:12:02 +0800
Subject: [PATCH 10/50] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?=
=?UTF-8?q?=E8=87=B3=20doc/WorkReport?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-孙一城.md | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 doc/WorkReport/2025-05-孙一城.md
diff --git a/doc/WorkReport/2025-05-孙一城.md b/doc/WorkReport/2025-05-孙一城.md
new file mode 100644
index 0000000..4c6141f
--- /dev/null
+++ b/doc/WorkReport/2025-05-孙一城.md
@@ -0,0 +1,8 @@
+# 工作日报 - 2025年5月
+## 2025年5月14日
+### ✅ 今日完成
+- 完成建表
+
+
+### 📅 明日计划
+- 实现需求文档功能
\ No newline at end of file
From be5ff6ff74e2992b73988f07729b4bae88a34a8a Mon Sep 17 00:00:00 2001
From: xiaohucoding <2307520758@qq.com>
Date: Wed, 14 May 2025 23:07:09 +0800
Subject: [PATCH 11/50] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E5=88=86?=
=?UTF-8?q?=E9=A1=B5=E6=9F=A5=E8=AF=A2=E5=8F=8A=E9=83=A8=E5=88=86=E5=88=A0?=
=?UTF-8?q?=E9=99=A4=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-14hky.md | 13 +++++
pom.xml | 7 +++
.../controller/DatasetController.java | 32 ++++++++++--
.../mapper/DatasetMapper.java | 16 +++++-
.../pojo/DatasetPageQueryDTO.java | 18 +++++++
.../pojo/DatasetVO.java | 18 +++++++
.../pojo/PageResult.java | 19 +++++++
.../service/DatasetService.java | 12 ++++-
.../service/Impl/DatasetServiceImpl.java | 51 +++++++++++++++++--
src/main/resources/mapper/DatasetMapper.xml | 31 +++++++++++
10 files changed, 207 insertions(+), 10 deletions(-)
create mode 100644 doc/WorkReport/2025-05-14hky.md
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java
diff --git a/doc/WorkReport/2025-05-14hky.md b/doc/WorkReport/2025-05-14hky.md
new file mode 100644
index 0000000..c46cf0f
--- /dev/null
+++ b/doc/WorkReport/2025-05-14hky.md
@@ -0,0 +1,13 @@
+# 工作日报 - 2025年5月
+## 2025年5月14日
+### ✅ 今日完成
+完成分页查询
+
+### 🚧 进行中
+删除操作
+
+### ⚠️ 问题/障碍
+测试方法不知道怎么写
+
+### 📅 明日计划
+写完删除代码,进行测试
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 99aface..27daee5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,13 @@
true
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.4.7
+
+
com.kingbase8
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
index fa47e8c..7f64e72 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
@@ -1,13 +1,14 @@
package com.bipt.intelligentapplicationorchestrationservice.controller;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetDTO;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.*;
import com.bipt.intelligentapplicationorchestrationservice.service.DatasetService;
+import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
@RestController
@RequestMapping("/dataset")
@Slf4j
@@ -27,6 +28,14 @@ public class DatasetController {
return OptResult.success();
}
+ @GetMapping("/page")
+ public OptResult page(DatasetPageQueryDTO dataSetPageQueryDTO) {
+ log.info("数据集分页查询:{}", dataSetPageQueryDTO);
+ PageResult pageResult = datasetService.pageQuery(dataSetPageQueryDTO);
+ return OptResult.success(pageResult);
+ }
+
+
/**
* 修改数据集
* @param datasetEntity
@@ -39,5 +48,22 @@ public class DatasetController {
return OptResult.success();
}
+ /**
+ * 批量删除数据集
+ * @param datasetIds 数据集ID列表
+ * @return 操作结果
+ */
+ @DeleteMapping
+ public OptResult deleteBatch(@RequestBody List datasetIds) {
+ log.info("批量删除数据集,ID列表:{}", datasetIds);
+ datasetService.deleteBatch(datasetIds);
+ return OptResult.success("批量删除成功");
+ }
+
+
+
+
+
+
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
index 4c55a0a..3e83f61 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
@@ -1,13 +1,25 @@
package com.bipt.intelligentapplicationorchestrationservice.mapper;
import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Update;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetPageQueryDTO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetVO;
+import com.github.pagehelper.Page;
+import org.apache.ibatis.annotations.*;
+import java.util.List;
import java.util.Map;
@Mapper
public interface DatasetMapper {
void updata(DatasetEntity datasetEntity);
+
+ void insert(DatasetEntity datasetEntity);
+
+ Page pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO);
+
+ @Select("select * from dataset where dataset_id=#{datasetId}")
+ DatasetEntity getById(Integer datasetId);
+ @Delete("delete from dataset where dataset_id = #{datasetId}")
+ void deleteBatch(List datasetIds);
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java
new file mode 100644
index 0000000..b047610
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java
@@ -0,0 +1,18 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Map;
+
+/**
+ * @author hky
+ */
+@Data
+public class DatasetPageQueryDTO implements Serializable{
+ private int page;
+ private int pageSize;
+ private Integer datasetType;
+ private Integer datasetStatus;
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java
new file mode 100644
index 0000000..4ebebc5
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java
@@ -0,0 +1,18 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Map;
+
+/**
+ * @author hky
+ */
+public class DatasetVO implements Serializable {
+ private String datasetName;
+ private Integer datasetType;
+ private Integer datasetStatus;
+ private String dsPath;
+ private Map args;
+ private LocalDateTime createTime;
+ private LocalDateTime updateTime;
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java
new file mode 100644
index 0000000..3b6c15b
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java
@@ -0,0 +1,19 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 分页
+ * @param
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PageResult {
+ private Long total;
+ private List rows;
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
index 377d960..f3e844e 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
@@ -2,10 +2,20 @@ package com.bipt.intelligentapplicationorchestrationservice.service;
import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetDTO;
import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
-import org.springframework.stereotype.Service;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetPageQueryDTO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.PageResult;
+import java.util.List;
+
+/**
+ * @author hky
+ */
public interface DatasetService {
void save(DatasetDTO datasetDTO);
void update(DatasetEntity datasetEntity);
+
+ PageResult pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO);
+
+ void deleteBatch(List datasetIds);
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
index 6b04606..3e97b91 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
@@ -1,9 +1,10 @@
package com.bipt.intelligentapplicationorchestrationservice.service.Impl;
import com.bipt.intelligentapplicationorchestrationservice.mapper.DatasetMapper;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetDTO;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.*;
import com.bipt.intelligentapplicationorchestrationservice.service.DatasetService;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -11,6 +12,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
+import java.util.List;
import java.util.Map;
@Service
@@ -36,11 +38,18 @@ public class DatasetServiceImpl implements DatasetService {
//TODO 调用数据仓库保存到分布式文件系统
}
+ DatasetEntity datasetEntity = new DatasetEntity();
+ BeanUtils.copyProperties(datasetEntity,datasetDTO);
+ datasetEntity.setDatasetStatus(1);
+ datasetEntity.setCreateTime(LocalDateTime.now());
+ datasetEntity.setUpdateTime(LocalDateTime.now());
+ datasetMapper.insert(datasetEntity);
}
/**
* 修改数据集
+ *
* @param datasetEntity
*/
@Override
@@ -50,12 +59,46 @@ public class DatasetServiceImpl implements DatasetService {
//TODO 覆盖保存到分布式文件系统中
}else {
-
//TODO 覆盖数据文件
+
+ //TODO
datasetEntity.setUpdateTime(LocalDateTime.now());
- //maybe需要判断
datasetMapper.updata(datasetEntity);
}
}
+
+ /**
+ * 分页查询
+ * @param dataSetPageQueryDTO
+ * @return
+ */
+ @Override
+ public PageResult pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO) {
+ int pageNum = dataSetPageQueryDTO.getPage();
+ int pageSize = dataSetPageQueryDTO.getPageSize();
+ PageHelper.startPage(pageNum, pageSize);
+ Page page = datasetMapper.pageQuery(dataSetPageQueryDTO);
+ return new PageResult(page.getTotal(), page.getResult());
+ }
+
+ /**
+ * 批量删除
+ * @param datasetIds
+ */
+ @Override
+ @Transactional
+ public void deleteBatch(List datasetIds) {
+ for (Integer datasetId : datasetIds) {
+ DatasetEntity datasetEntity = datasetMapper.getById(datasetId);
+ if (datasetEntity == null) {
+ throw new IllegalArgumentException("数据集不存在,ID:" + datasetId);
+ }
+
+ }
+ //TODO 在分布式文件系统中删除
+
+ datasetMapper.deleteBatch(datasetIds);
+ }
+
}
diff --git a/src/main/resources/mapper/DatasetMapper.xml b/src/main/resources/mapper/DatasetMapper.xml
index 4d89113..41d1f85 100644
--- a/src/main/resources/mapper/DatasetMapper.xml
+++ b/src/main/resources/mapper/DatasetMapper.xml
@@ -1,6 +1,11 @@
+
+ INSERT INTO dataset
+ (dataset_name,dataset_type,dataset_status,ds_path,args,create_time,update_time)
+ values (#{datasetName}, #{datasetType}, #{datasetStatus}, #{dsPath}, #{args},#{createTime},#{updateTime})
+
update dataset
@@ -29,4 +34,30 @@
where dataset_id = #{datasetId}
+
\ No newline at end of file
From ec38f39a0eb9590e676bb1f0f38931c6850d2cf3 Mon Sep 17 00:00:00 2001
From: Lpz
Date: Thu, 15 May 2025 08:28:46 +0800
Subject: [PATCH 12/50] =?UTF-8?q?=E8=A7=A3=E5=86=B3lombok=E7=BC=96?=
=?UTF-8?q?=E8=AF=91=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/pom.xml b/pom.xml
index 27daee5..aecd8d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,7 @@
org.projectlombok
lombok
+ 1.18.38
true
From 220fdb11217d42701cac07a75255acd1e5d1ec13 Mon Sep 17 00:00:00 2001
From: Lpz
Date: Thu, 15 May 2025 08:33:13 +0800
Subject: [PATCH 13/50] =?UTF-8?q?=E8=A7=A3=E5=86=B3lombok=E7=BC=96?=
=?UTF-8?q?=E8=AF=91=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index aecd8d1..9a9afc6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,7 @@
1.4.7
-
+ KingbaseES V8/V9 数据库 JDBC 驱动
com.kingbase8
kingbase8
@@ -92,6 +92,7 @@
org.projectlombok
lombok
+ 1.18.38
From b1772bea6fc87f30a9fbcf7c77b5bb9b3f77373b Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Thu, 15 May 2025 20:34:18 +0800
Subject: [PATCH 14/50] =?UTF-8?q?[=E6=8F=90=E4=BA=A4]:=E4=BB=8A=E6=97=A5?=
=?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=A5=E6=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-nh.md | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/doc/WorkReport/2025-05-nh.md b/doc/WorkReport/2025-05-nh.md
index a23b408..71eff93 100644
--- a/doc/WorkReport/2025-05-nh.md
+++ b/doc/WorkReport/2025-05-nh.md
@@ -13,4 +13,19 @@
### 📅 明日计划
- 继续开发模型评估部分
-- 尽量解决lombok存在的问题
\ No newline at end of file
+- 尽量解决lombok存在的问题
+
+## 2025年5月15日
+
+### ✅ 今日完成
+
+- 基本完成模型评估部分的功能开发
+- 加入SpringDoc OpenAPI相关依赖和配置文件(自动生成 REST API 文档和 Swagger UI)
+
+### 🚧 进行中
+
+- 模型评估部分优化
+
+### 📅 明日计划
+
+- 模型评估部分优化
\ No newline at end of file
From d14afaf3ca5b055e72b195e0e4b385b7fcdc71fa Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Thu, 15 May 2025 20:50:55 +0800
Subject: [PATCH 15/50] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]:=E5=9F=BA=E6=9C=AC?=
=?UTF-8?q?=E5=AE=8C=E6=88=90=E6=A8=A1=E5=9E=8B=E8=AF=84=E4=BC=B0=E9=83=A8?=
=?UTF-8?q?=E5=88=86=E7=9A=84=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 11 ++++-
.../config/WebMvcConfiguration.java | 47 +++++++++++++++++++
.../controller/EvaluationController.java | 18 ++++++-
.../mapper/EvaluationMapper.java | 6 +++
.../pojo/ModelLogVO.java | 12 ++++-
.../service/EvaluationService.java | 2 +
.../service/Impl/EvaluationServiceImpl.java | 12 ++++-
.../resources/mapper/EvaluationMapper.xml | 9 ++++
8 files changed, 113 insertions(+), 4 deletions(-)
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
diff --git a/pom.xml b/pom.xml
index 9a9afc6..6a7f800 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,12 +58,21 @@
1.4.7
- KingbaseES V8/V9 数据库 JDBC 驱动
+
com.kingbase8
kingbase8
9.0.0
+
+
+
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+ 2.2.0
+
+
org.springframework.boot
spring-boot-starter-test
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
new file mode 100644
index 0000000..8efb176
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
@@ -0,0 +1,47 @@
+package com.bipt.intelligentapplicationorchestrationservice.config;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.servers.Server;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 配置类,注册web层相关组件
+ */
+@Configuration
+@Slf4j
+public class WebMvcConfiguration{
+
+ /**
+ * 配置OpenAPI信息
+ */
+ @Bean
+ public OpenAPI customOpenAPI() {
+ // 设置服务器信息(可选)
+ List servers = new ArrayList<>();
+ servers.add(new Server().url("/").description("本地服务器"));
+
+ return new OpenAPI()
+ .info(new Info()
+ .title("智能应用服务管理")
+ .version("2.0")
+ .description("智能应用服务管理接口文档"))
+ .servers(servers);
+ }
+
+// /**
+// * 设置静态资源映射(Springdoc不需要特殊配置,保留可能的其他资源映射)
+// */
+// @Override
+// protected void addResourceHandlers(ResourceHandlerRegistry registry) {
+// // 保留其他静态资源映射(如果有)
+// // registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
+// }
+}
\ No newline at end of file
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/EvaluationController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/EvaluationController.java
index fae3608..95bd64a 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/EvaluationController.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/EvaluationController.java
@@ -3,12 +3,16 @@ package com.bipt.intelligentapplicationorchestrationservice.controller;
import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelLogVO;
import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult;
import com.bipt.intelligentapplicationorchestrationservice.service.EvaluationService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+@Tag(name = "模型评估相关接口")
@RestController
@RequestMapping("/evaluation")
@Slf4j
@@ -21,11 +25,23 @@ public class EvaluationController {
* @param id
* @return
*/
+ @Operation(summary = "模型日志信息显示")
@GetMapping("/detail")
public OptResult detail(Long id){
-// log.info("id:{}", id);
+ log.info("模型日志信息显示id:{}", id);
ModelLogVO modelLogVO = evaluationService.detail(id);
return OptResult.success(modelLogVO);
}
+ /**
+ * 模型评估状态,评估通过则上线(1.上线,0.下线)
+ * @return
+ */
+ @Operation(summary = "模型评估接口")
+ @PutMapping("/evaluate")
+ public OptResult evaluate(Long id, Integer status){
+ log.info("模型上线状态修改:id:{}, status:{}", id, status);
+ evaluationService.startOrStop(id, status);
+ return OptResult.success();
+ }
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/EvaluationMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/EvaluationMapper.java
index b23ffe5..35c6778 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/EvaluationMapper.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/EvaluationMapper.java
@@ -10,4 +10,10 @@ public interface EvaluationMapper {
*/
ModelLogVO selectLogDetail(Long id);
+ /*
+ * 更新模型评估日志状态(评估通过则上线)
+ * @param id 模型评估日志id
+ * @param status 模型评估日志状态
+ */
+ void update(Long id, Integer status);
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLogVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLogVO.java
index 6eb6c04..a708e57 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLogVO.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelLogVO.java
@@ -1,7 +1,17 @@
package com.bipt.intelligentapplicationorchestrationservice.pojo;
-import java.time.LocalDateTime;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import java.time.LocalDateTime;
+/**
+ * @author nh
+ * @description:模型日志视图对象
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
public class ModelLogVO {
private Long id; // 日志id
private Long modelId; // 关联模型id
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/EvaluationService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/EvaluationService.java
index 5f327d5..38ce226 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/EvaluationService.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/EvaluationService.java
@@ -4,4 +4,6 @@ import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelLogVO;
public interface EvaluationService {
ModelLogVO detail(Long id);
+
+ void startOrStop(Long id, Integer status);
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/EvaluationServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/EvaluationServiceImpl.java
index 8b77c10..b68ad7b 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/EvaluationServiceImpl.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/EvaluationServiceImpl.java
@@ -19,8 +19,18 @@ public class EvaluationServiceImpl implements EvaluationService {
*/
@Override
public ModelLogVO detail(Long id) {
-// log.info("id:{}", id);
+ log.info("id:{}", id);
ModelLogVO modelLogVO = evaluationMapper.selectLogDetail(id);
return modelLogVO;
}
+
+ /**
+ * 评估模型决定是否上线
+ * @param id 模型id
+ * @param status 模型评估状态,评估通过则上线(1.上线,0.下线)
+ */
+ @Override
+ public void startOrStop(Long id, Integer status) {
+ evaluationMapper.update(id, status);
+ }
}
diff --git a/src/main/resources/mapper/EvaluationMapper.xml b/src/main/resources/mapper/EvaluationMapper.xml
index c6db155..a3526b5 100644
--- a/src/main/resources/mapper/EvaluationMapper.xml
+++ b/src/main/resources/mapper/EvaluationMapper.xml
@@ -1,6 +1,7 @@
+
+
+
+ update model_version set
+
+ status=#{status}
+
+ where model_id=#{id}
+
\ No newline at end of file
From 64abd2d824839780dc97e5ad1bd877be813a980a Mon Sep 17 00:00:00 2001
From: dc <1736585778@qq.com>
Date: Thu, 15 May 2025 22:02:29 +0800
Subject: [PATCH 16/50] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?=
=?UTF-8?q?=E8=87=B3=20doc/WorkReport?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-杜冲.md | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/doc/WorkReport/2025-05-杜冲.md b/doc/WorkReport/2025-05-杜冲.md
index 5ed9a6d..bfb2e7b 100644
--- a/doc/WorkReport/2025-05-杜冲.md
+++ b/doc/WorkReport/2025-05-杜冲.md
@@ -1,15 +1,28 @@
# 工作日报 - 2025年5月
## 2025年5月14日
### ✅ 今日完成
-- 完成数据传输对象的编写
-- 完成容错处理和警告信息的编写
-
-### 🚧 进行中
-- GPU资源增删改查功能(增加和更改已完成)
+- 完成删除和查询功能
+- 完成API请求调度缓存层设计(未实现)
+_
+_### 🚧 进行中
+- API请求调度缓存层实现
### ⚠️ 问题/障碍
-- 暂无
+- KingBase8数据库方言配置出错
### 📅 明日计划
-- 继续完成删除和查询功能
-- 完成API请求调度缓存层设计实现
\ No newline at end of file
+-
+- 完成API请求调度缓存层
+
+## 2025年5月15日
+### ✅ 今日完成
+- 完成删除和查询功能
+
+_### 🚧 进行中
+- 设计触发服务API请求调度缓存更新类
+
+### ⚠️ 问题/障碍
+- KingBase8数据库方言配置出错
+
+### 📅 明日计划
+- 完成触发API请求调度缓存更新类
\ No newline at end of file
From e096b52c7b43470810c8f29031348bb8163a67f1 Mon Sep 17 00:00:00 2001
From: xiaohucoding <2307520758@qq.com>
Date: Thu, 15 May 2025 23:02:53 +0800
Subject: [PATCH 17/50] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E7=94=9F?=
=?UTF-8?q?=E5=91=BD=E5=91=A8=E6=9C=9F=E7=89=88=E6=9C=AC2.0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-14hky.md | 15 +++++-
pom.xml | 8 +++-
...cationOrchestrationServiceApplication.java | 5 ++
.../config/WebMvcConfiguration.java | 47 +++++++++++++++++++
.../constant/MessageConstant.java | 6 +++
.../controller/DatasetController.java | 24 +++++-----
.../handler/GlobalExceptionHandler.java | 34 ++++++++++++++
.../mapper/DatasetMapper.java | 7 ++-
.../pojo/DatasetDTO.java | 14 ++++--
.../pojo/DatasetEntity.java | 9 ++--
.../pojo/DatasetPageQueryDTO.java | 16 ++++++-
.../pojo/DatasetVO.java | 12 ++++-
.../pojo/PageResult.java | 11 +++--
.../service/DatasetService.java | 5 +-
.../service/Impl/DatasetServiceImpl.java | 35 ++++++++------
src/main/resources/mapper/DatasetMapper.xml | 16 ++++---
16 files changed, 207 insertions(+), 57 deletions(-)
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/handler/GlobalExceptionHandler.java
diff --git a/doc/WorkReport/2025-05-14hky.md b/doc/WorkReport/2025-05-14hky.md
index c46cf0f..ceaeb07 100644
--- a/doc/WorkReport/2025-05-14hky.md
+++ b/doc/WorkReport/2025-05-14hky.md
@@ -10,4 +10,17 @@
测试方法不知道怎么写
### 📅 明日计划
-写完删除代码,进行测试
\ No newline at end of file
+写完删除代码,进行测试
+
+## 2025年5月15日
+### ✅ 今日完成
+完成删除数据集增加数据集,部分测试
+
+### 🚧 进行中
+测试(或添加具体异常处理)
+
+### ⚠️ 问题/障碍
+暂无
+
+### 📅 明日计划
+测试完毕,开下一个模块
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 9a9afc6..7dfc8d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,8 +57,14 @@
pagehelper-spring-boot-starter
1.4.7
+
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+ 2.3.0
+
- KingbaseES V8/V9 数据库 JDBC 驱动
+
com.kingbase8
kingbase8
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
index 47290d7..1e18dc6 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
@@ -1,15 +1,20 @@
package com.bipt.intelligentapplicationorchestrationservice;
+import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
@MapperScan("com.bipt.intelligentapplicationorchestrationservice.mapper")//指定扫描Mapper接口的包
@SpringBootApplication
+@EnableTransactionManagement
+@Slf4j
public class IntelligentApplicationOrchestrationServiceApplication {
public static void main(String[] args) {
SpringApplication.run(IntelligentApplicationOrchestrationServiceApplication.class, args);
+ log.info("server started");
}
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
new file mode 100644
index 0000000..8efb176
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
@@ -0,0 +1,47 @@
+package com.bipt.intelligentapplicationorchestrationservice.config;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.servers.Server;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 配置类,注册web层相关组件
+ */
+@Configuration
+@Slf4j
+public class WebMvcConfiguration{
+
+ /**
+ * 配置OpenAPI信息
+ */
+ @Bean
+ public OpenAPI customOpenAPI() {
+ // 设置服务器信息(可选)
+ List servers = new ArrayList<>();
+ servers.add(new Server().url("/").description("本地服务器"));
+
+ return new OpenAPI()
+ .info(new Info()
+ .title("智能应用服务管理")
+ .version("2.0")
+ .description("智能应用服务管理接口文档"))
+ .servers(servers);
+ }
+
+// /**
+// * 设置静态资源映射(Springdoc不需要特殊配置,保留可能的其他资源映射)
+// */
+// @Override
+// protected void addResourceHandlers(ResourceHandlerRegistry registry) {
+// // 保留其他静态资源映射(如果有)
+// // registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
+// }
+}
\ No newline at end of file
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java
new file mode 100644
index 0000000..0985939
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java
@@ -0,0 +1,6 @@
+package com.bipt.intelligentapplicationorchestrationservice.constant;
+
+public class MessageConstant {
+ public static final String UNKNOWN_ERROR = "未知错误";
+ public static final String ALREADY_EXISTS = "数据集已存在";
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
index 7f64e72..be81792 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java
@@ -2,7 +2,6 @@ package com.bipt.intelligentapplicationorchestrationservice.controller;
import com.bipt.intelligentapplicationorchestrationservice.pojo.*;
import com.bipt.intelligentapplicationorchestrationservice.service.DatasetService;
-import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -28,6 +27,11 @@ public class DatasetController {
return OptResult.success();
}
+ /**
+ * 分页查询
+ * @param dataSetPageQueryDTO
+ * @return
+ */
@GetMapping("/page")
public OptResult page(DatasetPageQueryDTO dataSetPageQueryDTO) {
log.info("数据集分页查询:{}", dataSetPageQueryDTO);
@@ -38,32 +42,28 @@ public class DatasetController {
/**
* 修改数据集
- * @param datasetEntity
+ * @param datasetDTO
* @return
*/
@PutMapping
- public OptResult update(@RequestBody DatasetEntity datasetEntity){
- log.info("修改数据集",datasetEntity);
- datasetService.update(datasetEntity);
+ public OptResult update(@RequestBody DatasetDTO datasetDTO){
+ log.info("修改数据集",datasetDTO);
+ datasetService.update(datasetDTO);
return OptResult.success();
}
+
+
/**
* 批量删除数据集
* @param datasetIds 数据集ID列表
* @return 操作结果
*/
@DeleteMapping
- public OptResult deleteBatch(@RequestBody List datasetIds) {
+ public OptResult deleteBatch(@RequestBody List datasetIds) {
log.info("批量删除数据集,ID列表:{}", datasetIds);
datasetService.deleteBatch(datasetIds);
return OptResult.success("批量删除成功");
}
-
-
-
-
-
-
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/handler/GlobalExceptionHandler.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/handler/GlobalExceptionHandler.java
new file mode 100644
index 0000000..910eaf4
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/handler/GlobalExceptionHandler.java
@@ -0,0 +1,34 @@
+package com.bipt.intelligentapplicationorchestrationservice.handler;
+
+import com.bipt.intelligentapplicationorchestrationservice.constant.MessageConstant;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import java.sql.SQLIntegrityConstraintViolationException;
+
+/**
+ * 全局异常处理器,处理项目中抛出的业务异常
+ */
+@RestControllerAdvice
+@Slf4j
+public class GlobalExceptionHandler {
+ /*
+ * 捕获SQL异常
+ * */
+ @ExceptionHandler
+ public OptResult exceptionHandler(SQLIntegrityConstraintViolationException ex){
+ String message = ex.getMessage();
+ if(message.contains("Duplicate entry")) {
+ String[] split = message.split(" ");
+ String username = split[2];
+ String msg = username + MessageConstant.ALREADY_EXISTS;
+ return OptResult.error(msg);
+ }else {
+ return OptResult.error(MessageConstant.UNKNOWN_ERROR);
+
+ }
+ }
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
index 3e83f61..d1869f2 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/DatasetMapper.java
@@ -7,7 +7,6 @@ import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.*;
import java.util.List;
-import java.util.Map;
@Mapper
public interface DatasetMapper {
@@ -19,7 +18,7 @@ public interface DatasetMapper {
Page pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO);
@Select("select * from dataset where dataset_id=#{datasetId}")
- DatasetEntity getById(Integer datasetId);
- @Delete("delete from dataset where dataset_id = #{datasetId}")
- void deleteBatch(List datasetIds);
+ DatasetEntity getById(Long datasetId);
+
+ void deleteBatch(@Param("datasetIds") List datasetIds);
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java
index ee86df6..fe7a3a9 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetDTO.java
@@ -1,6 +1,9 @@
package com.bipt.intelligentapplicationorchestrationservice.pojo;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Map;
@@ -9,9 +12,14 @@ import java.util.Map;
* @author hky
*/
@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
public class DatasetDTO implements Serializable {
- private Integer datasetId;
+ private Long datasetId;
private String datasetName;
- private Integer datasetType;
- private Map args;
+ private int datasetType;
+ private String dsPath;
+// private Map args;
+ private String args;
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java
index 7409971..6b065b9 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetEntity.java
@@ -17,12 +17,13 @@ import java.util.Map;
@NoArgsConstructor
@AllArgsConstructor
public class DatasetEntity implements Serializable {
- private Integer datasetId;
+ private Long datasetId;
private String datasetName;
- private Integer datasetType;
- private Integer datasetStatus;
+ private int datasetType;
+ private int datasetStatus;
private String dsPath;
- private Map args;
+// private Map args;
+ private String args;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java
index b047610..8971274 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetPageQueryDTO.java
@@ -1,6 +1,9 @@
package com.bipt.intelligentapplicationorchestrationservice.pojo;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -10,9 +13,18 @@ import java.util.Map;
* @author hky
*/
@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
public class DatasetPageQueryDTO implements Serializable{
private int page;
private int pageSize;
- private Integer datasetType;
- private Integer datasetStatus;
+ private String datasetName;
+ private int datasetType;
+ private int datasetStatus;
+ private String dsPath;
+ private String args;
+ private LocalDateTime createTime;
+ private LocalDateTime updateTime;
+
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java
index 4ebebc5..17b9194 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/DatasetVO.java
@@ -1,5 +1,10 @@
package com.bipt.intelligentapplicationorchestrationservice.pojo;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Map;
@@ -7,12 +12,17 @@ import java.util.Map;
/**
* @author hky
*/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
public class DatasetVO implements Serializable {
private String datasetName;
private Integer datasetType;
private Integer datasetStatus;
private String dsPath;
- private Map args;
+// private Map args;
+ private String args;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java
index 3b6c15b..a979d9a 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/PageResult.java
@@ -4,16 +4,17 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
+import java.io.Serializable;
import java.util.List;
/**
* 分页
- * @param
*/
@Data
-@NoArgsConstructor
@AllArgsConstructor
-public class PageResult {
- private Long total;
- private List rows;
+@NoArgsConstructor
+public class PageResult implements Serializable {
+ private long total;
+ private List records;
+
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
index f3e844e..8e99918 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/DatasetService.java
@@ -1,7 +1,6 @@
package com.bipt.intelligentapplicationorchestrationservice.service;
import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetDTO;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetEntity;
import com.bipt.intelligentapplicationorchestrationservice.pojo.DatasetPageQueryDTO;
import com.bipt.intelligentapplicationorchestrationservice.pojo.PageResult;
@@ -13,9 +12,9 @@ import java.util.List;
public interface DatasetService {
void save(DatasetDTO datasetDTO);
- void update(DatasetEntity datasetEntity);
+ void update(DatasetDTO datasetDTO);
PageResult pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO);
- void deleteBatch(List datasetIds);
+ void deleteBatch(List datasetIds);
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
index 3e97b91..dafc65e 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java
@@ -12,8 +12,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
+import java.util.Collections;
import java.util.List;
-import java.util.Map;
@Service
@Slf4j
@@ -26,20 +26,22 @@ public class DatasetServiceImpl implements DatasetService {
* @param datasetDTO
*/
@Override
+ @Transactional
public void save(DatasetDTO datasetDTO) {
//判断数据集类型,如果是本地上传则保存,若用调用数据仓库进入下一步
if (datasetDTO.getDatasetType()==0){
//TODO 保存到分布式文件系统
}else {
- Map args = datasetDTO.getArgs();
- Integer datasetType = datasetDTO.getDatasetType();
+// Map args = datasetDTO.getArgs();
+ String args = datasetDTO.getArgs();
+ int datasetType = datasetDTO.getDatasetType();
//TODO 根据筛选条件调用数据仓库中的数据
//TODO 调用数据仓库保存到分布式文件系统
}
DatasetEntity datasetEntity = new DatasetEntity();
- BeanUtils.copyProperties(datasetEntity,datasetDTO);
+ BeanUtils.copyProperties(datasetDTO,datasetEntity);
datasetEntity.setDatasetStatus(1);
datasetEntity.setCreateTime(LocalDateTime.now());
datasetEntity.setUpdateTime(LocalDateTime.now());
@@ -50,12 +52,14 @@ public class DatasetServiceImpl implements DatasetService {
/**
* 修改数据集
*
- * @param datasetEntity
+ * @param datasetDTO
*/
@Override
@Transactional
- public void update(DatasetEntity datasetEntity) {
- if (datasetEntity.getDatasetType()==0){
+ public void update(DatasetDTO datasetDTO) {
+ /*DatasetEntity datasetEntity = new DatasetEntity();
+ BeanUtils.copyProperties(datasetDTO,datasetEntity);*/
+ if (datasetDTO.getDatasetType()==0){
//TODO 覆盖保存到分布式文件系统中
}else {
@@ -63,9 +67,12 @@ public class DatasetServiceImpl implements DatasetService {
//TODO
- datasetEntity.setUpdateTime(LocalDateTime.now());
- datasetMapper.updata(datasetEntity);
+
}
+ DatasetEntity datasetEntity = new DatasetEntity();
+ BeanUtils.copyProperties(datasetDTO,datasetEntity);
+ datasetEntity.setUpdateTime(LocalDateTime.now());
+ datasetMapper.updata(datasetEntity);
}
/**
@@ -75,9 +82,7 @@ public class DatasetServiceImpl implements DatasetService {
*/
@Override
public PageResult pageQuery(DatasetPageQueryDTO dataSetPageQueryDTO) {
- int pageNum = dataSetPageQueryDTO.getPage();
- int pageSize = dataSetPageQueryDTO.getPageSize();
- PageHelper.startPage(pageNum, pageSize);
+ PageHelper.startPage(dataSetPageQueryDTO.getPage(), dataSetPageQueryDTO.getPageSize());
Page page = datasetMapper.pageQuery(dataSetPageQueryDTO);
return new PageResult(page.getTotal(), page.getResult());
}
@@ -88,16 +93,16 @@ public class DatasetServiceImpl implements DatasetService {
*/
@Override
@Transactional
- public void deleteBatch(List datasetIds) {
- for (Integer datasetId : datasetIds) {
+ public void deleteBatch(List datasetIds) {
+ for (Long datasetId : datasetIds) {
DatasetEntity datasetEntity = datasetMapper.getById(datasetId);
if (datasetEntity == null) {
throw new IllegalArgumentException("数据集不存在,ID:" + datasetId);
}
+
}
//TODO 在分布式文件系统中删除
-
datasetMapper.deleteBatch(datasetIds);
}
diff --git a/src/main/resources/mapper/DatasetMapper.xml b/src/main/resources/mapper/DatasetMapper.xml
index 41d1f85..9a0e67f 100644
--- a/src/main/resources/mapper/DatasetMapper.xml
+++ b/src/main/resources/mapper/DatasetMapper.xml
@@ -25,15 +25,19 @@
args=#{args},
-
- create_time=#{createTime},
-
-
+
update_time=#{updateTime}
where dataset_id = #{datasetId}
+
+ DELETE FROM dataset
+ WHERE dataset_id IN
+
+ #{id}
+
+
-
-
+
\ No newline at end of file
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
index 1e18dc6..5d34a0f 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/IntelligentApplicationOrchestrationServiceApplication.java
@@ -4,11 +4,13 @@ import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@MapperScan("com.bipt.intelligentapplicationorchestrationservice.mapper")//指定扫描Mapper接口的包
@SpringBootApplication
@EnableTransactionManagement
+@EnableDiscoveryClient
@Slf4j
public class IntelligentApplicationOrchestrationServiceApplication {
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java
index ea333da..6d98284 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java
@@ -1,8 +1,8 @@
package com.bipt.intelligentapplicationorchestrationservice.controller;
-import com.bipt.intelligentapplicationorchestrationservice.config.RedisConfiguration;
import com.bipt.intelligentapplicationorchestrationservice.pojo.*;
import com.bipt.intelligentapplicationorchestrationservice.service.PublishService;
+import com.bipt.intelligentapplicationorchestrationservice.util.NacosServiceUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
@@ -24,11 +24,9 @@ public class publishController {
@Autowired
private RedisTemplate redisTemplate;
- /**
- * 新增请求发布
- * @param servicePublishDTO
- * @return
- */
+ @Autowired
+ private NacosServiceUtil nacosServiceUtil;
+
@PostMapping
@Operation(summary ="新增发布请求")
@Transactional
@@ -37,70 +35,22 @@ public class publishController {
publishService.save(servicePublishDTO);
Long modelId = servicePublishDTO.getModelId();
String key = "Model_" + modelId;
- //查询redis是否存在GPU相关资源数据
- List list;
- list = (List) redisTemplate.opsForValue().get(key);
- //如果存在,直接返回,无须查询数据库
- if (list != null) {
- return OptResult.success(list);
- }else {
- list = new ArrayList<>();
- }
- String modelConfig = publishService.getByModelId(modelId);
- if (modelConfig == null) {
- log.error("模型配置为空,modelId={}", modelId);
- }
- String[] keyValuePairs = modelConfig.split("\\|");
- String GPUMemorySize = null;
- String GPUModel = null;
- for (String pair : keyValuePairs) {
- pair = pair.trim();
- if (pair.startsWith("GPU")) {
- GPUModel = pair.split(";", 2)[1];
- } else if (pair.startsWith("Memory:")) {
- GPUMemorySize = pair.split(":", 2)[1];
- }
- }
- ServicePublishVO servicePublishVO = new ServicePublishVO();
- servicePublishVO.setIp(servicePublishDTO.getIp());
- servicePublishVO.setModelId(servicePublishDTO.getModelId());
- servicePublishVO.setGPUMemorySize(GPUMemorySize);
- servicePublishVO.setGPUModel(GPUModel);
- //todo 调用模型部署,传递信息
-
- servicePublishVO.setApiUrl(servicePublishDTO.getApiUrl());
- list.add(servicePublishVO);
- redisTemplate.opsForValue().set(key,list);
- //一个ip上有多个机器
- // 假设从 Redis 获取的列表元素是 MachineInfo 类型
- String ip = servicePublishVO.getIp();
- String key1 = ip;
- List machineList = (List) redisTemplate.opsForValue().get(key1);
- // 模型所需的 GPU 资源
- String requiredGPUModel = servicePublishVO.getGPUModel();
- Integer requiredGPUMemory = Integer.valueOf(servicePublishVO.getGPUMemorySize());
- if (machineList != null) {
- for (MachineInfo machine : machineList) {
- // 获取机器的 GPU 资源
- String machineGPUModel = machine.getGPUModel();
- Integer machineGPUMemory = machine.getGPUMemorySize();
-
- // 判断机器是否满足模型需求
- if (requiredGPUModel.equals(machineGPUModel) &&
- machineGPUMemory >= requiredGPUMemory) {
- return OptResult.success(list);
- }
- }
- String key3 = "wait_queue";
- redisTemplate.opsForValue().set(key3,list);
- //todo资源释放时候优先分配等待队列中任务
+ try {
+ nacosServiceUtil.registerService(
+ servicePublishDTO.getModelId().toString(),
+ servicePublishDTO.getIp(),
+ 8080
+ );
+ log.info("Nacos服务注册成功");
+ } catch (Exception e) {
+ log.error("Nacos服务注册失败", e);
}
- return OptResult.success(list);
+ return OptResult.success();
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java
new file mode 100644
index 0000000..53861a1
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java
@@ -0,0 +1,21 @@
+package com.bipt.intelligentapplicationorchestrationservice.util;
+
+import com.alibaba.nacos.api.naming.NamingFactory;
+import com.alibaba.nacos.api.naming.NamingService;
+import com.alibaba.nacos.api.naming.pojo.Instance;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class NacosServiceUtil {
+ @Value("${spring.cloud.nacos.discovery.server-addr}")
+ private String nacosServerAddr;
+
+ public void registerService(String serviceName, String ip, int port) throws Exception {
+ NamingService naming = NamingFactory.createNamingService(nacosServerAddr);
+ Instance instance = new Instance();
+ instance.setIp(ip);
+ instance.setPort(port);
+ naming.registerInstance(serviceName, instance);
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 2b97d0a..d8ff972 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,5 +1,3 @@
-spring.application.name=intelligent-application-orchestration-service
-
# 数据库配置
spring.datasource.url=jdbc:kingbase8://116.205.121.200:54321/Ipz
@@ -10,20 +8,14 @@ spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=30000
-# SQL映射文件路径配置
+# MyBatis配置
mybatis.mapper-locations=classpath:mapper/*.xml
-# 配置实体类别名所在包
mybatis.type-aliases-package=com.bipt.intelligentapplicationorchestrationservice.pojo
-# 开启驼峰命名转换
mybatis.configuration.map-underscore-to-camel-case=true
-# Redis服务器地址
+# Redis配置
spring.data.redis.host=116.205.121.200
-# Redis服务器端口
spring.data.redis.port=6379
-# Redis密码(如果有)
spring.data.redis.password=Jbjhhzstsl97@
-# Redis数据库索引(默认为0)
-spring.data.redis.database = 0
-# 连接超时时间(毫秒)
-spring.data.redis.timeout = 3000
+spring.data.redis.database=0
+spring.data.redis.timeout=3000
\ No newline at end of file
diff --git a/src/main/resources/bootstrap.properties b/src/main/resources/bootstrap.properties
new file mode 100644
index 0000000..b24d590
--- /dev/null
+++ b/src/main/resources/bootstrap.properties
@@ -0,0 +1,10 @@
+# 应用名称(必须与Nacos配置的dataId前缀一致)
+spring.application.name=intelligent-application-orchestration-service
+
+# Nacos配置中心地址(引导阶段加载配置)
+spring.cloud.nacos.config.server-addr=192.168.100.1:8848
+spring.cloud.nacos.config.data-id=${spring.application.name}.properties
+spring.cloud.nacos.config.group=DEFAULT_GROUP
+
+# Nacos服务注册地址(引导阶段注册服务)
+spring.cloud.nacos.discovery.server-addr=192.168.100.1:8848
\ No newline at end of file
From 999fd82ccc2ad2058533a6c6e8c862eaa4a2bca4 Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Tue, 20 May 2025 17:14:09 +0800
Subject: [PATCH 42/50] =?UTF-8?q?=E4=BF=9D=E7=95=99=E4=BB=8Emain=E5=88=86?=
=?UTF-8?q?=E6=94=AF=E6=9A=82=E5=AD=98=E7=9A=84=E6=89=80=E6=9C=89=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
# Conflicts:
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java
# src/main/resources/mapper/ModelMapper.xml
# Conflicts:
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java
# src/main/resources/mapper/ModelMapper.xml
---
.../controller/ModelController.java | 35 +++++++++++
.../mapper/ModelMapper.java | 24 ++++++++
.../pojo/ModelDTO.java | 20 +++++++
.../pojo/ModelVersion.java | 12 ++++
.../service/Impl/ModelServiceImpl.java | 58 +++++++++++++++++++
.../service/ModelService.java | 10 ++++
src/main/resources/mapper/ModelMapper.xml | 10 ++++
7 files changed, 169 insertions(+)
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java
create mode 100644 src/main/resources/mapper/ModelMapper.xml
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
new file mode 100644
index 0000000..663b4ce
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
@@ -0,0 +1,35 @@
+package com.bipt.intelligentapplicationorchestrationservice.controller;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult;
+import com.bipt.intelligentapplicationorchestrationservice.service.ModelService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Slf4j
+@RestController
+@RequestMapping("/model")
+@Tag(name = "模型部分相关接口")
+public class ModelController {
+ @Autowired
+ private ModelService modelService;
+ @Operation(summary = "创建模型")
+ @PostMapping("/createModel")
+ public OptResult creatModel(@RequestBody ModelDTO dto){
+ log.info("创建模型");
+ modelService.createModel(dto);
+ return OptResult.success();
+ }
+
+ @Operation(summary = "新增模型版本")
+ @PostMapping("/createModelVersion")
+ public OptResult createModelVersion(@RequestBody ModelDTO dto){
+ log.info("新增模型版本");
+ modelService.createModelVersion(dto);
+ return OptResult.success();
+ }
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java
new file mode 100644
index 0000000..97616a1
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java
@@ -0,0 +1,24 @@
+package com.bipt.intelligentapplicationorchestrationservice.mapper;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelInfo;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Options;
+
+public interface ModelMapper {
+
+ /**
+ * 插入模型基本信息
+ * @param modelInfo
+ */
+ @Options(useGeneratedKeys = true, keyProperty = "id") //能够拿到主键值,并设置给modelInfo对象
+ @Insert("insert into model_info(model_name) values(#{modelName})")
+ void insertModelInfo(ModelInfo modelInfo);
+
+ /**
+ * 插入模型版本信息
+ * @param modelVersion
+ */
+ void insertModelVersion(ModelVersion modelVersion);
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java
new file mode 100644
index 0000000..bdb62b7
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java
@@ -0,0 +1,20 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ModelDTO {
+ private Long id; // 模型id
+ private String modelName; // 模型名称
+ private Integer datasetId; // 数据集id
+ private Integer modelSize; // 模型大小
+ private String dataPreHandleFile; // 数据预处理文件存储路
+
+ private String version; //模型版本
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
index 6297b43..b2ff94a 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
@@ -24,5 +24,17 @@ public class ModelVersion implements Serializable {
private String modelPath; // 模型存储路径
private Integer status; // 模型状态(1代表上线,0代表不上线)
private LocalDateTime createTime; // 创建时间
+ //补充更新时间字段
+ private LocalDateTime updateTime; // 更新时间
+ //创建模型部分补充的字段
+ private Integer modelSize; // 模型大小
+ private String dataPreHandleFile; // 数据预处理文件存储路径
+ //模型信息管理部分补充的字段
+ private String modelSuperArgs; // 模型超参数
+ private String modelArgsSize; // 模型参数量
+ private String modelSourceCodeUrl; // 模型源代码路径
+ private String modelFile; // 模型文件存储路径
+ private String modelDesignDocument; // 模型设计文档存储路径
+ private String lifeCycle; // 模型生命周期
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java
new file mode 100644
index 0000000..0db4030
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java
@@ -0,0 +1,58 @@
+package com.bipt.intelligentapplicationorchestrationservice.service.Impl;
+
+import com.bipt.intelligentapplicationorchestrationservice.mapper.ModelMapper;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelInfo;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion;
+import com.bipt.intelligentapplicationorchestrationservice.service.ModelService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+
+@Slf4j
+@Service
+public class ModelServiceImpl implements ModelService {
+ @Autowired
+ private ModelMapper modelMapper;
+ /**
+ * 创建模型
+ * @param dto
+ */
+ @Transactional //事务注解
+ @Override
+ public void createModel(ModelDTO dto) {
+ log.info("创建模型");
+ //1.插入模型基本信息
+ ModelInfo modelInfo = new ModelInfo();
+ BeanUtils.copyProperties(dto, modelInfo, "id");
+ modelMapper.insertModelInfo(modelInfo);
+ log.info("模型id: {}", modelInfo.getId());
+ //2.插入模型版本信息
+ ModelVersion modelVersion = new ModelVersion();
+ //使用工具类将dto属性复制给modelVersion
+ BeanUtils.copyProperties(dto, modelVersion, "id");
+ modelVersion.setModelId(modelInfo.getId());
+ modelVersion.setCreateTime(LocalDateTime.now());
+ modelVersion.setUpdateTime(LocalDateTime.now());
+ modelMapper.insertModelVersion(modelVersion);
+ }
+
+ /**
+ * 新增模型版本
+ * @param dto
+ */
+ @Override
+ public void createModelVersion(ModelDTO dto) {
+ log.info("新增模型版本");
+ ModelVersion modelVersion = new ModelVersion();
+ BeanUtils.copyProperties(dto, modelVersion, "id");
+ modelVersion.setModelId(dto.getId());
+ modelVersion.setCreateTime(LocalDateTime.now());
+ modelVersion.setUpdateTime(LocalDateTime.now());
+ modelMapper.insertModelVersion(modelVersion);
+ }
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java
new file mode 100644
index 0000000..ea9f38f
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java
@@ -0,0 +1,10 @@
+package com.bipt.intelligentapplicationorchestrationservice.service;
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO;
+
+public interface ModelService {
+ void createModel(ModelDTO dto);
+
+
+ void createModelVersion(ModelDTO dto);
+}
diff --git a/src/main/resources/mapper/ModelMapper.xml b/src/main/resources/mapper/ModelMapper.xml
new file mode 100644
index 0000000..60de477
--- /dev/null
+++ b/src/main/resources/mapper/ModelMapper.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ insert into model_version (model_id, dataset_id, model_size, data_pre_handle_file, create_time, update_time, version)
+ values (#{modelId}, #{datasetId}, #{modelSize}, #{dataPreHandleFile}, #{createTime}, #{updateTime}, #{version})
+
+
\ No newline at end of file
From 9f348280ea3bb379a61f8b59204cccc13ec33997 Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Sun, 25 May 2025 19:29:52 +0800
Subject: [PATCH 43/50] =?UTF-8?q?[=E5=86=B2=E7=AA=81]:=E8=A7=A3=E5=86=B3?=
=?UTF-8?q?=E5=90=88=E5=B9=B6=E5=86=B2=E7=AA=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
# Conflicts:
# src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java
# src/main/resources/application.properties
---
.../constant/MessageConstant.java | 8 ++
.../controller/ModelController.java | 48 +++++++++-
.../enumeration/ModelLifecycle.java | 51 ++++++++++
.../mapper/ModelMapper.java | 55 ++++++++++-
.../pojo/ModelDTO.java | 21 +++-
.../pojo/ModelVO.java | 24 +++++
.../pojo/ModelVersion.java | 6 ++
.../pojo/ModelVersionDTO.java | 31 ++++++
.../service/Impl/ModelServiceImpl.java | 96 ++++++++++++++++++-
.../service/ModelService.java | 16 +++-
src/main/resources/application.properties | 5 +
src/main/resources/mapper/ModelMapper.xml | 55 ++++++++++-
12 files changed, 400 insertions(+), 16 deletions(-)
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/ModelLifecycle.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVO.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersionDTO.java
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java
index 3240df9..7347c95 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java
@@ -3,4 +3,12 @@ package com.bipt.intelligentapplicationorchestrationservice.constant;
public class MessageConstant {
public static final String UNKNOWN_ERROR = "未知错误";
public static final String ALREADY_EXISTS = "已存在";
+
+ //生命周期相关常量
+ public static final String LifeCycle_No_Exist = "生命周期不存在";
+ public static final String LifeCycle_Undefined = "生命周期未定义";
+ public static final String ERROR_DEPLOYED_TO_DESIGNING = "已部署的模型不能直接调整成设计,需先下线再设计";
+ public static final String ERROR_ABANDONED_CANNOT_UPDATE = "已废弃的模型只能查看信息,不能更新生命周期";
+ public static final String ERROR_TRAINING_INVALID_TRANSITION = "训练中的模型只能调整成设计和评估";
+ public static final String UPDATE_FAILURE = "更新模型生命周期失败";
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
index 663b4ce..11012ae 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
@@ -1,7 +1,6 @@
package com.bipt.intelligentapplicationorchestrationservice.controller;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.*;
import com.bipt.intelligentapplicationorchestrationservice.service.ModelService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -9,10 +8,13 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
@Slf4j
@RestController
@RequestMapping("/model")
@Tag(name = "模型部分相关接口")
+@CrossOrigin(origins = "http://localhost:3000") // 生产环境指定具体域名
public class ModelController {
@Autowired
private ModelService modelService;
@@ -32,4 +34,46 @@ public class ModelController {
return OptResult.success();
}
+ @Operation(summary = "查询模型列表")
+ @GetMapping("list")
+ public OptResult list(){
+ log.info("查询模型列表");
+ List modelVOList = modelService.list();
+ return OptResult.success(modelVOList);
+ }
+
+ @Operation(summary = "查询模型详情")
+ @GetMapping("detail")
+ public OptResult detail(Long id){
+ log.info("查询模型详情");
+ ModelVersion modelVersion = modelService.detail(id);
+ return OptResult.success(modelVersion);
+ }
+
+ @Operation(summary = "模型更新")
+ @PutMapping("/updateModel")
+ public OptResult updateModel(@RequestBody ModelVersionDTO dto){
+ log.info("模型更新");
+ modelService.updateModel(dto);
+ return OptResult.success();
+ }
+
+
+ @Operation(summary = "模型版本删除")
+ @DeleteMapping("/deleteModelVersion")
+ public OptResult deleteModelVersion(Long id){
+ log.info("模型版本删除");
+ modelService.deleteModelVersion(id);
+ return OptResult.success();
+ }
+
+ @Operation(summary = "更新生命周期")
+ @PutMapping("/updateLifeCycle")
+ public OptResult updateLifeCycle(Long id,String lifeCycle){
+ log.info("更新生命周期");
+ modelService.updateLifeCycle(id,lifeCycle);
+ return OptResult.success();
+ }
+
+
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/ModelLifecycle.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/ModelLifecycle.java
new file mode 100644
index 0000000..0e8b2f7
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/ModelLifecycle.java
@@ -0,0 +1,51 @@
+package com.bipt.intelligentapplicationorchestrationservice.enumeration;
+
+import com.bipt.intelligentapplicationorchestrationservice.constant.MessageConstant;
+
+/**
+ * 模型生命周期状态枚举
+ */
+public enum ModelLifecycle {
+ DESIGNING("设计中"),
+ TRAINING("训练中"),
+ EVALUATING("评估中"),
+ DEPLOYED("已部署"),
+ OFFLINE("已下线"),
+ ABANDONED("已废弃");
+
+ private final String description;
+
+ private ModelLifecycle(String description) {
+ this.description = description;
+ }
+
+
+ public String getDescription() {
+ return description;
+ }
+
+ // 将枚举名称转换成数据库存储的字符串
+ public String getDbValue() {
+ return name();
+ }
+
+ // 将数据库存储的字符串转换为枚举实例
+ public static ModelLifecycle getDbValueFromDb(String dbValue) {
+ if(dbValue == null) return null;
+ try {
+ return ModelLifecycle.valueOf(dbValue);
+ } catch (IllegalArgumentException e) {
+ throw new IllegalArgumentException(MessageConstant.LifeCycle_No_Exist + ":" + dbValue);
+ }
+ }
+
+ // 从前端传的中文描述 -> 转换为枚举
+ public static ModelLifecycle fromDescription(String description) {
+ for (ModelLifecycle lifecycle : ModelLifecycle.values()) {
+ if (lifecycle.getDescription().equals(description)) {
+ return lifecycle;
+ }
+ }
+ throw new IllegalArgumentException("生命周期描述非法: " + description);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java
index 97616a1..fb3106f 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java
@@ -1,9 +1,12 @@
package com.bipt.intelligentapplicationorchestrationservice.mapper;
import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelInfo;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVO;
import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Options;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersionDTO;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
public interface ModelMapper {
@@ -21,4 +24,52 @@ public interface ModelMapper {
*/
void insertModelVersion(ModelVersion modelVersion);
+ /*
+ * 查询模型列表
+ */
+ List list();
+
+ /**
+ * 根据id查询模型详情
+ * @param id 版本表id
+ * @return
+ */
+ ModelVersion selectById(Long id);
+
+ /**
+ * 更新模型信息
+ * @param dto
+ */
+ void update(ModelVersionDTO dto);
+
+ /**
+ * 删除模型版本
+ * @param id 版本表id
+ */
+ @Delete("delete from model_version where id=#{id}")
+ void deleteModelVersion(Long id);
+
+ /**
+ * 删除模型
+ * @param id 模型id
+ */
+ @Delete("delete from model_info where id= #{id}")
+ void deleteModel(Long id);
+
+ /**
+ * 查询模型生命周期
+ * @param id 模型版本表id
+ * 返回模型生命周期
+ */
+ @Select("select life_cycle from model_version where id=#{id}")
+ String selectLifeCycleById(Long id);
+
+ /**
+ * 更新模型生命周期
+ * @param id 模型版本表id
+ * @param dbValue 数据库中存储的生命周期
+ * @return
+ */
+ @Update("update model_version set life_cycle=#{dbValue} where id=#{id}")
+ int updateLifeCycleById(Long id, String dbValue);
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java
index bdb62b7..7fd41b9 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java
@@ -5,16 +5,27 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
+import java.time.LocalDateTime;
+
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ModelDTO {
- private Long id; // 模型id
- private String modelName; // 模型名称
+ private Long id; // 模型id
+ private String modelName; // 模型名称
+ private String version; // 模型版本
private Integer datasetId; // 数据集id
+ private String modelConfig; // 模型配置信息
+ private String modelPath; // 模型存储路径
+ private Integer status; // 模型状态(1代表上线,0代表不上线)D
private Integer modelSize; // 模型大小
- private String dataPreHandleFile; // 数据预处理文件存储路
-
- private String version; //模型版本
+ private String dataPreHandleFile; // 数据预处理文件存储路径
+ private String modelSuperArgs; // 模型超参数
+ private String modelArgsSize; // 模型参数量
+ private String modelSourceCodeUrl; // 模型源代码路径
+ private String modelFile; // 模型文件存储路径
+ private String modelDesignDocument; // 模型设计文档存储路径
+ private String lifeCycle; // 模型生命周期
+ private String operateUser; // 操作人
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVO.java
new file mode 100644
index 0000000..2142037
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVO.java
@@ -0,0 +1,24 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ModelVO {
+ private Long id; // 模型id
+ private Long versionId; // 用于保证react的map中key的唯一性
+ private String modelName; // 模型名称
+ private String version; // 模型版本
+ private String dataPreHandleFile; // 数据预处理文件存储路径
+ private String operateUser; // 操作人
+ private LocalDateTime updateTime; // 修改时间
+ private Integer status; // 模型状态(1代表上线,0代表不上线)
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
index b2ff94a..90a907b 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java
@@ -37,4 +37,10 @@ public class ModelVersion implements Serializable {
private String modelDesignDocument; // 模型设计文档存储路径
private String lifeCycle; // 模型生命周期
+
+ private String operateUser; // 操作人
+
+ private String modelName; //模型名称
+
+
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersionDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersionDTO.java
new file mode 100644
index 0000000..9180f7f
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersionDTO.java
@@ -0,0 +1,31 @@
+package com.bipt.intelligentapplicationorchestrationservice.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ModelVersionDTO {
+ private Long id; // 模型id
+ private String version; // 模型版本
+ private Integer datasetId; // 数据集id
+ private String modelConfig; // 模型配置信息
+ private String modelPath; // 模型存储路径
+ private Integer status; // 模型状态(1代表上线,0代表不上线)
+ private LocalDateTime createTime; // 创建时间
+ private LocalDateTime updateTime; // 更新时间
+ private Integer modelSize; // 模型大小
+ private String dataPreHandleFile; // 数据预处理文件存储路径
+ private String modelSuperArgs; // 模型超参数
+ private String modelArgsSize; // 模型参数量
+ private String modelSourceCodeUrl; // 模型源代码路径
+ private String modelFile; // 模型文件存储路径
+ private String modelDesignDocument; // 模型设计文档存储路径
+ private String lifeCycle; // 模型生命周期
+ private String operateUser; // 操作人
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java
index 0db4030..cc8d32a 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java
@@ -1,9 +1,9 @@
package com.bipt.intelligentapplicationorchestrationservice.service.Impl;
+import com.bipt.intelligentapplicationorchestrationservice.constant.MessageConstant;
+import com.bipt.intelligentapplicationorchestrationservice.enumeration.ModelLifecycle;
import com.bipt.intelligentapplicationorchestrationservice.mapper.ModelMapper;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelInfo;
-import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.*;
import com.bipt.intelligentapplicationorchestrationservice.service.ModelService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
+import java.util.List;
@Slf4j
@Service
@@ -38,6 +39,7 @@ public class ModelServiceImpl implements ModelService {
modelVersion.setModelId(modelInfo.getId());
modelVersion.setCreateTime(LocalDateTime.now());
modelVersion.setUpdateTime(LocalDateTime.now());
+ modelVersion.setOperateUser("zs");
modelMapper.insertModelVersion(modelVersion);
}
@@ -53,6 +55,94 @@ public class ModelServiceImpl implements ModelService {
modelVersion.setModelId(dto.getId());
modelVersion.setCreateTime(LocalDateTime.now());
modelVersion.setUpdateTime(LocalDateTime.now());
+ modelVersion.setOperateUser("zs");
modelMapper.insertModelVersion(modelVersion);
}
+
+ /**
+ * 查询模型列表
+ */
+ @Override
+ public List list() {
+ log.info("查询模型列表");
+ List modelVOList = modelMapper.list();
+ return modelVOList;
+ }
+
+ @Override
+ public ModelVersion detail(Long id) {
+ log.info("查询模型详情");
+ ModelVersion modelVersion = modelMapper.selectById(id);
+ return modelVersion;
+ }
+
+ @Override
+ public void updateModel(ModelVersionDTO dto) {
+ log.info("更新模型");
+ modelMapper.update(dto);
+ }
+
+ @Override
+ public void deleteModelVersion(Long id) {
+ log.info("删除模型版本");
+ modelMapper.deleteModelVersion(id);
+ }
+
+ /**
+ * 更新模型生命周期
+ * @param id 版本表id
+ * @param
+ */
+ @Override
+ public void updateLifeCycle(Long id, String lifeCycleDescription) {
+ log.info("更新模型生命周期");
+
+ // 1. 查询当前生命周期并转为枚举
+ String currentLifeCycleStr = modelMapper.selectLifeCycleById(id);
+ if (currentLifeCycleStr == null) {
+ log.error("未找到对应模型信息,无法更新生命周期");
+ throw new IllegalArgumentException(MessageConstant.LifeCycle_No_Exist);
+ }
+
+ ModelLifecycle currentLifeCycle;
+ ModelLifecycle targetLifeCycle;
+ try {
+ currentLifeCycle = ModelLifecycle.valueOf(currentLifeCycleStr.trim()); // 数据库中是英文
+ targetLifeCycle = ModelLifecycle.fromDescription((lifeCycleDescription).trim()); // 前端传中文
+ } catch (IllegalArgumentException e) {
+ log.error(MessageConstant.LifeCycle_Undefined + ":{}", e.getMessage());
+ throw e;
+ }
+
+ // 2. 业务逻辑校验
+ switch (currentLifeCycle) {
+ case DEPLOYED:
+ if (targetLifeCycle == ModelLifecycle.DESIGNING) {
+ log.error("已部署的模型不能直接调整成设计,需先下线再设计");
+ throw new IllegalArgumentException(MessageConstant.ERROR_DEPLOYED_TO_DESIGNING);
+ }
+ break;
+ case ABANDONED:
+ log.error("已废弃的模型只能查看信息,不能更新生命周期");
+ throw new IllegalArgumentException(MessageConstant.ERROR_ABANDONED_CANNOT_UPDATE);
+ case TRAINING:
+ if (targetLifeCycle != ModelLifecycle.DESIGNING && targetLifeCycle != ModelLifecycle.EVALUATING) {
+ log.error("训练中的模型只能调整成设计和评估");
+ throw new IllegalArgumentException(MessageConstant.ERROR_TRAINING_INVALID_TRANSITION);
+ }
+ break;
+ default:
+ break;
+ }
+
+ // 3. 执行更新
+ int affectedRows = modelMapper.updateLifeCycleById(id, targetLifeCycle.getDbValue());
+ if (affectedRows == 0) {
+ log.error("更新模型生命周期失败");
+ throw new RuntimeException(MessageConstant.UPDATE_FAILURE);
+ }
+
+ log.info("模型生命周期更新成功,新状态为: {}", targetLifeCycle);
+ }
+
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java
index ea9f38f..0933085 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java
@@ -1,10 +1,24 @@
package com.bipt.intelligentapplicationorchestrationservice.service;
import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVO;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion;
+import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersionDTO;
+
+import java.util.List;
public interface ModelService {
void createModel(ModelDTO dto);
-
void createModelVersion(ModelDTO dto);
+
+ List list();
+
+ ModelVersion detail(Long id);
+
+ void updateModel(ModelVersionDTO dto);
+
+ void deleteModelVersion(Long id);
+
+ void updateLifeCycle(Long id, String lifeCycle);
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 2b97d0a..ae9c7f0 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -27,3 +27,8 @@ spring.data.redis.password=Jbjhhzstsl97@
spring.data.redis.database = 0
# 连接超时时间(毫秒)
spring.data.redis.timeout = 3000
+
+
+#SQL 语句日志输出配置
+logging.level.com.bipt.intelligentapplicationorchestrationservice.mapper=DEBUG
+mybatis.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl
\ No newline at end of file
diff --git a/src/main/resources/mapper/ModelMapper.xml b/src/main/resources/mapper/ModelMapper.xml
index 60de477..bdd7edd 100644
--- a/src/main/resources/mapper/ModelMapper.xml
+++ b/src/main/resources/mapper/ModelMapper.xml
@@ -2,9 +2,58 @@
-
+
- insert into model_version (model_id, dataset_id, model_size, data_pre_handle_file, create_time, update_time, version)
- values (#{modelId}, #{datasetId}, #{modelSize}, #{dataPreHandleFile}, #{createTime}, #{updateTime}, #{version})
+ insert into model_version (
+ model_id, version, dataset_id, model_config,
+ model_path, status, create_time, update_time, model_size,
+ data_pre_handle_file, model_super_args, model_args_size, model_source_code_url, model_file,
+ model_design_document, life_cycle, operate_user
+ )
+ values (
+ #{modelId}, #{version}, #{datasetId}, #{modelConfig},
+ #{modelPath}, #{status}, #{createTime}, #{updateTime}, #{modelSize},
+ #{dataPreHandleFile}, #{modelSuperArgs}, #{modelArgsSize}, #{modelSourceCodeUrl}, #{modelFile},
+ #{modelDesignDocument}, #{lifeCycle}, #{operateUser}
+ )
+
+
+
+ select t1.*,
+ t2.id as versionId,t2.version, t2.version, t2.data_pre_handle_file, t2.operate_user, t2.update_time,
+ t2.status
+ from model_info t1
+ left join model_version t2 on t1.id = t2.model_id
+ order by t2.update_time desc
+
+
+
+
+ SELECT
+ t1.model_name,
+ t2.version, t2.dataset_id, t2.model_config,
+ t2.model_path, t2.status, t2.create_time, t2.update_time, t2.model_size,
+ t2.data_pre_handle_file, t2.model_super_args, t2.model_args_size, t2.model_source_code_url, t2.model_file,
+ t2.model_design_document, t2.life_cycle, t2.operate_user
+ FROM model_info t1 JOIN model_version t2 ON t1.id = t2.model_id
+ where t2.id = #{id}
+
+
+
+
+ UPDATE model_version
+
+
+ model_size = #{modelSize},
+
+
+ model_super_args = #{modelSuperArgs},
+
+
+ model_args_size = #{modelArgsSize},
+
+
+ WHERE id = #{id
+
\ No newline at end of file
From 12a9355bb8ebc9da92246f9fac9aab7926068a7a Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Sun, 25 May 2025 19:55:07 +0800
Subject: [PATCH 44/50] =?UTF-8?q?[=E6=8F=90=E4=BA=A4]:=E7=AC=AC=E4=BA=8C?=
=?UTF-8?q?=E5=91=A8=E5=B7=A5=E4=BD=9C=E6=97=A5=E6=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-nh.md | 48 +++++++++++++++++++++++++++++++++++-
1 file changed, 47 insertions(+), 1 deletion(-)
diff --git a/doc/WorkReport/2025-05-nh.md b/doc/WorkReport/2025-05-nh.md
index 228d654..6e2c848 100644
--- a/doc/WorkReport/2025-05-nh.md
+++ b/doc/WorkReport/2025-05-nh.md
@@ -59,4 +59,50 @@
### 📅 明日计划
-- 模型信息管理部分后端开发
\ No newline at end of file
+- 模型信息管理部分后端开发
+
+## 2025年5月23日
+
+### ✅ 今日完成
+
+- 模型信息管理前端页面基础搭建
+
+### 🚧 进行中
+
+- 模型信息管理前端页面搭建
+
+### 📅 明日计划
+
+- 模型信息管理前端页面搭建
+
+## 2025年5月24日
+
+### ✅ 今日完成
+
+- 模型信息管理前端页面部分数据与后端联调
+- 模型信息管理后端开发20%
+
+### 🚧 进行中
+
+- 模型信息管理后端开发
+- 模型信息管理前端页面部分数据与后端联调
+
+### 📅 明日计划
+
+- 模型信息管理后端开发
+- 模型信息管理前端页面部分数据与后端联调
+
+## 2025年5月25日
+
+### ✅ 今日完成
+
+- 模型信息管理前端页面开发
+- 模型信息管理后端开发90%(后续可能还需要根据需求优化)
+
+### 🚧 进行中
+
+- 模型信息管理前端页面开发
+
+### 📅 明日计划
+
+- 模型信息管理前端页面开发
\ No newline at end of file
From 60a71a121c15a1bc56c1155e7c6e29b6732d1a0a Mon Sep 17 00:00:00 2001
From: xiaohucoding <2307520758@qq.com>
Date: Sun, 25 May 2025 20:38:36 +0800
Subject: [PATCH 45/50] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=91=E5=B8=83?=
=?UTF-8?q?=EF=BC=88nacos=E7=89=88=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../config/WebMvcConfiguration.java | 18 ++++-----------
.../controller/publishController.java | 13 ++++++-----
.../util/NacosServiceUtil.java | 23 ++++++++++++++++++-
3 files changed, 33 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
index 8efb176..003a69a 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java
@@ -4,20 +4,18 @@ import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.servers.Server;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.List;
-/**
- * 配置类,注册web层相关组件
- */
@Configuration
@Slf4j
-public class WebMvcConfiguration{
+public class WebMvcConfiguration implements WebMvcConfigurer {
/**
* 配置OpenAPI信息
@@ -36,12 +34,4 @@ public class WebMvcConfiguration{
.servers(servers);
}
-// /**
-// * 设置静态资源映射(Springdoc不需要特殊配置,保留可能的其他资源映射)
-// */
-// @Override
-// protected void addResourceHandlers(ResourceHandlerRegistry registry) {
-// // 保留其他静态资源映射(如果有)
-// // registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
-// }
}
\ No newline at end of file
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java
index 6d98284..ebfe15f 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java
@@ -12,7 +12,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
@Tag(name ="服务发布相关接口")
@RestController
@@ -33,17 +36,15 @@ public class publishController {
public OptResult> save(@RequestBody ServicePublishDTO servicePublishDTO) {
log.info("模型发布请求:{}", servicePublishDTO);
publishService.save(servicePublishDTO);
- Long modelId = servicePublishDTO.getModelId();
- String key = "Model_" + modelId;
-
-
-
+ //todo 调用模型部署
try {
+ // 新增传递apiUrl参数
nacosServiceUtil.registerService(
servicePublishDTO.getModelId().toString(),
servicePublishDTO.getIp(),
- 8080
+ 8080,
+ servicePublishDTO.getApiUrl()
);
log.info("Nacos服务注册成功");
} catch (Exception e) {
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java
index 53861a1..bc1a665 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java
@@ -6,16 +6,37 @@ import com.alibaba.nacos.api.naming.pojo.Instance;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
@Component
public class NacosServiceUtil {
+
@Value("${spring.cloud.nacos.discovery.server-addr}")
private String nacosServerAddr;
- public void registerService(String serviceName, String ip, int port) throws Exception {
+ public void registerService(String serviceName, String ip, int port, String url) throws Exception { // 新增url参数
NamingService naming = NamingFactory.createNamingService(nacosServerAddr);
Instance instance = new Instance();
instance.setIp(ip);
instance.setPort(port);
+ // 添加元数据存储URL
+ Map metadata = new HashMap<>();
+ metadata.put("url", url); // 将URL存入元数据
+ instance.setMetadata(metadata);
naming.registerInstance(serviceName, instance);
}
+
+ /**
+ * 获取服务所有实例IP
+ */
+ public List getServiceInstances(String serviceName) throws Exception {
+ NamingService naming = NamingFactory.createNamingService(nacosServerAddr);
+ List instances = naming.getAllInstances(serviceName);
+ return instances.stream()
+ .map(Instance::getIp)
+ .collect(Collectors.toList());
+ }
}
\ No newline at end of file
From 5692cca3e73610a5c4d1d952c649f68a45dc4405 Mon Sep 17 00:00:00 2001
From: xiaohucoding <2307520758@qq.com>
Date: Sun, 25 May 2025 20:42:25 +0800
Subject: [PATCH 46/50] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=91=E5=B8=83?=
=?UTF-8?q?=EF=BC=88nacos=E7=89=88=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-hky.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/doc/WorkReport/2025-05-hky.md b/doc/WorkReport/2025-05-hky.md
index 7fc9fad..6744694 100644
--- a/doc/WorkReport/2025-05-hky.md
+++ b/doc/WorkReport/2025-05-hky.md
@@ -90,4 +90,17 @@ redis的服务器配置
### 📅 明日计划
完成拦截器功能
+## 2025年5月25日
+### ✅ 今日完成
+服务发布可注册到nacos上
+
+### 🚧 进行中
+拦截器开发
+
+### ⚠️ 问题/障碍
+模型api请求不知道是什么
+
+### 📅 明日计划
+开发拦截器功能
+
From 77fb43e95da2233fc8f92b7a1024227b92b061b5 Mon Sep 17 00:00:00 2001
From: xiaohucoding <2307520758@qq.com>
Date: Mon, 26 May 2025 21:49:13 +0800
Subject: [PATCH 47/50] =?UTF-8?q?=E8=B0=83=E5=BA=A6=E8=AF=B7=E6=B1=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 8 +-
...Controller.java => PublishController.java} | 38 ++--
.../controller/ServiceAPIController.java | 178 ++++++++++++++++++
.../mapper/PublishMapper.java | 3 +-
.../mapper/ServiceAPIMapper.java | 11 ++
.../service/Impl/PublishServiceImpl.java | 12 +-
.../service/Impl/ServiceAPIImpl.java | 23 +++
.../service/PublishService.java | 1 -
.../service/ServiceAPIService.java | 5 +
src/main/resources/application.properties | 8 +-
10 files changed, 259 insertions(+), 28 deletions(-)
rename src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/{publishController.java => PublishController.java} (57%)
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ServiceAPIController.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ServiceAPIMapper.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ServiceAPIImpl.java
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ServiceAPIService.java
diff --git a/pom.xml b/pom.xml
index 7b91012..5aac308 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,10 +51,10 @@
org.springframework.boot
spring-boot-starter-jdbc
-
+
org.springframework.boot
spring-boot-starter-data-redis
@@ -100,6 +100,10 @@
org.springframework.cloud
spring-cloud-starter-bootstrap
+
+ org.springframework.cloud
+ spring-cloud-starter-gateway
+
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java
similarity index 57%
rename from src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java
rename to src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java
index ebfe15f..5cdf455 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java
@@ -11,17 +11,13 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
@Tag(name ="服务发布相关接口")
@RestController
@RequestMapping("/publish")
@Slf4j
-public class publishController {
+public class PublishController {
@Autowired
private PublishService publishService;
@@ -38,19 +34,35 @@ public class publishController {
publishService.save(servicePublishDTO);
//todo 调用模型部署
+ // 获取前端传来的IP字符串
+ String ipListStr = servicePublishDTO.getIp();
+ if (ipListStr == null || ipListStr.trim().isEmpty()) {
+ log.warn("IP列表为空,不进行Nacos注册");
+ return OptResult.success();
+ }
+
try {
- // 新增传递apiUrl参数
- nacosServiceUtil.registerService(
- servicePublishDTO.getModelId().toString(),
- servicePublishDTO.getIp(),
- 8080,
- servicePublishDTO.getApiUrl()
- );
- log.info("Nacos服务注册成功");
+ // 使用逗号分割IP字符串
+ String[] ipArray = ipListStr.split(",");
+ // 循环注册每个IP到Nacos
+ for (String ip : ipArray) {
+ String trimmedIp = ip.trim();
+ if (!trimmedIp.isEmpty()) {
+ nacosServiceUtil.registerService(
+ servicePublishDTO.getModelId().toString(),
+ trimmedIp,
+ 8080,
+ servicePublishDTO.getApiUrl()
+ );
+ log.info("Nacos服务注册成功: {}", trimmedIp);
+ }
+ }
} catch (Exception e) {
log.error("Nacos服务注册失败", e);
+ return OptResult.error("Nacos服务注册失败"); // 根据业务需求返回错误
}
+
return OptResult.success();
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ServiceAPIController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ServiceAPIController.java
new file mode 100644
index 0000000..f08513e
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ServiceAPIController.java
@@ -0,0 +1,178 @@
+package com.bipt.intelligentapplicationorchestrationservice.controller;
+
+
+import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult;
+import com.bipt.intelligentapplicationorchestrationservice.service.ServiceAPIService;
+import com.bipt.intelligentapplicationorchestrationservice.util.NacosServiceUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.models.security.SecurityScheme;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+@Tag(name ="服务API相关接口")
+@RestController
+@RequestMapping("/API")
+@Slf4j
+public class ServiceAPIController {
+
+ @Autowired
+ private ServiceAPIService serviceAPIService;
+
+ @Autowired
+ private NacosServiceUtil nacosServiceUtil;
+
+ @Autowired
+ private RedisTemplate redisTemplate;
+ @PostMapping("/release")
+ @Operation(summary = "结束访问")
+ @Transactional
+ public OptResult releaseResource(@PathVariable Long modelId) {
+ String key = "modelId:" + modelId;
+ String modelConfig = (String) redisTemplate.opsForValue().get(key);
+ int userMemorySize = parseGpuMemorySize(modelConfig);
+ List instanceIps;
+ try {
+ instanceIps = nacosServiceUtil.getServiceInstances(modelId.toString());
+ } catch (Exception e) {
+ log.error("获取Nacos实例失败", e);
+ return OptResult.error("获取实例失败");
+ }
+ int memorySize;
+ for (String ip : instanceIps) {
+ String ipKey = "ip:" + ip;
+ Integer nowMemorySizeOBJ = (Integer) redisTemplate.opsForValue().get(ipKey);
+ int nowMemorySize = nowMemorySizeOBJ;
+ memorySize = nowMemorySize + userMemorySize;
+ // 更新IP对应的资源值
+ redisTemplate.opsForValue().set(ipKey, memorySize);
+ // 设置缓存过期时间(3600秒)
+ redisTemplate.expire(ipKey, 3600, TimeUnit.SECONDS);
+ }
+
+ // 处理等待队列(先来先服务)
+ String waitQueueKey = "waitQueue:" + modelId;
+ // 取出队列头部的任务(最早加入的)
+ Long waitModelId = (Long) redisTemplate.opsForList().leftPop(waitQueueKey);
+ if (waitModelId != null) {
+ log.info("检测到等待队列任务,尝试调度模型ID: {}", waitModelId);
+ return schedule(waitModelId); // 重新调度最早的任务
+ } else {
+ log.info("等待队列为空,无任务需要处理");
+ }
+
+ return OptResult.success("资源释放成功");
+ }
+
+ @PostMapping("/request")
+ @Operation(summary = "请求调度")
+ @Transactional
+ public OptResult schedule(@PathVariable Long modelId) {
+ // 1. 存储modelConfig到缓存
+ String modelConfig = serviceAPIService.getByModelId(modelId);
+ int requestMemorySize = parseGpuMemorySize(modelConfig);
+ String modelConfigKey = "modelConfig:" + modelId;
+ redisTemplate.opsForValue().set(modelConfigKey, modelConfig);
+ // 2. 获取Nacos实例IP列表
+ List instanceIps;
+ try {
+ instanceIps = nacosServiceUtil.getServiceInstances(modelId.toString());
+ } catch (Exception e) {
+ log.error("获取Nacos实例失败", e);
+ return OptResult.error("获取实例失败");
+ }
+ Set gpuKeys = redisTemplate.keys("gpu:*");
+ //根据IP列表查找资源
+ for (String instanceIp : instanceIps) {
+ for (String gpuKey : gpuKeys) {
+ String GPUConfig = (String) redisTemplate.opsForValue().get(gpuKey);
+ if (GPUConfig != null) {
+ // 分割键值对
+ String[] pairs = GPUConfig.split(",");
+ String ip = null;
+ int memorySize = 0;
+ for (String pair : pairs) {
+ String[] keyValue = pair.split(":", 2);
+ if (keyValue.length == 2) {
+ String key = keyValue[0].trim();
+ String value = keyValue[1].trim();
+ if ("IP".equalsIgnoreCase(key)) {
+ ip = value;
+ } else if ("GPUMemorySize".equalsIgnoreCase(key)) {
+ memorySize = Integer.parseInt(value);
+ }
+ }
+ }
+ // 检查解析出的 IP 是否在 Nacos 实例列表中
+ if (instanceIp.equals(ip)) {
+ log.info("找到 IP {} 对应的 GPU 内存: {} ", ip, memorySize);
+ if (memorySize>=requestMemorySize){
+ int newMemorySize = memorySize - requestMemorySize;
+ String ipKey = "ip:" + ip;
+ redisTemplate.opsForValue().set(ipKey,newMemorySize);
+ //访问请求最大时间为3600s
+ redisTemplate.expire(ipKey, 3600, TimeUnit.SECONDS);
+ }
+ return OptResult.success("资源分配成功,使用ip:" + ip);
+ }else {
+ log.info("资源不足");
+ }
+ }
+ }
+ }
+ // 所有实例检查完毕未找到足够资源
+ String waitQueueKey = "waitQueue:" + modelId;
+ // 改为右插入,保证队列顺序为FIFO(最早的任务在列表头部)
+ redisTemplate.opsForList().rightPush(waitQueueKey, modelId);
+ log.info("未找到足够资源,任务 {} 加入等待队列", modelId);
+ return OptResult.error("资源不足,等待中");
+ }
+ /**
+ * 从模型配置字符串中解析GPU内存需求
+ * @param modelConfig 模型配置字符串,格式如 "GPUMemorySize:8000,version:1"
+ * @return 解析到的GPU内存大小(MB),若解析失败返回-1
+ */
+ private int parseGpuMemorySize(String modelConfig) {
+ if (modelConfig == null || modelConfig.isEmpty()) {
+ log.error("模型配置为空,无法解析GPU内存需求");
+ return -1;
+ }
+ int requestMemorySize = 0;
+ String[] config = modelConfig.split(",");
+ for (String pair : config) {
+ // 按冒号分割键值对
+ String[] keyValue = pair.split(":", 2);
+ if (keyValue.length == 2) {
+ String key = keyValue[0].trim();
+ String value = keyValue[1].trim();
+ // 匹配 GPUMemorySize 字段(忽略大小写)
+ if ("GPUMemorySize".equalsIgnoreCase(key)) {
+ try {
+ requestMemorySize = Integer.parseInt(value);
+ log.info("模型GPU内存: {} MB", requestMemorySize);
+ break; // 找到后即可退出循环
+ } catch (NumberFormatException e) {
+ log.error("解析GPUMemorySize失败,值: {}", value, e);
+ return -1;
+ }
+ }
+ }
+ }
+ if (requestMemorySize <= 0) {
+ log.error("模型需求GPU内存未配置或无效");
+ return -1;
+ }
+ return requestMemorySize;
+ }
+
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java
index 5582b45..38c48a6 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java
@@ -14,7 +14,6 @@ public interface PublishMapper {
void insert(ServicePublishDTO servicePublishDTO);
Long getByApiUrl(String apiUrl);
- @Select("select model_config from model_version where model_id=#{modelId} and status = 1")
- String getById(Long modelId);
+
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ServiceAPIMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ServiceAPIMapper.java
new file mode 100644
index 0000000..c27b445
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ServiceAPIMapper.java
@@ -0,0 +1,11 @@
+package com.bipt.intelligentapplicationorchestrationservice.mapper;
+
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+@Mapper
+public interface ServiceAPIMapper {
+ @Select("select model_config from model_version where model_id=#{modelId} and status = 1")
+ String getById(Long modelId);
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java
index 52b422a..4788340 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java
@@ -29,18 +29,12 @@ public class PublishServiceImpl implements PublishService {
if (id != null){
throw new IllegalArgumentException("请求已存在: " + apiUrl);
}
+
+ //todo调用服务部署
+
publishMapper.insert(servicePublishDTO);
}
- /**
- * 根据id查找配置信息
- * @param modelId
- * @return
- */
- @Override
- public String getByModelId(Long modelId) {
- return publishMapper.getById(modelId);
- }
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ServiceAPIImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ServiceAPIImpl.java
new file mode 100644
index 0000000..b2a0d54
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ServiceAPIImpl.java
@@ -0,0 +1,23 @@
+package com.bipt.intelligentapplicationorchestrationservice.service.Impl;
+
+import com.bipt.intelligentapplicationorchestrationservice.mapper.ServiceAPIMapper;
+import com.bipt.intelligentapplicationorchestrationservice.service.ServiceAPIService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class ServiceAPIImpl implements ServiceAPIService {
+ @Autowired
+ private ServiceAPIMapper serviceAPIMapper;
+ /**
+ * 根据id查找配置信息
+ * @param modelId
+ * @return
+ */
+ @Override
+ public String getByModelId(Long modelId) {
+ return serviceAPIMapper.getById(modelId);
+ };
+}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java
index 4d3b410..851891f 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java
@@ -9,5 +9,4 @@ public interface PublishService {
- String getByModelId(Long modelId);
}
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ServiceAPIService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ServiceAPIService.java
new file mode 100644
index 0000000..4c95bb4
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ServiceAPIService.java
@@ -0,0 +1,5 @@
+package com.bipt.intelligentapplicationorchestrationservice.service;
+
+public interface ServiceAPIService {
+ String getByModelId(Long modelId);
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index d8ff972..aa70b38 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -18,4 +18,10 @@ spring.data.redis.host=116.205.121.200
spring.data.redis.port=6379
spring.data.redis.password=Jbjhhzstsl97@
spring.data.redis.database=0
-spring.data.redis.timeout=3000
\ No newline at end of file
+spring.data.redis.timeout=3000
+
+# 服务路由配置
+spring.cloud.gateway.routes[0].id=request-service-route
+spring.cloud.gateway.routes[0].uri=lb://intelligent-application-orchestration-service
+spring.cloud.gateway.routes[0].predicates[0]=Path=/request
+
From 2aaf3d96f05f5c2bfdcf96497afb5697765affeb Mon Sep 17 00:00:00 2001
From: xiaohucoding <2307520758@qq.com>
Date: Mon, 26 May 2025 21:50:27 +0800
Subject: [PATCH 48/50] =?UTF-8?q?=E5=85=A8=E5=B1=80=E6=8B=A6=E6=88=AA?=
=?UTF-8?q?=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../filter/ApiRequestGlobalFilter.java | 36 +++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/filter/ApiRequestGlobalFilter.java
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/filter/ApiRequestGlobalFilter.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/filter/ApiRequestGlobalFilter.java
new file mode 100644
index 0000000..41eb59c
--- /dev/null
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/filter/ApiRequestGlobalFilter.java
@@ -0,0 +1,36 @@
+package com.bipt.intelligentapplicationorchestrationservice.filter;
+
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.core.Ordered;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.stereotype.Component;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+@Component
+public class ApiRequestGlobalFilter implements GlobalFilter, Ordered {
+
+ @Override
+ public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+ ServerHttpRequest request = exchange.getRequest();
+
+ // 检查请求路径和方法
+ if (request.getURI().getPath().equals("/request") &&
+ request.getMethod() == HttpMethod.POST) {
+
+ // 在此处添加拦截逻辑
+ System.out.println("拦截到POST /request请求");
+
+ }
+
+ // 继续处理请求
+ return chain.filter(exchange);
+ }
+
+ @Override
+ public int getOrder() {
+ return 1; // 过滤器执行顺序,数值越小越先执行
+ }
+}
\ No newline at end of file
From c24d640de4c0baa30e7d57546b59f191eb5e02e9 Mon Sep 17 00:00:00 2001
From: xiaohucoding <2307520758@qq.com>
Date: Mon, 26 May 2025 21:56:51 +0800
Subject: [PATCH 49/50] =?UTF-8?q?=E5=85=A8=E5=B1=80=E6=8B=A6=E6=88=AA?=
=?UTF-8?q?=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/WorkReport/2025-05-hky.md | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/doc/WorkReport/2025-05-hky.md b/doc/WorkReport/2025-05-hky.md
index 7fc9fad..2711707 100644
--- a/doc/WorkReport/2025-05-hky.md
+++ b/doc/WorkReport/2025-05-hky.md
@@ -77,7 +77,7 @@ redis的服务器配置
### 📅 明日计划
完成服务发布的开发
-## 2025年5月22日
+## 2025年5月23日
### ✅ 今日完成
服务发布,拦截器部分功能
@@ -90,4 +90,17 @@ redis的服务器配置
### 📅 明日计划
完成拦截器功能
+## 2025年5月26日
+### ✅ 今日完成
+服务调度
+
+### 🚧 进行中
+无
+
+### ⚠️ 问题/障碍
+暂无
+
+### 📅 明日计划
+已完成
+
From 789108aaa3ce1f92eccebdcffe9a2dd323ecfa2c Mon Sep 17 00:00:00 2001
From: NingHuan <2139614357@qq.com>
Date: Fri, 30 May 2025 13:09:47 +0800
Subject: [PATCH 50/50] =?UTF-8?q?[=E6=8F=90=E4=BA=A4]:=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?=E4=BA=86=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=E9=9B=86=E5=88=97?=
=?UTF-8?q?=E8=A1=A8=E5=92=8C=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E5=88=97?=
=?UTF-8?q?=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/ModelController.java | 16 +++++++++++++++
.../mapper/ModelMapper.java | 12 +++++++----
.../service/Impl/ModelServiceImpl.java | 20 +++++++++++++++++++
.../service/ModelService.java | 10 ++++++----
4 files changed, 50 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
index 11012ae..f78cebd 100644
--- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
+++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
+import java.util.Map;
@Slf4j
@RestController
@@ -75,5 +76,20 @@ public class ModelController {
return OptResult.success();
}
+ @Operation(summary = "查询生命周期列表")
+ @GetMapping("/listLifeCycle")
+ public OptResult listLifeCycle(){
+ log.info("查询生命周期列表");
+ List