liusheng
2024-06-25 f455524346fe74e3d626e5b70bd401c88e066601
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
@@ -1,21 +1,22 @@
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.ruoyi.common.utils.StringUtils;
import com.smartor.domain.*;
import com.smartor.mapper.*;
import com.smartor.service.ISvyLibTemplateService;
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.service.ISvyLibTemplateService;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 问卷Service业务层处理
@@ -31,9 +32,9 @@
    @Autowired
    private Icd10AssociationMapper icd10AssociationMapper;
    @Autowired
    private SvyLibScriptMapper svyLibScriptMapper;
    private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
    @Autowired
    private SvyLibScriptOptionMapper svyLibTopicoptionMapper;
    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
    @Autowired
    private TempDetpRelevanceMapper tempDetpRelevanceMapper;
@@ -59,26 +60,29 @@
        List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq);
        //添加题目
        for (int i = 0; i < svyLibTemplates.size(); i++) {
            SvyLibScript svyLibTopic = new SvyLibScript();
            svyLibTopic.setSvyid(svyLibTemplates.get(i).getSvyid());
            List<SvyLibScript> svyLibTopics = svyLibScriptMapper.selectSvyLibScriptList(svyLibTopic);
//            SvyLibScript svyLibScript = new SvyLibScript();
//            svyLibScript.setSvyid(svyLibTemplates.get(i).getSvyid());
//            List<SvyLibScript> svyLibTopics = svyLibScriptMapper.selectSvyLibScriptList(svyLibScript);
            SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
            svyLibTemplateScript.setSvyid(svyLibTemplates.get(i).getSvyid());
            List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
            //获取题目选项
            a:
            for (int j = 0; j < svyLibTopics.size(); j++) {
                log.info("问题id为:{}", svyLibTopics.get(j).getSvyscriptId());
                if (StringUtils.isNotEmpty(svyLibTopics.get(j).getScripttype()) && svyLibTopics.get(j).getScripttype().equals("3") || svyLibTopics.get(j).getSvyscriptId() == null) {
            for (int j = 0; j < svyLibTemplateScripts.size(); j++) {
                log.info("问题id为:{}", svyLibTemplateScripts.get(j).getId());
                if (StringUtils.isNotEmpty(svyLibTemplateScripts.get(j).getScriptType()) && svyLibTemplateScripts.get(j).getScriptType().equals("3") || svyLibTemplateScripts.get(j).getId() == null) {
                    //作答题,不需要选项
                    continue a;
                } else {
                    SvyLibScriptOption svyLibTopicoption = new SvyLibScriptOption();
                    svyLibTopicoption.setTopicid(svyLibTopics.get(j).getSvyscriptId());
                    List<SvyLibScriptOption> svyLibTopicoptions = svyLibTopicoptionMapper.selectSvyLibScriptOptionList(svyLibTopicoption);
                    SvyLibTemplateTargetoption svyLibTopicoption = new SvyLibTemplateTargetoption();
                    svyLibTopicoption.setScriptid(svyLibTemplateScripts.get(j).getId());
                    List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTopicoption);
                    //将查询出的选项目放到题目中
                    svyLibTopics.get(j).setSvyLibScriptOptions(svyLibTopicoptions);
                    svyLibTemplateScripts.get(j).setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions);
                }
            }
            //将题目放到问卷列表中
            svyLibTemplates.get(i).setSvyLibTopics(svyLibTopics);
            svyLibTemplates.get(i).setSvyLibScripts(svyLibTemplateScripts);
            //获取每个问卷对应的科室
            TempDetpRelevance tempDetpRelevance = new TempDetpRelevance();
@@ -105,33 +109,33 @@
        return libTemplates;
    }
    /**
     * 新增问卷
     *
     * @param svyLibTemplate 问卷
     * @return 结果
     */
    @Transactional
    @Override
    public int insertSvyLibTemplate(SvyLibTemplate svyLibTemplate) {
        svyLibTemplate.setCreateTime(DateUtils.getNowDate());
        svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate);
        //关联问卷疾病
        for (String icdId : svyLibTemplate.getIcdID()) {
            Icd10Association icd10Association = new Icd10Association();
            icd10Association.setIcd10code(icdId);
            icd10Association.setSvyid(svyLibTemplate.getSvyid());
            icd10AssociationMapper.insertIcd10Association(icd10Association);
        }
        //新增问题题目
        for (int i = 0; i < svyLibTemplate.getSvyLibTopics().size(); i++) {
            SvyLibScript svyLibScript = svyLibTemplate.getSvyLibTopics().get(i);
            svyLibScript.setSvyid(svyLibTemplate.getSvyid());
            //题目的选项目,直接用svy_topicoption表,用svyTopicidf去关联
            svyLibScriptMapper.insertSvyLibScript(svyLibScript);
        }
        return 1;
    }
