You've already forked DataMate
fix(upload): 修复流式上传中的文件名处理逻辑
- 修正预上传接口调用时传递正确的文件总数而非固定值-1 - 移除导入配置中文件分割时的文件扩展名保留逻辑 - 删除流式上传选项中的fileExtension参数定义 - 移除流式上传实现中的文件扩展名处理相关代码 - 简化新文件名生成逻辑,不再附加扩展名后缀
This commit is contained in:
@@ -103,9 +103,6 @@ public class DatasetApplicationService {
|
||||
Dataset dataset = datasetRepository.getById(datasetId);
|
||||
BusinessAssert.notNull(dataset, DataManagementErrorCode.DATASET_NOT_FOUND);
|
||||
|
||||
// 保存原始的 parentDatasetId 值,用于比较是否发生了变化
|
||||
String originalParentDatasetId = dataset.getParentDatasetId();
|
||||
|
||||
if (StringUtils.hasText(updateDatasetRequest.getName())) {
|
||||
dataset.setName(updateDatasetRequest.getName());
|
||||
}
|
||||
@@ -118,18 +115,23 @@ public class DatasetApplicationService {
|
||||
if (Objects.nonNull(updateDatasetRequest.getStatus())) {
|
||||
dataset.setStatus(updateDatasetRequest.getStatus());
|
||||
}
|
||||
// 处理父数据集变更:始终调用 handleParentChange,以支持设置新的关联或清除关联
|
||||
// handleParentChange 内部通过 normalizeParentId 方法将空字符串和 null 都转换为 null
|
||||
// 这样既支持设置新的父数据集,也支持清除关联
|
||||
handleParentChange(dataset, updateDatasetRequest.getParentDatasetId());
|
||||
|
||||
// 检查 parentDatasetId 是否发生了变化
|
||||
if (!Objects.equals(originalParentDatasetId, dataset.getParentDatasetId())) {
|
||||
// 使用 LambdaUpdateWrapper 显式地更新 parentDatasetId 字段
|
||||
// 这样即使值为 null 也能被正确更新到数据库
|
||||
datasetRepository.update(null, new LambdaUpdateWrapper<Dataset>()
|
||||
.eq(Dataset::getId, datasetId)
|
||||
.set(Dataset::getParentDatasetId, dataset.getParentDatasetId()));
|
||||
if (updateDatasetRequest.isParentDatasetIdProvided()) {
|
||||
// 保存原始的 parentDatasetId 值,用于比较是否发生了变化
|
||||
String originalParentDatasetId = dataset.getParentDatasetId();
|
||||
|
||||
// 处理父数据集变更:仅当请求显式包含 parentDatasetId 时处理
|
||||
// handleParentChange 内部通过 normalizeParentId 方法将空字符串和 null 都转换为 null
|
||||
// 这样既支持设置新的父数据集,也支持清除关联
|
||||
handleParentChange(dataset, updateDatasetRequest.getParentDatasetId());
|
||||
|
||||
// 检查 parentDatasetId 是否发生了变化
|
||||
if (!Objects.equals(originalParentDatasetId, dataset.getParentDatasetId())) {
|
||||
// 使用 LambdaUpdateWrapper 显式地更新 parentDatasetId 字段
|
||||
// 这样即使值为 null 也能被正确更新到数据库
|
||||
datasetRepository.update(null, new LambdaUpdateWrapper<Dataset>()
|
||||
.eq(Dataset::getId, datasetId)
|
||||
.set(Dataset::getParentDatasetId, dataset.getParentDatasetId()));
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(updateDatasetRequest.getDataSource())) {
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.datamate.datamanagement.interfaces.dto;
|
||||
|
||||
import com.datamate.datamanagement.common.enums.DatasetStatusType;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -24,9 +26,18 @@ public class UpdateDatasetRequest {
|
||||
/** 归集任务id */
|
||||
private String dataSource;
|
||||
/** 父数据集ID */
|
||||
@Setter(AccessLevel.NONE)
|
||||
private String parentDatasetId;
|
||||
@JsonIgnore
|
||||
@Setter(AccessLevel.NONE)
|
||||
private boolean parentDatasetIdProvided;
|
||||
/** 标签列表 */
|
||||
private List<String> tags;
|
||||
/** 数据集状态 */
|
||||
private DatasetStatusType status;
|
||||
|
||||
public void setParentDatasetId(String parentDatasetId) {
|
||||
this.parentDatasetIdProvided = true;
|
||||
this.parentDatasetId = parentDatasetId;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user