From 00075df450e8fa1afa559ecaae48269a97fade25 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 23 Dec 2022 21:36:24 +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 --- .../Triggers/SubjectVisitFinalVisitTrigger.cs | 117 ++++++++++++------ 1 file changed, 77 insertions(+), 40 deletions(-) diff --git a/IRaCIS.Core.Application/Triggers/SubjectVisitFinalVisitTrigger.cs b/IRaCIS.Core.Application/Triggers/SubjectVisitFinalVisitTrigger.cs index 5187469b0..753201768 100644 --- a/IRaCIS.Core.Application/Triggers/SubjectVisitFinalVisitTrigger.cs +++ b/IRaCIS.Core.Application/Triggers/SubjectVisitFinalVisitTrigger.cs @@ -1,4 +1,6 @@ using EntityFrameworkCore.Triggered; +using IRaCIS.Core.Application.Service; +using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure; using MassTransit; @@ -15,17 +17,23 @@ namespace IRaCIS.Core.Application.Triggers private readonly IRepository _readingPeriodPlanRepository; private readonly IRepository _readModuleRepository; private readonly IRepository _subjectRepository; + private readonly IRepository _visitTaskRepository; + private readonly IVisitTaskHelpeService _ivisitTaskHelpeService; private readonly IRepository _repository; public SubjectVisitFinalVisitTrigger(IRepository subjectVisitRepository, IRepository readingPeriodSetRepository, IRepository readingPeriodPlanRepository, + IRepository visitTaskRepository, + IVisitTaskHelpeService visitTaskHelpeService, IRepository readModuleRepository, IRepository subjectRepository, IRepository repository) { _subjectVisitRepository = subjectVisitRepository; this._readingPeriodSetRepository = readingPeriodSetRepository; + this._visitTaskRepository = visitTaskRepository; + this._ivisitTaskHelpeService = visitTaskHelpeService; this._readingPeriodPlanRepository = readingPeriodPlanRepository; this._readModuleRepository = readModuleRepository; _subjectRepository = subjectRepository; @@ -114,56 +122,85 @@ namespace IRaCIS.Core.Application.Triggers var criterionList = await _repository.Where(x => x.TrialId == trialId && x.IsConfirm && x.IsReadingPeriod && x.IsReadingTaskViewInOrder).ToListAsync(); foreach (var item in criterionList) { - ReadingPeriodSet? readingPeriodSet = await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == trialId && x.IsGlobal && x.TrialReadingCriterionId == item.Id); + //ReadingPeriodSet? readingPeriodSet = await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == trialId && x.IsGlobal && x.TrialReadingCriterionId == item.Id); + + //if (readingPeriodSet == null) + //{ + // readingPeriodSet = new ReadingPeriodSet() + // { + // Id = NewId.NextGuid(), + // ReadingScope = ReadingScopeEnum.All, + // ReadingSetType = ReadingSetType.ImageReading, + // IsTakeEffect = ReadingPeriodStatus.TakeEffect, + // ReadingPeriodName = "Global", + // TrialId = trialId, + // EffectOfTime = DateTime.Now, + // IsGlobal = true, + // TrialReadingCriterionId = item.Id, + // }; + + // await _readingPeriodSetRepository.AddAsync(readingPeriodSet); + + //} + + //await _readingPeriodPlanRepository.AddAsync(new ReadingPeriodPlan() + //{ + // SubjectVisitId = subjectVisitId, + // ReadingPeriodSetId = readingPeriodSet.Id, + //}); + + + + var readModule = await _readModuleRepository.Where(x => x.ReadingSetType == ReadingSetType.ImageReading && x.TrialReadingCriterionId == item.Id && x.SubjectVisitId == subjectVisitId).FirstOrDefaultAsync(); + + if (readModule == null) - if (readingPeriodSet == null) { - readingPeriodSet = new ReadingPeriodSet() + + ReadModule newReadModule = new ReadModule() { - Id = NewId.NextGuid(), - ReadingScope = ReadingScopeEnum.All, + //ReadingPeriodSetId = readingPeriodSet.Id, + Id= NewId.NextGuid(), + IsUrgent = subjectVisit.IsUrgent, + SubjectVisitId = subjectVisitId, + ReadingStatus = ReadingStatusEnum.TaskAllocate, + SubjectId = subjectVisit.SubjectId, + ModuleName = $"G-{subjectVisit.VisitName}",// 全局阅片 ReadingSetType = ReadingSetType.ImageReading, - IsTakeEffect = ReadingPeriodStatus.TakeEffect, - ReadingPeriodName = "Global", - TrialId = trialId, - EffectOfTime = DateTime.Now, - IsGlobal = true, + ModuleType = ModuleTypeEnum.Global, + TrialId = subjectVisit.TrialId, + //VisitNum = subjectVisit.VisitNum, TrialReadingCriterionId = item.Id, }; - await _readingPeriodSetRepository.AddAsync(readingPeriodSet); + await _readModuleRepository.AddAsync(newReadModule); + var visitTask = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == item.Id && x.SourceSubjectVisitId == subjectVisitId && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned).FirstOrDefaultAsync(); + + if (visitTask != null) + { + await _ivisitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand() + { + OriginalVisitId = visitTask.Id, + ReadingCategory = GenerateTaskCategory.Global, + TrialId = subjectVisit.TrialId, + + ReadingGenerataTaskList = new List() { + + new ReadingGenerataTaskDTO (){ + IsUrgent=subjectVisit.IsUrgent, + ReadingCategory=ReadingCategory.Global, + ReadingName=newReadModule.ModuleName, + ReadModuleId=newReadModule.Id, + SubjectId=subjectVisit.SubjectId, + VisitNum=visitTask.VisitTaskNum, + }, + + }, + }); + } } - await _readingPeriodPlanRepository.AddAsync(new ReadingPeriodPlan() - { - SubjectVisitId = subjectVisitId, - ReadingPeriodSetId = readingPeriodSet.Id, - }); - - - await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.ReadingSetType == ReadingSetType.ImageReading && x.TrialReadingCriterionId == item.Id && x.SubjectVisitId == subjectVisitId, x=> new ReadModule() { - - IsDeleted = true - }); - - await _readModuleRepository.AddAsync(new ReadModule() - { - ReadingPeriodSetId = readingPeriodSet.Id, - IsUrgent = subjectVisit.IsUrgent, - SubjectVisitId = subjectVisitId, - ReadingStatus = ReadingStatusEnum.TaskAllocate, - SubjectId = subjectVisit.SubjectId, - ModuleName = "Global",// 全局阅片 - ReadingSetType = ReadingSetType.ImageReading, - ModuleType = ModuleTypeEnum.Global, - TrialId = subjectVisit.TrialId, - //VisitNum = subjectVisit.VisitNum, - TrialReadingCriterionId = item.Id, - }); - - - } await _readModuleRepository.SaveChangesAsync(); }