diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index d6b881d70..19da4238b 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -1896,6 +1896,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List ExportResult { get; set; } + + public Guid? GroupId { get; set; } + + public bool IsGroup { get; set; } = false; + /// /// 导出的CDISCName /// diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs index b098f7af3..bc7e18ec3 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs @@ -127,10 +127,26 @@ namespace IRaCIS.Core.Application.Service List notShowType=new List() { ReadingQestionType.Group, ReadingQestionType.Screenshot, ReadingQestionType.Summary, ReadingQestionType.Upload }; var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); + + var groupList = await _readingQuestionTrialRepository.Where(x => x.Type== ReadingQestionType.Group && x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId) + .OrderBy(x => x.ShowOrder).Select(x => new TrialQuestionExport() + { + QuestionId = x.Id, + QuestionName = _userInfo.IsEn_Us ? x.GroupEnName : x.GroupName, + ExportResult = x.ExportResult, + GroupId= x.GroupId, + IsGroup= true, + ShowOrder = x.ShowOrder, + IsTableQuestion = false, + CDISCCode = x.CDISCCode, + }).ToListAsync(); + + var questionList = await _readingQuestionTrialRepository.Where(x => !notShowType.Contains(x.Type) && x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId) .OrderBy(x => x.ShowOrder).Select(x => new TrialQuestionExport() { QuestionId = x.Id, + GroupId=x.GroupId, QuestionName = _userInfo.IsEn_Us ? x.QuestionEnName : x.QuestionName, ExportResult = x.ExportResult, ShowOrder = x.ShowOrder, @@ -158,6 +174,11 @@ namespace IRaCIS.Core.Application.Service x.Children = tableQuestionList.Where(y => y.QuestionId == x.QuestionId).OrderBy(y => y.ShowOrder).ToList(); }); + groupList.ForEach(x => + { + x.Children = questionList.Where(y => y.GroupId == x.QuestionId).OrderBy(y => y.ShowOrder).ToList(); + }); + List dicCode = new List() { "1","2","8" }; var dicList = await _dictionaryRepository.Where(x => x.Parent.Code == "ExportResult") .Where(x=> dicCode.Contains(x.Code)) @@ -175,7 +196,7 @@ namespace IRaCIS.Core.Application.Service CriterionType = criterionInfo.CriterionType, CriterionGroup = criterionInfo.CriterionGroup, DicList = dicList, - QuestionList = questionList + QuestionList = groupList }; }