Uat_Study
he 2022-08-12 16:56:55 +08:00
parent e262e7cebb
commit 349839913c
1 changed files with 44 additions and 0 deletions

View File

@ -345,6 +345,50 @@ namespace IRaCIS.Core.Application
} }
/// <summary>
/// 验证签名确认
/// </summary>
/// <param name="signConfirmDTO"></param>
/// <returns></returns>
/// <exception cref="BusinessValidationFailedException"></exception>
[HttpPost]
public async Task<IResponseOutput> VerifyTrialConfigSignatureConfirm(SignConfirmDTO signConfirmDTO)
{
var trialConfig = (await _trialRepository
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification })
.FirstOrDefaultAsync(t => t.TrialId == signConfirmDTO.TrialId))
.IfNullThrowException();
var showOrderList = await _repository.Where<TrialQCQuestion>(t => t.TrialId == signConfirmDTO.TrialId).Select(t =>
new { t.ShowOrder, ParentShowOrder = (int?)t.ParentQCQuestion.ShowOrder }).ToListAsync();
if (trialConfig.QCProcessEnum ==
TrialQCProcess.DoubleAudit || trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
{
if (showOrderList.Count == 0)
{
throw new BusinessValidationFailedException("当前未添加影像质控审核问题。请先添加影像质控审核问题,再进行确认。");
}
}
if (showOrderList.Count() != showOrderList.Select(t => t.ShowOrder).Distinct().Count())
{
throw new BusinessValidationFailedException("影像质控审核问题显示序号不能重复。");
}
if (showOrderList.Where(t => t.ParentShowOrder != null).Any(t => t.ParentShowOrder > t.ShowOrder))
{
throw new BusinessValidationFailedException("父问题的显示序号要比子问题的显示序号小,请确认。");
}
if (await _trialRepository.AnyAsync(t => t.Id == signConfirmDTO.TrialId && t.QCQuestionConfirmedUserId != null && t.QCQuestionConfirmedUserId != _userInfo.Id))
{
throw new BusinessValidationFailedException("影像质控审核问题已被其他人员确认,不允许再次确认。");
}
return ResponseOutput.Ok();
}