修改简单提示
parent
abd3f2dc7a
commit
186a1061a9
|
@ -158,7 +158,6 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
return ResponseOutput.NotOk("请先清除子问题 再删除父问题");
|
||||
}
|
||||
|
||||
|
||||
if (await _repository.AnyAsync<TrialQCQuestionAnswer>(t => t.TrialQCQuestionConfigureId == trialQCQuestionConfigureId))
|
||||
{
|
||||
return ResponseOutput.NotOk("已有QC审核记录,不允许删除该问题项");
|
||||
|
|
|
@ -51,6 +51,16 @@ namespace IRaCIS.Core.Application
|
|||
}
|
||||
|
||||
|
||||
//验证 仅仅在 Initializing/Ongoing 才可以操作
|
||||
private async Task VerifyOnlyInOngoingOrInitialIzingOptAsync(Guid trialId)
|
||||
{
|
||||
if (!await _trialRepository.AnyAsync(t => t.Id == signConfirmDTO.TrialId && (t.TrialStatusStr == StaticData.TrialInitializing || t.TrialStatusStr == StaticData.TrialOngoing)))
|
||||
{
|
||||
throw new BusinessValidationFailedException("项目不在Initializing/Ongoing,不允许确认配置");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -60,11 +70,9 @@ namespace IRaCIS.Core.Application
|
|||
/// <returns></returns>
|
||||
public async Task<IResponseOutput> TrialConfigSignatureConfirm(SignConfirmDTO signConfirmDTO)
|
||||
{
|
||||
await VerifyOnlyInOngoingOrInitialIzingOptAsync(signConfirmDTO.TrialId);
|
||||
|
||||
|
||||
if (!await _trialRepository.AnyAsync(t => t.Id == signConfirmDTO.TrialId && (t.TrialStatusStr == StaticData.TrialInitializing|| t.TrialStatusStr == StaticData.TrialOngoing)))
|
||||
{
|
||||
throw new BusinessValidationFailedException("项目不在Initializing/Ongoing,不允许确认配置");
|
||||
}
|
||||
|
||||
if (signConfirmDTO.SignCode == ((int)SignEnum.TrialLogicConfim).ToString())
|
||||
{
|
||||
|
@ -87,9 +95,9 @@ namespace IRaCIS.Core.Application
|
|||
.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();
|
||||
|
||||
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)
|
||||
|
@ -100,17 +108,17 @@ namespace IRaCIS.Core.Application
|
|||
}
|
||||
}
|
||||
|
||||
if (showOrderList.Count() != showOrderList.Select(t=>t.ShowOrder).Distinct().Count())
|
||||
if (showOrderList.Count() != showOrderList.Select(t => t.ShowOrder).Distinct().Count())
|
||||
{
|
||||
throw new BusinessValidationFailedException("QC问题显示序号不允许重复");
|
||||
}
|
||||
|
||||
if (showOrderList.Where(t=>t.ParentShowOrder != null).Any(t => t.ParentShowOrder > t.ShowOrder))
|
||||
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))
|
||||
if (await _trialRepository.AnyAsync(t => t.Id == signConfirmDTO.TrialId && t.QCQuestionConfirmedUserId != null && t.QCQuestionConfirmedUserId != _userInfo.Id))
|
||||
{
|
||||
throw new BusinessValidationFailedException("QC审核问题已被其他QC确认,不允许再次确认");
|
||||
}
|
||||
|
@ -123,7 +131,7 @@ namespace IRaCIS.Core.Application
|
|||
await _trialRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
@ -138,15 +146,11 @@ namespace IRaCIS.Core.Application
|
|||
[HttpPut]
|
||||
public async Task<IResponseOutput> ConfigTrialBasicInfo(BasicTrialConfig trialConfig)
|
||||
{
|
||||
if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialOngoing || t.TrialStatusStr == StaticData.TrialInitializing))
|
||||
{
|
||||
return ResponseOutput.NotOk(" only in Initializing or Ongoing State can operate ");
|
||||
}
|
||||
await VerifyOnlyInOngoingOrInitialIzingOptAsync(signConfirmDTO.TrialId);
|
||||
|
||||
var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException();
|
||||
|
||||
var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId);
|
||||
|
||||
if (trialInfo == null) return Null404NotFound(trialInfo);
|
||||
|
||||
_mapper.Map(trialConfig, trialInfo);
|
||||
trialInfo.UpdateTime = DateTime.Now;
|
||||
|
||||
|
@ -159,7 +163,7 @@ namespace IRaCIS.Core.Application
|
|||
var canOPt = await _trialRepository.AnyAsync(trial =>
|
||||
trial.Id == trialId && trial.IsTrialBasicLogicConfirmed && trial.IsTrialProcessConfirmed &&
|
||||
trial.IsTrialUrgentConfirmed && trial.VisitPlanConfirmed);
|
||||
return ResponseOutput.Ok(canOPt, msg: canOPt?"": "项目 基础配置、流程配置、加急配置 、访视计划,有未确认项");
|
||||
return ResponseOutput.Ok(canOPt, msg: canOPt ? "" : "项目 基础配置、流程配置、加急配置 、访视计划,有未确认项");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -171,7 +175,7 @@ namespace IRaCIS.Core.Application
|
|||
/// <returns></returns>
|
||||
[HttpPut("{trialId:guid}/{trialStatusStr}/{reason?}")]
|
||||
[UnitOfWork]
|
||||
public async Task<IResponseOutput> UpdateTrialState(Guid trialId, string trialStatusStr, string? reason)
|
||||
public async Task<IResponseOutput> UpdateTrialState(Guid trialId, string trialStatusStr, string? reason)
|
||||
{
|
||||
|
||||
var trial = (await _trialRepository.Where(t => t.Id == trialId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
@ -187,7 +191,7 @@ namespace IRaCIS.Core.Application
|
|||
return ResponseOutput.NotOk("项目 基础配置、流程配置、加急配置 、访视计划,有未确认项");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (trialStatusStr != "Ongoing")
|
||||
{
|
||||
trial.TrialFinishTime = DateTime.Now;
|
||||
|
@ -243,13 +247,14 @@ namespace IRaCIS.Core.Application
|
|||
[HttpPut("{trialId:guid}/{isAbandon:bool}")]
|
||||
public async Task<IResponseOutput> AbandonTrial(Guid trialId, /*Guid? signId,*/ bool isAbandon)
|
||||
{
|
||||
|
||||
await _trialRepository.UpdatePartialFromQueryAsync(trialId, u => new Trial() {
|
||||
IsDeleted = isAbandon,
|
||||
TrialFinishTime= isAbandon?DateTime.Now:null
|
||||
},true);
|
||||
|
||||
|
||||
await _trialRepository.UpdatePartialFromQueryAsync(trialId, u => new Trial()
|
||||
{
|
||||
IsDeleted = isAbandon,
|
||||
TrialFinishTime = isAbandon ? DateTime.Now : null
|
||||
}, true);
|
||||
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
@ -269,7 +274,7 @@ namespace IRaCIS.Core.Application
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 配置流程
|
||||
|
@ -279,7 +284,7 @@ namespace IRaCIS.Core.Application
|
|||
[HttpPut]
|
||||
public async Task<IResponseOutput> ConfigTrialProcessInfo(TrialProcessConfig trialConfig)
|
||||
{
|
||||
if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialInitializing))
|
||||
if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialInitializing))
|
||||
{
|
||||
return ResponseOutput.NotOk(" only in Initializing State can operate ");
|
||||
}
|
||||
|
@ -304,18 +309,13 @@ namespace IRaCIS.Core.Application
|
|||
public async Task<IResponseOutput> ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig)
|
||||
{
|
||||
|
||||
if (!await _repository.Where<Trial>(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialOngoing || t.TrialStatusStr == StaticData.TrialInitializing))
|
||||
{
|
||||
return ResponseOutput.NotOk(" only in Initializing or Ongoing State can operate ");
|
||||
}
|
||||
await VerifyOnlyInOngoingOrInitialIzingOptAsync(trialConfig.TrialId);
|
||||
|
||||
|
||||
var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException();
|
||||
|
||||
var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId);
|
||||
|
||||
if (trialInfo == null) return Null404NotFound(trialInfo);
|
||||
|
||||
//项目紧急 当前所有已提交,但未完成的访视,设置为加急。后续提交的访视也设置为加急 ,
|
||||
//项目紧急 当前所有已提交,但未完成的访视,设置为加急。后续提交的访视也设置为加急 (在提交的时候,回去判断 项目加急,Subject加急,是否入组确认,是否Pd,从而设置访视是否加急)
|
||||
if (trialConfig.IsUrgent)
|
||||
{
|
||||
|
||||
|
|
|
@ -268,7 +268,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
var trialId = sendEmail.TrialId;
|
||||
var userId = sysUserInfo.Id;
|
||||
|
||||
//判断TrialUser中是否存在 不存在就插入
|
||||
//判断TrialUser中是否存在 不存在就插入 注意退出了,也不能再加进来
|
||||
if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId,true))
|
||||
{
|
||||
|
||||
|
|
Loading…
Reference in New Issue