| | |
| | | import java.io.FileNotFoundException; |
| | | import java.io.FileOutputStream; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | 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.domain.*; |
| | | import com.smartor.mapper.BaseTagMapper; |
| | | import com.smartor.mapper.PatArchivetagMapper; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.apache.poi.hssf.usermodel.HSSFDateUtil; |
| | | import org.apache.poi.ss.formula.functions.Now; |
| | | import org.apache.poi.ss.usermodel.*; |
| | | import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.core.parameters.P; |
| | | 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; |
| | |
| | | |
| | | @Override |
| | | @Transactional |
| | | public PatUpInfoVO importFilehandle(String username, MultipartFile file) { |
| | | public PatUpInfoVO importFilehandle(SysUser user, String tags, MultipartFile file) { |
| | | PatUpInfoVO patUpInfoVO = new PatUpInfoVO(); |
| | | Integer successNum = 0; |
| | | Integer failNum = 0; |
| | |
| | | } |
| | | |
| | | //患都标签是否为空 |
| | | if (ObjectUtils.isEmpty(row.getCell(7))) { |
| | | addRemark("患者标签为空", patArchive); |
| | | if (ObjectUtils.isEmpty(row.getCell(7)) || StringUtils.isEmpty(row.getCell(7).toString())) { |
| | | if (StringUtils.isEmpty(tags)) { |
| | | addRemark("患者标签为空", patArchive); |
| | | } else { |
| | | patArchive.setTag(tags); |
| | | |
| | | } |
| | | } else { |
| | | patArchive.setTag(row.getCell(7).toString()); |
| | | if (StringUtils.isNotEmpty(tags)) { |
| | | patArchive.setTag(row.getCell(7).toString() + "," + tags); |
| | | } else { |
| | | patArchive.setTag(row.getCell(7).toString()); |
| | | } |
| | | } |
| | | |
| | | //判断备注是否为空 |
| | |
| | | patArchiveMapper.insertPatArchive(patArchive); |
| | | |
| | | //根据标签名查询出标签信息 |
| | | String s = row.getCell(7).toString(); |
| | | 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); |
| | | BaseTag baseTag1 = baseTags.get(0); |
| | | |
| | | //如果该标签为空,现标签管理没有出现过的新标签时,自动将标签添加到"标签管理"未分类“中。编辑人为导入账号 |
| | | 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); |
| | | } |
| | | |
| | | // 新增患者档案标签 |
| | | PatArchivetag patArchivetag = DtoConversionUtils.sourceToTarget(baseTag1, PatArchivetag.class); |
| | | patArchivetag.setUpdateBy(username); |
| | | PatArchivetag patArchivetag = DtoConversionUtils.sourceToTarget(baseTag, PatArchivetag.class); |
| | | patArchivetag.setUpdateBy(user.getUserName()); |
| | | patArchivetag.setCreateTime(new Date()); |
| | | patArchivetag.setPatid(patArchive.getPatid()); |
| | | patArchivetagMapper.insertPatArchivetag(patArchivetag); |
| | |
| | | return "导出成功"; |
| | | } |
| | | |
| | | @Override |
| | | public List<PatArchive> patInfoByContion(PatArchiveReq patArchive) { |
| | | List<PatArchive> patArchives = new ArrayList<>(); |
| | | |
| | | //根据条件获取患者信息 |
| | | List<PatArchive> patArchiveList = patArchiveMapper.patInfoByContion(patArchive); |
| | | //根据患者ID进行分组 |
| | | Map<Long, List<PatArchive>> listMap = patArchiveList.stream().collect(Collectors.groupingBy(PatArchive::getPatid)); |
| | | |
| | | //对数据进行封装 |
| | | for (List<PatArchive> list : listMap.values()) { |
| | | PatArchive patArchive1 = new PatArchive(); |
| | | List<String> stringList = new ArrayList<>(); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | if (i == 0) { |
| | | patArchive1 = DtoConversionUtils.sourceToTarget(list.get(0), PatArchive.class); |
| | | //将标签置空,不空也没有问题 |
| | | patArchive1.setTag(""); |
| | | } |
| | | //将查出的tag,放到patArchive1里的TagList中 |
| | | stringList.add(list.get(i).getTag()); |
| | | } |
| | | patArchive1.setTagList(stringList); |
| | | 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)); |
| | | //获取患者patid |
| | | 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.setPatid(patArchivetagAndPatientInfo.getPatid()); |
| | | List<PatArchive> patArchiveList = patArchiveMapper.selectPatArchiveList(patArchive); |
| | | patArchivetagAndPatientInfo.setPatNum(patArchiveList.size()); |
| | | // patArchivetagAndPatientInfo.setPatArchives(patArchiveList); |
| | | patArchivetagAndPatientInfos.add(patArchivetagAndPatientInfo); |
| | | } |
| | | } |
| | | } else { |
| | | PatArchivetag patArchivetag = new PatArchivetag(); |
| | | //获取患者patid |
| | | 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.setPatid(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; |
| | | } |
| | | |
| | | private void getdata(Row row, PatArchive patArchive, Boolean head) { |
| | | if (head) { |
| | | row.createCell(0).setCellValue("姓名"); |