diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java index 3f72448e..d90eb88c 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java @@ -48,6 +48,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -384,23 +385,33 @@ public class PatientInfoServiceImpl implements IPatientInfoService { patientInfoImport.setHospitalAgencyName(agency.getAgencyName()); //医院有科室且名称一致塞值,不一致取数据返回,医院没科室科室数据返回 if (CollectionUtils.isNotEmpty(departmentList)) { - Department equalsDepartment = departmentList.stream().filter(Objects::nonNull) - .filter(item -> patientInfoImport.getDeptAlias().equals(item.getDepartmentName()) || (StringUtils.isNotEmpty(item.getDepartmentAbbreviation()) && item.getDepartmentAbbreviation().contains(patientInfoImport.getDeptAlias()))).findFirst().orElse(new Department()); + Department equalsDepartment = departmentList.stream().filter(Objects::nonNull).filter(item -> patientInfoImport.getDeptAlias().equals(item.getDepartmentName())).findFirst().orElse(new Department()); + //科室名称一致塞值 if (Objects.nonNull(equalsDepartment.getId())) { patientInfoImport.setDepartmentId(equalsDepartment.getId()); patientInfoImport.setDepartmentName(patientInfoImport.getDepartmentName()); + patientInfoImportList.add(patientInfoImport); + continue; + //科室别名一致塞值 } else { - DeptAliasVO deptAliasVO = new DeptAliasVO(); - deptAliasVO.setSn(sn); - deptAliasVO.setDeptAlias(patientInfoImport.getDeptAlias()); - deptAliasVOS.add(deptAliasVO); + Department containsDepartment = departmentList.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotEmpty(item.getDepartmentAbbreviation()) && item.getDepartmentAbbreviation().contains(patientInfoImport.getDeptAlias())).findFirst().orElse(new Department()); + if (Objects.nonNull(containsDepartment.getId())) { + List departmentAbbreviation = Arrays.asList(containsDepartment.getDepartmentAbbreviation().split("\\|")); + String s = departmentAbbreviation.stream().filter(Objects::nonNull).filter(item -> (patientInfoImport.getDeptAlias().equals(item))).findFirst().orElse(null); + if (StringUtils.isNotBlank(s)) { + patientInfoImport.setDepartmentId(containsDepartment.getId()); + patientInfoImport.setDepartmentName(patientInfoImport.getDepartmentName()); + patientInfoImportList.add(patientInfoImport); + continue; + } + } } - } else { - DeptAliasVO deptAliasVO = new DeptAliasVO(); - deptAliasVO.setSn(sn); - deptAliasVO.setDeptAlias(patientInfoImport.getDeptAlias()); - deptAliasVOS.add(deptAliasVO); } + //无科室名返回数据 + DeptAliasVO deptAliasVO = new DeptAliasVO(); + deptAliasVO.setSn(sn); + deptAliasVO.setDeptAlias(patientInfoImport.getDeptAlias()); + deptAliasVOS.add(deptAliasVO); patientInfoImportList.add(patientInfoImport); } if (CollectionUtils.isEmpty(patientInfoImportList)) { @@ -515,7 +526,7 @@ public class PatientInfoServiceImpl implements IPatientInfoService { deptAliasdepartment.setUpdateTime(LocalDateTime.now()); departments.add(deptAliasdepartment); } else if (Objects.nonNull(deptAliasVO.getDeptAlias()) && StringUtils.isEmpty(department1.getDepartmentAbbreviation())) { - department1.setDepartmentAbbreviation(deptAliasVO.getDeptAlias()); + deptAliasdepartment.setDepartmentAbbreviation(deptAliasVO.getDeptAlias()); deptAliasdepartment.setId(department1.getId()); deptAliasdepartment.setUpdateBy(SecurityUtils.getUsername()); deptAliasdepartment.setUpdateTime(LocalDateTime.now()); @@ -529,25 +540,24 @@ public class PatientInfoServiceImpl implements IPatientInfoService { return AjaxResult.error("导入失败,请联系管理员!"); } } - //新增患者表信息 - int i = patientInfoMapper.insertPatientInfoList(patientInfoImports); - if (i <= 0) { - return AjaxResult.error("导入失败,请联系管理员!"); - } - //新增居民表信息 - List patientInfoIds = new ArrayList<>(patientInfoImports); + //新增居民表 + patientInfoImports.forEach(item -> item.setPatientInfoImportId(item.getId())); int residentCount = residentInfoMapper.insertResidentInfoList(patientInfoImports); if (residentCount <= 0) { return AjaxResult.error("导入失败,请联系管理员!"); } - List residentIds = new ArrayList<>(patientInfoImports); + patientInfoImports.forEach(item -> item.setResidentId(item.getId())); + //新增患者表 + int i = patientInfoMapper.insertPatientInfoList(patientInfoImports); + if (i <= 0) { + return AjaxResult.error("导入失败,请联系管理员!"); + } + patientInfoImports.forEach(item -> item.setPatientInfoId(item.getId())); List patientVisitRecords = new ArrayList<>(); for (PatientInfoImport patientInfoImport : patientInfoImports) { - PatientInfoImport patientInfoId = patientInfoIds.stream().filter(Objects::nonNull).filter(item -> patientInfoImport.getPatientName().equals(item.getPatientName()) && patientInfoImport.getPatientPhone().equals(item.getPatientPhone())).findFirst().orElse(new PatientInfoImport()); - PatientInfoImport residentId = residentIds.stream().filter(Objects::nonNull).filter(item -> patientInfoImport.getPatientName().equals(item.getPatientName()) && patientInfoImport.getPatientPhone().equals(item.getPatientPhone())).findFirst().orElse(new PatientInfoImport()); PatientVisitRecord patientVisitRecord = new PatientVisitRecord(); - patientVisitRecord.setPatientId(patientInfoId.getId()); - patientVisitRecord.setResidentId(residentId.getId()); + patientVisitRecord.setPatientId(patientInfoImport.getPatientInfoId()); + patientVisitRecord.setResidentId(patientInfoImport.getResidentId()); BeanUtils.copyProperties(patientInfoImport, patientVisitRecord); patientVisitRecord.setDelFlag(0); patientVisitRecord.setHospitalAgencyId(agency.getId()); diff --git a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml index 69e32485..80b0c8e0 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml @@ -629,7 +629,8 @@ select a.agency_name as hospitalAgencyName, a.id as hospitalAgencyId, d.id, - d.department_name + d.department_name, + d.department_abbreviation FROM agency a LEFT JOIN department d ON a.id = d.hospital_agency_id where a.id = #{hospitalAgencyId}