package com.smartor.service.impl; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.PatArchiveImport; import com.smartor.mapper.PatArchiveImportMapper; import com.smartor.service.IPatArchiveImportService; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Excel导入患者档案Service业务层处理 * * @author lihu * @date 2024-09-05 */ @Service public class PatArchiveImportServiceImpl implements IPatArchiveImportService { @Autowired private PatArchiveImportMapper patArchiveImportMapper; /** * 查询Excel导入患者档案 * * @param id Excel导入患者档案主键 * @return Excel导入患者档案 */ @Override public PatArchiveImport selectPatArchiveImportById(Long id) { return patArchiveImportMapper.selectPatArchiveImportById(id); } /** * 查询Excel导入患者档案列表 * * @param patArchiveImport Excel导入患者档案 * @return Excel导入患者档案 */ @Override public List selectPatArchiveImportList(PatArchiveImport patArchiveImport) { return patArchiveImportMapper.selectPatArchiveImportList(patArchiveImport); } /** * 新增Excel导入患者档案 * * @param patArchiveImport Excel导入患者档案 * @return 结果 */ @Override public int insertPatArchiveImport(PatArchiveImport patArchiveImport) { patArchiveImport.setCreateTime(DateUtils.getNowDate()); return patArchiveImportMapper.insertPatArchiveImport(patArchiveImport); } /** * 修改Excel导入患者档案 * * @param patArchiveImport Excel导入患者档案 * @return 结果 */ @Override public int updatePatArchiveImport(PatArchiveImport patArchiveImport) { patArchiveImport.setUpdateTime(DateUtils.getNowDate()); return patArchiveImportMapper.updatePatArchiveImport(patArchiveImport); } /** * 批量删除Excel导入患者档案 * * @param ids 需要删除的Excel导入患者档案主键 * @return 结果 */ @Override public int deletePatArchiveImportByIds(Long[] ids) { return patArchiveImportMapper.deletePatArchiveImportByIds(ids); } /** * 删除Excel导入患者档案信息 * * @param id Excel导入患者档案主键 * @return 结果 */ @Override public int deletePatArchiveImportById(Long id) { return patArchiveImportMapper.deletePatArchiveImportById(id); } @Override public List importPatInfo(MultipartFile multipartFile) { //用于返回 List patArchiveImports = new ArrayList<>(); try { Workbook workbook = new XSSFWorkbook(multipartFile.getInputStream()); Sheet sheet = workbook.getSheetAt(0); for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) { //导入患者对象 PatArchiveImport patArchiveImport = new PatArchiveImport(); Row row = sheet.getRow(i); //如果行为空,进行下一次循环 if (ObjectUtils.isEmpty(row.getCell(0)) && ObjectUtils.isEmpty(row.getCell(1)) && ObjectUtils.isEmpty(row.getCell(2))) { continue; } //判断数据是否有问题 if (ObjectUtils.isNotEmpty(row.getCell(0).toString())) { patArchiveImport.setName(row.getCell(0).toString()); } if (ObjectUtils.isNotEmpty(row.getCell(1))) { patArchiveImport.setIdcardno(row.getCell(1).toString()); } if (ObjectUtils.isNotEmpty(row.getCell(2))) { patArchiveImport.setTelcode(row.getCell(2).toString()); } if (ObjectUtils.isNotEmpty(row.getCell(3))) { patArchiveImport.setBatchName(row.getCell(3).toString()); } if (ObjectUtils.isNotEmpty(row.getCell(4))) { patArchiveImport.setPatientno(row.getCell(4).toString()); } if (ObjectUtils.isNotEmpty(row.getCell(5))) { patArchiveImport.setPattype(row.getCell(5).toString()); } if (ObjectUtils.isNotEmpty(row.getCell(6))) { patArchiveImport.setSex(Long.valueOf(row.getCell(6).toString())); } if (ObjectUtils.isNotEmpty(row.getCell(7))) { patArchiveImport.setAge(Long.valueOf(row.getCell(7).toString())); } patArchiveImports.add(patArchiveImport); patArchiveImport.setCreateTime(new Date()); patArchiveImport.setUpdateTime(new Date()); //批量号(当前时间) patArchiveImport.setBatchNo(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())); insertPatArchiveImport(patArchiveImport); } } catch (Exception e) { e.printStackTrace(); } return patArchiveImports; } }