| | |
| | | existingArchives = patArchiveService.selectPatArchiveList(queryByIdCard); |
| | | } |
| | | |
| | | // 第三步:按 patidHis 查重(兼容旧数据,旧数据可能以 patientId 存为 patientno) |
| | | if (CollectionUtils.isEmpty(existingArchives) && dto.getPatientId() != null) { |
| | | PatArchive queryByPatidHis = new PatArchive(); |
| | | queryByPatidHis.setPatientno(String.valueOf(dto.getPatientId())); |
| | | existingArchives = patArchiveService.selectPatArchiveList(queryByPatidHis); |
| | | } |
| | | |
| | | PatArchive patArchive = buildPatientArchive(dto); |
| | | |
| | | if (CollectionUtils.isEmpty(existingArchives)) { |
| | | try { |
| | | patArchiveService.insertPatArchive(patArchive); |
| | | log.debug("【processPatientArchive】新增患者档案,患者编号:{}", patArchive.getPatientno()); |
| | | log.info("【processPatientArchive】新增患者档案,患者编号:{}", patArchive.getPatientno()); |
| | | } catch (org.springframework.dao.DuplicateKeyException e) { |
| | | log.warn("【processPatientArchive】患者档案已存在(并发插入),跳过:patientno={}, idcardno={}", patArchive.getPatientno(), patArchive.getIdcardno()); |
| | | log.error("【processPatientArchive】患者档案已存在(并发插入),跳过:patientno={}, idcardno={}", patArchive.getPatientno(), patArchive.getIdcardno()); |
| | | // 并发插入场景,重新查询获取已存在的记录 |
| | | PatArchive queryRetry = new PatArchive(); |
| | | queryRetry.setPatientno(patArchive.getPatientno()); |
| | |
| | | patArchive.setNotrequiredFlag(existingArchives.get(0).getNotrequiredFlag()); |
| | | patArchive.setNotrequiredreason(existingArchives.get(0).getNotrequiredreason()); |
| | | patArchiveService.updateArchive(patArchive); |
| | | log.debug("【processPatientArchive】更新患者档案,患者编号:{}", patArchive.getPatientno()); |
| | | log.info("【processPatientArchive】更新患者档案,患者编号:{}", patArchive.getPatientno()); |
| | | } |
| | | |
| | | return patArchive; |