From 907641e56c2085aaa81f267946dc3e3e9fca73e7 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 18 九月 2024 09:39:02 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java | 178 +++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 111 insertions(+), 67 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 15fb59d..871e4d3 100644 --- a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java @@ -1,13 +1,5 @@ package com.smartor.service.impl; -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; @@ -16,7 +8,9 @@ import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.*; import com.smartor.mapper.BaseTagMapper; +import com.smartor.mapper.PatArchiveMapper; import com.smartor.mapper.PatArchivetagMapper; +import com.smartor.service.IPatArchiveService; import com.smartor.service.IPatMedInhospService; import com.smartor.service.IPatMedOuthospService; import com.smartor.service.IPatMedPhysicalService; @@ -24,14 +18,23 @@ 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.ss.usermodel.DataFormatter; +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 com.smartor.mapper.PatArchiveMapper; -import com.smartor.service.IPatArchiveService; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; + +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; /** * 鎮h�呮。妗圫ervice涓氬姟灞傚鐞� @@ -94,63 +97,62 @@ * @return 缁撴灉 */ @Override - public int insertPatArchive(PatArchive patArchive) { + public Integer insertPatArchive(PatArchive patArchive) { patArchive.setCreateTime(DateUtils.getNowDate()); - List<PatArchive> patArchives = new ArrayList<>(); - patArchives.add(patArchive); - return patArchiveMapper.insertPatArchive(patArchives); + patArchiveMapper.insertPatArchiveSingle(patArchive); + return patArchive.getId().intValue(); + } + + @Override + public Boolean update(PatArchive patArchive) { + int i = patArchiveMapper.updatePatArchive(patArchive); + if (i != 1) { + return false; + } + return true; } /** - * 淇敼鎮h�呮。妗� + * 鏂板鎴栦慨鏀规偅鑰呮。淇℃伅 * - * @param patArchive 鎮h�呮。妗� + * @param patArchiveVO 鏂板鎴栦慨鏀规偅鑰呮。淇℃伅 * @return 缁撴灉 */ @Transactional(rollbackFor = Exception.class) @Override - public Boolean updatePatArchive(PatArchive patArchive) { - patArchive.setUpdateTime(DateUtils.getNowDate()); + 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); + } - for (String tagName : patArchive.getTagList()) { - 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(null); - baseTag.setDelFlag("0"); - baseTag.setCreateBy(null); - baseTag.setCreateTime(new Date()); - baseTag.setCreateBy(null); - baseTag.setCreateTime(new Date()); - baseTagMapper.insertBaseTag(baseTag); - //鐒跺悗鍐嶅線pat_archivetag琛ㄤ腑鏂板 - } else { - //濡傛灉鍦╞asetag涓瓨鍦�,鍒欐牴鎹畉agid鍜宲atid鍘籶at_archivetag琛ㄤ腑鏌ヨ鏄惁瀛樺湪 - baseTag = baseTags.get(0); - PatArchivetag patArchivetag = new PatArchivetag(); - patArchivetag.setPatid(patArchive.getPatid()); - patArchivetag.setTagid(baseTag.getTagid()); - List<PatArchivetag> patArchivetags = patArchivetagMapper.selectPatArchivetagAndBaseTagList(patArchivetag); - if (CollectionUtils.isNotEmpty(patArchivetags)) { - //濡傛灉瀛樺湪锛宑ontinue; - continue; - } else { - //濡傛灉涓嶅瓨鍦紝鍒欏垯pat_archivetag涓柊澧� - // 鏂板鎮h�呮。妗堟爣绛� + 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); } } - PatArchivetag patArchivetag = DtoConversionUtils.sourceToTarget(baseTag, PatArchivetag.class); - patArchivetag.setUpdateBy(null); - patArchivetag.setCreateTime(new Date()); - patArchivetag.setPatid(patArchive.getPatid()); - patArchivetagMapper.insertPatArchivetag(patArchivetag); + } - patArchiveMapper.updatePatArchive(patArchive); return true; } @@ -175,6 +177,46 @@ public int deletePatArchiveByPatid(Long patid) { return patArchiveMapper.deletePatArchiveByPatid(patid); } + + /** + * 鑾峰彇鎮h�呬俊鎭� + * + * @param patArchiveReq + * @return + */ + @Override + public List<PatArchiveOthreInfo> getPatientInfo(PatArchiveReq patArchiveReq) { + if (CollectionUtils.isEmpty(patArchiveReq.getLeavehospitaldistrictcodes()) || patArchiveReq.getLeavehospitaldistrictcodes().size() == 0) { + patArchiveReq.setLeavehospitaldistrictcodes(null); + } + if (CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) || patArchiveReq.getLeaveldeptcodes().size() == 0) { + patArchiveReq.setLeaveldeptcodes(null); + } + + List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>(); + if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) { + // 鏌ョ湅浣忛櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3 + List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchiveReq); + if (CollectionUtils.isNotEmpty(patArchives1)) { + patArchiveList.addAll(patArchives1); + } + } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) { + // 鏌ョ湅浣忛櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3 + List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchiveReq); + if (CollectionUtils.isNotEmpty(patArchives2)) { + patArchiveList.addAll(patArchives2); + } + } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) { + // 鏌ョ湅浣忛櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3 + List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchiveReq); + if (CollectionUtils.isNotEmpty(patArchives3)) { + patArchiveList.addAll(patArchives3); + } + } + + return patArchiveList; + } + @Override @Transactional @@ -450,7 +492,7 @@ //鏍规嵁鏉′欢鑾峰彇鎮h�呬俊鎭� // List<PatArchive> patArchiveList = patArchiveMapper.patInfoByContion(patArchive); - List<PatArchive> patArchiveList = new ArrayList<>(); + List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>(); if (patArchive.getEndtime() != null) { //鍑洪櫌鏃堕棿鍙湁浣忛櫌鎵嶆湁 @@ -458,35 +500,34 @@ } if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 0) { - List<PatArchive> patArchives0 = patArchiveMapper.selectPatArchiveInfoByAllhosp(patArchive); + List<PatArchiveOthreInfo> 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); + List<PatArchiveOthreInfo> 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); + List<PatArchiveOthreInfo> 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); + List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchive); if (CollectionUtils.isNotEmpty(patArchives3)) { patArchiveList.addAll(patArchives3); } } - //鏍规嵁鎮h�匢D杩涜鍒嗙粍 - Map<Long, List<PatArchive>> listMap = patArchiveList.stream().collect(Collectors.groupingBy(PatArchive::getPatid)); + Map<Long, List<PatArchiveOthreInfo>> listMap = patArchiveList.stream().collect(Collectors.groupingBy(PatArchiveOthreInfo::getId)); //瀵规暟鎹繘琛屽皝瑁� - for (List<PatArchive> list : listMap.values()) { + for (List<PatArchiveOthreInfo> list : listMap.values()) { PatArchive patArchive1 = new PatArchive(); - Set<String> stringList = new HashSet<>(); + Set<PatArchivetag> stringList = new HashSet<>(); for (int i = 0; i < list.size(); i++) { if (i == 0) { patArchive1 = DtoConversionUtils.sourceToTarget(list.get(0), PatArchive.class); @@ -494,7 +535,10 @@ patArchive1.setTag(""); } //灏嗘煡鍑虹殑tag锛屾斁鍒皃atArchive1閲岀殑TagList涓� - stringList.add(list.get(i).getTag()); + 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); @@ -515,7 +559,7 @@ for (int j = 0; j < patArchivetags1.size(); j++) { PatArchivetagAndPatientInfo patArchivetagAndPatientInfo = DtoConversionUtils.sourceToTarget(patArchivetags1.get(j), PatArchivetagAndPatientInfo.class); PatArchive patArchive = new PatArchive(); - patArchive.setPatid(patArchivetagAndPatientInfo.getPatid()); + patArchive.setId(patArchivetagAndPatientInfo.getPatid()); List<PatArchive> patArchiveList = patArchiveMapper.selectPatArchiveList(patArchive); patArchivetagAndPatientInfo.setPatNum(patArchiveList.size()); // patArchivetagAndPatientInfo.setPatArchives(patArchiveList); @@ -529,7 +573,7 @@ for (int j = 0; j < patArchivetags1.size(); j++) { PatArchivetagAndPatientInfo patArchivetagAndPatientInfo = DtoConversionUtils.sourceToTarget(patArchivetags1.get(j), PatArchivetagAndPatientInfo.class); PatArchive patArchive = new PatArchive(); - patArchive.setPatid(patArchivetagAndPatientInfo.getPatid()); + patArchive.setId(patArchivetagAndPatientInfo.getPatid()); List<PatArchive> patArchiveList = patArchiveMapper.selectPatArchiveList(patArchive); // patArchivetagAndPatientInfo.setPatArchives(patArchiveList); patArchivetagAndPatientInfo.setPatNum(patArchiveList.size()); -- Gitblit v1.9.3