|
|
|
@@ -36,6 +36,8 @@ import java.nio.file.Files; |
|
|
|
import java.nio.file.Path; |
|
|
|
import java.nio.file.Paths; |
|
|
|
import java.util.*; |
|
|
|
import java.util.regex.Matcher; |
|
|
|
import java.util.regex.Pattern; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import java.util.zip.ZipEntry; |
|
|
|
import java.util.zip.ZipOutputStream; |
|
|
|
@@ -174,12 +176,14 @@ public class NewDatasetServiceImpl implements NewDatasetService { |
|
|
|
dvcUtils.dvcPush(localPath); |
|
|
|
|
|
|
|
// 创建分支 |
|
|
|
newCreateVersion(datasetVo); |
|
|
|
//TODO 取消创建新版本 |
|
|
|
// newCreateVersion(datasetVo); |
|
|
|
return "新增数据集成功"; |
|
|
|
} |
|
|
|
|
|
|
|
public String newCreateVersion(NewDatasetVo datasetVo) throws Exception { |
|
|
|
List<Map<String, Object>> versionList = getVersionList(datasetVo.getIdentifier(), datasetVo.getOwner()); |
|
|
|
//TODO 查出最新的自定义版本,在此基础上升级一个版本 |
|
|
|
for (Map<String, Object> versionMap : versionList) { |
|
|
|
String version = (String) versionMap.get("name"); |
|
|
|
if (version.equals(datasetVo.getVersion())) { |
|
|
|
@@ -706,6 +710,35 @@ public class NewDatasetServiceImpl implements NewDatasetService { |
|
|
|
return new ArrayList<>(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String getNextVersion(NewDatasetVo datasetVo) throws Exception { |
|
|
|
List<Map<String, Object>> versionList = getVersionList(datasetVo.getIdentifier(), datasetVo.getOwner()); |
|
|
|
return incrementVersion(versionList); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 从Map列表中提取"v+数字"格式的版本号并升级 |
|
|
|
* |
|
|
|
* @param versionList 包含版本号的Map列表 |
|
|
|
* @return 新版本号(如"v3"),找不到时返回"v1" |
|
|
|
*/ |
|
|
|
private String incrementVersion(List<Map<String, Object>> versionList) { |
|
|
|
int maxVersionNumber = 0; |
|
|
|
Pattern versionPattern = Pattern.compile("^v(\\d+)$"); // 严格匹配"V"开头+数字 |
|
|
|
|
|
|
|
// 1. 遍历所有Map,找出符合格式的最大版本号 |
|
|
|
for (Map<String, Object> map : versionList) { |
|
|
|
Matcher matcher = versionPattern.matcher(StrUtil.toString(map.get("name"))); |
|
|
|
if (matcher.find()) { |
|
|
|
int currentNum = Integer.parseInt(matcher.group(1)); |
|
|
|
maxVersionNumber = Math.max(maxVersionNumber, currentNum); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 2. 返回结果(找不到时返回V1) |
|
|
|
return maxVersionNumber > 0 ? "v" + (maxVersionNumber + 1) : "v1"; |
|
|
|
} |
|
|
|
|
|
|
|
private NewDatasetVo addDatasetSourceToDataVo(NewDatasetVo datasetVo) { |
|
|
|
DatasetTempStorage queryDatasetTempStorage = new DatasetTempStorage(); |
|
|
|
queryDatasetTempStorage.setName(datasetVo.getIdentifier()); |
|
|
|
|