Uat_Study
he 2023-02-14 12:59:36 +08:00
parent ea79b01d4c
commit cb916d5ef1
1 changed files with 102 additions and 24 deletions

View File

@ -480,12 +480,28 @@ namespace IRaCIS.Application.Services
var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).AsNoTracking().FirstNotNullAsync(); var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).AsNoTracking().FirstNotNullAsync();
// 是否是组件一致性
var isGroupAnalysis = false;
// 判断是否是一致性核查产生 // 判断是否是一致性核查产生
if (visitTask.IsAnalysisCreate) if (visitTask.IsAnalysisCreate)
{
if (visitTask.IsSelfAnalysis == true)
{ {
visitTaskids = await _visitTaskRepository.Where(x => x.ArmEnum == visitTask.ArmEnum && x.TaskState == TaskState.Effect && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId visitTaskids = await _visitTaskRepository.Where(x => x.ArmEnum == visitTask.ArmEnum && x.TaskState == TaskState.Effect && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId
&& x.TrialReadingCriterionId == visitTask.TrialReadingCriterionId && x.TrialReadingCriterionId == visitTask.TrialReadingCriterionId
&& x.SouceReadModuleId == visitTask.SouceReadModuleId && x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.Id).ToListAsync(); && x.SouceReadModuleId == visitTask.SouceReadModuleId && x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.Id).ToListAsync();
}
else
{
isGroupAnalysis = true;
visitTaskids = await _visitTaskRepository.Where(x => x.TaskState == TaskState.Effect && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId
&& x.TrialReadingCriterionId == visitTask.TrialReadingCriterionId
&& x.SouceReadModuleId == visitTask.SouceReadModuleId && x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.Id).ToListAsync();
}
} }
else else
@ -499,6 +515,28 @@ namespace IRaCIS.Application.Services
} }
if (!isGroupAnalysis)
{
await VerifyJudgeResult(visitTask, visitTaskids);
}
else
{
foreach (var item in visitTaskids.Where(x=>x!=visitTask.Id))
{
var armEnum = await _visitTaskRepository.Where(x => x.Id == item).Select(x=>x.ArmEnum).FirstNotNullAsync();
await VerifyJudgeResult(visitTask, new List<Guid>() { visitTask.Id, item }, armEnum);
}
}
}
private async Task VerifyJudgeResult(VisitTask visitTask,List<Guid> visitTaskids,Arm? groupArm = null)
{
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == visitTask.TrialReadingCriterionId).Select(x => new var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == visitTask.TrialReadingCriterionId).Select(x => new
{ {
x.IsArbitrationReading, x.IsArbitrationReading,
@ -522,7 +560,7 @@ namespace IRaCIS.Application.Services
// 判断是单访视裁判还是全局访视裁判 // 判断是单访视裁判还是全局访视裁判
// 查找两个 访视的阅片答案 // 查找两个 访视的阅片答案
if (await VerifyIsGlobalVisitTask(visitTaskId)) if (await VerifyIsGlobalVisitTask(visitTask.Id))
{ {
// 找到所有的的任务 // 找到所有的的任务
var GlobalVisitTaskIds = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge var GlobalVisitTaskIds = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge
@ -709,10 +747,30 @@ namespace IRaCIS.Application.Services
{ {
if (visitTask.IsAnalysisCreate) if (visitTask.IsAnalysisCreate)
{ {
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == visitTaskId, x => new VisitTask() if (groupArm == null)
{
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == visitTask.Id, x => new VisitTask()
{ {
IsAnalysisDiffToOriginalData = true IsAnalysisDiffToOriginalData = true
}); });
}
else if (groupArm == Arm.SingleReadingArm || groupArm == Arm.DoubleReadingArm1)
{
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == visitTask.Id, x => new VisitTask()
{
IsAnalysisDiffToOriginalData = true,
IsGroupDiffArm1 = true
});
}
else if (groupArm == Arm.DoubleReadingArm2)
{
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == visitTask.Id, x => new VisitTask()
{
IsAnalysisDiffToOriginalData = true,
IsGroupDiffArm2 = true
});
}
await _visitTaskRepository.SaveChangesAsync(); await _visitTaskRepository.SaveChangesAsync();
} }
@ -743,18 +801,38 @@ namespace IRaCIS.Application.Services
if (visitTask.IsAnalysisCreate) if (visitTask.IsAnalysisCreate)
{ {
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == visitTaskId, x => new VisitTask()
if (groupArm == null)
{
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == visitTask.Id, x => new VisitTask()
{ {
IsAnalysisDiffToOriginalData = false IsAnalysisDiffToOriginalData = false
}); });
}
else if (groupArm == Arm.SingleReadingArm || groupArm == Arm.DoubleReadingArm1)
{
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == visitTask.Id, x => new VisitTask()
{
IsAnalysisDiffToOriginalData = false,
IsGroupDiffArm1 = false
});
}
else if (groupArm == Arm.DoubleReadingArm2)
{
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == visitTask.Id, x => new VisitTask()
{
IsAnalysisDiffToOriginalData = false,
IsGroupDiffArm2 = false
});
}
await _visitTaskRepository.SaveChangesAsync(); await _visitTaskRepository.SaveChangesAsync();
} }
} }
} }
/// <summary> /// <summary>
/// 计算返回的结果 为True表示不相等 /// 计算返回的结果 为True表示不相等
/// </summary> /// </summary>