From 97a29a31c5ae914bc377b298a49f682190ea737c Mon Sep 17 00:00:00 2001 From: suizihe <2958847195@qq.com> Date: Mon, 24 Nov 2025 09:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E8=AF=8A=E6=8C=82=E5=8F=B7=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PatientCardRenewalServiceImpl.java | 6 +++-- .../OutpatientRegistrationAppServiceImpl.java | 27 +++++++++++++------ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/charge/patientcardrenewal/PatientCardRenewalServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/charge/patientcardrenewal/PatientCardRenewalServiceImpl.java index 35a4bd76..c9f73e11 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/charge/patientcardrenewal/PatientCardRenewalServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/charge/patientcardrenewal/PatientCardRenewalServiceImpl.java @@ -12,6 +12,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; +import java.util.List; + /** * 患者换卡服务实现类 * @@ -43,8 +45,8 @@ public class PatientCardRenewalServiceImpl implements PatientCardRenewalService // 2. 检查新卡号是否已被使用 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PatientIdentifier::getIdentifierNo, request.getNewCardNo()); - PatientIdentifier existingIdentifier = patientIdentifierService.getOne(queryWrapper); - if (existingIdentifier != null) { + List existingIdentifiers = patientIdentifierService.list(queryWrapper); + if (existingIdentifiers != null && !existingIdentifiers.isEmpty()) { throw new IllegalArgumentException("新卡号已被其他患者使用,请更换新卡号"); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientRegistrationAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientRegistrationAppServiceImpl.java index 4579fd36..b3cfec5f 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientRegistrationAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/chargemanage/appservice/impl/OutpatientRegistrationAppServiceImpl.java @@ -98,10 +98,20 @@ public class OutpatientRegistrationAppServiceImpl implements IOutpatientRegistra queryWrapper.orderByDesc("update_time"); // 通过证件号匹配 patient if (StringUtils.isNotEmpty(searchKey)) { - PatientIdentifier patientIdentifier = patientIdentifierService - .getOne(new LambdaQueryWrapper().eq(PatientIdentifier::getIdentifierNo, searchKey)); - if (patientIdentifier != null) { - queryWrapper.or(q -> q.eq("id", patientIdentifier.getPatientId())); + List patientIdentifiers = patientIdentifierService + .list(new LambdaQueryWrapper().eq(PatientIdentifier::getIdentifierNo, searchKey)); + if (patientIdentifiers != null && !patientIdentifiers.isEmpty()) { + // 如果有多个匹配结果,将它们全部添加到查询条件中 + if (patientIdentifiers.size() == 1) { + // 单个结果时直接添加条件 + queryWrapper.or(q -> q.eq("id", patientIdentifiers.get(0).getPatientId())); + } else { + // 多个结果时使用in条件 + List patientIds = patientIdentifiers.stream() + .map(PatientIdentifier::getPatientId) + .collect(Collectors.toList()); + queryWrapper.or(q -> q.in("id", patientIds)); + } } } // 患者信息 @@ -120,10 +130,11 @@ public class OutpatientRegistrationAppServiceImpl implements IOutpatientRegistra e.setFirstEnum_enumText(patientIdList.contains(e.getId()) ? EncounterType.FOLLOW_UP.getInfo() : EncounterType.INITIAL.getInfo()); // 患者标识 - PatientIdentifier patientIdentifier = patientIdentifierService - .getOne(new LambdaQueryWrapper().eq(PatientIdentifier::getPatientId, e.getId())); - if (patientIdentifier != null) { - e.setIdentifierNo(patientIdentifier.getIdentifierNo()); + List patientIdentifiers = patientIdentifierService + .list(new LambdaQueryWrapper().eq(PatientIdentifier::getPatientId, e.getId())); + if (patientIdentifiers != null && !patientIdentifiers.isEmpty()) { + // 取第一个标识号,如果需要可以根据业务需求选择其他逻辑 + e.setIdentifierNo(patientIdentifiers.get(0).getIdentifierNo()); } });