From 75cb81f0b88f313857ea431b46b929bef95d7cc8 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 29 七月 2024 10:36:59 +0800
Subject: [PATCH] 代码提交
---
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java | 608 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 579 insertions(+), 29 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..c860b0e 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,646 @@
package com.smartor.service.impl;
-import java.util.List;
+import java.io.FileOutputStream;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.DtoConversionUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.smartor.domain.*;
+import com.smartor.mapper.BaseTagMapper;
+import com.smartor.mapper.PatArchivetagMapper;
+import com.smartor.service.IPatMedInhospService;
+import com.smartor.service.IPatMedOuthospService;
+import com.smartor.service.IPatMedPhysicalService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+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
*/
+@Slf4j
@Service
-public class PatArchiveServiceImpl implements IPatArchiveService
-{
+public class PatArchiveServiceImpl implements IPatArchiveService {
@Autowired
private PatArchiveMapper patArchiveMapper;
+ @Autowired
+ private BaseTagMapper baseTagMapper;
+
+ @Autowired
+ private PatArchivetagMapper patArchivetagMapper;
+
+ @Autowired
+ private IPatMedInhospService patMedInhospService;
+
+ @Autowired
+ private IPatMedOuthospService patMedOuthospService;
+
+ @Autowired
+ private IPatMedPhysicalService patMedPhysicalService;
+
+ @Autowired
+ private RedisCache redisCache;
+
+
/**
* 鏌ヨ鎮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 Integer insertPatArchive(PatArchive patArchive) {
patArchive.setCreateTime(DateUtils.getNowDate());
- return patArchiveMapper.insertPatArchive(patArchive);
+ List<PatArchive> patArchives = new ArrayList<>();
+ patArchives.add(patArchive);
+ patArchiveMapper.insertPatArchive(patArchives);
+ if (CollectionUtils.isNotEmpty(patArchives)) {
+ patArchives.get(0).getId();
+ log.info("鎮h�卛d涓�: {}", patArchives.get(0).getId());
+ return patArchives.get(0).getId().intValue();
+ }
+ return null;
}
/**
- * 淇敼鎮h�呮。妗�
- *
- * @param patArchive 鎮h�呮。妗�
+ * 鏂板鎴栦慨鏀规偅鑰呮。淇℃伅
+ *
+ * @param patArchiveVO 鏂板鎴栦慨鏀规偅鑰呮。淇℃伅
* @return 缁撴灉
*/
+ @Transactional(rollbackFor = Exception.class)
@Override
- public int updatePatArchive(PatArchive patArchive)
- {
- patArchive.setUpdateTime(DateUtils.getNowDate());
- return patArchiveMapper.updatePatArchive(patArchive);
+ public Boolean saveOrUpdatePatInfo(PatArchiveVO patArchiveVO) {
+ //閫氳繃isoperation鏉ュ垽鏂槸鍚︽柊澧�
+ PatArchive patArchive = DtoConversionUtils.sourceToTarget(patArchiveVO, PatArchive.class);
+ if (patArchiveVO.getIsoperation() != null && patArchiveVO.getIsoperation() == 1 || patArchiveVO.getId() == null) {
+ //鏂板
+ List<PatArchive> patArchives = new ArrayList<>();
+ patArchive.setUpdateTime(DateUtils.getNowDate());
+ patArchives.add(patArchive);
+ patArchiveMapper.insertPatArchive(patArchives);
+ } else if (patArchiveVO.getIsoperation() != null && patArchiveVO.getIsoperation() == 2 || patArchiveVO.getId() != null) {
+ //淇敼
+ patArchiveVO.setIsoperation(2);
+ patArchiveMapper.updatePatArchive(patArchive);
+ }
+
+ if (CollectionUtils.isNotEmpty(patArchiveVO.getTagList())) {
+ //澶勭悊鏍囩锛堟柊澧炪�佸垹闄わ級
+ for (PatArchivetag patArchivetag : patArchiveVO.getTagList()) {
+ if (patArchivetag.getIsoperation() != null && patArchivetag.getIsoperation() == 1 || patArchivetag.getIsoperation() == null && patArchiveVO.getIsoperation() == 1) {
+ //鏂板
+ patArchivetag.setUpdateBy(null);
+ patArchivetag.setCreateTime(new Date());
+ patArchivetag.setPatid(patArchive.getId());
+ patArchivetagMapper.insertPatArchivetag(patArchivetag);
+ } else if (patArchivetag.getIsoperation() != null && patArchivetag.getIsoperation() == 3 || patArchivetag.getIsoperation() == null && patArchiveVO.getIsoperation() == 3) {
+ patArchivetag.setDelFlag("1");
+ //鍒犻櫎
+ log.info("鏍囩鐨刬d涓猴細{}", patArchivetag.getTagid());
+ patArchivetagMapper.deletePatArchivetagById(patArchivetag);
+ }
+ }
+
+ }
+ return true;
}
/**
* 鎵归噺鍒犻櫎鎮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);
}
+
+ /**
+ * 鑾峰彇鎮h�呬俊鎭�
+ *
+ * @param patArchiveReq
+ * @return
+ */
+ @Override
+ public List<PatTaskRelevance> getPatientInfo(PatArchiveReq patArchiveReq) {
+ List<PatTaskRelevance> PatTaskRelevances = new ArrayList<>();
+
+ List<PatArchive> patArchiveList = new ArrayList<>();
+ if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) {
+ // 鏌ョ湅浣忛櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3
+ List<PatArchive> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchiveReq);
+ if (CollectionUtils.isNotEmpty(patArchives1)) {
+ patArchiveList.addAll(patArchives1);
+ }
+ } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
+ // 鏌ョ湅浣忛櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3
+ List<PatArchive> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchiveReq);
+ if (CollectionUtils.isNotEmpty(patArchives2)) {
+ patArchiveList.addAll(patArchives2);
+ }
+ } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) {
+ // 鏌ョ湅浣忛櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3
+ List<PatArchive> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchiveReq);
+ if (CollectionUtils.isNotEmpty(patArchives3)) {
+ patArchiveList.addAll(patArchives3);
+ }
+ }
+ for (PatArchive patArchive : patArchiveList) {
+ PatTaskRelevance patTaskRelevance = DtoConversionUtils.sourceToTarget(patArchive, PatTaskRelevance.class);
+ patTaskRelevance.setCreateTime(patArchive.getCreateTime());
+ patTaskRelevance.setCreateBy(patArchive.getCreateBy());
+ patTaskRelevance.setDeptName(patArchive.getDept());
+ PatTaskRelevances.add(patTaskRelevance);
+ }
+
+ return PatTaskRelevances;
+ }
+
+
+ @Override
+ @Transactional
+ public PatUpInfoVO importFilehandle(SysUser user, String tags, MultipartFile file) {
+ System.out.println("start : " + System.currentTimeMillis() / 1000);
+ PatUpInfoVO patUpInfoVO = new PatUpInfoVO();
+ //闇�瑕佸鐞嗙殑鎬昏鏁�
+ int lastRowNum = 0;
+
+ final List<PatArchive> errorpatArchiveList = new ArrayList<>();
+ //鍒涘缓绾跨▼姹�
+ ExecutorService pool = Executors.newFixedThreadPool(10);
+ try {
+ Workbook workbook = new XSSFWorkbook(file.getInputStream());
+ Sheet sheet = workbook.getSheetAt(0);
+
+ //鑾峰彇鏂囦欢閲岀殑鎬昏鏁�
+ lastRowNum = sheet.getLastRowNum();
+ //灏嗘枃浠堕噷鐨勬暟鎹垎鎴�10浠�
+ int partsize = lastRowNum / 10;
+ for (int i = 0; i < 10; i++) {
+ int start = i * partsize + 1;
+ int end = (i + 1) * partsize;
+
+ pool.execute(new Runnable() {
+ @Override
+ public void run() {
+ for (int j = start; j <= end; j++) {
+ List<PatArchive> patArchives = new ArrayList<>();
+ String name = Thread.currentThread().getName();
+ Row row = sheet.getRow(j);
+ //濡傛灉琛屼负绌猴紝杩涜涓嬩竴娆″惊鐜�
+ if (ObjectUtils.isEmpty(row)) {
+ continue;
+ }
+ PatArchive patArchive = new PatArchive();
+ if (ObjectUtils.isEmpty(row.getCell(6)) || StringUtils.isEmpty(row.getCell(6).toString())) {
+ addRemark("璇佷欢鍙风爜涓虹┖", patArchive);
+ } else {
+ patArchive.setIdcardno(row.getCell(6).toString());
+ //鏍规嵁韬唤璇侊紝鍏堝幓鎮h�呯鐞嗚〃閲岀湅鐪嬫湁娌℃湁杩欎釜浜�,濡傛灉鏈夎繖涓汉锛屼篃涓嶉渶瑕佹彃鍏ユ偅鑰呰〃
+ // (杩欎竴鍧楁煡璇細褰卞搷鏁翠綋鐨勯�熷害,闇�瑕佷紭鍖�)
+ List<PatArchive> patArchiveList1 = patArchiveMapper.selectPatArchiveList(patArchive);
+ if (patArchiveList1.size() > 0) {
+ patArchive.setRemark("璇ユ偅鑰呭凡瀛樺湪");
+ }
+ }
+
+ //鍒ゆ柇濮撳悕鏄惁涓虹┖
+ if (Objects.isNull(row.getCell(0)) || StringUtils.isEmpty(row.getCell(0).toString())) {
+ addRemark("濮撳悕涓虹┖", patArchive);
+ } else {
+ patArchive.setName(row.getCell(0).toString());
+ }
+
+ //鍒ゆ柇鎬у埆鏄惁涓虹┖
+ if (ObjectUtils.isEmpty(row.getCell(1)) || StringUtils.isEmpty(row.getCell(1).toString())) {
+ addRemark("鎬у埆涓虹┖", patArchive);
+ } else {
+ patArchive.setSex(row.getCell(1).toString().equals("鐢�") ? 1L : 2L);
+ }
+
+ //鍒ゆ柇璇佷欢绫诲瀷鏄惁涓虹┖
+ if (ObjectUtils.isEmpty(row.getCell(2)) || StringUtils.isEmpty(row.getCell(2).toString())) {
+ addRemark("璇佷欢绫诲瀷涓虹┖", patArchive);
+ } else {
+ patArchive.setIdcardtype(row.getCell(2).toString());
+ }
+
+ //鍒ゆ柇绫嶈疮鏄惁涓虹┖
+ if (ObjectUtils.isEmpty(row.getCell(3)) || StringUtils.isEmpty(row.getCell(3).toString())) {
+ patArchive.setNativePlace(null);
+ } else {
+ patArchive.setNativePlace(row.getCell(3).toString());
+ }
+
+ //鍒ゆ柇灞呬綇鍦版槸鍚︿负绌�
+ if (ObjectUtils.isEmpty(row.getCell(4)) || StringUtils.isEmpty(row.getCell(4).toString())) {
+ patArchive.setPlaceOfResidence(null);
+ } else {
+ patArchive.setPlaceOfResidence(row.getCell(4).toString());
+ }
+
+ //鍒ゆ柇灞呬綇鍦版槸鍚︿负绌�
+ if (ObjectUtils.isEmpty(row.getCell(5)) || StringUtils.isEmpty(row.getCell(5).toString())) {
+ patArchive.setBirthplace(null);
+ } else {
+ patArchive.setBirthplace(row.getCell(5).toString());
+ }
+
+ //鍒ゆ柇鍑虹敓鏃ユ湡鏄惁涓虹┖
+ if (ObjectUtils.isEmpty(row.getCell(7)) || StringUtils.isEmpty(row.getCell(7).toString())) {
+// addRemark("鍑虹敓鏃ユ湡涓虹┖", patArchive);
+ patArchive.setBirthdate(null);
+ } else {
+ //鏍煎紡杞崲锛岃浆鎴愭棩鏈�
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ Date javaDate = new Date();
+ if (row.getCell(7).getCellType().toString().equals("NUMERIC")) {
+ javaDate = HSSFDateUtil.getJavaDate(row.getCell(7).getNumericCellValue());
+ } else {
+ try {
+ javaDate = dateFormat.parse(row.getCell(7).toString());
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ dateFormat.format(javaDate);
+ patArchive.setBirthdate(javaDate);
+ }
+
+ //鍒ゆ柇骞撮緞鏄惁涓虹┖
+ if (ObjectUtils.isEmpty(row.getCell(8)) || StringUtils.isEmpty(row.getCell(8).toString())) {
+ patArchive.setAge(null);
+ } else {
+ patArchive.setAge(Long.valueOf(row.getCell(8).toString()));
+ }
+
+ //鍒ゆ柇鏈汉鑱旂郴鏄惁涓虹┖锛屽拰闀垮害鏄惁姝g‘
+ if (ObjectUtils.isEmpty(row.getCell(12)) || StringUtils.isEmpty(row.getCell(12).toString())) {
+ addRemark("鏈汉鑱旂郴鐢佃瘽涓虹┖", patArchive);
+ } else {
+ //鏍煎紡杞崲锛岃浆鎴愭枃鏈�
+ if (row.getCell(12).getCellType().toString().equals("NUMERIC")) {
+ String cellData = String.valueOf((long) row.getCell(12).getNumericCellValue());
+ patArchive.setTelcode(cellData);
+ } else {
+ DataFormatter dataFormatter = new DataFormatter();
+ String cellValue = dataFormatter.formatCellValue(row.getCell(12));
+ patArchive.setTelcode(cellValue);
+ }
+ }
+
+ //鍒ゆ柇浜插睘鑱旂郴鏂瑰紡鏄惁涓虹┖锛岄暱搴︽槸鍚︽纭�
+ if (ObjectUtils.isEmpty(row.getCell(13)) || StringUtils.isEmpty(row.getCell(13).toString())) {
+// addRemark("浜插睘鑱旂郴鏂瑰紡涓虹┖", patArchive);
+ patArchive.setRelativetelcode(null);
+ } else {
+ //鏍煎紡杞崲锛岃浆鎴愭枃鏈�
+ if (row.getCell(13).getCellType().toString().equals("NUMERIC")) {
+ String cellData = String.valueOf((long) row.getCell(13).getNumericCellValue());
+ patArchive.setRelativetelcode(cellData);
+ } else {
+ DataFormatter dataFormatter = new DataFormatter();
+ String cellValue = dataFormatter.formatCellValue(row.getCell(13));
+ patArchive.setRelativetelcode(cellValue);
+ }
+ }
+ //鍒ゆ柇姘戞棌鏄惁涓虹┖
+ if (ObjectUtils.isEmpty(row.getCell(14)) || StringUtils.isEmpty(row.getCell(14).toString())) {
+ patArchive.setNation(null);
+ } else {
+ patArchive.setNation(row.getCell(14).toString());
+ }
+
+ //鎮i兘鏍囩鏄惁涓虹┖
+ if (ObjectUtils.isEmpty(row.getCell(17)) || StringUtils.isEmpty(row.getCell(17).toString())) {
+ patArchive.setTag(tags);
+ } else {
+ if (StringUtils.isNotEmpty(tags)) {
+ patArchive.setTag(row.getCell(17).toString() + "," + tags);
+ } else {
+ patArchive.setTag(row.getCell(17).toString());
+ }
+ }
+
+ //鍒ゆ柇澶囨敞鏄惁涓虹┖
+ if (!StringUtils.isEmpty(patArchive.getRemark())) {
+ //濡傛灉澶囨敞瀛楁涓嶄负绌猴紝璇存湁璇ユ偅鑰呭~鍐欐湁闂
+ errorpatArchiveList.add(patArchive);
+ continue;
+ }
+
+ patArchive.setUploadTime(new Date());
+ patArchive.setIsupload(0L);
+ //寰�鎮h�呰〃閲屾柊澧�,骞惰幏鍙栧埌鏂板ID
+ patArchives.add(patArchive);
+ int i1 = patArchiveMapper.insertPatArchive(patArchives);
+
+// // 鏍规嵁鏍囩鍚嶆煡璇㈠嚭鏍囩淇℃伅
+// String s = patArchive.getTag();
+// String[] split = s.split(",");
+// for (String tagName : split) {
+// BaseTag baseTag = new BaseTag();
+// baseTag.setTagname(tagName);
+// List<BaseTag> baseTags = baseTagMapper.selectBaseTagList(baseTag);
+//
+// //濡傛灉璇ユ爣绛句负绌猴紝鐜版爣绛剧鐞嗘病鏈夊嚭鐜拌繃鐨勬柊鏍囩鏃讹紝鑷姩灏嗘爣绛炬坊鍔犲埌"鏍囩绠$悊"鏈垎绫烩�滀腑銆傜紪杈戜汉涓哄鍏ヨ处鍙�
+// if (CollectionUtils.isEmpty(baseTags)) {
+// baseTag = new BaseTag();
+// baseTag.setTagcategoryid(1L);
+// baseTag.setTagname(tagName);
+// baseTag.setOrgid(user.getDeptId().toString());
+// baseTag.setDelFlag("0");
+// baseTag.setCreateBy(user.getUserName());
+// baseTag.setCreateTime(new Date());
+// baseTag.setCreateBy(user.getUserName());
+// baseTag.setCreateTime(new Date());
+// baseTagMapper.insertBaseTag(baseTag);
+// } else {
+// baseTag = baseTags.get(0);
+// }
+//
+// // 鏂板鎮h�呮。妗堟爣绛�
+// PatArchivetag patArchivetag = DtoConversionUtils.sourceToTarget(baseTag, PatArchivetag.class);
+// patArchivetag.setUpdateBy(user.getUserName());
+// patArchivetag.setCreateTime(new Date());
+// patArchivetag.setPatid(patArchive.getPatid());
+// patArchivetagMapper.insertPatArchivetag(patArchivetag);
+// }
+
+ patArchives.clear();
+ }
+ }
+ });
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ pool.shutdown();
+ Boolean aa = true;
+ d:
+ while (aa) {
+ boolean terminated = pool.isTerminated();
+ if (terminated) {
+ aa = false;
+ continue d;
+ }
+ }
+
+ if (errorpatArchiveList.size() != 0) {
+ patUpInfoVO.setSuccessNum(lastRowNum - errorpatArchiveList.size());
+ patUpInfoVO.setFailNum(errorpatArchiveList.size());
+ } else {
+ patUpInfoVO.setSuccessNum(lastRowNum == 0 ? 0 : lastRowNum);
+ patUpInfoVO.setFailNum(0);
+ }
+ patUpInfoVO.setPatArchiveList(errorpatArchiveList);
+ return patUpInfoVO;
+ }
+
+ @Override
+ public String exportErrPatInfo(List<PatArchive> patArchiveList) {
+ // 鍒涘缓宸ヤ綔绨垮拰宸ヤ綔琛�
+ Workbook workbook = new XSSFWorkbook();
+ Sheet sheet = workbook.createSheet("Sheet1");
+ // 鍒涘缓琛屽拰鍗曞厓鏍硷紝骞惰缃崟鍏冩牸鐨勫��
+ Row row = sheet.createRow(0);
+ getdata(row, null, true);
+
+ for (int i = 0; i < patArchiveList.size(); i++) {
+ row = sheet.createRow(i + 1);
+ getdata(row, patArchiveList.get(i), false);
+ }
+ // 淇濆瓨宸ヤ綔绨垮埌鏂囦欢
+ FileOutputStream outputStream = null;
+ try {
+ outputStream = new FileOutputStream("鎮h�呴敊璇俊鎭�.xlsx");
+ workbook.write(outputStream);
+ outputStream.close();
+ workbook.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return "瀵煎嚭澶辫触";
+ }
+ return "瀵煎嚭鎴愬姛";
+ }
+
+ @Override
+ public List<PatArchive> patInfoByContion(PatArchiveReq patArchive) {
+ List<PatArchive> patArchives = new ArrayList<>();
+
+ //鏍规嵁鏉′欢鑾峰彇鎮h�呬俊鎭�
+// List<PatArchive> patArchiveList = patArchiveMapper.patInfoByContion(patArchive);
+ List<PatArchive> patArchiveList = new ArrayList<>();
+
+ if (patArchive.getEndtime() != null) {
+ //鍑洪櫌鏃堕棿鍙湁浣忛櫌鎵嶆湁
+ patArchive.setAllhosp(1L);
+ }
+
+ if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 0) {
+ List<PatArchive> patArchives0 = patArchiveMapper.selectPatArchiveInfoByAllhosp(patArchive);
+ if (CollectionUtils.isNotEmpty(patArchives0)) {
+ patArchiveList.addAll(patArchives0);
+ }
+ } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 1) {
+ List<PatArchive> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchive);
+ if (CollectionUtils.isNotEmpty(patArchives1)) {
+ patArchiveList.addAll(patArchives1);
+ }
+ } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 2) {
+ List<PatArchive> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchive);
+ if (CollectionUtils.isNotEmpty(patArchives2)) {
+ patArchiveList.addAll(patArchives2);
+ }
+ } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 3) {
+ List<PatArchive> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchive);
+ if (CollectionUtils.isNotEmpty(patArchives3)) {
+ patArchiveList.addAll(patArchives3);
+ }
+ }
+
+ //鏍规嵁鎮h�匢D杩涜鍒嗙粍
+ Map<Long, List<PatArchive>> listMap = patArchiveList.stream().collect(Collectors.groupingBy(PatArchive::getId));
+
+ //瀵规暟鎹繘琛屽皝瑁�
+ for (List<PatArchive> list : listMap.values()) {
+ PatArchive patArchive1 = new PatArchive();
+ Set<PatArchivetag> stringList = new HashSet<>();
+ for (int i = 0; i < list.size(); i++) {
+ if (i == 0) {
+ patArchive1 = DtoConversionUtils.sourceToTarget(list.get(0), PatArchive.class);
+ //灏嗘爣绛剧疆绌�,涓嶇┖涔熸病鏈夐棶棰�
+ patArchive1.setTag("");
+ }
+ //灏嗘煡鍑虹殑tag锛屾斁鍒皃atArchive1閲岀殑TagList涓�
+ PatArchivetag patArchivetag = new PatArchivetag();
+ patArchivetag.setTagname(list.get(i).getTag());
+ patArchivetag.setTagid(list.get(i).getTagid());
+ stringList.add(patArchivetag);
+ }
+ patArchive1.setTagList(stringList.stream().collect(Collectors.toList()));
+ patArchives.add(patArchive1);
+ }
+
+ return patArchives;
+ }
+
+ @Override
+ public List<PatArchivetagAndPatientInfo> patTagByContion(List<Long> tagids) {
+ List<PatArchivetagAndPatientInfo> patArchivetagAndPatientInfos = new ArrayList<>();
+ if (tagids.size() > 0) {
+ for (int i = 0; i < tagids.size(); i++) {
+ PatArchivetag patArchivetag = new PatArchivetag();
+ patArchivetag.setTagid(tagids.get(i));
+ //鑾峰彇鎮h�卲atid
+ List<PatArchivetag> patArchivetags1 = patArchivetagMapper.selectPatArchivetagAndBaseTagList(patArchivetag);
+ for (int j = 0; j < patArchivetags1.size(); j++) {
+ PatArchivetagAndPatientInfo patArchivetagAndPatientInfo = DtoConversionUtils.sourceToTarget(patArchivetags1.get(j), PatArchivetagAndPatientInfo.class);
+ PatArchive patArchive = new PatArchive();
+ patArchive.setId(patArchivetagAndPatientInfo.getPatid());
+ List<PatArchive> patArchiveList = patArchiveMapper.selectPatArchiveList(patArchive);
+ patArchivetagAndPatientInfo.setPatNum(patArchiveList.size());
+ // patArchivetagAndPatientInfo.setPatArchives(patArchiveList);
+ patArchivetagAndPatientInfos.add(patArchivetagAndPatientInfo);
+ }
+ }
+ } else {
+ PatArchivetag patArchivetag = new PatArchivetag();
+ //鑾峰彇鎮h�卲atid
+ List<PatArchivetag> patArchivetags1 = patArchivetagMapper.selectPatArchivetagAndBaseTagList(patArchivetag);
+ for (int j = 0; j < patArchivetags1.size(); j++) {
+ PatArchivetagAndPatientInfo patArchivetagAndPatientInfo = DtoConversionUtils.sourceToTarget(patArchivetags1.get(j), PatArchivetagAndPatientInfo.class);
+ PatArchive patArchive = new PatArchive();
+ patArchive.setId(patArchivetagAndPatientInfo.getPatid());
+ List<PatArchive> patArchiveList = patArchiveMapper.selectPatArchiveList(patArchive);
+ // patArchivetagAndPatientInfo.setPatArchives(patArchiveList);
+ patArchivetagAndPatientInfo.setPatNum(patArchiveList.size());
+ patArchivetagAndPatientInfos.add(patArchivetagAndPatientInfo);
+ }
+ }
+ return patArchivetagAndPatientInfos;
+ }
+
+ @Override
+ public List<PatArchivetagAndPatientInfo> patInfoByTag(List<Long> tagids) {
+
+
+ return null;
+ }
+
+ @Override
+ public List<Object> getUserTreatmentInfo(String pid, String type) {
+ if (StringUtils.isEmpty(pid) || StringUtils.isEmpty(type)) {
+ throw new BaseException("鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
+ }
+ List<Object> objectList = new ArrayList<>();
+
+ //閫氳繃鎮h�呰幏鍙栭棬璇婁俊鎭�
+ PatMedInhosp patMedInhosp = new PatMedInhosp();
+ patMedInhosp.setInhospno(pid);
+ List<PatMedInhosp> patMedInhosps = patMedInhospService.selectPatMedInhospList(patMedInhosp);
+ objectList.addAll(patMedInhosps);
+
+
+ return null;
+ }
+
+ private void getdata(Row row, PatArchive patArchive, Boolean head) {
+ if (head) {
+ row.createCell(0).setCellValue("濮撳悕");
+ row.createCell(1).setCellValue("鎬у埆");
+ row.createCell(2).setCellValue("璇佷欢绫诲瀷");
+ row.createCell(3).setCellValue("璇佷欢鍙风爜");
+ row.createCell(4).setCellValue("鍑虹敓鏃ユ湡");
+ row.createCell(5).setCellValue("鏈汉鑱旂郴鏂瑰紡");
+ row.createCell(6).setCellValue("浜插睘鑱旂郴鏂瑰紡");
+ row.createCell(7).setCellValue("鎮h�呮爣绛�");
+ row.createCell(8).setCellValue("閿欒鍘熷洜");
+ } else {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
+ row.createCell(0).setCellValue(patArchive.getName());
+ row.createCell(1).setCellValue(patArchive.getSex() == 1 ? "鐢�" : "濂�");
+ row.createCell(2).setCellValue(patArchive.getIdcardtype());
+ row.createCell(3).setCellValue(patArchive.getIdcardno());
+ if (ObjectUtils.isNotEmpty(patArchive.getBirthdate())) {
+ row.createCell(4).setCellValue(simpleDateFormat.format(patArchive.getBirthdate()).toString());
+ }
+ row.createCell(5).setCellValue(patArchive.getTelcode());
+ row.createCell(6).setCellValue(patArchive.getRelativetelcode());
+ row.createCell(7).setCellValue(patArchive.getTag());
+ row.createCell(8).setCellValue(patArchive.getRemark());
+
+
+ }
+
+ }
+
+ public void addRemark(String info, PatArchive patArchive) {
+ if (StringUtils.isNotEmpty(patArchive.getRemark()) == true) {
+ patArchive.setRemark(patArchive.getRemark() + "," + info);
+ } else {
+ patArchive.setRemark(info);
+ }
+ }
+
}
+
--
Gitblit v1.9.3