| | |
| | | package com.smartor.service.impl; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.smartor.domain.SvyLibTitleReq; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.mapper.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.smartor.mapper.SvyLibTitleMapper; |
| | | import com.smartor.domain.SvyLibTitle; |
| | | import com.smartor.service.ISvyLibTitleService; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | /** |
| | | * 问卷Service业务层处理 |
| | |
| | | * @author ruoyi |
| | | * @date 2023-03-02 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class SvyLibTitleServiceImpl implements ISvyLibTitleService { |
| | | @Autowired |
| | | private SvyLibTitleMapper svyLibTitleMapper; |
| | | @Autowired |
| | | private Icd10AssociationMapper icd10AssociationMapper; |
| | | @Autowired |
| | | private SvyLibTopicMapper svyLibTopicMapper; |
| | | @Autowired |
| | | private SvyLibTopicoptionMapper svyLibTopicoptionMapper; |
| | | @Autowired |
| | | private TempDetpRelevanceMapper tempDetpRelevanceMapper; |
| | | |
| | | /** |
| | | * 查询问卷 |
| | |
| | | @Override |
| | | public List<SvyLibTitle> selectSvyLibTitleList(SvyLibTitleReq svyLibTitleReq) { |
| | | List<SvyLibTitle> svyLibTitles = svyLibTitleMapper.selectSvyLibTitleList(svyLibTitleReq); |
| | | //添加题目 |
| | | for (int i = 0; i < svyLibTitles.size(); i++) { |
| | | SvyLibTopic svyLibTopic = new SvyLibTopic(); |
| | | svyLibTopic.setSvyid(svyLibTitles.get(i).getSvyid()); |
| | | List<SvyLibTopic> svyLibTopics = svyLibTopicMapper.selectSvyLibTopicList(svyLibTopic); |
| | | //获取题目选项 |
| | | a: |
| | | for (int j = 0; j < svyLibTopics.size(); j++) { |
| | | log.info("问题id为:{}", svyLibTopics.get(j).getSvyTopicId()); |
| | | if (StringUtils.isNotEmpty(svyLibTopics.get(j).getTopictype()) && svyLibTopics.get(j).getTopictype().equals("3") || svyLibTopics.get(j).getSvyTopicId() == null) { |
| | | //作答题,不需要选项 |
| | | continue a; |
| | | } else { |
| | | SvyLibTopicoption svyLibTopicoption = new SvyLibTopicoption(); |
| | | svyLibTopicoption.setTopicid(svyLibTopics.get(j).getSvyTopicId()); |
| | | List<SvyLibTopicoption> svyLibTopicoptions = svyLibTopicoptionMapper.selectSvyLibTopicoptionList(svyLibTopicoption); |
| | | //将查询出的选项目放到题目中 |
| | | svyLibTopics.get(j).setSvyLibTopicoptions(svyLibTopicoptions); |
| | | } |
| | | } |
| | | //将题目放到问卷列表中 |
| | | svyLibTitles.get(i).setSvyLibTopics(svyLibTopics); |
| | | |
| | | //获取每个问卷对应的科室 |
| | | TempDetpRelevance tempDetpRelevance = new TempDetpRelevance(); |
| | | tempDetpRelevance.setTempid(svyLibTitles.get(i).getSvyid()); |
| | | List<TempDetpRelevance> tempDetpRelevances = tempDetpRelevanceMapper.selectTempDetpRelevanceList(tempDetpRelevance); |
| | | svyLibTitles.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>()); |
| | | } |
| | | |
| | | //先将相同的id的icdname,整理到一块 |
| | | List<SvyLibTitle> libTitles = svyLibTitles.stream().collect(Collectors.groupingBy(SvyLibTitle::getSvyid, Collectors.mapping(SvyLibTitle::getIcdname, Collectors.joining(", ")))).entrySet().stream().map(entry -> new SvyLibTitle(entry.getKey(), entry.getValue())).collect(Collectors.toList()); |
| | | //临时变量,用来保存疾病名称 |
| | |
| | | * @param svyLibTitle 问卷 |
| | | * @return 结果 |
| | | */ |
| | | @Transactional |
| | | @Override |
| | | public int insertSvyLibTitle(SvyLibTitle svyLibTitle) { |
| | | svyLibTitle.setCreateTime(DateUtils.getNowDate()); |
| | | return svyLibTitleMapper.insertSvyLibTitle(svyLibTitle); |
| | | svyLibTitleMapper.insertSvyLibTitle(svyLibTitle); |
| | | //关联问卷疾病 |
| | | for (String icdId : svyLibTitle.getIcdID()) { |
| | | Icd10Association icd10Association = new Icd10Association(); |
| | | icd10Association.setIcd10code(icdId); |
| | | icd10Association.setSvyid(svyLibTitle.getSvyid()); |
| | | icd10AssociationMapper.insertIcd10Association(icd10Association); |
| | | } |
| | | //新增问题题目 |
| | | for (int i = 0; i < svyLibTitle.getSvyLibTopics().size(); i++) { |
| | | SvyLibTopic svyLibTopic = svyLibTitle.getSvyLibTopics().get(i); |
| | | svyLibTopic.setSvyid(svyLibTitle.getSvyid()); |
| | | //题目的选项目,直接用svy_topicoption表,用svyTopicidf去关联 |
| | | svyLibTopicMapper.insertSvyLibTopic(svyLibTopic); |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | /** |
| | | * 新增或修改问卷模板信息 |
| | | * |
| | | * @param svyLibTitle |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Integer saveOrUpdateTitle(SvyLibTitle svyLibTitle) { |
| | | Integer i = null; |
| | | if (svyLibTitle.getIsoperation() != null && svyLibTitle.getIsoperation() == 1) { |
| | | //新增 |
| | | svyLibTitle.setCreateTime(DateUtils.getNowDate()); |
| | | i = svyLibTitleMapper.insertSvyLibTitle(svyLibTitle); |
| | | } else if (svyLibTitle.getIsoperation() != null && svyLibTitle.getIsoperation() == 2) { |
| | | //修改 |
| | | svyLibTitle.setUpdateTime(DateUtils.getNowDate()); |
| | | i = svyLibTitleMapper.updateSvyLibTitle(svyLibTitle); |
| | | } |
| | | |
| | | //处理题目 |
| | | if (CollectionUtils.isNotEmpty(svyLibTitle.getSvyLibTopics())) { |
| | | for (SvyLibTopic svyLibTopic : svyLibTitle.getSvyLibTopics()) { |
| | | //对题目进行处理 |
| | | if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) { |
| | | //新增 |
| | | svyLibTopic.setSvyid(svyLibTitle.getSvyid()); |
| | | //题目的选项目,直接用svy_topicoption表,用svyTopicid去关联 |
| | | svyLibTopicMapper.insertSvyLibTopic(svyLibTopic); |
| | | } else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) { |
| | | //修改 |
| | | svyLibTopic.setSvyid(svyLibTitle.getSvyid()); |
| | | svyLibTopicMapper.updateSvyLibTopic(svyLibTopic); |
| | | } |
| | | |
| | | //对题目选项进行处理 |
| | | if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibTopicoptions())) { |
| | | for (SvyLibTopicoption svyLibTopicoption : svyLibTopic.getSvyLibTopicoptions()) { |
| | | if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) { |
| | | //新增 |
| | | svyLibTopicoption.setTopicid(svyLibTopic.getTopicid()); |
| | | svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); |
| | | } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) { |
| | | //修改 |
| | | svyLibTopicoption.setTopicid(svyLibTopic.getTopicid()); |
| | | svyLibTopicoptionMapper.updateSvyLibTopicoption(svyLibTopicoption); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | if (CollectionUtils.isNotEmpty(svyLibTitle.getTempDetpRelevances())) { |
| | | for (TempDetpRelevance tempDetpRelevance : svyLibTitle.getTempDetpRelevances()) { |
| | | if (tempDetpRelevance.getId() == null) { |
| | | //新增 |
| | | tempDetpRelevance.setTempid(svyLibTitle.getSvyid()); |
| | | tempDetpRelevance.setType(1L); |
| | | tempDetpRelevanceMapper.insertTempDetpRelevance(tempDetpRelevance); |
| | | } else { |
| | | tempDetpRelevanceMapper.updateTempDetpRelevance(tempDetpRelevance); |
| | | } |
| | | } |
| | | |
| | | } |
| | | return i; |
| | | } |
| | | |
| | | /** |