liusheng
2024-07-30 1c8b2be08e6c7655bab6d8a99f15b883768f0d38
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
@@ -1,7 +1,6 @@
package com.smartor.service.impl;
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.*;
@@ -12,8 +11,10 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -29,13 +30,13 @@
    @Autowired
    private SvyLibTemplateMapper svyLibTemplateMapper;
    @Autowired
    private Icd10AssociationMapper icd10AssociationMapper;
    @Autowired
    private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
    @Autowired
    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
    @Autowired
    private TempDetpRelevanceMapper tempDetpRelevanceMapper;
    @Autowired
    private SvyLibTemplateTagMapper svyLibTemplateTagMapper;
    /**
     * 查询问卷
@@ -46,6 +47,15 @@
    @Override
    public SvyLibTemplate selectSvyLibTemplateBySvyid(Long svyid) {
        return svyLibTemplateMapper.selectSvyLibTemplateBySvyid(svyid);
    }
    @Override
    public List<SvyLibTemplate> getSviLibTemplate(SvyLibTemplate svyLibTemplate) {
        SvyLibTemplateReq svyLibTemplateReq=new SvyLibTemplateReq();
        svyLibTemplateReq.setSvyid(svyLibTemplate.getSvyid());
        svyLibTemplateReq.setCategoryid(svyLibTemplate.getCategoryid());
        svyLibTemplateReq.setDescription(svyLibTemplate.getDescription());
        return svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq);
    }
    /**
@@ -59,9 +69,6 @@
        List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq);
        //添加题目
        for (int i = 0; i < svyLibTemplates.size(); i++) {
//            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);
@@ -81,13 +88,19 @@
                }
            }
            //将题目放到问卷列表中
            svyLibTemplates.get(i).setSvyLibScripts(svyLibTemplateScripts);
            svyLibTemplates.get(i).setSvyTemplateLibScripts(svyLibTemplateScripts);
            //获取每个问卷对应的科室
            TempDetpRelevance tempDetpRelevance = new TempDetpRelevance();
            tempDetpRelevance.setTempid(svyLibTemplates.get(i).getSvyid());
            List<TempDetpRelevance> tempDetpRelevances = tempDetpRelevanceMapper.selectTempDetpRelevanceList(tempDetpRelevance);
            svyLibTemplates.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>());
            //获取标签
            SvyLibTemplateTag svyLibTemplateTag = new SvyLibTemplateTag();
            svyLibTemplateTag.setTemplateid(svyLibTemplates.get(i).getSvyid());
            List<SvyLibTemplateTag> svyLibTemplateTags = svyLibTemplateTagMapper.selectSvyLibTemplateTagList(svyLibTemplateTag);
            svyLibTemplates.get(i).setSvyLibTemplateTagList(svyLibTemplateTags);
        }
        //先将相同的id的icdname,整理到一块
@@ -108,86 +121,56 @@
        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.getSvyLibScripts().size(); i++) {
//            SvyLibScript svyLibScript = svyLibTemplate.getSvyLibScripts().get(i);
//            svyLibScript.setSvyid(svyLibTemplate.getSvyid());
//            //题目的选项目,直接用svy_topicoption表,用svyTopicidf去关联
//            svyLibScriptMapper.insertSvyLibScript(svyLibScript);
//        }
//        return 1;
//    }
    /**
     * 新增或修改问卷模板信息
     *
     * @param svyLibTemplate
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Integer saveOrUpdateTemplate(SvyLibTemplate svyLibTemplate) {
        Integer i = null;
        if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 1) {
            //新增
            svyLibTemplate.setCreateTime(DateUtils.getNowDate());
            i = svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate);
            svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate);
        } else if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 2) {
            //修改
            svyLibTemplate.setUpdateTime(DateUtils.getNowDate());
            i = svyLibTemplateMapper.updateSvyLibTemplate(svyLibTemplate);
            svyLibTemplateMapper.updateSvyLibTemplate(svyLibTemplate);
        } else if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 3) {
            //删除
            svyLibTemplateMapper.deleteSvyLibTemplateBySvyid(svyLibTemplate.getSvyid());
        }
        i = svyLibTemplate.getSvyid().intValue();
        //处理题目
        if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyLibScripts())) {
            for (SvyLibTemplateScript svyLibScript : svyLibTemplate.getSvyLibScripts()) {
                SvyLibTemplateScript svyLibTemplateScript = DtoConversionUtils.sourceToTarget(svyLibScript, SvyLibTemplateScript.class);
        if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyTemplateLibScripts())) {
            for (SvyLibTemplateScript svyLibScript : svyLibTemplate.getSvyTemplateLibScripts()) {
                //对题目进行处理
                if (svyLibScript.getIsoperation() != null && svyLibScript.getIsoperation() == 1) {
                    //新增
                    svyLibTemplateScript.setSvyid(svyLibTemplate.getSvyid());
                    svyLibTemplateScript.setId(null);
                    svyLibTemplateScriptMapper.insertSvyLibTemplateScript(svyLibTemplateScript);
                } else if (svyLibScript.getIsoperation() != null && svyLibScript.getIsoperation() == 2) {
                    //修改
                    svyLibTemplateScript.setSvyid(svyLibTemplate.getSvyid());
                    svyLibTemplateScriptMapper.updateSvyLibTemplateScript(svyLibTemplateScript);
                if (svyLibScript.getIsoperation() != null) {
                    //问题的操作不为空
                    scriptHandle(svyLibTemplate.getSvyid(), svyLibScript, svyLibScript.getIsoperation());
                } else if (svyLibScript.getIsoperation() == null && svyLibTemplate.getIsoperation() != null) {
                    //模板的操作不为空
                    scriptHandle(svyLibTemplate.getSvyid(), svyLibScript, svyLibTemplate.getIsoperation());
                }
                //对题目选项进行处理
                if (CollectionUtils.isNotEmpty(svyLibScript.getSvyLibTemplateTargetoptions())) {
                    for (SvyLibTemplateTargetoption svyLibTemplateTargetoption : svyLibScript.getSvyLibTemplateTargetoptions()) {
                        if (svyLibTemplateTargetoption.getIsoperation() != null && svyLibTemplateTargetoption.getIsoperation() == 1) {
                            //新增
                            svyLibTemplateTargetoption.setScriptid(svyLibScript.getId());
                            svyLibTemplateTargetoptionMapper.insertSvyLibTemplateTargetoption(svyLibTemplateTargetoption);
                        } else if (svyLibTemplateTargetoption.getIsoperation() != null && svyLibTemplateTargetoption.getIsoperation() == 2) {
                            //修改
                            svyLibTemplateTargetoption.setScriptid(svyLibScript.getId());
                            svyLibTemplateTargetoptionMapper.updateSvyLibTemplateTargetoption(svyLibTemplateTargetoption);
                        if (svyLibTemplateTargetoption.getIsoperation() != null) {
                            //选选项的操作不为空
                            optionHandle(svyLibTemplateTargetoption, svyLibScript.getId(), svyLibTemplateTargetoption.getIsoperation());
                        } else if (svyLibTemplateTargetoption.getIsoperation() == null && svyLibScript.getIsoperation() != null) {
                            //问题的操作不为空
                            optionHandle(svyLibTemplateTargetoption, svyLibScript.getId(), svyLibScript.getIsoperation());
                        } else if (svyLibTemplateTargetoption.getIsoperation() == null && svyLibScript.getIsoperation() == null && svyLibTemplate.getIsoperation() != null) {
                            //模板的操作不为空
                            optionHandle(svyLibTemplateTargetoption, svyLibScript.getId(), svyLibTemplate.getIsoperation());
                        }
                    }
                }
            }
        }
@@ -200,6 +183,21 @@
                    tempDetpRelevanceMapper.insertTempDetpRelevance(tempDetpRelevance);
                } else {
                    tempDetpRelevanceMapper.updateTempDetpRelevance(tempDetpRelevance);
                }
            }
        }
        //标签处理
        if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyLibTemplateTagList())) {
            for (SvyLibTemplateTag svyLibTemplateTag : svyLibTemplate.getSvyLibTemplateTagList()) {
                if (svyLibTemplateTag.getId() == null) {
                    //新增
                    svyLibTemplateTag.setTemplateid(svyLibTemplate.getSvyid());
                    svyLibTemplateTagMapper.insertSvyLibTemplateTag(svyLibTemplateTag);
                } else {
                    svyLibTemplateTag.setTemplateid(svyLibTemplate.getSvyid());
                    svyLibTemplateTagMapper.updateSvyLibTemplateTag(svyLibTemplateTag);
                }
            }
@@ -240,4 +238,39 @@
    public int deleteSvyLibTemplateBySvyid(Long svyid) {
        return svyLibTemplateMapper.deleteSvyLibTemplateBySvyid(svyid);
    }
    private void scriptHandle(Long svyid, SvyLibTemplateScript svyLibScript, Integer isoperation) {
        if (isoperation == 1) {
            //新增
            svyLibScript.setSvyid(svyid);
            svyLibScript.setId(null);
            svyLibScript.setCreateTime(new Date());
            svyLibTemplateScriptMapper.insertSvyLibTemplateScript(svyLibScript);
        } else if (isoperation == 2) {
            //修改
            svyLibScript.setSvyid(svyid);
            svyLibScript.setUpdateTime(new Date());
            svyLibTemplateScriptMapper.updateSvyLibTemplateScript(svyLibScript);
        } else if (isoperation == 3) {
            svyLibTemplateScriptMapper.deleteSvyLibTemplateScriptByTopicid(svyLibScript.getId());
        }
    }
    private void optionHandle(SvyLibTemplateTargetoption svyLibTemplateTargetoption, Long scriptId, Integer isoperation) {
        if (isoperation == 1) {
            //新增
            svyLibTemplateTargetoption.setScriptid(scriptId);
            svyLibTemplateTargetoption.setCreateTime(new Date());
            svyLibTemplateTargetoptionMapper.insertSvyLibTemplateTargetoption(svyLibTemplateTargetoption);
        } else if (isoperation == 2) {
            //修改
            svyLibTemplateTargetoption.setScriptid(scriptId);
            svyLibTemplateTargetoption.setUpdateTime(new Date());
            svyLibTemplateTargetoptionMapper.updateSvyLibTemplateTargetoption(svyLibTemplateTargetoption);
        } else if (isoperation == 3) {
            //删除
            svyLibTemplateTargetoptionMapper.deleteSvyLibTemplateTargetoptionById(svyLibTemplateTargetoption.getId());
        }
    }
}