增加系统文档导出
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
|
||||
|
||||
using IRaCIS.Core.Domain;
|
||||
using IRaCIS.Core.Domain._DomainEvent;
|
||||
using IRaCIS.Core.Domain.BaseModel;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Infrastructure.Extention;
|
||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||
using Newtonsoft.Json;
|
||||
using Org.BouncyCastle.Asn1.Cmp;
|
||||
|
||||
namespace IRaCIS.Core.Infra.EFCore;
|
||||
|
||||
@@ -73,6 +75,8 @@ public static class DBContext_Ext
|
||||
var originCheckState = entry.Property(p => p.CheckState).OriginalValue;
|
||||
var originCurrentActionUserId = entry.Property(p => p.CurrentActionUserId).OriginalValue;
|
||||
|
||||
var originRequestBackState = entry.Property(p => p.RequestBackState).OriginalValue;
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if ((subjectVisit.IsEnrollmentConfirm || subjectVisit.PDState == PDStateEnum.PDProgress))
|
||||
{
|
||||
@@ -96,7 +100,7 @@ public static class DBContext_Ext
|
||||
{
|
||||
var businessEnum = subjectVisit.IsEnrollmentConfirm ? EmailBusinessScenario.EligibilityVerification_PendingImageQC : EmailBusinessScenario.PDVerification_PendingImageQC;
|
||||
|
||||
var delaySeconds = dbContext.TrialEmailNoticeConfig.Where(t => t.TrialId==subjectVisit.TrialId && t.BusinessScenarioEnum == businessEnum)
|
||||
var delaySeconds = dbContext.TrialEmailNoticeConfig.Where(t => t.TrialId == subjectVisit.TrialId && t.BusinessScenarioEnum == businessEnum)
|
||||
.Select(t => t.EmailDelaySeconds).FirstOrDefault();
|
||||
|
||||
Console.WriteLine("qc领取任务:" + DateTime.Now.ToShortTimeString() + $"延时{delaySeconds}");
|
||||
@@ -108,17 +112,41 @@ public static class DBContext_Ext
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 重传影像
|
||||
|
||||
if ((originRequestBackState == RequestBackStateEnum.NotRequest && subjectVisit.RequestBackState == RequestBackStateEnum.CRC_RequestBack) ||
|
||||
(originRequestBackState == RequestBackStateEnum.CRC_RequestBack && subjectVisit.RequestBackState != RequestBackStateEnum.CRC_RequestBack))
|
||||
{
|
||||
subjectVisit.AddDomainEvent(new CheckReuploadEvent() { RequestBackState = subjectVisit.RequestBackState, SubjectVisitId = subjectVisit.Id });
|
||||
}
|
||||
|
||||
//PM 直接退回任务
|
||||
|
||||
if ((originSubmitState == SubmitStateEnum.Submitted && subjectVisit.SubmitState == SubmitStateEnum.ToSubmit) &&
|
||||
(originAuditState == AuditStateEnum.QCPassed && subjectVisit.AuditState == AuditStateEnum.None) &&
|
||||
(originCheckState == CheckStateEnum.CVPassed && subjectVisit.CheckState == CheckStateEnum.None))
|
||||
{
|
||||
subjectVisit.AddDomainEvent(new UnReadVisitTaskReReadingApproval() { SubjectVisitId = subjectVisit.Id });
|
||||
}
|
||||
|
||||
|
||||
if (subjectVisit.DomainEvents.Count > 0)
|
||||
{
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(GetStoreEvents(subjectVisit.DomainEvents));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
foreach (var entry in changeTracker.Entries<QCChallenge>())
|
||||
{
|
||||
var qCChallenge = entry.Entity;
|
||||
|
||||
var originReuploadEnum = entry.Property(p => p.ReuploadEnum).OriginalValue;
|
||||
|
||||
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();
|
||||
|
||||
@@ -128,11 +156,36 @@ public static class DBContext_Ext
|
||||
|
||||
if (entry.State == EntityState.Added)
|
||||
{
|
||||
qCChallenge.AddDomainEvent(new QCRepliedQCChallengeEvent() { IsPd = findSubjectVisit.PDState == PDStateEnum.PDProgress,
|
||||
QCChallengeId = qCChallenge.Id, SubjectVisitId = findSubjectVisit.Id, TrialId = findSubjectVisit.TrialId });
|
||||
qCChallenge.AddDomainEvent(new QCRepliedQCChallengeEvent()
|
||||
{
|
||||
IsPd = findSubjectVisit.PDState == PDStateEnum.PDProgress,
|
||||
QCChallengeId = qCChallenge.Id,
|
||||
SubjectVisitId = findSubjectVisit.Id,
|
||||
TrialId = findSubjectVisit.TrialId
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//重传影像
|
||||
|
||||
if (
|
||||
//CRC 申请
|
||||
(originReuploadEnum == QCChanllengeReuploadEnum.None && qCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.CRCRequestReupload)
|
||||
||
|
||||
//同意申请
|
||||
(originReuploadEnum == QCChanllengeReuploadEnum.CRCRequestReupload && qCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload))
|
||||
{
|
||||
qCChallenge.AddDomainEvent(new QCChanllengeReuploadEvent()
|
||||
{
|
||||
SubjectVisitId = findSubjectVisit.Id,
|
||||
ReuploadEnum = qCChallenge.ReuploadEnum
|
||||
});
|
||||
}
|
||||
|
||||
if (qCChallenge.DomainEvents.Count > 0)
|
||||
{
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(GetStoreEvents(qCChallenge.DomainEvents));
|
||||
}
|
||||
@@ -303,14 +356,101 @@ public static class DBContext_Ext
|
||||
|
||||
visitTask.AddDomainEvent(new UrgentApplyedReReading() { VisitTaskId = visitTask.Id, ReReadingApplyState = visitTask.ReReadingApplyState });
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(GetStoreEvents(visitTask.DomainEvents));
|
||||
}
|
||||
else
|
||||
{
|
||||
visitTask.AddDomainEvent(new HaveReadVisitTaskReReading() { VisitTaskId = visitTask.Id, ReReadingApplyState = visitTask.ReReadingApplyState });
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ((originReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed || originReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed) &&
|
||||
(visitTask.ReReadingApplyState == ReReadingApplyState.Agree || visitTask.ReReadingApplyState == ReReadingApplyState.Reject))
|
||||
{
|
||||
visitTask.AddDomainEvent(new HaveReadVisitTaskReReading() { VisitTaskId = visitTask.Id, ReReadingApplyState = visitTask.ReReadingApplyState });
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (visitTask.DomainEvents.Count > 0)
|
||||
{
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(GetStoreEvents(visitTask.DomainEvents));
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 直接申请流程重传
|
||||
|
||||
foreach (var entry in changeTracker.Entries<SubjectVisitImageBackRecord>())
|
||||
{
|
||||
var subjectVisitImageBackRecord = entry.Entity;
|
||||
|
||||
var originApplyUserRole = entry.Property(p => p.ApplyUserRole).OriginalValue;
|
||||
var originImageBackState = entry.Property(p => p.ImageBackState).OriginalValue;
|
||||
|
||||
|
||||
if (
|
||||
//申请的时候
|
||||
(subjectVisitImageBackRecord.ImageBackState == ImageBackStateEnum.None &&
|
||||
(subjectVisitImageBackRecord.ApplyUserRole == ImageBackApplyEnum.IQCRequestBack || subjectVisitImageBackRecord.ApplyUserRole == ImageBackApplyEnum.CRCRequestBack)) ||
|
||||
//审核完成的时候
|
||||
(originImageBackState == ImageBackStateEnum.None && subjectVisitImageBackRecord.ImageBackState != ImageBackStateEnum.None)
|
||||
)
|
||||
{
|
||||
|
||||
subjectVisitImageBackRecord.AddDomainEvent(new DirectApplyReupdloadEvent()
|
||||
{
|
||||
SubjectVisitId = subjectVisitImageBackRecord.SubjectVisitId,
|
||||
ApplyUserRole = subjectVisitImageBackRecord.ApplyUserRole,
|
||||
ImageBackState = subjectVisitImageBackRecord.ImageBackState
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (subjectVisitImageBackRecord.DomainEvents.Count > 0)
|
||||
{
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(GetStoreEvents(subjectVisitImageBackRecord.DomainEvents));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 阅片人筛选
|
||||
|
||||
var enrollIdList = new List<Guid>();
|
||||
Enroll lastEnroll = null;
|
||||
foreach (var entry in changeTracker.Entries<Enroll>())
|
||||
{
|
||||
var enroll = entry.Entity;
|
||||
|
||||
var originEnrollStatus = entry.Property(p => p.EnrollStatus).OriginalValue;
|
||||
|
||||
if (originEnrollStatus == EnrollStatus.HasCommittedToCRO && enroll.EnrollStatus == EnrollStatus.InviteIntoGroup)
|
||||
{
|
||||
enrollIdList.Add(enroll.Id);
|
||||
|
||||
lastEnroll = enroll;
|
||||
}
|
||||
}
|
||||
|
||||
if (enrollIdList.Count > 0)
|
||||
{
|
||||
lastEnroll.AddDomainEvent(new ReviewerSPMApprovedEvent() { EnrollIdList = enrollIdList });
|
||||
|
||||
eventStoreList.AddRange(GetStoreEvents(lastEnroll.DomainEvents));
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
//跟随事务一起保存数据库
|
||||
dbContext.EventStoreRecord.AddRange(eventStoreList);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user