增加验证

Uat_Study
hang 2022-08-02 10:02:05 +08:00
parent 8703e3cfc6
commit 5ec77b40c7
1 changed files with 39 additions and 28 deletions

View File

@ -102,33 +102,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
if (inOrder)
{
var notCheckPassedMinVisitNum = await _subjectVisitRepository.Where(t => t.SubjectId == subjectId && t.CheckState!=CheckStateEnum.CVPassed).OrderBy(t => t.VisitNum).Select(t => t.VisitNum).FirstOrDefaultAsync();
var notCheckPassedMinVisitNum = await _subjectVisitRepository.Where(t => t.SubjectId == subjectId && t.CheckState != CheckStateEnum.CVPassed).OrderBy(t => t.VisitNum).Select(t => t.VisitNum).FirstOrDefaultAsync();
updateWhere = updateWhere.And(t => t.VisitTaskNum < notCheckPassedMinVisitNum);
////找到未分配的最小的任务号
//var minVisitTaskNum = _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.ArmEnum == doctorArm.ArmEnum && t.TrialId == command.TrialId && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.NotAllocate && t.TaskState == TaskState.Effect).OrderBy(t => t.VisitTaskNum).Select(t => t.VisitTaskNum).FirstOrDefault();
//var maxVisitTaskNum = _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.ArmEnum == doctorArm.ArmEnum && t.TrialId == command.TrialId && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.NotAllocate && t.TaskState == TaskState.Effect).OrderByDescending(t => t.VisitTaskNum).Select(t => t.VisitTaskNum).FirstOrDefault();
//if (_subjectVisitRepository.Where(t => t.SubjectId == subjectId && t.VisitNum < minVisitTaskNum).Any(t => t.CheckState != CheckStateEnum.CVPassed))
//{
// //throw new BusinessValidationFailedException("Subject 前序有访视未一致性核查通过,不允许分配任务");
// //不分配
// updateWhere = updateWhere.And(t => t.VisitTaskNum < minVisitTaskNum);
//}
//else if(_subjectVisitRepository.Where(t => t.SubjectId == subjectId && t.VisitNum<=maxVisitTaskNum && t.VisitNum >= minVisitTaskNum).Any(t => t.CheckState != CheckStateEnum.CVPassed))
//{
// var notCheckPassedVisitNum= await _subjectVisitRepository.Where(t => t.SubjectId == subjectId && t.VisitNum <= maxVisitTaskNum && t.VisitNum >= minVisitTaskNum).OrderByDescending(t=>t.VisitNum).Select(t=>t.VisitNum).FirstOrDefaultAsync();
// //分配两者之间的任务
// updateWhere = updateWhere.And(t => t.VisitTaskNum >= minVisitTaskNum && t.VisitTaskNum<= notCheckPassedVisitNum);
//}
}
@ -1392,6 +1371,14 @@ namespace IRaCIS.Core.Application.Service.Allocation
var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id).FirstOrDefaultAsync()).IfNullThrowException();
//更新申请信息
var visitTaskReReadingAppply = await _visitTaskReReadingRepository.FirstOrDefaultAsync(t => t.Id == item.Id);
visitTaskReReadingAppply.RequestReReadingConfirmUserId = _userInfo.Id;
visitTaskReReadingAppply.RequestReReadingResultEnum = agreeReReadingCommand.RequestReReadingResultEnum;
visitTaskReReadingAppply.RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason;
// 当前访视之前 已有任务申请
if (trialConfig.IsReadingTaskViewInOrder)
{
@ -1406,14 +1393,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
}
}
//更新申请信息
var visitTaskReReadingAppply = await _visitTaskReReadingRepository.FirstOrDefaultAsync(t => t.Id == item.Id);
visitTaskReReadingAppply.RequestReReadingConfirmUserId = _userInfo.Id;
visitTaskReReadingAppply.RequestReReadingResultEnum = agreeReReadingCommand.RequestReReadingResultEnum;
visitTaskReReadingAppply.RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason;
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == origenalTask.SubjectId && t.TaskState == TaskState.Effect && t.TaskAllocationState == TaskAllocationState.Allocated;
@ -1424,7 +1409,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree)
{
////有序 如果先同意访视2 再同意访视3 把访视3改为同意
////有序 同一访视其他申请
//if (trialConfig.IsReadingTaskViewInOrder)
//{
// await _visitTaskReReadingRepository.BatchUpdateNoTrackingAsync(t => t.OriginalReReadingTask.SubjectId == visitTaskReReadingAppply.OriginalReReadingTask.SubjectId && t.OriginalReReadingTask.VisitTaskNum > origenalTask.VisitTaskNum, u => new VisitTaskReReading()
@ -1436,6 +1421,32 @@ namespace IRaCIS.Core.Application.Service.Allocation
#region PM 申请双重阅片 同一访视 其他已申请的任务也修改为同意
await _visitTaskReReadingRepository.BatchUpdateNoTrackingAsync(t => t.OriginalReReadingTask.SubjectId == visitTaskReReadingAppply.OriginalReReadingTask.SubjectId &&
t.OriginalReReadingTask.ReReadingApplyState == ReReadingApplyState.HaveApplyed &&
t.RequestReReadingType == RequestReReadingType.TrialGroupApply &&
t.OriginalReReadingTask.VisitTaskNum == origenalTask.VisitTaskNum &&
t.Id != item.Id, u => new VisitTaskReReading()
{
RequestReReadingConfirmUserId = _userInfo.Id,
RequestReReadingResultEnum = RequestReReadingResult.Agree,
});
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == origenalTask.SubjectId &&
t.ReReadingApplyState == ReReadingApplyState.HaveApplyed &&
t.IsAnalysisCreate == origenalTask.IsAnalysisCreate &&
t.VisitTaskNum == origenalTask.VisitTaskNum &&
t.Id != origenalTask.Id, u => new VisitTask()
{
ReReadingApplyState = ReReadingApplyState.Agree
});
#endregion
//PM申请 SPM / CPM审批 回退访视,在此不生成访视任务
if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.TrialGroupApply && (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM))
{