导入修改

This commit is contained in:
zhangheng 2024-12-06 13:48:45 +08:00
parent 00296cc20c
commit 893b341775
2 changed files with 36 additions and 25 deletions

View File

@ -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<String> 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<PatientInfoImport> patientInfoIds = new ArrayList<>(patientInfoImports);
//新增居民表
patientInfoImports.forEach(item -> item.setPatientInfoImportId(item.getId()));
int residentCount = residentInfoMapper.insertResidentInfoList(patientInfoImports);
if (residentCount <= 0) {
return AjaxResult.error("导入失败,请联系管理员!");
}
List<PatientInfoImport> 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<PatientVisitRecord> 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());

View File

@ -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}