Compare commits
3 Commits
1aad2c6a3f
...
72e8106516
| Author | SHA1 | Date |
|---|---|---|
|
|
72e8106516 | |
|
|
85d58d3ca2 | |
|
|
1c05010552 |
|
|
@ -1369,6 +1369,12 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
if (obtaionOrCancel)
|
||||
{
|
||||
//复核的时候,指派后,另外一个人进来的时候如果是自己,那么不进行后续流程
|
||||
if (dbSubjectVisit.CurrentActionUserId == _userInfo.UserRoleId)
|
||||
{
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
if (dbSubjectVisit.CurrentActionUserId != null && dbSubjectVisit.IsTake)
|
||||
{
|
||||
//throw new BusinessValidationFailedException("当前访视已被领取,不允许领取");
|
||||
|
|
@ -1400,65 +1406,69 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
// return ResponseOutput.NotOk("您已经领取了其他受试者,完成后才允许领取新的受试者");
|
||||
//}
|
||||
|
||||
#region 处理验证
|
||||
|
||||
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
|
||||
if (dbSubjectVisit.SecondReviewState == SecondReviewState.None)
|
||||
{
|
||||
//---项目配置为不审,没有领取QC Task
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_NoQC"]);
|
||||
}
|
||||
else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
|
||||
{
|
||||
if (dbSubjectVisit.PreliminaryAuditUserId == _userInfo.UserRoleId)
|
||||
#region 处理验证
|
||||
|
||||
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
|
||||
{
|
||||
//---初审已通过,不能继续领取
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_InitialAuditPassed"]);
|
||||
//---项目配置为不审,没有领取QC Task
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_NoQC"]);
|
||||
}
|
||||
else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
|
||||
{
|
||||
if (dbSubjectVisit.PreliminaryAuditUserId == _userInfo.UserRoleId)
|
||||
{
|
||||
//---初审已通过,不能继续领取
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_InitialAuditPassed"]);
|
||||
}
|
||||
|
||||
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.ToAudit)
|
||||
{
|
||||
dbSubjectVisit.AuditState = AuditStateEnum.InPrimaryQC;
|
||||
}
|
||||
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.InPrimaryQC)
|
||||
{
|
||||
//单审QC 释放后 也是可以领取的
|
||||
}
|
||||
else
|
||||
{
|
||||
// ---项目配置为单审,不满足Submmit State:已提交 或者 Audit State:待审核/审核中, 不允许领取,请刷新界面
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_NoSingleAudit"]);
|
||||
}
|
||||
}
|
||||
else if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit)
|
||||
{
|
||||
if (dbSubjectVisit.PreliminaryAuditUserId == _userInfo.UserRoleId)
|
||||
{
|
||||
//---复审不能和初审是同一个人
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_NoSameReviewer"]);
|
||||
}
|
||||
|
||||
//提交 并且初审通过 那么领取后进入 复审中
|
||||
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.PrimaryQCPassed)
|
||||
{
|
||||
dbSubjectVisit.AuditState = AuditStateEnum.InSecondaryQC;
|
||||
|
||||
}
|
||||
else if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.ToAudit)
|
||||
{
|
||||
dbSubjectVisit.AuditState = AuditStateEnum.InPrimaryQC;
|
||||
}
|
||||
else if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && (dbSubjectVisit.AuditState == AuditStateEnum.InPrimaryQC || dbSubjectVisit.AuditState == AuditStateEnum.InSecondaryQC))
|
||||
{
|
||||
//初审中 复审中 领取也是ok的 其他人接着做
|
||||
}
|
||||
else
|
||||
{
|
||||
//---项目配置为复审,不满足提交状态:已提交 或者 审核状态:待审核/QC中, 不允许领取,请刷新界面
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_NoSecondaryAudit"]);
|
||||
}
|
||||
}
|
||||
|
||||
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.ToAudit)
|
||||
{
|
||||
dbSubjectVisit.AuditState = AuditStateEnum.InPrimaryQC;
|
||||
}
|
||||
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.InPrimaryQC)
|
||||
{
|
||||
//单审QC 释放后 也是可以领取的
|
||||
}
|
||||
else
|
||||
{
|
||||
// ---项目配置为单审,不满足Submmit State:已提交 或者 Audit State:待审核/审核中, 不允许领取,请刷新界面
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_NoSingleAudit"]);
|
||||
}
|
||||
}
|
||||
else if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit)
|
||||
{
|
||||
if (dbSubjectVisit.PreliminaryAuditUserId == _userInfo.UserRoleId)
|
||||
{
|
||||
//---复审不能和初审是同一个人
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_NoSameReviewer"]);
|
||||
}
|
||||
|
||||
//提交 并且初审通过 那么领取后进入 复审中
|
||||
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.PrimaryQCPassed)
|
||||
{
|
||||
dbSubjectVisit.AuditState = AuditStateEnum.InSecondaryQC;
|
||||
|
||||
}
|
||||
else if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.ToAudit)
|
||||
{
|
||||
dbSubjectVisit.AuditState = AuditStateEnum.InPrimaryQC;
|
||||
}
|
||||
else if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && (dbSubjectVisit.AuditState == AuditStateEnum.InPrimaryQC || dbSubjectVisit.AuditState == AuditStateEnum.InSecondaryQC))
|
||||
{
|
||||
//初审中 复审中 领取也是ok的 其他人接着做
|
||||
}
|
||||
else
|
||||
{
|
||||
//---项目配置为复审,不满足提交状态:已提交 或者 审核状态:待审核/QC中, 不允许领取,请刷新界面
|
||||
return ResponseOutput.NotOk(_localizer["QCOperation_NoSecondaryAudit"]);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
dbSubjectVisit.IsTake = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,11 @@ using IRaCIS.Core.Application.Contracts.DTO;
|
|||
using IRaCIS.Core.Application.Filter;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Infrastructure.Extention;
|
||||
using MassTransit.Serialization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore.Storage.Json;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using System;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service
|
||||
|
|
@ -315,12 +317,16 @@ namespace IRaCIS.Core.Application.Service
|
|||
}
|
||||
|
||||
|
||||
public async Task<List<TrialSelectUserBasicInfo>> GetTrialUserRoleList(Guid trialId, UserTypeEnum? userTypeEnum)
|
||||
public async Task<List<TrialSelectUserBasicInfo>> GetTrialUserRoleList(Guid trialId, Guid? subjectVisitId, UserTypeEnum? userTypeEnum)
|
||||
{
|
||||
//复审指派需要过滤初审的人
|
||||
var firstUserId = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => t.PreliminaryAuditUserId).FirstOrDefaultAsync();
|
||||
|
||||
var list = await _trialIdentityUserRepository.Where(t => t.TrialId == trialId)
|
||||
.SelectMany(t => t.TrialUserRoleList)
|
||||
.WhereIf(userTypeEnum != null, t => t.UserRole.UserTypeEnum == userTypeEnum)
|
||||
.Where(t => t.UserRole.Id != _userInfo.UserRoleId)//iQC 指派过滤自己
|
||||
.WhereIf(firstUserId != null, t => t.UserRole.Id != firstUserId)//iQC 指派过滤自己
|
||||
.Select(t => new TrialSelectUserBasicInfo()
|
||||
{
|
||||
FullName = t.TrialUser.IdentityUser.FullName,
|
||||
|
|
|
|||
Loading…
Reference in New Issue