获取单个裁判访视信息修改
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<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository,
|
||||||
IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository,
|
IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository,
|
||||||
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository,
|
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository,
|
||||||
|
IRepository<ReadingQuestionVisitJudgeRule> _readingQuestionVisitJudgeRuleRepository,
|
||||||
IRepository<ReadingQuestionSystem> _readingQuestionSystem,
|
IRepository<ReadingQuestionSystem> _readingQuestionSystem,
|
||||||
IRepository<CriterionKeyFileRead> _criterionKeyFileReadRepository,
|
IRepository<CriterionKeyFileRead> _criterionKeyFileReadRepository,
|
||||||
IRepository<TrialCriterionKeyFile> _trialCriterionKeyFileRepository,
|
IRepository<TrialCriterionKeyFile> _trialCriterionKeyFileRepository,
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
#region 获取裁判阅片任务信息
|
#region 获取裁判阅片任务信息
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取单个访视裁判任务的 R1、R2 裁判问题答案。
|
/// 获取单访视裁判答案
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="inDto"></param>
|
/// <param name="inDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
|
@ -105,25 +105,57 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.FirstNotNullAsync();
|
.FirstNotNullAsync();
|
||||||
|
|
||||||
var taskIds = new List<Guid> { judgeDataInfo.TaskIdOne, judgeDataInfo.TaskIdTwo };
|
var taskIds = new List<Guid> { judgeDataInfo.TaskIdOne, judgeDataInfo.TaskIdTwo };
|
||||||
var trialReadingCriterionId = await _visitTaskRepository
|
var taskInfo = await _visitTaskRepository
|
||||||
.Where(x => x.Id == judgeDataInfo.TaskIdOne)
|
.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();
|
.FirstNotNullAsync();
|
||||||
|
|
||||||
var questionList = await _readingQuestionTrialRepository
|
var questionList = await _readingQuestionTrialRepository
|
||||||
.Where(x => x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.IsJudgeQuestion)
|
.Where(x => x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId && x.IsJudgeQuestion)
|
||||||
.OrderBy(x => x.ShowOrder)
|
.OrderBy(x => x.ShowOrder)
|
||||||
.Select(x => new SingleVisitJudgeAnswerItemDto
|
.Select(x => new
|
||||||
{
|
{
|
||||||
ReadingQuestionId = x.Id,
|
ReadingQuestionId = x.Id,
|
||||||
QuestionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us),
|
QuestionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us),
|
||||||
ShowOrder = x.ShowOrder,
|
ShowOrder = x.ShowOrder,
|
||||||
|
x.JudgeType,
|
||||||
|
x.ExcludeShowVisitList,
|
||||||
})
|
})
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
var questionIds = questionList.Select(x => x.ReadingQuestionId).ToList();
|
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
|
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
|
.Select(x => new
|
||||||
{
|
{
|
||||||
x.VisitTaskId,
|
x.VisitTaskId,
|
||||||
|
|
@ -132,7 +164,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
})
|
})
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
questionList.ForEach(question =>
|
displayQuestions.ForEach(question =>
|
||||||
{
|
{
|
||||||
question.R1Answer = answerList.FirstOrDefault(x => x.VisitTaskId == judgeDataInfo.TaskIdOne && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty;
|
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;
|
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
|
return new GetSingleVisitJudgeAnswerOutDto
|
||||||
{
|
{
|
||||||
QuestionList = questionList,
|
QuestionList = displayQuestions,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue