From e975b2b18607732086feefe522c93b4b8d3391a5 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 06 六月 2023 14:44:30 +0800 Subject: [PATCH] 患者信息批量上传 --- smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java | 201 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 180 insertions(+), 21 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java index e7dd825..714d832 100644 --- a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java @@ -1,96 +1,255 @@ package com.smartor.service.impl; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; import java.util.List; + import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.DtoConversionUtils; +import com.ruoyi.common.utils.StringUtils; +import com.smartor.domain.BaseTag; +import com.smartor.domain.PatArchivetag; +import com.smartor.domain.PatUpInfoVO; +import com.smartor.mapper.BaseTagMapper; +import com.smartor.mapper.PatArchivetagMapper; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.poi.hssf.usermodel.HSSFDateUtil; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.smartor.mapper.PatArchiveMapper; import com.smartor.domain.PatArchive; import com.smartor.service.IPatArchiveService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; /** * 鎮h�呮。妗圫ervice涓氬姟灞傚鐞� - * + * * @author smartor * @date 2023-03-04 */ @Service -public class PatArchiveServiceImpl implements IPatArchiveService -{ +public class PatArchiveServiceImpl implements IPatArchiveService { @Autowired private PatArchiveMapper patArchiveMapper; + @Autowired + private BaseTagMapper baseTagMapper; + + @Autowired + private PatArchivetagMapper patArchivetagMapper; + + /** * 鏌ヨ鎮h�呮。妗� - * + * * @param patid 鎮h�呮。妗堜富閿� * @return 鎮h�呮。妗� */ @Override - public PatArchive selectPatArchiveByPatid(Long patid) - { + public PatArchive selectPatArchiveByPatid(Long patid) { return patArchiveMapper.selectPatArchiveByPatid(patid); } /** * 鏌ヨ鎮h�呮。妗堝垪琛� - * + * * @param patArchive 鎮h�呮。妗� * @return 鎮h�呮。妗� */ @Override - public List<PatArchive> selectPatArchiveList(PatArchive patArchive) - { + public List<PatArchive> selectPatArchiveList(PatArchive patArchive) { return patArchiveMapper.selectPatArchiveList(patArchive); } /** * 鏂板鎮h�呮。妗� - * + * * @param patArchive 鎮h�呮。妗� * @return 缁撴灉 */ @Override - public int insertPatArchive(PatArchive patArchive) - { + public int insertPatArchive(PatArchive patArchive) { patArchive.setCreateTime(DateUtils.getNowDate()); return patArchiveMapper.insertPatArchive(patArchive); } /** * 淇敼鎮h�呮。妗� - * + * * @param patArchive 鎮h�呮。妗� * @return 缁撴灉 */ @Override - public int updatePatArchive(PatArchive patArchive) - { + public int updatePatArchive(PatArchive patArchive) { patArchive.setUpdateTime(DateUtils.getNowDate()); return patArchiveMapper.updatePatArchive(patArchive); } /** * 鎵归噺鍒犻櫎鎮h�呮。妗� - * + * * @param patids 闇�瑕佸垹闄ょ殑鎮h�呮。妗堜富閿� * @return 缁撴灉 */ @Override - public int deletePatArchiveByPatids(Long[] patids) - { + public int deletePatArchiveByPatids(Long[] patids) { return patArchiveMapper.deletePatArchiveByPatids(patids); } /** * 鍒犻櫎鎮h�呮。妗堜俊鎭� - * + * * @param patid 鎮h�呮。妗堜富閿� * @return 缁撴灉 */ @Override - public int deletePatArchiveByPatid(Long patid) - { + public int deletePatArchiveByPatid(Long patid) { return patArchiveMapper.deletePatArchiveByPatid(patid); } + + @Override + @Transactional + public PatUpInfoVO fileHandle(String username, MultipartFile file) { + PatUpInfoVO patUpInfoVO = new PatUpInfoVO(); + Integer successNum = 0; + Integer failNum = 0; + + List<PatArchive> errorpatArchiveList = new ArrayList<>(); + try { + Workbook workbook = new XSSFWorkbook(file.getInputStream()); + Sheet sheet = workbook.getSheetAt(0); + + for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) { + Row row = sheet.getRow(i); + //濡傛灉琛屼负绌猴紝杩涜涓嬩竴娆″惊鐜� + if (ObjectUtils.isEmpty(row)) { + continue; + } + PatArchive patArchive = new PatArchive(); + if (ObjectUtils.isEmpty(row.getCell(3))) { + patArchive.setRemark("韬唤璇佸彿涓虹┖"); + } else { + patArchive.setIccardno(row.getCell(3).toString()); + //鏍规嵁韬唤璇侊紝鍏堝幓鎮h�呯鐞嗚〃閲岀湅鐪嬫湁娌℃湁杩欎釜浜�,濡傛灉鏈夎繖涓汉锛屼篃涓嶉渶瑕佹彃鍏ユ偅鑰呰〃 + List<PatArchive> patArchiveList1 = patArchiveMapper.selectPatArchiveList(patArchive); + if (patArchiveList1.size() > 0) { + patArchive.setRemark("璇ユ偅鑰呭凡瀛樺湪"); + } + } + + //鍒ゆ柇濮撳悕鏄惁涓虹┖ + if (ObjectUtils.isEmpty(row.getCell(0))) { + patArchive.setRemark(patArchive.getRemark() + "," + "濮撳悕涓虹┖"); + errorpatArchiveList.add(patArchive); + } else { + patArchive.setName(row.getCell(0).toString()); + } + + //鍒ゆ柇鎬у埆鏄惁涓虹┖ + + if (ObjectUtils.isEmpty(row.getCell(1))) { + patArchive.setRemark(patArchive.getRemark() + "," + "鎬у埆涓虹┖"); + } else { + patArchive.setSex(row.getCell(1).toString().equals("鐢�") ? 1L : 2L); + } + + //鍒ゆ柇璇佷欢绫诲瀷鏄惁涓虹┖ + if (ObjectUtils.isEmpty(row.getCell(2))) { + patArchive.setRemark("璇佷欢绫诲瀷涓虹┖"); + } else { + patArchive.setIccardtype(row.getCell(2).toString()); + } + + //鍒ゆ柇鍑虹敓鏃ユ湡鏄惁涓虹┖ + if (ObjectUtils.isEmpty(row.getCell(4))) { + patArchive.setRemark("鍑虹敓鏃ユ湡涓虹┖"); + } else { + //鏍煎紡杞崲锛岃浆鎴愭棩鏈� + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); + Date javaDate = new Date(); + if (row.getCell(4).getCellType().toString().equals("NUMERIC")) { + javaDate = HSSFDateUtil.getJavaDate(row.getCell(4).getNumericCellValue()); + } else { + javaDate = new Date(row.getCell(4).toString()); + } + dateFormat.format(javaDate); + patArchive.setBirthdate(javaDate); + } + + //鍒ゆ柇鏈汉鑱旂郴鏄惁涓虹┖锛屽拰闀垮害鏄惁姝g‘ + if (ObjectUtils.isEmpty(row.getCell(5))) { + patArchive.setRemark("鏈汉鑱旂郴鐢佃瘽涓虹┖"); + } else { + //鏍煎紡杞崲锛岃浆鎴愭枃鏈� + if (row.getCell(5).getCellType().toString().equals("NUMERIC")) { + String cellData = String.valueOf((long) row.getCell(5).getNumericCellValue()); + patArchive.setTelcode(cellData); + } else { + DataFormatter dataFormatter = new DataFormatter(); + String cellValue = dataFormatter.formatCellValue(row.getCell(5)); + patArchive.setTelcode(cellValue); + } + } + + //鍒ゆ柇浜插睘鑱旂郴鏂瑰紡鏄惁涓虹┖锛岄暱搴︽槸鍚︽纭� + if (ObjectUtils.isEmpty(row.getCell(6))) { + patArchive.setRemark("鏈汉鑱旂郴鐢佃瘽涓虹┖"); + } else { + //鏍煎紡杞崲锛岃浆鎴愭枃鏈� + if (row.getCell(6).getCellType().toString().equals("NUMERIC")) { + String cellData = String.valueOf((long) row.getCell(6).getNumericCellValue()); + patArchive.setRelativetelcode(cellData); + } else { + DataFormatter dataFormatter = new DataFormatter(); + String cellValue = dataFormatter.formatCellValue(row.getCell(6)); + patArchive.setRelativetelcode(cellValue); + } + } + + //鎮i兘鏍囩鏄惁涓虹┖ + if (ObjectUtils.isEmpty(row.getCell(7))) { + patArchive.setRemark("鎮h�呮爣绛句负绌�"); + } + + //鍒ゆ柇澶囨敞鏄惁涓虹┖ + if (!StringUtils.isEmpty(patArchive.getRemark())) { + //濡傛灉澶囨敞瀛楁涓嶄负绌猴紝璇存湁璇ユ偅鑰呭~鍐欐湁闂 + errorpatArchiveList.add(patArchive); + failNum = failNum + 1; + continue; + } + + //寰�鎮h�呰〃閲屾柊澧�,骞惰幏鍙栧埌鏂板ID + patArchiveMapper.insertPatArchive(patArchive); + + //鏍规嵁鏍囩鍚嶆煡璇㈠嚭鏍囩淇℃伅 + BaseTag baseTag = new BaseTag(); + baseTag.setTagname(row.getCell(7).toString()); + List<BaseTag> baseTags = baseTagMapper.selectBaseTagList(baseTag); + BaseTag baseTag1 = baseTags.get(0); + + // 鏂板鎮h�呮。妗堟爣绛� + PatArchivetag patArchivetag = DtoConversionUtils.sourceToTarget(baseTag1, PatArchivetag.class); + patArchivetag.setUpdateBy(username); + patArchivetag.setCreateTime(new Date()); + patArchivetag.setPatid(patArchive.getPatid()); + patArchivetagMapper.insertPatArchivetag(patArchivetag); + successNum = successNum + 1; + } + + } catch (Exception e) { + e.printStackTrace(); + } + + patUpInfoVO.setFailNum(failNum); + patUpInfoVO.setSuccessNum(successNum); + patUpInfoVO.setPatArchiveList(errorpatArchiveList); + return patUpInfoVO; + } + } + -- Gitblit v1.9.3