修改绑定关系
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
he 2025-07-21 16:55:38 +08:00
parent c66c7eaef7
commit fed62ce5e3
1 changed files with 24 additions and 1 deletions

View File

@ -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<ReadingTaskQuestionMark> oldAddMark=new List<ReadingTaskQuestionMark> ();
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);
}