陈昶聿
5 天以前 8ea6b2e18527d23a542b5bab8bde243ecb7211c2
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -781,6 +781,8 @@
        patMedInhosp.setDelFlag("0");
        patMedInhosp.setOrgid(dto.getOrgId());
        patMedInhosp.setCampusid(dto.getCampusId());
        if(StringUtils.isNotEmpty(dto.getHealthcareRecordStatus())&&dto.getHealthcareRecordStatus().equals("FH0109.25"))
            patMedInhosp.setRemark("预出院");
        return patMedInhosp;
    }
@@ -825,21 +827,14 @@
            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());
@@ -855,7 +850,7 @@
            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;