From 26976fa2894553f9a304b008c39bd35adcbc8273 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 19 Oct 2022 15:19:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 672c0a89..e4eb463c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -261,7 +261,12 @@ namespace IRaCIS.Application.Services if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.ReadingTaskState == ReadingTaskState.HaveSigned)) { throw new BusinessValidationFailedException($"当前任务已经签名!"); + } + + if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.TaskState != TaskState.Effect)) + { + throw new BusinessValidationFailedException($"当前任务已失效!"); } } @@ -1110,6 +1115,9 @@ namespace IRaCIS.Application.Services await _readingTableQuestionAnswerRepository.AddRangeAsync(questionAnswerList); await _readingTableQuestionAnswerRepository.SaveChangesAsync(); + + + await this.SubmitTaskChangeState(inDto.VisitTaskId); return ResponseOutput.Ok(true); } @@ -1131,6 +1139,21 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task VerifyVisitTaskQuestions(VerifyVisitTaskQuestionsInDto inDto) { + await VerifyTaskIsSign(inDto.VisitTaskId); + var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); + + var readingQuestionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId + &&(x.IsJudgeQuestion||x.IsRequired== IsRequired.Required) + ).ToListAsync(); + + var answerQuestionIds = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).Select(x => x.ReadingQuestionTrialId).ToListAsync(); + + readingQuestionList = readingQuestionList.Where(x => !answerQuestionIds.Contains(x.Id)).ToList(); + + if(readingQuestionList.Count()>0) + { + throw new BusinessValidationFailedException($" 必填问题{ string.Join(',', readingQuestionList.Select(x =>x.QuestionName))}的答案为空"); + } await _readingCalculateService.VerifyVisitTaskQuestions(inDto);