From 57bce076224e997c7fbbb5d9edf629c73b5e0f4a Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 14 Jul 2022 09:13:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingImageTaskViewModel.cs | 11 +++++ .../Reading/Dto/ReadingQuestionViewModel.cs | 1 + .../Reading/ReadingImageTaskService.cs | 42 ++++++++++++++----- .../TrialSiteUser/DTO/TrialConfigDTO.cs | 3 ++ .../TrialSiteUser/TrialConfigService.cs | 6 +-- .../Reading/ReadingCriterionPage.cs | 5 +++ 6 files changed, 53 insertions(+), 15 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 2e4b3df09..4d50641b3 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -353,6 +353,17 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public string Answer { get; set; } + /// + /// 分页名称 + /// + public string PageName { get; set; } + + + /// + /// 标准分页Id + /// + public Guid? ReadingCriterionPageId { get; set; } + public List Childrens { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index 3e8de2292..d22d47fc8 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -35,6 +35,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string PageName { get; set; } public bool IsEnable { get; set; } + public int ShowOrder { get; set; } = 0; public Guid ReadingQuestionCriterionTrialId{ get; set; } /// diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index cc8be3dd3..9cb55732a 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -297,6 +297,7 @@ namespace IRaCIS.Application.Services var readingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync(); var query= from data in _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId==inDto.ReadingQuestionCriterionTrialId) + join questionAnswer in _readingTaskQuestionAnswerRepository.Where(x=>x.VisitTaskId==inDto.VisitTaskId) on data.Id equals questionAnswer.ReadingQuestionTrialId into questionAnswerTemp from leftquestionAnswer in questionAnswerTemp.DefaultIfEmpty() select new GetTrialReadingQuestionOutDto() @@ -312,25 +313,44 @@ namespace IRaCIS.Application.Services ShowOrder=data.ShowOrder, ParentId=data.ParentId, TypeValue=data.TypeValue, - Answer= leftquestionAnswer.Answer + Answer= leftquestionAnswer.Answer, + ReadingCriterionPageId=data.ReadingCriterionPageId, + PageName= data.ReadingCriterionPage.PageName, }; + var qusetionList =await query.OrderBy(x=>x.ShowOrder).ToListAsync(); - var groupList = qusetionList.Where(x => x.Type == "group").ToList(); + var formType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.ReadingQuestionCriterionTrialId).Select(x => x.FormType).FirstOrDefaultAsync(); + var groupList = new List(); - groupList.ForEach(x => + if (formType == FormType.MultiplePage) { - x.Childrens = qusetionList.Where(y => y.GroupName == x.GroupName && y.ParentId == null&& y.Type != "group").ToList(); + qusetionList = qusetionList.Where(x => x.ReadingCriterionPageId != null).ToList(); - x.Childrens.ForEach(z => + //var readingCriterionPageIds= qusetionList.Select(x=>x.) + + + } + else + { + qusetionList = qusetionList.Where(x => x.ReadingCriterionPageId == null).ToList(); + groupList = qusetionList.Where(x => x.Type == "group").ToList(); + + groupList.ForEach(x => { - this.FindChildQuestion(z, qusetionList); - }); + x.Childrens = qusetionList.Where(y => y.GroupName == x.GroupName && y.ParentId == null && y.Type != "group").ToList(); - }); + x.Childrens.ForEach(z => + { + this.FindChildQuestion(z, qusetionList); + }); + + }); + } + @@ -344,8 +364,10 @@ namespace IRaCIS.Application.Services //}); return (groupList, new { - readingTaskState = readingTaskState - }); + readingTaskState = readingTaskState, + FormType= formType + + }); ; } /// diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index 36af9c449..e61838a4b 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -406,6 +406,9 @@ namespace IRaCIS.Core.Application.Contracts /// public bool IsPublicPage { get; set; } + + public int ShowOrder { get; set; } + /// /// 创建时间 /// diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 02a968824..ad2d93e24 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application public async Task GetTrialReadingCriterionInfo(GetTrialReadingInfoInDto inDto) { GetTrialReadingCriterionInfoOutDto result = new GetTrialReadingCriterionInfoOutDto(); - result.ReadingCriterionPageList = await _readingCriterionPageRepository.Where(x => x.TrialId == inDto.TrialId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + result.ReadingCriterionPageList = await _readingCriterionPageRepository.Where(x => x.TrialId == inDto.TrialId).ProjectTo(_mapper.ConfigurationProvider).OrderBy(x=>x.ShowOrder).ToListAsync(); var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == inDto.TrialId && x.IsConfirm).FirstOrDefaultAsync(); result.ReadingInfoSignTime = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x=>x.ReadingInfoSignTime).FirstOrDefaultAsync(); if (trialCriterion != null) @@ -127,14 +127,10 @@ namespace IRaCIS.Core.Application result.FormType = trialCriterion.FormType; }; - result.TrialQuestionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrial.IsConfirm && x.TrialId == inDto.TrialId&&x.ReadingQuestionCriterionTrialId == result.TrialCriterionId &&x.ReadingCriterionPageId==null) .ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync(); - - - return result; } diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionPage.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionPage.cs index 578aeffae..c0a5d6932 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionPage.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionPage.cs @@ -48,6 +48,11 @@ namespace IRaCIS.Core.Domain.Models /// public bool IsPublicPage { get; set; } = false; + /// + /// 排序 + /// + public int ShowOrder { get; set; } = 0; + public Guid ReadingQuestionCriterionTrialId { get; set; }