From 84b2fc32b2f4b1bf4c702286532f349981711f8b Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 10 Oct 2024 16:50:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=A6=E5=8F=91=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/DTO/EventStoreRecordViewModel.cs | 41 ++++++++++++++ .../Service/Common/EventStoreRecordService.cs | 38 +++++++++++++ .../Interceptor/AddDomainExt.cs | 56 ++++++++++++++----- IRaCIS.Core.Test/IRaCIS.Core.Test.csproj | 4 ++ 4 files changed, 125 insertions(+), 14 deletions(-) create mode 100644 IRaCIS.Core.Application/Service/Common/DTO/EventStoreRecordViewModel.cs create mode 100644 IRaCIS.Core.Application/Service/Common/EventStoreRecordService.cs diff --git a/IRaCIS.Core.Application/Service/Common/DTO/EventStoreRecordViewModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/EventStoreRecordViewModel.cs new file mode 100644 index 000000000..bb8857b47 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Common/DTO/EventStoreRecordViewModel.cs @@ -0,0 +1,41 @@ + +//-------------------------------------------------------------------- +// 此代码由liquid模板自动生成 byzhouhang 20240909 +// 生成时间 2024-10-10 08:28:33Z +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- +using System; +using IRaCIS.Core.Domain.Share; +using System.Collections.Generic; +namespace IRaCIS.Core.Application.ViewModel; + +public class EventStoreRecordView +{ + public Guid? Id { get; set; } + + public string EventData { get; set; } + + public EventStateEnum EventState { get; set; } + + public string EventType { get; set; } + + public DateTime CreateTime { get; set; } + + public DateTime UpdateTime { get; set; } + +} + + + + +public class EventStoreRecordQuery : PageInput +{ + + public EventStateEnum? EventState { get; set; } + + public string? EventType { get; set; } +} + + + + diff --git a/IRaCIS.Core.Application/Service/Common/EventStoreRecordService.cs b/IRaCIS.Core.Application/Service/Common/EventStoreRecordService.cs new file mode 100644 index 000000000..05f06898f --- /dev/null +++ b/IRaCIS.Core.Application/Service/Common/EventStoreRecordService.cs @@ -0,0 +1,38 @@ + +//-------------------------------------------------------------------- +// 此代码由liquid模板自动生成 byzhouhang 20240909 +// 生成时间 2024-10-10 08:28:28Z +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- +using IRaCIS.Core.Domain.Models; +using Microsoft.AspNetCore.Mvc; +using IRaCIS.Core.Application.Interfaces; +using IRaCIS.Core.Application.ViewModel; +using IRaCIS.Core.Infrastructure.Extention; +using System.Threading.Tasks; +using IRaCIS.Core.Infra.EFCore; +namespace IRaCIS.Core.Application.Service; + +[ApiExplorerSettings(GroupName = "Common")] +public class EventStoreRecordService(IRepository _eventStoreRecordRepository) : BaseService +{ + + + [HttpPost] + public async Task> GetEventStoreRecordList(EventStoreRecordQuery inQuery) + { + + var eventStoreRecordQueryable = _eventStoreRecordRepository + .ProjectTo(_mapper.ConfigurationProvider); + + var pageList = await eventStoreRecordQueryable.ToPagedListAsync(inQuery); + + return pageList; + } + + + +} + + + diff --git a/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs b/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs index 9c5d254ec..8cfde6b3d 100644 --- a/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs +++ b/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs @@ -64,11 +64,12 @@ public static class DBContext_Ext { var subjectVisit = entry.Entity; - //跟踪的方式查询 不会查询数据库多次 - var findTrial = dbContext.Trial.Find(subjectVisit.TrialId); + ////跟踪的方式查询 不会查询数据库多次 + //var findTrial = dbContext.Trial.Find(subjectVisit.TrialId); //入组或者PD 才执行下面的逻辑 - if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView) + if (/*findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView && */ + (subjectVisit.IsEnrollmentConfirm || subjectVisit.PDState == PDStateEnum.PDProgress)) { var originSubmitState = entry.Property(p => p.SubmitState).OriginalValue; var originAuditState = entry.Property(p => p.AuditState).OriginalValue; @@ -104,10 +105,10 @@ public static class DBContext_Ext //跟踪的方式查询 不会查询数据库多次 var findSubjectVisit = dbContext.SubjectVisit.Find(qCChallengeDialog.SubjectVisitId); - var findTrial = dbContext.Trial.Find(findSubjectVisit.TrialId); + //var findTrial = dbContext.Trial.Find(findSubjectVisit.TrialId); //入组或者PD 才执行下面的逻辑 - if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView) + if ((findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress)) { //CRC 针对质控质疑进行回复 if (entry.State == EntityState.Added && qCChallengeDialog.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator) @@ -133,10 +134,9 @@ public static class DBContext_Ext //跟踪的方式查询 不会查询数据库多次 var findSubjectVisit = dbContext.SubjectVisit.Find(checkChallengeDialog.SubjectVisitId); - var findTrial = dbContext.Trial.Find(findSubjectVisit.TrialId); //入组或者PD 才执行下面的逻辑 - if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView) + if ((findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress)) { //CRC 针对质控质疑进行回复 if (entry.State == EntityState.Added && checkChallengeDialog.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator) @@ -162,10 +162,21 @@ public static class DBContext_Ext //跟踪的方式查询 不会查询数据库多次 var findVisitTask = dbContext.VisitTask.Find(taskMedicalReview.VisitTaskId); - var findTrial = dbContext.Trial.Find(findVisitTask.TrialId); + + var findSubjectVisit = new SubjectVisit(); + if (findVisitTask.SourceSubjectVisitId != null) + { + findSubjectVisit = dbContext.SubjectVisit.Find(findVisitTask.SourceSubjectVisitId); + } + else + { + var readMoudule = dbContext.ReadModule.Find(findVisitTask.SouceReadModuleId); + findSubjectVisit = dbContext.SubjectVisit.Find(readMoudule.SubjectVisitId); + } + //入组或者PD 才执行下面的逻辑 - if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView) + if (findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress) { if (entry.State == EntityState.Added) @@ -186,10 +197,19 @@ public static class DBContext_Ext //跟踪的方式查询 不会查询数据库多次 var findVisitTask = dbContext.VisitTask.Find(readingMedicalReviewDialog.VisitTaskId); - var findTrial = dbContext.Trial.Find(findVisitTask.TrialId); + var findSubjectVisit = new SubjectVisit(); + if (findVisitTask.SourceSubjectVisitId != null) + { + findSubjectVisit = dbContext.SubjectVisit.Find(findVisitTask.SourceSubjectVisitId); + } + else + { + var readMoudule = dbContext.ReadModule.Find(findVisitTask.SouceReadModuleId); + findSubjectVisit = dbContext.SubjectVisit.Find(readMoudule.SubjectVisitId); + } //入组或者PD 才执行下面的逻辑 - if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView) + if (findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress) { if (entry.State == EntityState.Added && readingMedicalReviewDialog.UserTypeEnumInt == (int)UserTypeEnum.MIM) { @@ -212,12 +232,20 @@ public static class DBContext_Ext { var visitTask = entry.Entity; + var findSubjectVisit = new SubjectVisit(); - //跟踪的方式查询 不会查询数据库多次 - var findTrial = dbContext.Trial.Find(visitTask.TrialId); + if (visitTask.SourceSubjectVisitId != null) + { + findSubjectVisit = dbContext.SubjectVisit.Find(visitTask.SourceSubjectVisitId); + } + else + { + var readMoudule = dbContext.ReadModule.Find(visitTask.SouceReadModuleId); + findSubjectVisit = dbContext.SubjectVisit.Find(readMoudule.SubjectVisitId); + } //入组或者PD 才执行下面的逻辑 - if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView) + if (findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress) { var originReReadingApplyState = entry.Property(p => p.ReReadingApplyState).OriginalValue; diff --git a/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj b/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj index 2bb08de11..54bd36e5d 100644 --- a/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj +++ b/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj @@ -63,4 +63,8 @@ + + + +