获取单个访视裁判

This commit is contained in:
he
2026-08-12 10:53:08 +08:00
parent 5183e30e41
commit 51b9aaa9b1
2 changed files with 73 additions and 0 deletions
@@ -91,6 +91,59 @@ namespace IRaCIS.Core.Application.Service
#region
/// <summary>
/// 获取单个访视裁判任务的 R1、R2 裁判问题答案。
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<GetSingleVisitJudgeAnswerOutDto> GetSingleVisitJudgeAnswer(GetSingleVisitJudgeAnswerInDto inDto)
{
var judgeDataInfo = await _readingJudgeInfoRepository
.Where(x => x.JudgeTaskId == inDto.VisitTaskId)
.FirstNotNullAsync();
var taskIds = new List<Guid> { judgeDataInfo.TaskIdOne, judgeDataInfo.TaskIdTwo };
var trialReadingCriterionId = await _visitTaskRepository
.Where(x => x.Id == judgeDataInfo.TaskIdOne)
.Select(x => x.TrialReadingCriterionId)
.FirstNotNullAsync();
var questionList = await _readingQuestionTrialRepository
.Where(x => x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.IsJudgeQuestion)
.OrderBy(x => x.ShowOrder)
.Select(x => new SingleVisitJudgeAnswerItemDto
{
ReadingQuestionId = x.Id,
QuestionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us),
ShowOrder = x.ShowOrder,
})
.ToListAsync();
var questionIds = questionList.Select(x => x.ReadingQuestionId).ToList();
var answerList = await _readingTaskQuestionAnswerRepository
.Where(x => taskIds.Contains(x.VisitTaskId) && questionIds.Contains(x.ReadingQuestionTrialId))
.Select(x => new
{
x.VisitTaskId,
x.ReadingQuestionTrialId,
x.Answer,
})
.ToListAsync();
questionList.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;
});
return new GetSingleVisitJudgeAnswerOutDto
{
QuestionList = questionList,
};
}
/// <summary>
/// 获取裁判阅片任务信息
/// </summary>