获取单个裁判访视信息修改
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
parent
51b9aaa9b1
commit
6bb4167ac7
|
|
@ -66,6 +66,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository,
|
||||
IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository,
|
||||
IRepository<ReadingQuestionVisitJudgeRule> _readingQuestionVisitJudgeRuleRepository,
|
||||
IRepository<ReadingQuestionSystem> _readingQuestionSystem,
|
||||
IRepository<CriterionKeyFileRead> _criterionKeyFileReadRepository,
|
||||
IRepository<TrialCriterionKeyFile> _trialCriterionKeyFileRepository,
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
#region 获取裁判阅片任务信息
|
||||
|
||||
/// <summary>
|
||||
/// 获取单个访视裁判任务的 R1、R2 裁判问题答案。
|
||||
/// 获取单访视裁判答案
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
|
|
@ -105,25 +105,57 @@ namespace IRaCIS.Core.Application.Service
|
|||
.FirstNotNullAsync();
|
||||
|
||||
var taskIds = new List<Guid> { judgeDataInfo.TaskIdOne, judgeDataInfo.TaskIdTwo };
|
||||
var trialReadingCriterionId = await _visitTaskRepository
|
||||
var taskInfo = await _visitTaskRepository
|
||||
.Where(x => x.Id == judgeDataInfo.TaskIdOne)
|
||||
.Select(x => x.TrialReadingCriterionId)
|
||||
.Select(x => new
|
||||
{
|
||||
x.TrialReadingCriterionId,
|
||||
x.VisitTaskNum,
|
||||
})
|
||||
.FirstNotNullAsync();
|
||||
|
||||
var judgeRule = await _readingQuestionCriterionTrialRepository
|
||||
.Where(x => x.Id == taskInfo.TrialReadingCriterionId)
|
||||
.Select(x => x.JudgeRuleEnum)
|
||||
.FirstNotNullAsync();
|
||||
|
||||
var questionList = await _readingQuestionTrialRepository
|
||||
.Where(x => x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.IsJudgeQuestion)
|
||||
.Where(x => x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId && x.IsJudgeQuestion)
|
||||
.OrderBy(x => x.ShowOrder)
|
||||
.Select(x => new SingleVisitJudgeAnswerItemDto
|
||||
.Select(x => new
|
||||
{
|
||||
ReadingQuestionId = x.Id,
|
||||
QuestionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us),
|
||||
ShowOrder = x.ShowOrder,
|
||||
x.JudgeType,
|
||||
x.ExcludeShowVisitList,
|
||||
})
|
||||
.ToListAsync();
|
||||
|
||||
var questionIds = questionList.Select(x => x.ReadingQuestionId).ToList();
|
||||
var visitJudgeRules = judgeRule == JudgeRule.Difference
|
||||
? await _readingQuestionVisitJudgeRuleRepository
|
||||
.Where(x => questionIds.Contains(x.ReadingQuestionId) && (x.VisitNum == taskInfo.VisitTaskNum || x.VisitNum == -1))
|
||||
.ToListAsync()
|
||||
: new List<ReadingQuestionVisitJudgeRule>();
|
||||
|
||||
var displayQuestions = questionList
|
||||
.Where(x => !x.ExcludeShowVisitList.Contains(taskInfo.VisitTaskNum))
|
||||
.Where(x => judgeRule == JudgeRule.Consistent
|
||||
? x.JudgeType != JudgeTypeEnum.NotApplicable
|
||||
: (visitJudgeRules.FirstOrDefault(rule => rule.ReadingQuestionId == x.ReadingQuestionId && rule.VisitNum == taskInfo.VisitTaskNum)
|
||||
?? visitJudgeRules.FirstOrDefault(rule => rule.ReadingQuestionId == x.ReadingQuestionId && rule.VisitNum == -1))?.JudgeType != JudgeTypeEnum.NotApplicable)
|
||||
.Select(x => new SingleVisitJudgeAnswerItemDto
|
||||
{
|
||||
ReadingQuestionId = x.ReadingQuestionId,
|
||||
QuestionName = x.QuestionName,
|
||||
ShowOrder = x.ShowOrder,
|
||||
})
|
||||
.ToList();
|
||||
|
||||
var displayQuestionIds = displayQuestions.Select(x => x.ReadingQuestionId).ToList();
|
||||
var answerList = await _readingTaskQuestionAnswerRepository
|
||||
.Where(x => taskIds.Contains(x.VisitTaskId) && questionIds.Contains(x.ReadingQuestionTrialId))
|
||||
.Where(x => taskIds.Contains(x.VisitTaskId) && displayQuestionIds.Contains(x.ReadingQuestionTrialId))
|
||||
.Select(x => new
|
||||
{
|
||||
x.VisitTaskId,
|
||||
|
|
@ -132,7 +164,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
})
|
||||
.ToListAsync();
|
||||
|
||||
questionList.ForEach(question =>
|
||||
displayQuestions.ForEach(question =>
|
||||
{
|
||||
question.R1Answer = answerList.FirstOrDefault(x => x.VisitTaskId == judgeDataInfo.TaskIdOne && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty;
|
||||
question.R2Answer = answerList.FirstOrDefault(x => x.VisitTaskId == judgeDataInfo.TaskIdTwo && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty;
|
||||
|
|
@ -140,7 +172,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
return new GetSingleVisitJudgeAnswerOutDto
|
||||
{
|
||||
QuestionList = questionList,
|
||||
QuestionList = displayQuestions,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue