liusheng
2023-07-07 429615c304035bf573297d69ce6a17e086e4f6fa
smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java
@@ -5,17 +5,15 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.smartor.domain.Icd10Association;
import com.smartor.domain.SvyLibTitleReq;
import com.smartor.domain.SvyLibTopic;
import com.smartor.domain.*;
import com.smartor.mapper.Icd10AssociationMapper;
import com.smartor.mapper.SvyLibTopicMapper;
import com.smartor.mapper.SvyTopicoptionMapper;
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;
@@ -33,6 +31,8 @@
    private Icd10AssociationMapper icd10AssociationMapper;
    @Autowired
    private SvyLibTopicMapper svyLibTopicMapper;
    @Autowired
    private SvyTopicoptionMapper svyTopicoptionMapper;
    /**
     * 查询问卷
@@ -54,6 +54,29 @@
    @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++) {
                if (svyLibTopics.get(j).getTopictype() == 3) {
                    //作答题,不需要选项
                    continue a;
                } else {
                    SvyTopicoption svyTopicoption = new SvyTopicoption();
                    svyTopicoption.setTopicid(svyLibTopics.get(j).getSvyTopicId());
                    List<SvyTopicoption> svyTopicoptions = svyTopicoptionMapper.selectSvyTopicoptionList(svyTopicoption);
                    //将查询出的选项目放到题目中
                    svyLibTopics.get(j).setSvyTopicoptions(svyTopicoptions);
                }
            }
            //将题目放到问卷列表中
            svyLibTitles.get(i).setSvyLibTopics(svyLibTopics);
        }
        //先将相同的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());
        //临时变量,用来保存疾病名称
@@ -93,6 +116,8 @@
        //新增问题题目
        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;