From a8bc50eab82f02008a7e6fd63458d8398baee704 Mon Sep 17 00:00:00 2001 From: sunxiqing <2240398334@qq.com> Date: Tue, 31 Dec 2024 15:12:27 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=9B=9E=E6=B5=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataRefluxConfigController.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxconfig/DataRefluxConfigController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxconfig/DataRefluxConfigController.java index 2b57cbd63..bc16663b8 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxconfig/DataRefluxConfigController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxconfig/DataRefluxConfigController.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.llm.controller.admin.datarefluxconfig; import cn.iocoder.yudao.module.llm.controller.admin.datarefluxdata.vo.DataRefluxDataRespVO; +import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; import cn.iocoder.yudao.module.llm.dal.dataobject.datarefluxdata.DataRefluxDataDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.modelservice.ModelServiceDO; import cn.iocoder.yudao.module.llm.dal.mysql.modelservice.ModelServiceMapper; import cn.iocoder.yudao.module.llm.service.basemodel.BaseModelService; import cn.iocoder.yudao.module.llm.service.datarefluxdata.DataRefluxDataService; @@ -82,9 +84,17 @@ public class DataRefluxConfigController { DataRefluxConfigDO dataRefluxConfig = dataRefluxConfigService.getDataRefluxConfig(id); DataRefluxConfigRespVO bean = BeanUtils.toBean(dataRefluxConfig, DataRefluxConfigRespVO.class); if (bean.getModelType()==0){ - bean.setModelServiceName(modelServiceService.getModelService(bean.getModelServiceId()).getServiceName()); + ModelServiceDO modelService = modelServiceService.getModelService(bean.getModelServiceId()); + if (modelService==null){ + bean.setModelServiceName(""); + } + bean.setModelServiceName(modelService.getServiceName()); }else if (bean.getModelType()==1){ - bean.setModelServiceName(baseModelService.getBaseModel(bean.getModelServiceId()).getModelName()); + BaseModelDO baseModel = baseModelService.getBaseModel(bean.getModelServiceId()); + if (baseModel==null){ + bean.setModelServiceName(""); + } + bean.setModelServiceName(baseModel.getModelName()); } return success(bean); } @@ -100,9 +110,17 @@ public class DataRefluxConfigController { PageResult bean = BeanUtils.toBean(pageResult, DataRefluxConfigRespVO.class); for (DataRefluxConfigRespVO dataRefluxConfigRespVO : bean.getList()){ if (dataRefluxConfigRespVO.getModelType()==0){ - dataRefluxConfigRespVO.setModelServiceName(modelServiceService.getModelService(dataRefluxConfigRespVO.getModelServiceId()).getServiceName()); + ModelServiceDO modelService = modelServiceService.getModelService(dataRefluxConfigRespVO.getModelServiceId()); + if (modelService==null){ + dataRefluxConfigRespVO.setModelServiceName(""); + } + dataRefluxConfigRespVO.setModelServiceName(modelService.getServiceName()); }else if (dataRefluxConfigRespVO.getModelType()==1){ - dataRefluxConfigRespVO.setModelServiceName(baseModelService.getBaseModel(dataRefluxConfigRespVO.getModelServiceId()).getModelName()); + BaseModelDO baseModel = baseModelService.getBaseModel(dataRefluxConfigRespVO.getModelServiceId()); + if (baseModel==null){ + dataRefluxConfigRespVO.setModelServiceName(""); + } + dataRefluxConfigRespVO.setModelServiceName(baseModel.getModelName()); } } // PageResult result = bean.setList(bean.getList()); From 9ed36910f67cf9f2bd2ad52fbbb09303eae809d1 Mon Sep 17 00:00:00 2001 From: limin Date: Tue, 31 Dec 2024 15:49:27 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataProcessTaskController.java | 18 +++++- .../vo/DataProcessTaskPageReqVO.java | 3 +- .../vo/DataProcessTaskRespVO.java | 9 ++- .../vo/DataProcessTaskSaveReqVO.java | 3 +- .../DataProcessTaskMapper.java | 5 +- .../framework/backend/config/AsyncConfig.java | 16 +++++ .../async/AsyncDataProcessService.java | 20 +++++++ .../DataProcessTaskService.java | 10 ++++ .../DataProcessTaskServiceImpl.java | 60 +++++++++++++++++++ .../yudao/server/YudaoServerApplication.java | 1 + 10 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/AsyncConfig.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncDataProcessService.java diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/DataProcessTaskController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/DataProcessTaskController.java index 4de0c9594..ba4ca9237 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/DataProcessTaskController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/DataProcessTaskController.java @@ -75,8 +75,7 @@ public class DataProcessTaskController { @Operation(summary = "获得数据处理任务分页") @PreAuthorize("@ss.hasPermission('llm:data-process-task:query')") public CommonResult> getDataProcessTaskPage(@Valid DataProcessTaskPageReqVO pageReqVO) { - PageResult pageResult = dataProcessTaskService.getDataProcessTaskPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, DataProcessTaskRespVO.class)); + return success(dataProcessTaskService.getDataProcessTaskPage1(pageReqVO)); } @GetMapping("/export-excel") @@ -92,4 +91,19 @@ public class DataProcessTaskController { BeanUtils.toBean(list, DataProcessTaskRespVO.class)); } + @PutMapping("/stop") + @Operation(summary = "停止模型调优 —— 微调任务") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning-task:update')") + public CommonResult stopFineTuningTask(@RequestParam("id") Long id) { + dataProcessTaskService.stopFineTuningTask(id); + return success(true); + } + @PutMapping("/reStart") + @Operation(summary = "开始模型调优 —— 微调任务") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning-task:update')") + public CommonResult startFineTuningTask(@RequestParam("id") Long id) { + dataProcessTaskService.reStartFineTuningTask(id); + return success(true); + } + } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskPageReqVO.java index 9305c496d..9a6aeb937 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskPageReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskPageReqVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo; +import cn.hutool.json.JSONObject; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -32,6 +33,6 @@ public class DataProcessTaskPageReqVO extends PageParam { private Long datasetPostId; @Schema(description = "配置信息") - private String options; + private JSONObject options; } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskRespVO.java index c4ae4f7a4..f4afa80f8 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskRespVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo; +import cn.hutool.json.JSONObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -38,6 +39,12 @@ public class DataProcessTaskRespVO { @Schema(description = "配置信息") @ExcelProperty("配置信息") - private String options; + private JSONObject options; + + @Schema(description ="处理前的数据集名称") + private String datasetName; + + @Schema(description = "处理后的数据集名称") + private String datasetPostName; } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskSaveReqVO.java index 826bbb050..4f439243d 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskSaveReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskSaveReqVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo; +import cn.hutool.json.JSONObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -27,6 +28,6 @@ public class DataProcessTaskSaveReqVO { private Long datasetPostId; @Schema(description = "配置信息") - private String options; + private JSONObject options; } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/dataprocesstask/DataProcessTaskMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/dataprocesstask/DataProcessTaskMapper.java index ec0b6afb3..f1fb7de3b 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/dataprocesstask/DataProcessTaskMapper.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/dataprocesstask/DataProcessTaskMapper.java @@ -8,6 +8,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; /** * 数据处理任务 Mapper @@ -27,5 +29,6 @@ public interface DataProcessTaskMapper extends BaseMapperX { .eqIfPresent(DataProcessTaskDO::getOptions, reqVO.getOptions()) .orderByDesc(DataProcessTaskDO::getId)); } - + @Update("update llm_data_process_task set status = #{status} where id = #{id}") + void updateStatus(@Param("id") Long id, @Param("status") int status); } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/AsyncConfig.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/AsyncConfig.java new file mode 100644 index 000000000..71dc8a564 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/AsyncConfig.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.llm.framework.backend.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.AsyncConfigurer; +import org.springframework.scheduling.annotation.EnableAsync; + +import java.util.concurrent.Executor; + +@Configuration +@EnableAsync +public class AsyncConfig implements AsyncConfigurer { + @Override + public Executor getAsyncExecutor() { + return AsyncConfigurer.super.getAsyncExecutor(); + } +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncDataProcessService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncDataProcessService.java new file mode 100644 index 000000000..935be71b3 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncDataProcessService.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.llm.service.async; + +import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO; +import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class AsyncDataProcessService { + @Async + public void backups(DataProcessTaskDO dataProcessTask) { + try { + Thread.sleep(100000); + }catch(InterruptedException e){ + + }; + } +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskService.java index b501a3087..e91259de2 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskService.java @@ -52,4 +52,14 @@ public interface DataProcessTaskService { */ PageResult getDataProcessTaskPage(DataProcessTaskPageReqVO pageReqVO); + void stopFineTuningTask(Long id); + + void reStartFineTuningTask(Long id); + + /** + * 分页查询数据处理任务 + * @param pageReqVO + * @return + */ + PageResult getDataProcessTaskPage1(DataProcessTaskPageReqVO pageReqVO); } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskServiceImpl.java index cf438a58e..3721fe043 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskServiceImpl.java @@ -1,11 +1,21 @@ package cn.iocoder.yudao.module.llm.service.dataprocesstask; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO; +import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper; +import cn.iocoder.yudao.module.llm.service.async.AsyncDataProcessService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*; import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -28,16 +38,23 @@ public class DataProcessTaskServiceImpl implements DataProcessTaskService { @Resource private DataProcessTaskMapper dataProcessTaskMapper; + @Resource + private DatasetMapper datasetMapper; + @Resource + private AsyncDataProcessService dataProcessService; @Override public Long createDataProcessTask(DataProcessTaskSaveReqVO createReqVO) { // 插入 DataProcessTaskDO dataProcessTask = BeanUtils.toBean(createReqVO, DataProcessTaskDO.class); + dataProcessTask.setStatus(1); dataProcessTaskMapper.insert(dataProcessTask); + dataProcessService.backups(dataProcessTask); // 返回 return dataProcessTask.getId(); } + @Override public void updateDataProcessTask(DataProcessTaskSaveReqVO updateReqVO) { // 校验存在 @@ -70,5 +87,48 @@ public class DataProcessTaskServiceImpl implements DataProcessTaskService { public PageResult getDataProcessTaskPage(DataProcessTaskPageReqVO pageReqVO) { return dataProcessTaskMapper.selectPage(pageReqVO); } + @Override + public PageResult getDataProcessTaskPage1(DataProcessTaskPageReqVO pageReqVO) { + PageResult dataProcessTaskDOPageResult = dataProcessTaskMapper.selectPage(pageReqVO); + PageResult result = BeanUtils.toBean(dataProcessTaskDOPageResult, DataProcessTaskRespVO.class); + if (!CollectionUtils.isAnyEmpty(dataProcessTaskDOPageResult.getList())){ + List collect = dataProcessTaskDOPageResult.getList().stream() + .map(DataProcessTaskDO::getDatasetId) + .collect(Collectors.toList()); + List collect1 = dataProcessTaskDOPageResult.getList() + .stream().map(DataProcessTaskDO::getDatasetPostId).collect(Collectors.toList()); + Set datasetIds = Stream.concat(collect.stream(), collect1.stream()).collect(Collectors.toSet()); + if (!CollectionUtils.isAnyEmpty(datasetIds)){ + List mergeDataList = new ArrayList<>(datasetIds); + List datasetDOS = datasetMapper.selectList(new LambdaQueryWrapper().in(DatasetDO::getId, mergeDataList)); + Map longDataDOMap = cn.iocoder.yudao.framework.common.util.collection. + CollectionUtils.convertMap(datasetDOS, DatasetDO::getId); + result.getList().forEach(item->{ + DatasetDO datasetDO = longDataDOMap.get(item.getDatasetId()); + if(datasetDO != null){ + item.setDatasetName(datasetDO.getDatasetName()); + } + if (item.getStatus() == 2){ + DatasetDO datasetDO1 = longDataDOMap.get(item.getDatasetPostId()); + if (datasetDO1 != null){ + item.setDatasetPostName(datasetDO1.getDatasetName()); + } + } + }); + } + } + return result; + } + @Override + public void stopFineTuningTask(Long id) { + dataProcessTaskMapper.updateStatus(id, 3); + } + + @Override + public void reStartFineTuningTask(Long id) { + dataProcessTaskMapper.updateStatus(id, 1); + } + + } \ No newline at end of file diff --git a/yudao-server/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.java b/yudao-server/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.java index 57db3f942..2b4bf1789 100644 --- a/yudao-server/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.java +++ b/yudao-server/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.server; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableAsync; /** * 项目的启动类 From 4c37702683167f430b7e81a6f0f0b059a970dce9 Mon Sep 17 00:00:00 2001 From: sunxiqing <2240398334@qq.com> Date: Tue, 31 Dec 2024 15:54:39 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=9B=9E=E6=B5=81=E4=BF=9D=E5=AD=98=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/datarefluxdata/DataRefluxDataController.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/DataRefluxDataController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/DataRefluxDataController.java index 2316a7d16..98b164753 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/DataRefluxDataController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/DataRefluxDataController.java @@ -82,13 +82,19 @@ public class DataRefluxDataController { @GetMapping("/review-the-data") @Operation(summary = "数据回流配置保存数据") - public void saveTheData(@RequestParam("id") DataRefluxDataReqVO pageReqVO){ + public void saveTheData(@Valid DataRefluxDataReqVO pageReqVO){ if (pageReqVO.getId() != null){ pageReqVO.setIds(Collections.singletonList(pageReqVO.getId())); } //TODO 数据回流配置保存数据 } + @GetMapping("/save-all-the-data") + @Operation(summary = "数据回流配置保存全部数据") + public void saveAllTheData(@Valid DataRefluxDataReqVO pageReqVO){ + //TODO 全部保存数据 + } + @GetMapping("/export-excel") @Operation(summary = "导出数据回流 —— 数据 Excel")