diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
index 90070bc88..e96d43145 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
@@ -654,6 +654,8 @@ namespace IRaCIS.Core.Application.Contracts
/// 修约小数点
///
public int? DigitPlaces { get; set; }
+
+ public bool IsSignSave { get; set; } = false;
}
public class SetTrialReadingInfoInDto
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index ca6c1c1d0..225999068 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -161,6 +161,21 @@ namespace IRaCIS.Core.Application
///
public async Task SetTrialReadingCriterion(SetTrialReadingCriterionInDto inDto)
{
+
+ if (inDto.IsSignSave)
+ {
+ var criterionFormType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialCriterionId).Select(x => x.FormType).FirstOrDefaultAsync();
+ var count = _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialCriterionId)
+ .WhereIf(criterionFormType == FormType.SinglePage, x => x.ReadingCriterionPageId == null)
+ .WhereIf(criterionFormType == FormType.MultiplePage, x => x.ReadingCriterionPageId != null).Count();
+
+ if (count == 0)
+ {
+ throw new BusinessValidationFailedException("当前标准下未配置问题");
+ }
+ }
+
+
await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialCriterionId, x => new ReadingQuestionCriterionTrial()
{