From fed62ce5e3928dfe67a0e4b8e7f7a792e4c1e328 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 21 Jul 2025 16:55:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=91=E5=AE=9A=E5=85=B3?= =?UTF-8?q?=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 80331ff54..a30bad09f 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2205,6 +2205,27 @@ namespace IRaCIS.Core.Application.Service await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => markids.Contains(x.MarkId)&&x.QuestionId==null ); + // 这里还不能直接删除 因为可能该问题绑定的原标记为a 现在新绑定的标记要为b 那么就需要把原标记a的绑定关系删除 + + var oldMark=await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && markQuestionIds.Contains(x.QuestionId) && x.MarkId != null).ToListAsync(); + + // 这里稽查又要记录为新增 只能把原标记记录为先删除再添加 不然稽查又对不上 + List oldAddMark=new List (); + + foreach (var item in oldMark) + { + if (addOrUpdatemarkList.Any(x => x.QuestionId == item.QuestionId && x.MarkId != item.MarkId)) + { + var olditem = item.Clone(); + + olditem.QuestionId = null; + olditem.TableQuestionId = null; + olditem.RowId = null; + olditem.RowIndex = null; + oldAddMark.Add(olditem); + } + } + await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && markQuestionIds.Contains(x.QuestionId)); var datetime = DateTime.Now; @@ -2217,7 +2238,9 @@ namespace IRaCIS.Core.Application.Service x.CreateTime = datetime; x.FristAddTaskId = questionMarkList.Where(y => y.QuestionId == x.QuestionId).Select(x => x.FristAddTaskId).FirstOrDefault() ?? inDto.VisitTaskId; }); - await _readingTaskQuestionMarkRepository.AddRangeAsync(markList); + // 原来移除关系的 已经删除 这里要添加 为什么要先删再加 因为稽查需要记录 稽查的记录方式为Add + oldAddMark.AddRange(markList); + await _readingTaskQuestionMarkRepository.AddRangeAsync(oldAddMark); }