//    /**
//     * 新增问卷
//     *
//     * @param svyLibTemplate 问卷
//     * @return 结果
//     */
//    @Transactional
//    @Override
//    public int insertSvyLibTemplate(SvyLibTemplate svyLibTemplate) {
//        svyLibTemplate.setCreateTime(DateUtils.getNowDate());
//        svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate);
//        //关联问卷疾病
//        for (String icdId : svyLibTemplate.getIcdID()) {
//            Icd10Association icd10Association = new Icd10Association();
//            icd10Association.setIcd10code(icdId);
//            icd10Association.setSvyid(svyLibTemplate.getSvyid());
//            icd10AssociationMapper.insertIcd10Association(icd10Association);
//        }
//        //新增问题题目
//        for (int i = 0; i < svyLibTemplate.getSvyLibScripts().size(); i++) {
//            SvyLibScript svyLibScript = svyLibTemplate.getSvyLibScripts().get(i);
//            svyLibScript.setSvyid(svyLibTemplate.getSvyid());
//            //题目的选项目,直接用svy_topicoption表,用svyTopicidf去关联
//            svyLibScriptMapper.insertSvyLibScript(svyLibScript);
//        }
//        return 1;
//    }
    /**
     * 新增或修改问卷模板信息
@@ -150,34 +154,49 @@
            //修改
            svyLibTemplate.setUpdateTime(DateUtils.getNowDate());
            i = svyLibTemplateMapper.updateSvyLibTemplate(svyLibTemplate);
        } else if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 3) {
            //删除
            i = svyLibTemplateMapper.deleteSvyLibTemplateBySvyid(svyLibTemplate.getSvyid());
        }
        //处理题目
        if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyLibTopics())) {
            for (SvyLibScript svyLibTopic : svyLibTemplate.getSvyLibTopics()) {
        if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyLibScripts())) {
            for (SvyLibTemplateScript svyLibScript : svyLibTemplate.getSvyLibScripts()) {
//                SvyLibTemplateScript svyLibTemplateScript = DtoConversionUtils.sourceToTarget(svyLibScript, SvyLibTemplateScript.class);
                //对题目进行处理
                if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) {
                if (svyLibScript.getIsoperation() != null && svyLibScript.getIsoperation() == 1) {
                    //新增
                    svyLibTopic.setSvyid(svyLibTemplate.getSvyid());
                    //题目的选项目,直接用svy_topicoption表,用svyTopicid去关联
                    svyLibScriptMapper.insertSvyLibScript(svyLibTopic);
                } else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) {
                    svyLibScript.setSvyid(svyLibTemplate.getSvyid());
                    svyLibScript.setId(null);
                    svyLibScript.setCreateTime(new Date());
                    svyLibTemplateScriptMapper.insertSvyLibTemplateScript(svyLibScript);
                } else if (svyLibScript.getIsoperation() != null && svyLibScript.getIsoperation() == 2) {
                    //修改
                    svyLibTopic.setSvyid(svyLibTemplate.getSvyid());
                    svyLibScriptMapper.updateSvyLibScript(svyLibTopic);
                    svyLibScript.setSvyid(svyLibTemplate.getSvyid());
                    svyLibScript.setUpdateTime(new Date());
                    svyLibTemplateScriptMapper.updateSvyLibTemplateScript(svyLibScript);
                } else if (svyLibScript.getIsoperation() != null && svyLibScript.getIsoperation() == 3) {
                    svyLibTemplateScriptMapper.deleteSvyLibTemplateScriptByTopicid(svyLibScript.getId());
                }
                //对题目选项进行处理
                if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibScriptOptions())) {
                    for (SvyLibScriptOption svyLibTopicoption : svyLibTopic.getSvyLibScriptOptions()) {
                        if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) {
                if (CollectionUtils.isNotEmpty(svyLibScript.getSvyLibTemplateTargetoptions())) {
                    for (SvyLibTemplateTargetoption svyLibTemplateTargetoption : svyLibScript.getSvyLibTemplateTargetoptions()) {
                        if (svyLibTemplateTargetoption.getIsoperation() != null && svyLibTemplateTargetoption.getIsoperation() == 1) {
                            //新增
                            svyLibTopicoption.setTopicid(svyLibTopic.getId());
                            svyLibTopicoptionMapper.insertSvyLibScriptOption(svyLibTopicoption);
                        } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) {
                            svyLibTemplateTargetoption.setScriptid(svyLibScript.getId());
                            svyLibTemplateTargetoption.setCreateTime(new Date());
                            svyLibTemplateTargetoptionMapper.insertSvyLibTemplateTargetoption(svyLibTemplateTargetoption);
                        } else if (svyLibTemplateTargetoption.getIsoperation() != null && svyLibTemplateTargetoption.getIsoperation() == 2) {
                            //修改
                            svyLibTopicoption.setTopicid(svyLibTopic.getId());
                            svyLibTopicoptionMapper.updateSvyLibScriptOption(svyLibTopicoption);
                            svyLibTemplateTargetoption.setScriptid(svyLibScript.getId());
                            svyLibTemplateTargetoption.setUpdateTime(new Date());
                            svyLibTemplateTargetoptionMapper.updateSvyLibTemplateTargetoption(svyLibTemplateTargetoption);
                        } else if (svyLibTemplateTargetoption.getIsoperation() != null && svyLibTemplateTargetoption.getIsoperation() == 3) {
                            //删除
                            svyLibTemplateTargetoptionMapper.deleteSvyLibTemplateTargetoptionById(svyLibTemplateTargetoption.getId());
                        }
                    }