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 | 203 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 181 insertions(+), 22 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 30bf31c..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-01
+ * @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