修改领取逻辑

This commit is contained in:
2023-07-31 09:24:42 +08:00
parent 9bfca25044
commit d3d991cb3a
7 changed files with 35 additions and 21 deletions
@@ -624,7 +624,7 @@ namespace IRaCIS.Application.Services
throw new BusinessValidationFailedException(_localizer["ReadingImage_BeSigned"]);
}
if(await _visitTaskRepository.AnyAsync(x=> x.Id == visitTaskid && x.DoctorUserId != _userInfo.Id && x.Subject.ClaimUserId != _userInfo.Id))
if(await _visitTaskRepository.AnyAsync(x=> x.Id == visitTaskid && x.DoctorUserId != _userInfo.Id && x.SubjectCriterionClaimUserId != _userInfo.Id))
{
throw new BusinessValidationFailedException("当前任务领取人不是你,不允许提交签名");
}
@@ -2286,7 +2286,7 @@ namespace IRaCIS.Application.Services
if (task != null)
{
// 有序 自动领取该Subject
await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, SubejctId = task.SubjectId, VisitTaskId=task.VisitTaskId, IsInOrder = true });
await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, SubejctId = task.SubjectId, TrialReadingCriterionId=task.TrialReadingCriterionId, VisitTaskId=task.VisitTaskId, IsInOrder = true });
}
}
else
@@ -2312,7 +2312,7 @@ namespace IRaCIS.Application.Services
if (task != null)
{
// 无序 自动领取该Subject
await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, VisitTaskId = task.VisitTaskId, IsInOrder = false });
await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, TrialReadingCriterionId=task.TrialReadingCriterionId, VisitTaskId = task.VisitTaskId, IsInOrder = false });
}
}
@@ -2450,20 +2450,23 @@ namespace IRaCIS.Application.Services
{
IScheduler scheduler = await _schedulerFactory.GetScheduler();
//有序 用SubjectCriterionClaimUserId 某个标准的所有任务,该字段保持一致
if (claimSubjectDto.IsInOrder)
{
if (claimSubjectDto.IsClaim)
{
if(_subjectRepository.Any(t=>t.Id== claimSubjectDto.SubejctId && t.ClaimUserId != _userInfo.Id && t.ClaimUserId!=null))
//每个subject 每个标准的领取放在 任务上 免得加表
if(_visitTaskRepository.Any(t=>t.Id== claimSubjectDto.SubejctId && t.TrialReadingCriterionId==claimSubjectDto.TrialReadingCriterionId
&& t.SubjectCriterionClaimUserId != _userInfo.Id && t.SubjectCriterionClaimUserId != null))
{
throw new BusinessValidationFailedException("当前任务已被其他人领取,请进行其他的阅片任务");
}
else
{
await _subjectRepository.UpdatePartialFromQueryAsync(t => t.Id == claimSubjectDto.SubejctId, u => new Subject() { ClaimUserId = _userInfo.Id }, true);
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.Id == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId , u => new VisitTask() { SubjectCriterionClaimUserId = _userInfo.Id });
//列表可以看到当前阅片人是谁
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.Id == claimSubjectDto.VisitTaskId, u => new VisitTask() { DoctorUserId = _userInfo.Id });
}
@@ -2474,6 +2477,7 @@ namespace IRaCIS.Application.Services
IJobDetail job = JobBuilder.Create<CancelTaskQuartZJob>()
.UsingJobData("SubjectId", claimSubjectDto.SubejctId) // 传递GUID参数给任务
.UsingJobData("TrialReadingCriterionId", claimSubjectDto.TrialReadingCriterionId)
.UsingJobData("IsInOrder", claimSubjectDto.IsInOrder)
.Build();
@@ -2490,9 +2494,10 @@ namespace IRaCIS.Application.Services
}
else
{
await _subjectRepository.UpdatePartialFromQueryAsync(t => t.Id == claimSubjectDto.SubejctId, u => new Subject() { ClaimUserId = null }, true);
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.Id == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId , u => new VisitTask() { SubjectCriterionClaimUserId = null });
}
}
//无序 直接用DoctorUserId 当做领取人
else
{
if (claimSubjectDto.IsClaim)