From e11ca4a24420e19da1be05b0cb4c08bfbb3f711c Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 25 Dec 2025 15:29:07 +0800 Subject: [PATCH] =?UTF-8?q?uat-=E9=9D=B6=E6=AE=B5=E5=A4=9A=E9=80=89-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/Export/IVUS_OCTExportService.cs | 55 ++++++++++++++++++- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/Export/IVUS_OCTExportService.cs b/IRaCIS.Core.Application/Service/Common/Export/IVUS_OCTExportService.cs index 12b61c4f3..6b7c5ff43 100644 --- a/IRaCIS.Core.Application/Service/Common/Export/IVUS_OCTExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/Export/IVUS_OCTExportService.cs @@ -410,7 +410,33 @@ public class IVUS_OCTExportService(IRepository _r //靶段 var target = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.TargetSegment).FirstOrDefault(); - ivus.TARGETV = translateDataList[target?.TranslateDicName].Where(t => t.Code.ToLower() == target?.QuestionValue?.ToLower()).Select(t => isEn_Us ? t.Value : t.ValueCN).FirstOrDefault() ?? String.Empty; + var itemValue = target?.QuestionValue??string.Empty; + //多选 + int[] enumValues = new int[0]; + // 1. 反序列化 JSON 数组 (字符串枚举) + if (!itemValue.StartsWith("[") || !itemValue.EndsWith("]")) + { + enumValues = new int[1] { int.Parse(itemValue) }; + } + else + { + enumValues = JsonConvert.DeserializeObject(itemValue) ?? new int[0]; + + } + + + // 2. 翻译每一项并输出逗号拼接字符串 + var translatedItemData = string.Join(",", + enumValues.OrderBy(t=>t).Select(code => + translateDataList[target?.TranslateDicName] + .FirstOrDefault(t => + string.Equals(code.ToString(), t.Code, StringComparison.OrdinalIgnoreCase) + ) is var r && r != null + ? (isEn_Us ? r.Value : r.ValueCN) + : string.Empty + )); + + ivus.TARGETV = translatedItemData; var marks = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.TargetSegmentRemarks).FirstOrDefault()?.QuestionValue ?? string.Empty; @@ -748,8 +774,33 @@ public class IVUS_OCTExportService(IRepository _r var target = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.TargetSegment).FirstOrDefault(); - oct.TARGETV = translateDataList[target?.TranslateDicName].Where(t => t.Code.ToLower() == target?.QuestionValue?.ToLower()).Select(t => isEn_US ? t.Value : t.ValueCN).FirstOrDefault() ?? String.Empty; + var itemValue = target?.QuestionValue ?? string.Empty; + //多选 + int[] enumValueArray = new int[0]; + // 1. 反序列化 JSON 数组 (字符串枚举) + if (!itemValue.StartsWith("[") || !itemValue.EndsWith("]")) + { + enumValueArray = new int[1] { int.Parse(itemValue) }; + } + else + { + enumValueArray = JsonConvert.DeserializeObject(itemValue) ?? new int[0]; + } + + + // 2. 翻译每一项并输出逗号拼接字符串 + var translatedItemData = string.Join(",", + enumValueArray.OrderBy(t => t).Select(code => + translateDataList[target?.TranslateDicName] + .FirstOrDefault(t => + string.Equals(code.ToString(), t.Code, StringComparison.OrdinalIgnoreCase) + ) is var r && r != null + ? (isEn_US ? r.Value : r.ValueCN) + : string.Empty + )); + + oct.TARGETV = translatedItemData; var marks = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.TargetSegmentRemarks).FirstOrDefault()?.QuestionValue ?? string.Empty;