diff --git a/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs b/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs index a2c8e6bb6..895102dd1 100644 --- a/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs +++ b/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs @@ -108,7 +108,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers dbSV.CheckState = CheckStateEnum.CVIng; dbSV.ForwardState = ForwardStateEnum.ToForward; dbSV.CheckChallengeState = CheckChanllengeTypeEnum.PMWaitCRCReply; - dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt }); + dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,CreateTime=DateTime.Now }); } else { @@ -125,7 +125,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers dbSV.CheckResult = "核对EDC数据,完全一致"; dbSV.ManualPassReason = "自动核查通过"; dbSV.RequestBackState = dbSV.RequestBackState== RequestBackStateEnum.CRC_RequestBack? RequestBackStateEnum.PM_NotAgree: RequestBackStateEnum.NotRequest; - dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt }); + dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt, CreateTime = DateTime.Now }); } else { @@ -142,7 +142,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers dbSV.CheckChallengeState = CheckChanllengeTypeEnum.PMWaitCRCReply; //讲核查结果发送消息给CRC - dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt }); + dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt, CreateTime = DateTime.Now }); } } diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index ff21905c1..b3d0c4214 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -574,6 +574,42 @@ namespace IRaCIS.Core.Infra.EFCore.Common //} #endregion + + + //一致性核查 + foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(CheckChallengeDialog))) + { + type = _userInfo.UserTypeShortName + "/" + type; + var entity = item.Entity as CheckChallengeDialog; + var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync(); + subjectvisit = subjectvisit ?? new SubjectVisit(); + var reason = string.Empty; + + switch (GetRequestUrl().ToLower()) + { + case "qcoperation/closecheckchallenge": + reason = entity.TalkContent.Substring(entity.TalkContent.LastIndexOf(':') + 1); + break; + } + await InsertInspection(item, type, x => new DataInspection() + { + GeneralId = entity.SubjectVisitId, + TrialId = subjectvisit.TrialId, + SubjectVisitId = x.SubjectVisitId, + SiteId = subjectvisit.SiteId, + SubjectId = subjectvisit.SubjectId, + SubjectVisitName = subjectvisit.VisitName, + BlindName = subjectvisit.BlindName, + Reason = reason, + CreateTime=x.CreateTime, + }, new + { + CheckState = subjectvisit.CheckState, + RequestBackState = subjectvisit.RequestBackState, + CheckChallengeState = subjectvisit.CheckChallengeState, + }); + } + // 访视 foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(SubjectVisit))) { @@ -810,7 +846,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common { type = "Add"; var questionids = entitylist.Where(x => x.SubjectVisitId == subjectvisit.Id).Select(x => x.Id).ToList(); - var noupdatedata = _dbContext.TrialQCQuestionAnswer.Where(x => x.SubjectVisitId == subjectvisit.Id && !questionids.Contains(x.Id)).ToList(); + var createUserId = entitylist.Select(x => x.CreateUserId).FirstOrDefault(); + var noupdatedata = _dbContext.TrialQCQuestionAnswer.Where(x => x.CreateUserId== createUserId&& x.SubjectVisitId == subjectvisit.Id && !questionids.Contains(x.Id)).ToList(); entitylist.AddRange(noupdatedata); await AddInspectionRecordAsync(new DataInspection() {