From 5d1499025bd3871b797233e8117930b834566d19 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 29 Aug 2025 17:47:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=BE=E9=A2=98=E7=BB=84?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Visit/PatientService.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs index 80bc46697..727f85b8d 100644 --- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs +++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs @@ -858,10 +858,10 @@ namespace IRaCIS.Application.Services { foreach (var hospitalGroupId in incommand.HospitalGroupIdList) { - if (_studySubjectVisitRepository.Any(t => t.SCPStudy.HospitalGroupList.Any(c => c.HospitalGroupId == hospitalGroupId))) + if (_studySubjectVisitRepository.Where(t => t.SCPStudyId == item).Any(t => t.SCPStudy.HospitalGroupList.Any(c => c.HospitalGroupId == hospitalGroupId))) { //已经添加到项目,不允许删除课题组 - return ResponseOutput.NotOk(_localizer["Patient_StudyHospitalGroupBinded"]); + return ResponseOutput.NotOk(_localizer["Patient_StudyHospitalGroupBinded"]); } await _SCPStudyHospitalGroupRepository.DeleteFromQueryAsync(t => t.HospitalGroupId == hospitalGroupId && t.SCPStudyId == item); @@ -876,6 +876,16 @@ namespace IRaCIS.Application.Services //更新 foreach (var item in incommand.SCPstudyIdList) { + var existList = _SCPStudyHospitalGroupRepository.Where(t => t.SCPStudyId == item).Select(t => t.HospitalGroupId).ToList(); + + var deleteIdList = existList.Except(incommand.HospitalGroupIdList); + + if (_studySubjectVisitRepository.Where(t => t.SCPStudyId == item).Any(t => t.SCPStudy.HospitalGroupList.Any(c => deleteIdList.Contains(c.HospitalGroupId)))) + { + //已经添加到项目,不允许删除课题组 + return ResponseOutput.NotOk(_localizer["Patient_StudyHospitalGroupBinded"]); + } + await _SCPStudyHospitalGroupRepository.BatchDeleteNoTrackingAsync(t => t.SCPStudyId == item); foreach (var hospitalGroupId in incommand.HospitalGroupIdList) @@ -2177,7 +2187,7 @@ namespace IRaCIS.Application.Services VisitMinStudyTime = g.Min(c => c.StudyTime) }).ToList(); - var list = _subjectVisitReposiotry.Where(t => t.SubjectId == inQuery.SubjectId).ProjectTo(_mapper.ConfigurationProvider).OrderBy(t=>t.VisitNum).ToList(); + var list = _subjectVisitReposiotry.Where(t => t.SubjectId == inQuery.SubjectId).ProjectTo(_mapper.ConfigurationProvider).OrderBy(t => t.VisitNum).ToList(); foreach (var item in list) {