修改简单提示

Uat_Study
hang 2022-05-23 11:37:55 +08:00
parent abd3f2dc7a
commit 186a1061a9
3 changed files with 38 additions and 39 deletions

View File

@ -158,7 +158,6 @@ namespace IRaCIS.Core.Application.Contracts
return ResponseOutput.NotOk("请先清除子问题 再删除父问题"); return ResponseOutput.NotOk("请先清除子问题 再删除父问题");
} }
if (await _repository.AnyAsync<TrialQCQuestionAnswer>(t => t.TrialQCQuestionConfigureId == trialQCQuestionConfigureId)) if (await _repository.AnyAsync<TrialQCQuestionAnswer>(t => t.TrialQCQuestionConfigureId == trialQCQuestionConfigureId))
{ {
return ResponseOutput.NotOk("已有QC审核记录不允许删除该问题项"); return ResponseOutput.NotOk("已有QC审核记录不允许删除该问题项");

View File

@ -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> /// <returns></returns>
public async Task<IResponseOutput> TrialConfigSignatureConfirm(SignConfirmDTO signConfirmDTO) 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()) if (signConfirmDTO.SignCode == ((int)SignEnum.TrialLogicConfim).ToString())
{ {
@ -89,7 +97,7 @@ namespace IRaCIS.Core.Application
var showOrderList = await _repository.Where<TrialQCQuestion>(t => t.TrialId == signConfirmDTO.TrialId).Select(t => var showOrderList = await _repository.Where<TrialQCQuestion>(t => t.TrialId == signConfirmDTO.TrialId).Select(t =>
new { t.ShowOrder , ParentShowOrder=(int?) t.ParentQCQuestion.ShowOrder} ).ToListAsync(); new { t.ShowOrder, ParentShowOrder = (int?)t.ParentQCQuestion.ShowOrder }).ToListAsync();
if (trialConfig.QCProcessEnum == if (trialConfig.QCProcessEnum ==
TrialQCProcess.DoubleAudit || trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit) 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问题显示序号不允许重复"); 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("父问题的序号要比子问题序号小,请确认"); 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确认不允许再次确认"); throw new BusinessValidationFailedException("QC审核问题已被其他QC确认不允许再次确认");
} }
@ -138,14 +146,10 @@ namespace IRaCIS.Core.Application
[HttpPut] [HttpPut]
public async Task<IResponseOutput> ConfigTrialBasicInfo(BasicTrialConfig trialConfig) 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)) await VerifyOnlyInOngoingOrInitialIzingOptAsync(signConfirmDTO.TrialId);
{
return ResponseOutput.NotOk(" only in Initializing or Ongoing State can operate ");
}
var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId); var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException();
if (trialInfo == null) return Null404NotFound(trialInfo);
_mapper.Map(trialConfig, trialInfo); _mapper.Map(trialConfig, trialInfo);
trialInfo.UpdateTime = DateTime.Now; trialInfo.UpdateTime = DateTime.Now;
@ -159,7 +163,7 @@ namespace IRaCIS.Core.Application
var canOPt = await _trialRepository.AnyAsync(trial => var canOPt = await _trialRepository.AnyAsync(trial =>
trial.Id == trialId && trial.IsTrialBasicLogicConfirmed && trial.IsTrialProcessConfirmed && trial.Id == trialId && trial.IsTrialBasicLogicConfirmed && trial.IsTrialProcessConfirmed &&
trial.IsTrialUrgentConfirmed && trial.VisitPlanConfirmed); trial.IsTrialUrgentConfirmed && trial.VisitPlanConfirmed);
return ResponseOutput.Ok(canOPt, msg: canOPt?"": "项目 基础配置、流程配置、加急配置 、访视计划,有未确认项"); return ResponseOutput.Ok(canOPt, msg: canOPt ? "" : "项目 基础配置、流程配置、加急配置 、访视计划,有未确认项");
} }
/// <summary> /// <summary>
@ -171,7 +175,7 @@ namespace IRaCIS.Core.Application
/// <returns></returns> /// <returns></returns>
[HttpPut("{trialId:guid}/{trialStatusStr}/{reason?}")] [HttpPut("{trialId:guid}/{trialStatusStr}/{reason?}")]
[UnitOfWork] [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(); var trial = (await _trialRepository.Where(t => t.Id == trialId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
@ -244,10 +248,11 @@ namespace IRaCIS.Core.Application
public async Task<IResponseOutput> AbandonTrial(Guid trialId, /*Guid? signId,*/ bool isAbandon) public async Task<IResponseOutput> AbandonTrial(Guid trialId, /*Guid? signId,*/ bool isAbandon)
{ {
await _trialRepository.UpdatePartialFromQueryAsync(trialId, u => new Trial() { await _trialRepository.UpdatePartialFromQueryAsync(trialId, u => new Trial()
{
IsDeleted = isAbandon, IsDeleted = isAbandon,
TrialFinishTime= isAbandon?DateTime.Now:null TrialFinishTime = isAbandon ? DateTime.Now : null
},true); }, true);
return ResponseOutput.Ok(); return ResponseOutput.Ok();
@ -279,7 +284,7 @@ namespace IRaCIS.Core.Application
[HttpPut] [HttpPut]
public async Task<IResponseOutput> ConfigTrialProcessInfo(TrialProcessConfig trialConfig) 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 "); return ResponseOutput.NotOk(" only in Initializing State can operate ");
} }
@ -304,18 +309,13 @@ namespace IRaCIS.Core.Application
public async Task<IResponseOutput> ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig) 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)) await VerifyOnlyInOngoingOrInitialIzingOptAsync(trialConfig.TrialId);
{
return ResponseOutput.NotOk(" only in Initializing or Ongoing State can operate ");
}
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) if (trialConfig.IsUrgent)
{ {

View File

@ -268,7 +268,7 @@ namespace IRaCIS.Core.Application.Service
var trialId = sendEmail.TrialId; var trialId = sendEmail.TrialId;
var userId = sysUserInfo.Id; var userId = sysUserInfo.Id;
//判断TrialUser中是否存在 不存在就插入 //判断TrialUser中是否存在 不存在就插入 注意退出了,也不能再加进来
if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId,true)) if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId,true))
{ {