diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 35b13af54..2fc59057a 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1096,6 +1096,17 @@ namespace IRaCIS.Core.Application.Service if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.TrialGroupApply && (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM)) { + // 不管有序 无序 都会 回退访视 + if (origenalTask.ReadingCategory == ReadingCategory.Visit) + { + //执行类似一致性核查回退流程 + await VisitBackAsync(origenalTask.SourceSubjectVisitId); + } + else + { + throw new BusinessValidationFailedException("仅允许同意访视类型的任务重阅"); + } + //有序阅片 if (trialConfig.IsReadingTaskViewInOrder) { @@ -1196,12 +1207,7 @@ namespace IRaCIS.Core.Application.Service } - // 不管有序 无序 都会 回退访视 - if (origenalTask.ReadingCategory == ReadingCategory.Visit) - { - //执行类似一致性核查回退流程 - await VisitBackAsync(origenalTask.SourceSubjectVisitId); - } + } //IR申请 PM 审批 注意这里有一致性分析的申请同意 不会回退访视,在此要生成影响的访视任务 @@ -1345,6 +1351,7 @@ namespace IRaCIS.Core.Application.Service if (origenalTask.ReadingCategory == ReadingCategory.Visit && origenalTask.JudgeVisitTaskId != null) { + //裁判任务是否已阅片完成 var judgeTask = await _visitTaskRepository.FirstOrDefaultAsync(t => t.Id == origenalTask.JudgeVisitTaskId); @@ -1360,6 +1367,7 @@ namespace IRaCIS.Core.Application.Service } + // 不管是访视还是裁判 都会立马产生的新任务并分配出去 await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() { @@ -1443,7 +1451,7 @@ namespace IRaCIS.Core.Application.Service #endregion - + //有序 if (trialConfig.IsReadingTaskViewInOrder) @@ -1451,7 +1459,7 @@ namespace IRaCIS.Core.Application.Service Expression> filterExpression = t => t.TrialId == trialId && t.SubjectId == task.SubjectId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false; - + //另一个阅片人的任务根据任务进度自动进入PM退回或PM申请重阅 filterExpression = filterExpression.And(t => t.VisitTaskNum >= task.VisitTaskNum); @@ -1629,7 +1637,7 @@ namespace IRaCIS.Core.Application.Service // 申请该访视的任务 申请人失效 另外一个人重阅重置或者失效 - var currentVisitList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.ReadingCategory == ReadingCategory.Visit && t.TaskState == TaskState.Effect && t.VisitTaskNum == task.VisitTaskNum,true).ToListAsync(); + var currentVisitList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.ReadingCategory == ReadingCategory.Visit && t.TaskState == TaskState.Effect && t.VisitTaskNum == task.VisitTaskNum, true).ToListAsync(); foreach (var visitTask in currentVisitList) {