diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 59ee1e8b1..bf5aaddd8 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2281,11 +2281,35 @@ namespace IRaCIS.Core.Application.Service } else { - var newMark = _mapper.Map(item); - newMark.Id = NewId.NextGuid(); - newMark.VisitTaskId = inDto.VisitTaskId; - newMark.FristAddTaskId = inDto.VisitTaskId; - await _readingTaskQuestionMarkRepository.AddAsync(newMark); + // 这种情况可能是绑定历史的标记 + + if (item.MarkId != null && (await _readingTaskQuestionMarkRepository.AnyAsync(x => x.VisitTaskId == inDto.VisitTaskId&& x.QuestionId == null && x.MarkId == item.MarkId))) + { + + var oldMarkItem = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.MarkId == item.MarkId && x.QuestionId == null).FirstOrDefaultAsync(); + + await _readingTaskQuestionMarkRepository.UpdatePartialFromQueryAsync(x => x.Id == oldMarkItem.Id, x => new ReadingTaskQuestionMark() + { + QuestionId = item.QuestionId, + TableQuestionId = item.TableQuestionId, + RowId = item.RowId, + MeasureData = item.MeasureData ?? string.Empty, + OtherMeasureData = item.OtherMeasureData ?? string.Empty, + PicturePath = item.PicturePath ?? string.Empty, + OtherPicturePath = item.OtherPicturePath ?? string.Empty, + MarkTool = item.MarkTool ?? string.Empty, + }); + } + else + { + var newMark = _mapper.Map(item); + newMark.Id = NewId.NextGuid(); + newMark.VisitTaskId = inDto.VisitTaskId; + newMark.FristAddTaskId = inDto.VisitTaskId; + await _readingTaskQuestionMarkRepository.AddAsync(newMark); + } + + } }