From a9c9486162b38ebc50765786a48e56107bfdbbe0 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 31 Oct 2024 15:54:54 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0QC=20=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E8=B4=A8=E7=96=91=E8=A7=A6=E5=8F=91=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SubjectVisitStateChangedEvent.cs | 6 +++-
.../Interceptor/AddDomainExt.cs | 32 ++++++++++++++++---
2 files changed, 33 insertions(+), 5 deletions(-)
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;