liusheng
2024-08-28 bedd0a1cef215538df64470df6b8d4a022189136
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
@@ -1,6 +1,7 @@
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.*;
@@ -13,9 +14,7 @@
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.*;
import java.util.stream.Collectors;
/**
@@ -37,6 +36,8 @@
    private TempDetpRelevanceMapper tempDetpRelevanceMapper;
    @Autowired
    private SvyLibTemplateTagMapper svyLibTemplateTagMapper;
    @Autowired
    private Icd10AssociationMapper icd10AssociationMapper;
    /**
     * 查询问卷
@@ -51,7 +52,7 @@
    @Override
    public List<SvyLibTemplate> getSviLibTemplate(SvyLibTemplate svyLibTemplate) {
        SvyLibTemplateReq svyLibTemplateReq=new SvyLibTemplateReq();
        SvyLibTemplateReq svyLibTemplateReq = new SvyLibTemplateReq();
        svyLibTemplateReq.setSvyid(svyLibTemplate.getSvyid());
        svyLibTemplateReq.setCategoryid(svyLibTemplate.getCategoryid());
        svyLibTemplateReq.setDescription(svyLibTemplate.getDescription());
@@ -65,12 +66,13 @@
     * @return 问卷
     */
    @Override
    public List<SvyLibTemplate> selectSvyLibTemplateList(SvyLibTemplateReq svyLibTemplateReq) {
    public List<SvyLibTemplateVO> selectSvyLibTemplateList(SvyLibTemplateReq svyLibTemplateReq) {
        List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq);
        List<SvyLibTemplateVO> svyLibTemplateVOS = DtoConversionUtils.sourceToTarget(svyLibTemplates, SvyLibTemplateVO.class);
        //添加题目
        for (int i = 0; i < svyLibTemplates.size(); i++) {
        for (int i = 0; i < svyLibTemplateVOS.size(); i++) {
            SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
            svyLibTemplateScript.setSvyid(svyLibTemplates.get(i).getSvyid());
            svyLibTemplateScript.setSvyid(svyLibTemplateVOS.get(i).getSvyid());
            List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
            //获取题目选项
            a:
@@ -88,48 +90,64 @@
                }
            }
            //将题目放到问卷列表中
            svyLibTemplates.get(i).setSvyTemplateLibScripts(svyLibTemplateScripts);
            svyLibTemplateVOS.get(i).setSvyTemplateLibScripts(svyLibTemplateScripts);
            //获取每个问卷对应的科室
            TempDetpRelevance tempDetpRelevance = new TempDetpRelevance();
            tempDetpRelevance.setTempid(svyLibTemplates.get(i).getSvyid());
            tempDetpRelevance.setTempid(svyLibTemplateVOS.get(i).getSvyid());
            List<TempDetpRelevance> tempDetpRelevances = tempDetpRelevanceMapper.selectTempDetpRelevanceList(tempDetpRelevance);
            svyLibTemplates.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>());
            svyLibTemplateVOS.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>());
            //获取标签
            SvyLibTemplateTag svyLibTemplateTag = new SvyLibTemplateTag();
            svyLibTemplateTag.setTemplateid(svyLibTemplates.get(i).getSvyid());
            svyLibTemplateTag.setTemplateid(svyLibTemplateVOS.get(i).getSvyid());
            List<SvyLibTemplateTag> svyLibTemplateTags = svyLibTemplateTagMapper.selectSvyLibTemplateTagList(svyLibTemplateTag);
            svyLibTemplates.get(i).setSvyLibTemplateTagList(svyLibTemplateTags);
            svyLibTemplateVOS.get(i).setSvyLibTemplateTagList(svyLibTemplateTags);
            //获取疾病
            Icd10Association icd10Association = new Icd10Association();
            icd10Association.setType(5L);
            icd10Association.setOutid(svyLibTemplateVOS.get(i).getSvyid());
            svyLibTemplateVOS.get(i).setIcd10AssociationList(icd10AssociationMapper.selectIcd10AssociationList(icd10Association));
        }
        //先将相同的id的icdname,整理到一块
        List<SvyLibTemplate> libTemplates = svyLibTemplates.stream().collect(Collectors.groupingBy(SvyLibTemplate::getSvyid, Collectors.mapping(SvyLibTemplate::getIcdname, Collectors.joining(", ")))).entrySet().stream().map(entry -> new SvyLibTemplate(entry.getKey(), entry.getValue())).collect(Collectors.toList());
        List<SvyLibTemplateVO> libTemplates = svyLibTemplateVOS.stream().collect(Collectors.groupingBy(SvyLibTemplateVO::getSvyid, Collectors.mapping(SvyLibTemplateVO::getIcdname, Collectors.joining(", ")))).entrySet().stream().map(entry -> new SvyLibTemplateVO(entry.getKey(), entry.getValue())).collect(Collectors.toList());
        //临时变量,用来保存疾病名称
        String icdname = null;
        for (int i = 0; i < libTemplates.size(); i++) {
            for (int j = 0; j < svyLibTemplates.size(); j++) {
                if (ObjectUtils.isNotEmpty(libTemplates.get(i).getSvyid()) && libTemplates.get(i).getSvyid() == svyLibTemplates.get(j).getSvyid()) {
            for (int j = 0; j < svyLibTemplateVOS.size(); j++) {
                if (ObjectUtils.isNotEmpty(libTemplates.get(i).getSvyid()) && libTemplates.get(i).getSvyid() == svyLibTemplateVOS.get(j).getSvyid()) {
                    icdname = libTemplates.get(i).getIcdname();
                    // 将原数据拷贝到整理的好的对象上
                    BeanUtils.copyProperties(svyLibTemplates.get(j), libTemplates.get(i));
                    BeanUtils.copyProperties(svyLibTemplateVOS.get(j), libTemplates.get(i));
                    //再将整理好的“疾病名称”替换
                    libTemplates.get(i).setIcdname(icdname);
                }
                //将问题按序号排一下序
                Collections.sort(svyLibTemplateVOS.get(j).getSvyTemplateLibScripts(), new Comparator<SvyLibTemplateScript>() {
                    @Override
                    public int compare(SvyLibTemplateScript o1, SvyLibTemplateScript o2) {
                        return Integer.compare(o1.getSort().intValue(), o2.getSort().intValue());
                    }
                });
            }
        }
        return libTemplates;
        return svyLibTemplateVOS;
    }
    /**
     * 新增或修改问卷模板信息
     *
     * @param svyLibTemplate
     * @param svyLibTemplateVO
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Integer saveOrUpdateTemplate(SvyLibTemplate svyLibTemplate) {
    public Integer saveOrUpdateTemplate(SvyLibTemplateVO svyLibTemplateVO) {
        SvyLibTemplate svyLibTemplate = DtoConversionUtils.sourceToTarget(svyLibTemplateVO, SvyLibTemplate.class);
        Integer i = null;
        if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 1) {
            //新增
@@ -202,6 +220,19 @@
            }
        }
        if (CollectionUtils.isNotEmpty(svyLibTemplateVO.getIcd10AssociationList())) {
            for (Icd10Association icd10Association : svyLibTemplateVO.getIcd10AssociationList()) {
                if (icd10Association.getId() == null) {
                    icd10Association.setType(5L);
                    icd10Association.setOutid(svyLibTemplate.getSvyid());
                    icd10AssociationMapper.insertIcd10Association(icd10Association);
                } else {
                    icd10Association.setType(5L);
                    icd10Association.setOutid(svyLibTemplate.getSvyid());
                    icd10AssociationMapper.updateIcd10Association(icd10Association);
                }
            }
        }
        return i;
    }