记录重复修改
continuous-integration/drone/push Build is passing Details

Temp_Uat_IRC_Net8
hang 2025-09-18 13:17:18 +08:00
parent 1d6731e3a4
commit 0dff3d6e4b
1 changed files with 23 additions and 5 deletions

View File

@ -1434,6 +1434,8 @@ namespace IRaCIS.Core.Application.Service
var allVersions = new List<ObjectVersionSummary>();
var allDeleteMarkers = new List<DeleteMarkerSummary>();
var allDeleteDistinceKeys = new List<string>();
var request = new ListObjectVersionsRequest(tempToken.AliyunOSS.BucketName)
{
Prefix = "test-delete-restore",
@ -1487,7 +1489,14 @@ namespace IRaCIS.Core.Application.Service
if (prevVersion == null)
continue; // 没找到可恢复版本
//这里会出现同一个key 删除多次,然后下载多次,恢复的时候插入数据有问题
if (allDeleteDistinceKeys.Contains(del.Key))
{
continue;
}
allDeleteDistinceKeys.Add(del.Key);
// 创建 CopyObject 请求
@ -1560,6 +1569,7 @@ namespace IRaCIS.Core.Application.Service
tempToken.AliyunOSS.AccessKeySecret,
tempToken.AliyunOSS.SecurityToken);
var allDeleteDistinceKeys = new List<string>();
var restoreCount = 0;
foreach (var item in rows)
@ -1570,6 +1580,14 @@ namespace IRaCIS.Core.Application.Service
continue;
}
if (allDeleteDistinceKeys.Contains(item.Key))
{
continue;
}
allDeleteDistinceKeys.Add(item.Key);
try
{
@ -1599,7 +1617,7 @@ namespace IRaCIS.Core.Application.Service
var fileSize = new FileInfo(dicomFilePath).Length;
await ArchiveDicomFileAsync(dicomFile, trialId, item.SubjectId, item.SubjectVisitId,item.Key, fileSize);
await ArchiveDicomFileAsync(dicomFile, trialId, item.SubjectId, item.SubjectVisitId, item.Key, fileSize);
#endregion
@ -1632,13 +1650,13 @@ namespace IRaCIS.Core.Application.Service
var copyResult = _ossClient.CopyObject(copyReq);
Console.WriteLine($"✅ 恢复成功: {item.Key} 版本{item.VersionId}, 新版本ID={copyResult.VersionId}");
Console.WriteLine($"✅ 恢复成功: {item.SubjectCode} {item.Key} 版本{item.VersionId}, 新版本ID={copyResult.VersionId}");
}
catch (Exception ex)
{
var errorMsg = $"❌ 恢复失败: {item.Key}, 错误: {ex.Message}";
var errorMsg = $"❌ 恢复失败:{item.SubjectCode} {item.Key}, 错误: {ex.Message}";
Console.WriteLine(errorMsg);
await File.AppendAllTextAsync(outputErrorFile, errorMsg + Environment.NewLine);
@ -1699,7 +1717,7 @@ namespace IRaCIS.Core.Application.Service
/// <param name="subjectVisitId"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task ArchiveDicomFileAsync(DicomFile dicomFile, Guid trialId, Guid subjectId, Guid subjectVisitId,string path,long fileSize)
public async Task ArchiveDicomFileAsync(DicomFile dicomFile, Guid trialId, Guid subjectId, Guid subjectVisitId, string path, long fileSize)
{
var dataset = dicomFile.Dataset;
@ -1822,7 +1840,7 @@ namespace IRaCIS.Core.Application.Service
++findSerice.InstanceCount;
//賦值路徑
findInstance.Path = "/"+path;
findInstance.Path = "/" + path;
findInstance.FileSize = fileSize;
}