修改一版

This commit is contained in:
he
2022-06-17 09:24:05 +08:00
parent 9c48f46ca4
commit a68360a07c
3 changed files with 43 additions and 8 deletions
@@ -108,21 +108,52 @@ namespace IRaCIS.Application.Services
public async Task<IResponseOutput> SetSystemReadingQuestionCriterionIsCompleteConfig(SetSystemReadingQuestionCriterionIsIsCompleteConfig inDto)
{
if (!inDto.IsCompleteConfig && await _readingQuestionCriterionTrialRepository.AnyAsync(x => x.ReadingQuestionCriterionSystemId == inDto.Id))
{
ResponseOutput.NotOk("当前标准已经运用到项目,操作失败");
}
//if (!inDto.IsCompleteConfig && await _readingQuestionCriterionTrialRepository.AnyAsync(x => x.ReadingQuestionCriterionSystemId == inDto.Id))
//{
// ResponseOutput.NotOk("当前标准已经运用到项目,操作失败");
//}
await _readingQuestionCriterionSystemRepository.UpdatePartialFromQueryAsync(inDto.Id, x => new ReadingQuestionCriterionSystem()
{
IsCompleteConfig = inDto.IsCompleteConfig
});
if (inDto.IsCompleteConfig)
{
await UpdateTrialCriterion(inDto.Id);
}
var result = await _readingQuestionCriterionSystemRepository.SaveChangesAsync();
return ResponseOutput.Ok(result);
}
/// <summary>
/// 更改项目标准
/// </summary>
/// <param name="systemCriterionId"></param>
/// <returns></returns>
private async Task UpdateTrialCriterion(Guid systemCriterionId)
{
await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(x => x.ReadingQuestionCriterionSystemId == systemCriterionId, x => new ReadingQuestionCriterionTrial()
{
IsCompleteConfig = true,
});
var systemCriterionQuestionList = await _readingQuestionSystemRepository.Where(x => x.ReadingQuestionCriterionSystemId == systemCriterionId).ToListAsync();
var trialCriterionList = await _readingQuestionCriterionTrialRepository.Where(x => x.ReadingQuestionCriterionSystemId == systemCriterionId).Select(x => new {
x.Id,
x.TrialId,
}).ToListAsync();
var trialCriterionIdList = trialCriterionList.Select(x => x.Id).ToList();
List<ReadingQuestionTrial> needAddQuestionList = new List<ReadingQuestionTrial>();
foreach (var item in trialCriterionList)
{
await _readingQuestionTrialRepository.BatchDeleteNoTrackingAsync(x => trialCriterionIdList.Contains(x.ReadingQuestionCriterionTrialId));
List<ReadingQuestionTrial> trialQuestionList = new List<ReadingQuestionTrial>();
SetChildParentQuestion(item.Id, item.TrialId, systemCriterionQuestionList, trialQuestionList);
needAddQuestionList.AddRange(trialQuestionList);
}
await _readingQuestionTrialRepository.AddRangeAsync(needAddQuestionList);
}
/// <summary>
/// 添加系统qc问题标准