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()); } });