From 523f09d8aa4124d6961958bcdbd168183a1f49c9 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 29 Dec 2022 09:26:17 +0800 Subject: [PATCH] =?UTF-8?q?=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 | 7 +++ .../Service/Common/DictionaryService.cs | 47 +++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs index 08ccd2e0c..4c278ddcb 100644 --- a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs +++ b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs @@ -78,6 +78,13 @@ namespace IRaCIS.Application.Contracts } + public class GetCriterionDictionaryInDto + { + public Guid? ReadingCriterionId { get; set; } + + public string DictionaryCode { get; set; } + } + public class GetBasicDataAllSelectInDto { public Guid? TrialReadingCriterionId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs index fa1dc6ef7..0d85cfa2e 100644 --- a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs +++ b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs @@ -238,6 +238,53 @@ namespace IRaCIS.Application.Services return dictionaryList; } + /// + /// 获取标准指定字典 + /// + /// + /// + [AllowAnonymous] + [HttpPost] + public async Task>> GetCriterionDictionary(GetCriterionDictionaryInDto inDto) + { + var searchList = await _dicRepository.Where(t => t.ParentId != null && t.IsEnable) + .WhereIf(!inDto.DictionaryCode.IsNullOrEmpty(), x =>x.Parent.Code==inDto.DictionaryCode) + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + var result = searchList.GroupBy(t => t.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList()); + if (inDto.ReadingCriterionId == null) + { + return result; + } + else + { + var criterionDictionList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.ReadingCriterionId).Select(x => new BasicDicSelect() + { + ChildGroup = x.Dictionary.ChildGroup, + Code = x.Dictionary.Code, + DataTypeEnum = x.Dictionary.DataTypeEnum, + ParentChildCodeEnum = x.Dictionary.Parent.ChildCodeEnum, + ShowOrder = x.Dictionary.ShowOrder, + ParentCode = x.ParentCode, + Id = x.DictionaryId, + ParentId = x.Dictionary.ParentId, + Value = x.Dictionary.Value, + ValueCN = x.Dictionary.ValueCN + + }).ToListAsync(); + + 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; + } + + } + /// /// 获取所有下拉框 枚举 bool 数据