liusheng
2023-12-28 ac79f032745c975eb77d6fb148ed390f2373559e
smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java
@@ -5,14 +5,16 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.smartor.domain.SvyLibTitleReq;
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业务层处理
@@ -20,10 +22,17 @@
 * @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;
    /**
     * 查询问卷
@@ -45,6 +54,30 @@
    @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 (svyLibTopics.get(j).getTopictype() != null && svyLibTopics.get(j).getTopictype() == 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);
        }
        //先将相同的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());
        //临时变量,用来保存疾病名称
@@ -69,10 +102,81 @@
     * @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 (svyLibTitle.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);
                        }
                    }
                }
            }
        }
        return i;
    }
    /**