diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index bf800cacb..5204fd502 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -49,6 +49,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public ArbitrationRule ArbitrationRule { get; set; } } + public class VerifyeCriterionNeedSynchronizeInDto + { + public Guid TrialCriterionId { get; set; } + } public class GetTrialJudgyInfoInDto { [NotDefault] diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs index b4a0949d6..cb53d2263 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs @@ -98,6 +98,33 @@ namespace IRaCIS.Application.Services } + /// + /// 验证是否要同步标准 + /// + /// + /// + [HttpPost] + public async Task VerifyeCriterionNeedSynchronize(VerifyeCriterionNeedSynchronizeInDto inDto) + { + var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialCriterionId).FirstNotNullAsync(); + if (trialCriterion.ReadingQuestionCriterionSystemId != null) + { + var systemCriterion = await _readingQuestionCriterionSystemRepository.Where(x => x.Id == trialCriterion.ReadingQuestionCriterionSystemId).FirstNotNullAsync(); + if (systemCriterion.ConfirmTime > trialCriterion.SynchronizeTime) + { + return true; + } + else + { + return false; + } + + } + else + { + return false; + } + } /// /// 同步标准到项目新(2022-08-10) @@ -151,6 +178,10 @@ namespace IRaCIS.Application.Services await _readingQuestionTrialRepository.BatchDeleteNoTrackingAsync(x => x.ReadingQuestionCriterionTrialId == trialCriterionId); await _readingQuestionTrialRepository.AddRangeAsync(needAddDatas); + await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(trialCriterionId, x => new ReadingQuestionCriterionTrial() + { + SynchronizeTime = DateTime.Now + }); await _readingQuestionTrialRepository.SaveChangesAsync(); } } @@ -282,7 +313,13 @@ namespace IRaCIS.Application.Services if (inDto.IsCompleteConfig) { await SynchronizeSystemCriterion(inDto.Id); - }else + + await _readingQuestionCriterionSystemRepository.UpdatePartialFromQueryAsync(inDto.Id, x => new ReadingQuestionCriterionSystem() + { + ConfirmTime = DateTime.Now + }) ; + } + else { await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(x=>x.ReadingQuestionCriterionSystemId== inDto.Id, x => new ReadingQuestionCriterionTrial() { diff --git a/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionSystem.cs index ff48094de..00d0baacd 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionSystem.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionSystem.cs @@ -44,6 +44,11 @@ namespace IRaCIS.Core.Domain.Models /// public DateTime CreateTime { get; set; } + /// + /// 确认时间 + /// + public DateTime ConfirmTime { get; set; } + /// /// 创建人 /// diff --git a/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs index 5c8a06cd8..5f6f20339 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs @@ -87,7 +87,12 @@ namespace IRaCIS.Core.Domain.Models /// /// 是否显示详情 /// - public bool IsShowDetail { get; set; } + public bool IsShowDetail { get; set; } + + /// + /// 同步时间 + /// + public DateTime SynchronizeTime { get; set; } /// /// 项目