From 24a082c0f0f461e8e76fac6e5c9b6afc5b96a8c9 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Fri, 1 Aug 2025 11:04:32 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96=E4=B8=8B?=
=?UTF-8?q?=E4=B8=80=E4=B8=AA=E4=BB=BB=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 9 ++-
.../Service/QC/QCOperationService.cs | 66 +++++++++----------
2 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 9193531bf..7e51cdbf9 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -17990,7 +17990,14 @@
-
+
+
+ 因为不区分任务类型,按照同类型没找到,要自动切换到下一种类型,必须包一层
+
+
+
+
+
获取下一个质控任务
diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
index e9ba9e2e4..80e32e670 100644
--- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
@@ -1254,70 +1254,70 @@ namespace IRaCIS.Core.Application.Image.QA
public async Task CollectNextIQCQuality(GetNextIQCQualityInDto inDto)
{
+ var nextIQCQuality = await this.GetNextIQCQuality(inDto);
+
+ if (nextIQCQuality.VisitId != null && nextIQCQuality.IsReceived == false)
+ {
+ var visit = await _subjectVisitRepository.Where(x => x.Id == nextIQCQuality.VisitId).FirstNotNullAsync();
+ if (!visit.IsTake)
+ {
+ await ObtainOrCancelQCTask(inDto.TrialId, nextIQCQuality.VisitId.Value, true);
+ }
+ }
+
+ return nextIQCQuality;
+
+ }
+
+ ///
+ /// 因为不区分任务类型,按照同类型没找到,要自动切换到下一种类型,必须包一层
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task GetNextIQCQuality(GetNextIQCQualityInDto inDto)
+ {
var trialConfig = await _trialRepository
- .Select(t => new { TrialId = t.Id, t.IsIQCAutoNextTask, t.IsIQCAutoTaskDistinguishType })
- .FirstOrDefaultAsync(t => t.TrialId == inDto.TrialId)
- .IfNullThrowException();
+ .Select(t => new { TrialId = t.Id, t.IsIQCAutoNextTask, t.IsIQCAutoTaskDistinguishType })
+ .FirstOrDefaultAsync(t => t.TrialId == inDto.TrialId)
+ .IfNullThrowException();
var isDistinguishType = trialConfig.IsIQCAutoNextTask && trialConfig.IsIQCAutoTaskDistinguishType;
-
if (isDistinguishType == false)
{
//不区分任务类型,也要按照当前任务类型给,没找到,按照默认规则给任务 无质疑 普通质控任务
- var nextIQCQuality = await this.GetNextIQCQuality(inDto, true);
+ var nextIQCQuality = await this.GetNextIQCTask(inDto, true);
+
//没找到
if (nextIQCQuality.VisitId == null)
{
- nextIQCQuality = await this.GetNextIQCQuality(inDto, false);
+ nextIQCQuality = await this.GetNextIQCTask(inDto, false);
- if (nextIQCQuality.VisitId != null && nextIQCQuality.IsReceived == false)
- {
- var visit = await _subjectVisitRepository.Where(x => x.Id == nextIQCQuality.VisitId).FirstNotNullAsync();
- if (!visit.IsTake)
- {
- await ObtainOrCancelQCTask(inDto.TrialId, nextIQCQuality.VisitId.Value, true);
- }
+ return nextIQCQuality;
- }
}
return nextIQCQuality;
-
}
else
{
//区分任务类型,那么按照当前任务类型给,没找到就结束
- var nextIQCQuality = await this.GetNextIQCQuality(inDto, true);
-
- if (nextIQCQuality.VisitId != null && nextIQCQuality.IsReceived == false)
- {
- var visit = await _subjectVisitRepository.Where(x => x.Id == nextIQCQuality.VisitId).FirstNotNullAsync();
- if (!visit.IsTake)
- {
- await ObtainOrCancelQCTask(inDto.TrialId, nextIQCQuality.VisitId.Value, true);
- }
-
- }
+ var nextIQCQuality = await this.GetNextIQCTask(inDto, true);
return nextIQCQuality;
-
}
-
-
-
-
-
}
+
///
/// 获取下一个质控任务
///
///
///
[HttpPost]
- public async Task GetNextIQCQuality(GetNextIQCQualityInDto inDto, bool isDistinguishType)
+ public async Task GetNextIQCTask(GetNextIQCQualityInDto inDto, bool isDistinguishType)
{
var trialConfig = await _trialRepository
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification, t.IsIQCAutoNextTask, t.IsIQCAutoTaskDistinguishType })