diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 19b4bacde..ed0344dd6 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -16120,6 +16120,17 @@ + + + 因为维护状态先后顺序导致 裁判任务关联的 任务上的JudgeVisitTaskId==nulll 在这里需要重新设置下 + + 比如 两个任务产生了裁判,然后其中一个人申请了重阅,影响了裁判,需要清理之前任务的上裁判id (申请重阅,退回,里面分有序,无序,情况太多,所以不在那块逻辑修改,不然得加多个地方处理,在这里统一处理) + 比如: 申请裁判任务重阅,事务里面本来设置了任务上的裁判id,但是因为下面的逻辑,导致设置的值又被清理了,只能重新设置下 + + + + + 因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务 @@ -16140,27 +16151,6 @@ 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果 - - - 因为维护状态先后顺序导致 裁判任务关联的 任务上的JudgeVisitTaskId==nulll 在这里需要重新设置下 - - 比如: 申请裁判任务重阅,事务里面本来设置了任务上的裁判id,但是因为下面的逻辑,导致设置的值又被清理了,只能重新设置下 - - - - - - - - 比如 两个任务产生了裁判,然后其中一个人申请了重阅,影响了裁判,需要清理之前任务的上裁判id - - - 因为申请重阅,退回,里面分有序,无序,情况太多,所以不在那块逻辑修改,不然得加多个地方处理,在这里统一处理 - - - - - 添加访视计划 要给改项目下的所有Subject 添加该访视 diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index 956605827..4f1695a86 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //要根据标准阅片顺序,确定是否查询单个任务的,还是查询所有的 var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId) - .Select(t => new { t.IsReadingTaskViewInOrder }).FirstNotNullAsync(); + .Select(t => new { t.IsReadingTaskViewInOrder, t.Trial.Modalitys }).FirstNotNullAsync(); var subjectCode = string.Empty; var subjectId = inQuery.SubjectId; @@ -217,7 +217,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var list = await query.Where(t => t.SubjectCode == subjectCode).ToListAsync(); - return ResponseOutput.Ok(list); + return ResponseOutput.Ok(list, new { TrialModality = criterionInfo.Modalitys }); } private void SpecialArchiveStudyDeal(TaskStudy study) diff --git a/IRaCIS.Core.Application/Triggers/JudgeVisitTaskTrigger.cs b/IRaCIS.Core.Application/Triggers/AfterSaveTrigger/JudgeVisitTaskTrigger.cs similarity index 59% rename from IRaCIS.Core.Application/Triggers/JudgeVisitTaskTrigger.cs rename to IRaCIS.Core.Application/Triggers/AfterSaveTrigger/JudgeVisitTaskTrigger.cs index e4c907da0..cbade7176 100644 --- a/IRaCIS.Core.Application/Triggers/JudgeVisitTaskTrigger.cs +++ b/IRaCIS.Core.Application/Triggers/AfterSaveTrigger/JudgeVisitTaskTrigger.cs @@ -6,7 +6,7 @@ namespace IRaCIS.Core.Application.Triggers public class JudgeVisitTaskTrigger( IRepository _visitTaskRepository, - IRepository _readingJudgeInfoRepository) : IBeforeSaveTrigger, IAfterSaveTrigger + IRepository _readingJudgeInfoRepository) : IAfterSaveTrigger { @@ -14,6 +14,7 @@ namespace IRaCIS.Core.Application.Triggers /// /// 因为维护状态先后顺序导致 裁判任务关联的 任务上的JudgeVisitTaskId==nulll 在这里需要重新设置下 /// + /// 比如 两个任务产生了裁判,然后其中一个人申请了重阅,影响了裁判,需要清理之前任务的上裁判id (申请重阅,退回,里面分有序,无序,情况太多,所以不在那块逻辑修改,不然得加多个地方处理,在这里统一处理) /// 比如: 申请裁判任务重阅,事务里面本来设置了任务上的裁判id,但是因为下面的逻辑,导致设置的值又被清理了,只能重新设置下 /// /// @@ -23,34 +24,22 @@ namespace IRaCIS.Core.Application.Triggers { var visitTask = context.Entity; //裁判任务维护,当裁判任务受到影响的时候,需要清理任务上关联的裁判任务id - if (context.ChangeType == ChangeType.Added && visitTask.ReadingCategory == ReadingCategory.Judge && visitTask.TaskState == TaskState.Effect) + if (context.ChangeType == ChangeType.Added) { - var find = _readingJudgeInfoRepository.Where(t => t.JudgeTaskId == visitTask.Id).FirstOrDefault(); - - if (find != null) + if (visitTask.ReadingCategory == ReadingCategory.Judge && visitTask.TaskState == TaskState.Effect) { - var ids = new Guid[] { find.TaskIdOne, find.TaskIdTwo }; - await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => ids.Contains(t.Id), u => new VisitTask() { JudgeVisitTaskId = visitTask.Id }); + var find = _readingJudgeInfoRepository.Where(t => t.JudgeTaskId == visitTask.Id).FirstOrDefault(); + + if (find != null) + { + var ids = new Guid[] { find.TaskIdOne, find.TaskIdTwo }; + await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => ids.Contains(t.Id), u => new VisitTask() { JudgeVisitTaskId = visitTask.Id }); + } } } - } - - /// - /// 比如 两个任务产生了裁判,然后其中一个人申请了重阅,影响了裁判,需要清理之前任务的上裁判id - /// - /// - /// 因为申请重阅,退回,里面分有序,无序,情况太多,所以不在那块逻辑修改,不然得加多个地方处理,在这里统一处理 - /// - /// - /// - /// - public async Task BeforeSave(ITriggerContext context, CancellationToken cancellationToken) - { - var visitTask = context.Entity; - //裁判任务维护,当裁判任务受到影响的时候,需要清理任务上关联的裁判任务id - if (context.ChangeType == ChangeType.Modified) + else if (context.ChangeType == ChangeType.Modified) { if (visitTask.ReadingCategory == ReadingCategory.Judge && (visitTask.TaskState == TaskState.Adbandon || visitTask.TaskState == TaskState.HaveReturned)) { @@ -64,5 +53,6 @@ namespace IRaCIS.Core.Application.Triggers } } } + } } \ No newline at end of file