From 764feb00d513cf1e269e3aaec6f3dcf1c9893ecf Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 16 Jun 2022 11:55:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=9F=E6=95=88=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Allocation/DTO/VisitTaskViewModel.cs | 4 +- .../Service/Allocation/VisitTaskService.cs | 38 +++++++------------ 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index 5ddb89a4b..ee1e624af 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -265,7 +265,7 @@ namespace IRaCIS.Core.Application.ViewModel public List SubjectIdList { get; set; } - public List DoctorUserIdArmList { get; set; } + public List DoctorUserIdArmList { get; set; } = new List(); } public class DoctorArm @@ -294,7 +294,7 @@ namespace IRaCIS.Core.Application.ViewModel { public Guid SubjectId { get; set; } - public List DoctorUserIdList { get; set; } = new List(); + public List DoctorUserIdArmList { get; set; } = new List(); } public class AutoSubjectAssignCommand diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 0e6acfdf8..eb7ab84a6 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -425,49 +425,37 @@ namespace IRaCIS.Core.Application.Service var subjectId = subjectTaskGroup.Key; //如果数据为空 那么就是确认所有已分配的 - List subjectDoctorIdList = new List(); + List subjectDoctorIdArmList = new List(); if (assignConfirmCommand.SubjectDoctorUserList.Count == 0) { - subjectDoctorIdList = _subjectUserRepository.Where(t => t.SubjectId == subjectId).Select(t => t.DoctorUserId).ToList(); + subjectDoctorIdArmList = _subjectUserRepository.Where(t => t.SubjectId == subjectId).Select(t => new DoctorArm() { DoctorUserId=t.DoctorUserId, ArmEnum=t.ArmEnum } ).ToList(); } else { - subjectDoctorIdList = assignConfirmCommand.SubjectDoctorUserList.Where(t => t.SubjectId == subjectId).First().DoctorUserIdList; + subjectDoctorIdArmList = assignConfirmCommand.SubjectDoctorUserList.Where(t => t.SubjectId == subjectId).First().DoctorUserIdArmList; } foreach (var task in subjectTaskGroup.OrderBy(t => t.ArmEnum).ToList()) { - //单重阅片 - if (task.ArmEnum == 0) - { - if (subjectDoctorIdList.Count() == 0) - { - throw new BusinessValidationFailedException("当前提交的数据,有Subject 未绑定医生"); - } - task.DoctorUserId = subjectDoctorIdList.FirstOrDefault(); - } - //双重阅片 任务1 - else if (task.ArmEnum == 1) - { - if (subjectDoctorIdList.Count() != 2) - { - throw new BusinessValidationFailedException("当前提交的数据,有Subject绑定的医生数量不是2个"); - } + var subjectDoctorArm = subjectDoctorIdArmList.Where(t => t.ArmEnum == task.ArmEnum).FirstOrDefault(); - task.DoctorUserId = subjectDoctorIdList.FirstOrDefault(); - } - else if (task.ArmEnum == 2) + if(subjectDoctorArm != null) { - task.DoctorUserId = subjectDoctorIdList.Skip(1).FirstOrDefault(); + task.DoctorUserId = subjectDoctorArm.DoctorUserId; + task.AllocateTime = DateTime.Now; + task.TaskState = TaskState.Allocated; + + } + else + { + throw new BusinessValidationFailedException("当前提交 Subject 以及医生所在Arm 与任务的Arm不一致,无法绑定,请核对数据"); } - task.AllocateTime = DateTime.Now; - task.TaskState = TaskState.Allocated; } }