From 552e7a430df9eb934e68621d3d3990bbd6c5a589 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 26 Feb 2024 13:30:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E5=85=B8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Common/DTO/DictionaryModel.cs | 4 +- .../Service/Common/DictionaryService.cs | 52 +++++++++++++++++-- 2 files changed, 52 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs index 0ff1c4cf8..8769f96a6 100644 --- a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs +++ b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs @@ -91,7 +91,9 @@ namespace IRaCIS.Application.Contracts public class GetBasicDataAllSelectInDto { public Guid? TrialReadingCriterionId { get; set; } - } + + public Guid? SystemReadingCriterionId { get; set; } + } public class GetTrialCriterionDictionaryListInDto diff --git a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs index 720fd0c02..ff7a8fe42 100644 --- a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs +++ b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs @@ -23,7 +23,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _systemCriterionDictionaryCodeRepository; private readonly IRepository _trialCriterionDictionaryCodeRepository; private readonly IRepository _readingTrialCriterionDictionaryRepository; - + private readonly IRepository _readingSystemCriterionDictionaryRepository; private readonly IRepository _readingCriterionDictionaryRepository; private readonly IRepository _readingQuestionCriterionSystem; private readonly IRepository _readingQuestionCriterionTrial; @@ -34,6 +34,7 @@ namespace IRaCIS.Application.Services IRepository systemCriterionDictionaryCodeRepository, IRepository trialCriterionDictionaryCodeRepository, IRepository readingTrialCriterionDictionaryRepository, + IRepository readingSystemCriterionDictionaryRepository, IRepository readingCriterionDictionaryRepository, IRepository readingQuestionCriterionSystem, IRepository readingQuestionCriterionTrial @@ -49,6 +50,7 @@ namespace IRaCIS.Application.Services this._systemCriterionDictionaryCodeRepository = systemCriterionDictionaryCodeRepository; this._trialCriterionDictionaryCodeRepository = trialCriterionDictionaryCodeRepository; this._readingTrialCriterionDictionaryRepository = readingTrialCriterionDictionaryRepository; + this._readingSystemCriterionDictionaryRepository = readingSystemCriterionDictionaryRepository; this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository; this._readingQuestionCriterionSystem = readingQuestionCriterionSystem; this._readingQuestionCriterionTrial = readingQuestionCriterionTrial; @@ -462,11 +464,11 @@ namespace IRaCIS.Application.Services var result = searchList.GroupBy(t => t.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList()); - if (inDto.TrialReadingCriterionId == null) + if (inDto.TrialReadingCriterionId == null && inDto.SystemReadingCriterionId == null) { return result; } - else + else if (inDto.TrialReadingCriterionId != null) { var trialCriterionType = await _readingQuestionCriterionTrial.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => x.CriterionType).FirstOrDefaultAsync(); if (trialCriterionType == CriterionType.SelfDefine) @@ -520,8 +522,52 @@ namespace IRaCIS.Application.Services return result; } + else + { + List selectCode = await _systemCriterionDictionaryCodeRepository.Where(x => x.SystemCriterionId == inDto.SystemReadingCriterionId).Select(x => x.Code).ToListAsync(); + var criterionCode = await _dicRepository.Where(x => x.ConfigDictionary.Code == "Reading_eCRF_Criterion").Select(x => x.Code).ToListAsync(); + + + foreach (var item in criterionCode) + { + if (result.ContainsKey(item)) + { + result[item] = new List(); + } + } + + var criterionDictionList = await _readingSystemCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.SystemReadingCriterionId).Select(x => new BasicDicSelect() + { + ChildGroup = x.Dictionary.ChildGroup, + Code = x.Dictionary.Code, + Description = x.Dictionary.Description, + DataTypeEnum = x.Dictionary.DataTypeEnum, + ParentChildCodeEnum = x.Dictionary.Parent.ChildCodeEnum, + ShowOrder = x.Dictionary.ShowOrder, + ParentCode = x.ParentCode, + Id = x.DictionaryId, + CrterionDictionaryGroup = x.CrterionDictionaryGroup, + ParentId = x.Dictionary.ParentId, + Value = x.Dictionary.Value, + ValueCN = x.Dictionary.ValueCN + + }).ToListAsync(); + + criterionDictionList = criterionDictionList.Where(x => selectCode.Contains(x.ParentCode)).ToList(); + + var criterionDic = criterionDictionList.GroupBy(x => x.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList()); + + foreach (var item in criterionDic) + { + result[item.Key] = item.Value; + } + + return result; + + } + } #region 稽查相关