维护关系
This commit is contained in:
@@ -37,6 +37,7 @@ namespace IRaCIS.Application.Services
|
||||
private readonly IRepository<Subject> _subjectRepository;
|
||||
private readonly IRepository<ReadingGlobalTaskInfo> _readingGlobalTaskInfoRepository;
|
||||
private readonly IRepository<ReadingCriterionPage> _readingCriterionPageRepository;
|
||||
private readonly IRepository<ReadingTaskRelation> _readingTaskRelationRepository;
|
||||
private readonly IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository;
|
||||
private readonly IRepository<ReadModule> _readModuleRepository;
|
||||
private readonly IRepository<DicomInstance> _dicomInstanceRepository;
|
||||
@@ -72,6 +73,7 @@ namespace IRaCIS.Application.Services
|
||||
IRepository<Subject> subjectRepository,
|
||||
IRepository<ReadingGlobalTaskInfo> readingGlobalTaskInfoRepository,
|
||||
IRepository<ReadingCriterionPage> readingCriterionPageRepository,
|
||||
IRepository<ReadingTaskRelation> readingTaskRelationRepository,
|
||||
IRepository<ReadingJudgeInfo> readingJudgeInfoRepository,
|
||||
IRepository<ReadModule> readModuleRepository,
|
||||
IRepository<DicomInstance> dicomInstanceRepository,
|
||||
@@ -105,6 +107,7 @@ namespace IRaCIS.Application.Services
|
||||
this._subjectRepository = subjectRepository;
|
||||
this._readingGlobalTaskInfoRepository = readingGlobalTaskInfoRepository;
|
||||
this._readingCriterionPageRepository = readingCriterionPageRepository;
|
||||
this._readingTaskRelationRepository = readingTaskRelationRepository;
|
||||
this._readingJudgeInfoRepository = readingJudgeInfoRepository;
|
||||
this._readModuleRepository = readModuleRepository;
|
||||
this._dicomInstanceRepository = dicomInstanceRepository;
|
||||
@@ -124,6 +127,73 @@ namespace IRaCIS.Application.Services
|
||||
this._trialEmailNoticeConfigService = trialEmailNoticeConfigService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 维护任务关系
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task MaintainTaskRelated()
|
||||
{
|
||||
List<ReadingTaskRelation> relations = new List<ReadingTaskRelation>();
|
||||
var visitList = await _visitTaskRepository.Where(x => x.PastResultTaskIds != "[]" && x.RelatedVisitTaskIds != "[]").Select(x => new
|
||||
{
|
||||
x.Id,
|
||||
x.RelatedVisitTaskIds,
|
||||
x.PastResultTaskIds
|
||||
}).ToListAsync();
|
||||
|
||||
|
||||
List<Guid> relatedIds = new List<Guid>();
|
||||
|
||||
List<Guid> PastResultds = new List<Guid>();
|
||||
|
||||
foreach (var item in visitList)
|
||||
{
|
||||
try
|
||||
{
|
||||
PastResultds = JsonConvert.DeserializeObject<List<Guid>>(item.PastResultTaskIds) ?? new List<Guid>();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
PastResultds = new List<Guid>();
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
relatedIds = JsonConvert.DeserializeObject<List<Guid>>(item.RelatedVisitTaskIds)?? new List<Guid>();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
relatedIds = new List<Guid>();
|
||||
}
|
||||
|
||||
relations.AddRange(PastResultds.Select(x => new ReadingTaskRelation()
|
||||
{
|
||||
|
||||
RelevanceTaskId = x,
|
||||
TaskId = item.Id,
|
||||
RelevanceType = RelevanceType.PastResult,
|
||||
}));
|
||||
|
||||
relations.AddRange(relatedIds.Select(x => new ReadingTaskRelation()
|
||||
{
|
||||
|
||||
RelevanceTaskId = x,
|
||||
TaskId = item.Id,
|
||||
RelevanceType = RelevanceType.Related,
|
||||
}));
|
||||
|
||||
await _readingTaskRelationRepository.BatchDeleteNoTrackingAsync(x => x.TaskId == item.Id);
|
||||
|
||||
}
|
||||
|
||||
await _readingTaskRelationRepository.AddRangeAsync(relations);
|
||||
await _readingTaskRelationRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 修改计算问题
|
||||
/// </summary>
|
||||
@@ -2026,10 +2096,27 @@ namespace IRaCIS.Application.Services
|
||||
await _visitTaskRepository.UpdatePartialFromQueryAsync(taskInfo.Id, x => new VisitTask()
|
||||
{
|
||||
|
||||
|
||||
|
||||
PastResultTaskIds = JsonConvert.SerializeObject(pastResultTaskIdList),
|
||||
RelatedVisitTaskIds = JsonConvert.SerializeObject(relatedVisitTaskIdList),
|
||||
});
|
||||
|
||||
await _readingTaskRelationRepository.AddRangeAsync(pastResultTaskIdList.Select(x => new ReadingTaskRelation()
|
||||
{
|
||||
RelevanceTaskId = x,
|
||||
TaskId = visitTaskId,
|
||||
RelevanceType = RelevanceType.PastResult,
|
||||
}));
|
||||
|
||||
await _readingTaskRelationRepository.AddRangeAsync(relatedVisitTaskIdList.Select(x => new ReadingTaskRelation()
|
||||
{
|
||||
RelevanceTaskId = x,
|
||||
TaskId = visitTaskId,
|
||||
RelevanceType = RelevanceType.Related,
|
||||
}));
|
||||
|
||||
|
||||
await _visitTaskRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user