返回R1 R2 的任务Id
continuous-integration/drone/push Build is running Details

Test_IRC_Net10
he 2026-08-12 16:59:20 +08:00
parent f9c33e373a
commit fe19c3b35e
2 changed files with 16 additions and 7 deletions

View File

@ -2460,6 +2460,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class GetSingleVisitJudgeAnswerOutDto
{
public Guid R1VisitTaskId { get; set; }
public Guid R2VisitTaskId { get; set; }
public List<SingleVisitJudgeAnswerItemDto> QuestionList { get; set; } = new List<SingleVisitJudgeAnswerItemDto>();
}

View File

@ -105,21 +105,26 @@ namespace IRaCIS.Core.Application.Service
.FirstNotNullAsync();
var taskIds = new List<Guid> { judgeDataInfo.TaskIdOne, judgeDataInfo.TaskIdTwo };
var taskInfo = await _visitTaskRepository
.Where(x => x.Id == judgeDataInfo.TaskIdOne)
var readingTasks = await _visitTaskRepository
.Where(x => taskIds.Contains(x.Id))
.Select(x => new
{
x.Id,
x.ArmEnum,
x.TrialReadingCriterionId,
x.VisitTaskNum,
})
.FirstNotNullAsync();
.ToListAsync();
var r1Task = readingTasks.First(x => x.ArmEnum == Arm.DoubleReadingArm1);
var r2Task = readingTasks.First(x => x.ArmEnum == Arm.DoubleReadingArm2);
var judgeRule = await _readingQuestionCriterionTrialRepository
.Where(x => x.Id == taskInfo.TrialReadingCriterionId)
.Where(x => x.Id == r1Task.TrialReadingCriterionId)
.Select(x => x.JudgeRuleEnum)
.FirstNotNullAsync();
var displayQuestions = await GetJudgeDisplayQuestions(taskInfo.TrialReadingCriterionId, taskInfo.VisitTaskNum, judgeRule);
var displayQuestions = await GetJudgeDisplayQuestions(r1Task.TrialReadingCriterionId, r1Task.VisitTaskNum, judgeRule);
var judgeAnswers = displayQuestions
.Select(x => new SingleVisitJudgeAnswerItemDto
{
@ -149,12 +154,14 @@ namespace IRaCIS.Core.Application.Service
judgeAnswers.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;
question.R1Answer = answerList.FirstOrDefault(x => x.VisitTaskId == r1Task.Id && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty;
question.R2Answer = answerList.FirstOrDefault(x => x.VisitTaskId == r2Task.Id && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty;
});
return new GetSingleVisitJudgeAnswerOutDto
{
R1VisitTaskId = r1Task.Id,
R2VisitTaskId = r2Task.Id,
QuestionList = judgeAnswers,
};
}