融合修改
continuous-integration/drone/push Build is passing Details

Test_IRC_Net8
he 2025-12-24 17:28:11 +08:00
parent 941bddb771
commit 504304c341
4 changed files with 140 additions and 49 deletions

View File

@ -750,6 +750,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
tableRowAnswers.ForEach(x =>
{
switch (x.SplitOrMergeType)
{
case SplitOrMergeType.Merge:
case SplitOrMergeType.Merged:
x.SplitOrMergeType = SplitOrMergeType.Merged;
break;
case SplitOrMergeType.MergeMain:
case SplitOrMergeType.MergeMained:
x.SplitOrMergeType = SplitOrMergeType.MergeMained;
break;
default:
x.SplitOrMergeType = null;
break;
}
x.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid();
@ -781,18 +795,27 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// QuestionMark.ShortAxis,
//};
//}
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
}).ToList();
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet();
var tableAnswers = copyTableAnswers
.Select(x =>
{
var rowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(y => y.Id).FirstOrDefault();
var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer;
if (mergedRowIds.Contains(rowId) && x.QuestionMark == QuestionMark.State)
answer = TargetState.Loss.GetEnumInt().ToString();
return new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = rowId,
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
};
})
.ToList();

View File

@ -559,6 +559,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
tableRowAnswers.ForEach(x =>
{
switch (x.SplitOrMergeType)
{
case SplitOrMergeType.Merge:
case SplitOrMergeType.Merged:
x.SplitOrMergeType = SplitOrMergeType.Merged;
break;
case SplitOrMergeType.MergeMain:
case SplitOrMergeType.MergeMained:
x.SplitOrMergeType = SplitOrMergeType.MergeMained;
break;
default:
x.SplitOrMergeType = null;
break;
}
x.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid();
@ -583,17 +597,27 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
};
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
}).ToList();
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet();
var tableAnswers = copyTableAnswers
.Select(x =>
{
var rowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(y => y.Id).FirstOrDefault();
var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer;
if (mergedRowIds.Contains(rowId) && x.QuestionMark == QuestionMark.State)
answer = TargetState.Loss.GetEnumInt().ToString();
return new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = rowId,
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
};
})
.ToList();

View File

@ -561,6 +561,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
tableRowAnswers.ForEach(x =>
{
switch (x.SplitOrMergeType)
{
case SplitOrMergeType.Merge:
case SplitOrMergeType.Merged:
x.SplitOrMergeType = SplitOrMergeType.Merged;
break;
case SplitOrMergeType.MergeMain:
case SplitOrMergeType.MergeMained:
x.SplitOrMergeType = SplitOrMergeType.MergeMained;
break;
default:
x.SplitOrMergeType = null;
break;
}
x.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid();
@ -585,24 +599,31 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
QuestionMark.State,
};
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
}).ToList();
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet();
var tableAnswers = copyTableAnswers
.Select(x =>
{
var rowId = tableRowAnswers .Where(y => y.OriginalId == x.RowId) .Select(y => y.Id).FirstOrDefault();
var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty: x.Answer;
if (mergedRowIds.Contains(rowId) && x.QuestionMark == QuestionMark.State)
answer = TargetState.Loss.GetEnumInt().ToString();
return new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = rowId,
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
};
})
.ToList();
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers);
await _generalCalculateService.CopyHistoryAnswer(taskinfo, addList, tableAnswers);
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);

View File

@ -563,6 +563,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
tableRowAnswers.ForEach(x =>
{
switch (x.SplitOrMergeType)
{
case SplitOrMergeType.Merge:
case SplitOrMergeType.Merged:
x.SplitOrMergeType = SplitOrMergeType.Merged;
break;
case SplitOrMergeType.MergeMain:
case SplitOrMergeType.MergeMained:
x.SplitOrMergeType = SplitOrMergeType.MergeMained;
break;
default:
x.SplitOrMergeType = null;
break;
}
x.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid();
@ -586,18 +600,27 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
QuestionMark.State,
};
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
}).ToList();
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet();
var tableAnswers = copyTableAnswers
.Select(x =>
{
var rowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(y => y.Id).FirstOrDefault();
var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer;
if (mergedRowIds.Contains(rowId) && x.QuestionMark == QuestionMark.State)
answer = TargetState.Loss.GetEnumInt().ToString();
return new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = rowId,
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
};
})
.ToList();