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<PatArchiveImport> 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<PatArchiveImport> importPatInfo(MultipartFile multipartFile) {
|
//用于返回
|
List<PatArchiveImport> 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;
|
}
|
}
|