Uat_Study
parent
ea79b01d4c
commit
cb916d5ef1
|
@ -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
|
||||||
|
@ -536,7 +574,7 @@ namespace IRaCIS.Application.Services
|
||||||
join question in _readingQuestionTrialRepository.Where(x => x.IsJudgeQuestion) on new { ReadingQuestionTrialId = questionAnswer.ReadingQuestionTrialId } equals new { ReadingQuestionTrialId = question.Id }
|
join question in _readingQuestionTrialRepository.Where(x => x.IsJudgeQuestion) on new { ReadingQuestionTrialId = questionAnswer.ReadingQuestionTrialId } equals new { ReadingQuestionTrialId = question.Id }
|
||||||
select new TaskAnswerDto()
|
select new TaskAnswerDto()
|
||||||
{
|
{
|
||||||
VisitTaskNum=questionAnswer.VisitTask.VisitTaskNum,
|
VisitTaskNum = questionAnswer.VisitTask.VisitTaskNum,
|
||||||
Answer = questionAnswer.Answer,
|
Answer = questionAnswer.Answer,
|
||||||
AnswerGroup = question.AnswerGroup,
|
AnswerGroup = question.AnswerGroup,
|
||||||
AnswerCombination = question.AnswerCombination,
|
AnswerCombination = question.AnswerCombination,
|
||||||
|
@ -550,7 +588,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
foreach (var item in taskNums)
|
foreach (var item in taskNums)
|
||||||
{
|
{
|
||||||
List<GroupTaskAnswerDto> groupTasks = globalVisitAnswerlist.Where(x=>x.VisitTaskNum==item).GroupBy(x => new { x.QuestionId, x.AnswerGroup, x.JudgeType, x.AnswerCombination }).Select(x => new GroupTaskAnswerDto
|
List<GroupTaskAnswerDto> groupTasks = globalVisitAnswerlist.Where(x => x.VisitTaskNum == item).GroupBy(x => new { x.QuestionId, x.AnswerGroup, x.JudgeType, x.AnswerCombination }).Select(x => new GroupTaskAnswerDto
|
||||||
{
|
{
|
||||||
QuestionId = x.Key.QuestionId,
|
QuestionId = x.Key.QuestionId,
|
||||||
AnswerGroup = x.Key.AnswerGroup,
|
AnswerGroup = x.Key.AnswerGroup,
|
||||||
|
@ -562,7 +600,7 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(!criterionInfo.IsReadingPeriod)
|
else if (!criterionInfo.IsReadingPeriod)
|
||||||
{
|
{
|
||||||
var query = from questionAnswet in _readingTaskQuestionAnswerRepository.Where(x => visitTaskids.Contains(x.VisitTaskId))
|
var query = from questionAnswet in _readingTaskQuestionAnswerRepository.Where(x => visitTaskids.Contains(x.VisitTaskId))
|
||||||
join question in _readingQuestionTrialRepository.Where(x => x.IsJudgeQuestion) on new { ReadingQuestionTrialId = questionAnswet.ReadingQuestionTrialId } equals new { ReadingQuestionTrialId = question.Id }
|
join question in _readingQuestionTrialRepository.Where(x => x.IsJudgeQuestion) on new { ReadingQuestionTrialId = questionAnswet.ReadingQuestionTrialId } equals new { ReadingQuestionTrialId = question.Id }
|
||||||
|
@ -621,8 +659,8 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var newlist = item.AfterQuestionList.Where(x => x.QuestionId != null&&x.IsJudgeQuestion).ToList().Union(
|
var newlist = item.AfterQuestionList.Where(x => x.QuestionId != null && x.IsJudgeQuestion).ToList().Union(
|
||||||
twoItem.AfterQuestionList.Where(x => x.QuestionId != null&&x.IsJudgeQuestion).ToList()
|
twoItem.AfterQuestionList.Where(x => x.QuestionId != null && x.IsJudgeQuestion).ToList()
|
||||||
).ToList();
|
).ToList();
|
||||||
|
|
||||||
List<GroupTaskAnswerDto> globalGroupTasks = newlist.GroupBy(x => new { x.QuestionId, x.AnswerGroup, x.JudgeType, x.AnswerCombination }).Select(x => new GroupTaskAnswerDto
|
List<GroupTaskAnswerDto> globalGroupTasks = newlist.GroupBy(x => new { x.QuestionId, x.AnswerGroup, x.JudgeType, x.AnswerCombination }).Select(x => new GroupTaskAnswerDto
|
||||||
|
@ -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();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -722,9 +780,9 @@ namespace IRaCIS.Application.Services
|
||||||
if (
|
if (
|
||||||
|
|
||||||
(visitTask.SourceSubjectVisitId != null && criterionInfo.ArbitrationRule == ArbitrationRule.Visit)
|
(visitTask.SourceSubjectVisitId != null && criterionInfo.ArbitrationRule == ArbitrationRule.Visit)
|
||||||
||(visitTask.SouceReadModuleId != null && criterionInfo.ArbitrationRule == ArbitrationRule.Reading)
|
|| (visitTask.SouceReadModuleId != null && criterionInfo.ArbitrationRule == ArbitrationRule.Reading)
|
||||||
// 全局访视任务仲裁
|
// 全局访视任务仲裁
|
||||||
||(visitTask.SourceSubjectVisitId != null && criterionInfo.ArbitrationRule == ArbitrationRule.Reading&& criterionInfo.IsReadingPeriod&&!criterionInfo.IsGlobalReading)
|
|| (visitTask.SourceSubjectVisitId != null && criterionInfo.ArbitrationRule == ArbitrationRule.Reading && criterionInfo.IsReadingPeriod && !criterionInfo.IsGlobalReading)
|
||||||
|
|
||||||
|
|
||||||
)
|
)
|
||||||
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue