From df7eaf69869d1bef311c9299e39ac6edbacc0104 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 18 Dec 2025 09:51:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BD=B1=E5=83=8F=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/UploadDownLoadController.cs | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index 7a6a2ab32..81269d85f 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -944,7 +944,7 @@ namespace IRaCIS.Core.API.Controllers var progress = new { TotalCount= totalCount, - TotalSize= totalSize, + TotalSize = (totalSize / 1024 / 1024).ToString("0.00") + " MB", CountPercent = totalCount > 0 ? Math.Round(receivedCount * 100m / totalCount, 2).ToString() @@ -1005,6 +1005,7 @@ namespace IRaCIS.Core.API.Controllers { foreach (var instance in series.InstanceList) { + abortToken.ThrowIfCancellationRequested(); try { @@ -1012,7 +1013,6 @@ namespace IRaCIS.Core.API.Controllers receivedSize = receivedSize + instance.FileSize ?? 0; receivedCount++; - abortToken.ThrowIfCancellationRequested(); var entryPath = $"{patient.PatientIdStr}/{studyTime}_{modalitysStr}/IMAGE/{instance.FileName}"; @@ -1149,7 +1149,7 @@ namespace IRaCIS.Core.API.Controllers var progress = new { TotalCount = totalCount, - TotalSize = totalSize, + TotalSize = (totalSize / 1024 / 1024).ToString("0.00") + " MB" , CountPercent = totalCount > 0 ? Math.Round(receivedCount * 100m / totalCount, 2).ToString() @@ -1210,6 +1210,7 @@ namespace IRaCIS.Core.API.Controllers { foreach (var instance in series.InstanceList) { + abortToken.ThrowIfCancellationRequested(); try { @@ -1217,7 +1218,6 @@ namespace IRaCIS.Core.API.Controllers receivedSize = receivedSize + instance.FileSize ?? 0; receivedCount++; - abortToken.ThrowIfCancellationRequested(); var entryPath = $"{visit.SubjectCode}_{visit.VisitName}/{studyTime}_{modalitysStr}/IMAGE/{instance.FileName}"; @@ -1378,20 +1378,31 @@ ClinicalDataDownloadDTO inCommand) abortToken.ThrowIfCancellationRequested(); - //当前完成大小 - receivedCount++; + try + { + //当前完成大小 + receivedCount++; - var entryPath = $"{data.FileName}"; + var entryPath = $"{data.FileName}"; - var entry = zip.CreateEntry(entryPath, CompressionLevel.Fastest); + var entry = zip.CreateEntry(entryPath, CompressionLevel.Fastest); - await using var entryStream = entry.Open(); - await using var source = await _oSSService.GetStreamFromOSSAsync(data.Path); + await using var entryStream = entry.Open(); + await using var source = await _oSSService.GetStreamFromOSSAsync(data.Path); - await source.CopyToAsync(entryStream, 32 * 1024, abortToken); + await source.CopyToAsync(entryStream, 32 * 1024, abortToken); + } + catch (Exception ex) + { - await NotifyProgressAsync(); + Log.Logger.Warning($"处理文件{data.FileName}:{data.Path}失败: {ex.Message}"); + } + finally + { + await NotifyProgressAsync(); + + } }