diff --git a/IRaCIS.Core.Domain/_DomainEvent/SubjectVisitStateChangedEvent.cs b/IRaCIS.Core.Domain/_DomainEvent/SubjectVisitStateChangedEvent.cs index cb0648178..e99a56a09 100644 --- a/IRaCIS.Core.Domain/_DomainEvent/SubjectVisitStateChangedEvent.cs +++ b/IRaCIS.Core.Domain/_DomainEvent/SubjectVisitStateChangedEvent.cs @@ -43,7 +43,9 @@ public class QCRepliedQCChallengeEvent : DomainEvent public bool IsPd { get; set; } - public Guid QCChallengeDialogId { get; set; } + public Guid? QCChallengeDialogId { get; set; } + + public Guid? QCChallengeId { get; set; } public Guid TrialId { get; set; } @@ -52,6 +54,8 @@ public class QCRepliedQCChallengeEvent : DomainEvent } + + /// /// CRC 回复一致性核查质疑 通知PM /// diff --git a/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs b/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs index e7b28a8e2..774addf14 100644 --- a/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs +++ b/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs @@ -82,7 +82,7 @@ public static class DBContext_Ext originAuditState == AuditStateEnum.None && subjectVisit.AuditState == AuditStateEnum.ToAudit ) { - subjectVisit.AddDomainEvent(new CRCSubmitedAndQCToAuditEvent() { SubjectVisitId = subjectVisit.Id,IsPd= subjectVisit.PDState == PDStateEnum.PDProgress }); + subjectVisit.AddDomainEvent(new CRCSubmitedAndQCToAuditEvent() { SubjectVisitId = subjectVisit.Id, IsPd = subjectVisit.PDState == PDStateEnum.PDProgress }); } //一致性核查通知PM发送邮件 @@ -96,10 +96,10 @@ public static class DBContext_Ext { var businessEnum = subjectVisit.IsEnrollmentConfirm ? EmailBusinessScenario.EligibilityVerification_PendingImageQC : EmailBusinessScenario.PDVerification_PendingImageQC; - var delaySeconds = dbContext.TrialEmailNoticeConfig.Where(t => t.BusinessScenarioEnum == businessEnum) - .Select(t => t.EmailDelaySeconds).FirstOrDefault(); + var delaySeconds = dbContext.TrialEmailNoticeConfig.Where(t => t.BusinessScenarioEnum == businessEnum) + .Select(t => t.EmailDelaySeconds).FirstOrDefault(); - subjectVisit.AddDomainEvent(new QCClaimTaskEvent() { IsPd = subjectVisit.PDState == PDStateEnum.PDProgress, SubjectVisitId = subjectVisit.Id, DelaySeconds= delaySeconds, CurrentActionUserId = (Guid)subjectVisit.CurrentActionUserId }); + subjectVisit.AddDomainEvent(new QCClaimTaskEvent() { IsPd = subjectVisit.PDState == PDStateEnum.PDProgress, SubjectVisitId = subjectVisit.Id, DelaySeconds = delaySeconds, CurrentActionUserId = (Guid)subjectVisit.CurrentActionUserId }); } @@ -110,6 +110,30 @@ public static class DBContext_Ext } + foreach (var entry in changeTracker.Entries()) + { + var qCChallenge = entry.Entity; + + var findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == qCChallenge.SubjectVisitId) + .Select(t => new { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState, t.Id, t.TrialId }).FirstOrDefault().IfNullThrowException(); + + //入组或者PD 才执行下面的逻辑 + if ((findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress)) + { + + if (entry.State == EntityState.Added) + { + qCChallenge.AddDomainEvent(new QCRepliedQCChallengeEvent() { IsPd = findSubjectVisit.PDState == PDStateEnum.PDProgress, + QCChallengeId = qCChallenge.Id, SubjectVisitId = findSubjectVisit.Id, TrialId = findSubjectVisit.TrialId }); + + } + + //添加进记录 + eventStoreList.AddRange(GetStoreEvents(qCChallenge.DomainEvents)); + } + } + + foreach (var entry in changeTracker.Entries()) { var qCChallengeDialog = entry.Entity;