修改获取下一个任务
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2025-08-01 11:04:32 +08:00
parent e9bd228e09
commit 24a082c0f0
2 changed files with 41 additions and 34 deletions

View File

@ -17990,7 +17990,14 @@
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Image.QA.QCOperationService.GetNextIQCQuality(IRaCIS.Core.Application.Contracts.GetNextIQCQualityInDto,System.Boolean)">
<member name="M:IRaCIS.Core.Application.Image.QA.QCOperationService.GetNextIQCQuality(IRaCIS.Core.Application.Contracts.GetNextIQCQualityInDto)">
<summary>
因为不区分任务类型,按照同类型没找到,要自动切换到下一种类型,必须包一层
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Image.QA.QCOperationService.GetNextIQCTask(IRaCIS.Core.Application.Contracts.GetNextIQCQualityInDto,System.Boolean)">
<summary>
获取下一个质控任务
</summary>

View File

@ -1254,70 +1254,70 @@ namespace IRaCIS.Core.Application.Image.QA
public async Task<GetNextIQCQualityOutDto> 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;
}
/// <summary>
/// 因为不区分任务类型,按照同类型没找到,要自动切换到下一种类型,必须包一层
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<GetNextIQCQualityOutDto> 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;
}
}
/// <summary>
/// 获取下一个质控任务
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<GetNextIQCQualityOutDto> GetNextIQCQuality(GetNextIQCQualityInDto inDto, bool isDistinguishType)
public async Task<GetNextIQCQualityOutDto> GetNextIQCTask(GetNextIQCQualityInDto inDto, bool isDistinguishType)
{
var trialConfig = await _trialRepository
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification, t.IsIQCAutoNextTask, t.IsIQCAutoTaskDistinguishType })