diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 834c3a4b0..240a09d58 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1400,65 +1400,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;