From facd9e0e5f3b6bd037d969e9255e3eb82c5d03a8 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 5 Jun 2024 13:49:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E9=83=A8?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrialSiteUser/TrialConfigService.cs | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 85adf427d..2a12509de 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -20,6 +20,7 @@ using IRaCIS.Core.Application.Service; using DocumentFormat.OpenXml.Office.CustomUI; using IRaCIS.Core.Domain.Models; using IRaCIS.Application.Contracts; +using SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors; namespace IRaCIS.Core.Application { @@ -946,10 +947,13 @@ namespace IRaCIS.Core.Application var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException(); - trialConfig.Modalitys = $"|{String.Join('|', trialConfig.ModalityList)}|"; + trialConfig.Modalitys = $"{String.Join('|', trialConfig.ModalityList)}"; _mapper.Map(trialConfig, trialInfo); trialInfo.UpdateTime = DateTime.Now; + + await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trialConfig.TrialId && t.IsSigned == false, u => new ReadingQuestionCriterionTrial() { CriterionModalitys = trialConfig.Modalitys }); + return ResponseOutput.Ok(await _repository.SaveChangesAsync()); } @@ -1034,6 +1038,7 @@ namespace IRaCIS.Core.Application if (trialConfig.TrialCriterionIds.Contains(item.Id)) { item.IsConfirm = true; + item.CriterionModalitys = trialInfo.Modalitys; } else { @@ -1310,7 +1315,7 @@ namespace IRaCIS.Core.Application public async Task>> GetTrialBodyPartList(Guid trialId) { - var list = await _trialRepository.Where(t => t.Id == trialId).SelectMany(t => t.TrialBodyPartList).Select(t=>new TrialBodyPartView() { Code=t.Code,Name=_userInfo.IsEn_Us?t.Name:t.NameCN}).ToListAsync(); + var list = await _trialRepository.Where(t => t.Id == trialId).SelectMany(t => t.TrialBodyPartList).Select(t => new TrialBodyPartView() { Code = t.Code, Name = _userInfo.IsEn_Us ? t.Name : t.NameCN }).ToListAsync(); return ResponseOutput.Ok(list); } @@ -1318,10 +1323,24 @@ namespace IRaCIS.Core.Application public async Task AddOrUpdateTrialBodyPart(AddOrUpdateTrialBodyPartCommand incommand) { + var codeList = await _repository.Where(t => t.TrialId == incommand.TrialId).Select(t => t.Code).ToListAsync(); + + + var newString = incommand.Code; + // 检查字符串是否在集合中存在,如果存在,则在后面加上一个数字 + int count = 1; + while (codeList.Contains(newString)) + { + newString = $"{newString}{count}"; + count++; + } + + incommand.Code = newString; + var exp = new EntityVerifyExp() { - VerifyExp = t => (t.Name.Equals(incommand.Name) || t.NameCN.Equals(incommand.NameCN)), - + VerifyExp = t => (_userInfo.IsEn_Us ? t.Name.Equals(incommand.Name) : t.NameCN.Equals(incommand.NameCN)) && t.TrialId == incommand.TrialId, + VerifyMsg = _localizer["TrialBodyPart_DupName"] }; @@ -1329,7 +1348,7 @@ namespace IRaCIS.Core.Application - return ResponseOutput.Ok(cro.Id.ToString(),ApiResponseCodeEnum.NeedTips); + return ResponseOutput.Ok(cro.Id.ToString(), ApiResponseCodeEnum.NeedTips); } }