获取单个访视裁判
parent
5183e30e41
commit
51b9aaa9b1
|
|
@ -2437,6 +2437,26 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public Guid VisitTaskId { get; set; }
|
||||
}
|
||||
|
||||
public class GetSingleVisitJudgeAnswerInDto
|
||||
{
|
||||
[NotDefault]
|
||||
public Guid VisitTaskId { get; set; }
|
||||
}
|
||||
|
||||
public class GetSingleVisitJudgeAnswerOutDto
|
||||
{
|
||||
public List<SingleVisitJudgeAnswerItemDto> QuestionList { get; set; } = new List<SingleVisitJudgeAnswerItemDto>();
|
||||
}
|
||||
|
||||
public class SingleVisitJudgeAnswerItemDto
|
||||
{
|
||||
public Guid ReadingQuestionId { get; set; }
|
||||
public string QuestionName { get; set; } = string.Empty;
|
||||
public int ShowOrder { get; set; }
|
||||
public string R1Answer { get; set; } = string.Empty;
|
||||
public string R2Answer { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class JudgeReadingInfoDto
|
||||
{
|
||||
public string VisitName { get; set; }
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue