融合修改
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 => 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.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false; x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid(); x.Id = NewId.NextGuid();
@ -781,18 +795,27 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// QuestionMark.ShortAxis, // QuestionMark.ShortAxis,
//}; //};
//} //}
var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet();
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer 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(), Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer, Answer = answer,
QuestionId = x.QuestionId, QuestionId = x.QuestionId,
RowIndex = x.RowIndex, RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), RowId = rowId,
TableQuestionId = x.TableQuestionId, TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId, TrialId = x.TrialId,
VisitTaskId = visitTaskId, VisitTaskId = visitTaskId,
}).ToList(); };
})
.ToList();

View File

@ -559,6 +559,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
tableRowAnswers.ForEach(x => 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.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false; x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid(); x.Id = NewId.NextGuid();
@ -583,17 +597,27 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}; };
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer 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(), Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer, Answer = answer,
QuestionId = x.QuestionId, QuestionId = x.QuestionId,
RowIndex = x.RowIndex, RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), RowId = rowId,
TableQuestionId = x.TableQuestionId, TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId, TrialId = x.TrialId,
VisitTaskId = visitTaskId, VisitTaskId = visitTaskId,
}).ToList(); };
})
.ToList();

View File

@ -561,6 +561,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
tableRowAnswers.ForEach(x => 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.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false; x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid(); x.Id = NewId.NextGuid();
@ -585,24 +599,31 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
QuestionMark.State, QuestionMark.State,
}; };
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer
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(), Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer, Answer = answer,
QuestionId = x.QuestionId, QuestionId = x.QuestionId,
RowIndex = x.RowIndex, RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), RowId = rowId,
TableQuestionId = x.TableQuestionId, TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId, TrialId = x.TrialId,
VisitTaskId = visitTaskId, VisitTaskId = visitTaskId,
}).ToList(); };
})
.ToList();
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers); var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers);
await _generalCalculateService.CopyHistoryAnswer(taskinfo, addList, tableAnswers); await _generalCalculateService.CopyHistoryAnswer(taskinfo, addList, tableAnswers);
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList); await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers); await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);

View File

@ -563,6 +563,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
tableRowAnswers.ForEach(x => 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.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false; x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid(); x.Id = NewId.NextGuid();
@ -586,18 +600,27 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
QuestionMark.State, QuestionMark.State,
}; };
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer 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(), Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer, Answer = answer,
QuestionId = x.QuestionId, QuestionId = x.QuestionId,
RowIndex = x.RowIndex, RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), RowId = rowId,
TableQuestionId = x.TableQuestionId, TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId, TrialId = x.TrialId,
VisitTaskId = visitTaskId, VisitTaskId = visitTaskId,
}).ToList(); };
})
.ToList();