From e9b389ab3ecddad9bcb255cd16c0919cbdef42d5 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 21 Jun 2022 15:31:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BF=E8=A7=86=E8=AE=A1=E5=88=92=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BB=BB=E5=8A=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Visit/VisitPlanService.cs | 41 +++++++++++-------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs index 7f9477f02..8b2f94607 100644 --- a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs +++ b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs @@ -222,6 +222,9 @@ namespace IRaCIS.Application.Services var trial = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId)).IfNullThrowException(); + //确认是否是首次确认 + var initTrialVisitPlanConfirmed = trial.VisitPlanConfirmed; + trial.VisitPlanConfirmed = true; @@ -238,29 +241,35 @@ namespace IRaCIS.Application.Services #region 统一给Subject 增加访视任务 - List subjectVisits = new List(); - - var addvisitStages = await _visitStageRepository.Where(x => !x.IsHaveFirstConfirmed && x.TrialId == trialId).ToListAsync(); - - foreach (var visitPlan in addvisitStages) + //首次确认时 IsHaveFirstConfirmed都为false 不需要给Subject 加访视 + if (initTrialVisitPlanConfirmed) { - foreach (var subject in subjects) + List subjectVisits = new List(); + + var addvisitStages = await _visitStageRepository.Where(x => !x.IsHaveFirstConfirmed && x.TrialId == trialId).ToListAsync(); + + foreach (var visitPlan in addvisitStages) { - var addSv = _mapper.Map(visitPlan); - - addSv.SubjectId = subject.Id; - addSv.TrialId = subject.TrialId; - addSv.SiteId = subject.SiteId; - - if (!await _subjectVisitRepository.AnyAsync(t => t.VisitStageId == visitPlan.Id && t.SubjectId == subject.Id)) + foreach (var subject in subjects) { - subjectVisits.Add(addSv); + var addSv = _mapper.Map(visitPlan); + + addSv.SubjectId = subject.Id; + addSv.TrialId = subject.TrialId; + addSv.SiteId = subject.SiteId; + + //再加一层保险,防止重复 + if (!await _subjectVisitRepository.AnyAsync(t => t.VisitStageId == visitPlan.Id && t.SubjectId == subject.Id)) + { + subjectVisits.Add(addSv); + } } } + + await _subjectVisitRepository.AddRangeAsync(subjectVisits); } - await _subjectVisitRepository.AddRangeAsync(subjectVisits); - + #endregion