liusheng
昨天 28446c1489c8977d634e7a39dbbc96967e22c6f1
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
@@ -33,9 +33,9 @@
    @Autowired
    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
    @Autowired
    private TemplateDeptMapper templateDeptMapper;
    @Autowired
    private SvyLibTemplateTagMapper svyLibTemplateTagMapper;
    @Autowired
    private SvyLibScriptCategoryMapper svyLibScriptCategoryMapper;
    @Autowired
    private Icd10AssociationMapper icd10AssociationMapper;
@@ -57,22 +57,18 @@
        svyLibTemplateReq.setCategoryid(svyLibTemplate.getCategoryid());
        svyLibTemplateReq.setDescription(svyLibTemplate.getDescription());
        svyLibTemplateReq.setSvyname(svyLibTemplate.getSvyname());
        svyLibTemplateReq.setOrgid(svyLibTemplate.getOrgid());
        List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq);
        for (SvyLibTemplate svyLibTemplate1 : svyLibTemplates) {
            SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
            svyLibTemplateScript.setSvyid(svyLibTemplate1.getSvyid());
            List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
            for (SvyLibTemplateScript svyLibTemplateScript1 : svyLibTemplateScripts) {
                if (svyLibTemplateScript1.getScriptType().equals("1") || svyLibTemplateScript1.getScriptType().equals("2")) {
                    SvyLibTemplateTargetoption svyLibTemplateTargetoption = new SvyLibTemplateTargetoption();
                    svyLibTemplateTargetoption.setScriptid(svyLibTemplateScript1.getId());
                    List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption);
                    svyLibTemplateScript1.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions);
                }
            }
            svyLibTemplate1.setSvyTemplateLibScripts(svyLibTemplateScripts);
        }
        svyLibTemplatesCycle(svyLibTemplates);
        return svyLibTemplates;
    }
    @Override
    public List<SvyLibTemplate> getSviLibTemplateByDeptCode(TemplateDeptVO templateDeptVO) {
        if (templateDeptVO.getType() == null) templateDeptVO.setType(1L);
        if (templateDeptVO.getDeptType() == null) templateDeptVO.setDeptType("1");
        List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateListByDeptCode(templateDeptVO);
        svyLibTemplatesCycle(svyLibTemplates);
        return svyLibTemplates;
    }
@@ -90,6 +86,7 @@
        for (int i = 0; i < svyLibTemplateVOS.size(); i++) {
            SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
            svyLibTemplateScript.setSvyid(svyLibTemplateVOS.get(i).getSvyid());
            svyLibTemplateScript.setOrgid(svyLibTemplateVOS.get(i).getOrgid());
            List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
            //获取题目选项
            a:
@@ -101,6 +98,7 @@
                } else {
                    SvyLibTemplateTargetoption svyLibTopicoption = new SvyLibTemplateTargetoption();
                    svyLibTopicoption.setScriptid(svyLibTemplateScripts.get(j).getId());
                    svyLibTopicoption.setOrgid(svyLibTemplateVOS.get(i).getOrgid());
                    List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTopicoption);
                    //将查询出的选项目放到题目中
                    svyLibTemplateScripts.get(j).setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions);
@@ -108,12 +106,6 @@
            }
            //将题目放到问卷列表中
            svyLibTemplateVOS.get(i).setSvyTemplateLibScripts(svyLibTemplateScripts);
            //获取每个问卷对应的科室
            TemplateDept templateDept = new TemplateDept();
            templateDept.setTempid(svyLibTemplateVOS.get(i).getSvyid());
            List<TemplateDept> tempDetpRelevances = templateDeptMapper.selectTemplateDeptList(templateDept);
            svyLibTemplateVOS.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>());
            //获取标签
            SvyLibTemplateTag svyLibTemplateTag = new SvyLibTemplateTag();
@@ -185,6 +177,13 @@
            for (SvyLibTemplateScript svyLibScript : svyLibTemplate.getSvyTemplateLibScripts()) {
                svyLibScript.setGuid(svyLibTemplateVO.getGuid());
                svyLibScript.setOrgid(svyLibTemplateVO.getOrgid());
                //获取一下分类名称
                if (StringUtils.isEmpty(svyLibScript.getCategoryName())) {
                    SvyLibScriptCategory svyLibScriptCategory = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(svyLibScript.getCategoryid());
                    if (svyLibScriptCategory != null) svyLibScript.setCategoryName(svyLibScriptCategory.getName());
                }
                //对题目进行处理
                if (svyLibScript.getIsoperation() != null) {
                    //问题的操作不为空
@@ -211,22 +210,6 @@
                    }
                }
            }
        }
        if (CollectionUtils.isNotEmpty(svyLibTemplate.getTempDetpRelevances())) {
            for (TemplateDept tempDetpRelevance : svyLibTemplate.getTempDetpRelevances()) {
                tempDetpRelevance.setGuid(svyLibTemplateVO.getGuid());
                tempDetpRelevance.setOrgid(svyLibTemplateVO.getOrgid());
                if (tempDetpRelevance.getId() == null) {
                    //新增
                    tempDetpRelevance.setTempid(svyLibTemplate.getSvyid());
                    tempDetpRelevance.setType(1L);
                    templateDeptMapper.insertTemplateDept(tempDetpRelevance);
                } else {
                    templateDeptMapper.updateTemplateDept(tempDetpRelevance);
                }
            }
        }
        //标签处理
@@ -327,4 +310,34 @@
            svyLibTemplateTargetoptionMapper.deleteSvyLibTemplateTargetoptionById(svyLibTemplateTargetoption.getId());
        }
    }
    private void svyLibTemplatesCycle(List<SvyLibTemplate> svyLibTemplates) {
        for (SvyLibTemplate svyLibTemplate1 : svyLibTemplates) {
            SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
            svyLibTemplateScript.setSvyid(svyLibTemplate1.getSvyid());
            svyLibTemplateScript.setOrgid(svyLibTemplate1.getOrgid());
            List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
            // 收集所有需要查询选项的scriptId(scriptType为1或2的题目才需要选项)
            List<Long> scriptIds = svyLibTemplateScripts.stream().filter(s -> "1".equals(s.getScriptType()) || "2".equals(s.getScriptType())).map(SvyLibTemplateScript::getId).filter(Objects::nonNull).collect(Collectors.toList());
            // 批量查询所有选项,按scriptId分组
            Map<Long, List<SvyLibTemplateTargetoption>> optionMap;
            if (CollectionUtils.isNotEmpty(scriptIds)) {
                List<SvyLibTemplateTargetoption> allOptions = svyLibTemplateTargetoptionMapper.selectByScriptIds(scriptIds, svyLibTemplate1.getOrgid());
                optionMap = allOptions.stream().collect(Collectors.groupingBy(SvyLibTemplateTargetoption::getScriptid));
            } else {
                optionMap = new HashMap<>();
            }
            // 将选项分配到对应题目
            for (SvyLibTemplateScript svyLibTemplateScript1 : svyLibTemplateScripts) {
                if ("1".equals(svyLibTemplateScript1.getScriptType()) || "2".equals(svyLibTemplateScript1.getScriptType())) {
                    svyLibTemplateScript1.setSvyLibTemplateTargetoptions(optionMap.getOrDefault(svyLibTemplateScript1.getId(), new ArrayList<>()));
                }
            }
            svyLibTemplate1.setSvyTemplateLibScripts(svyLibTemplateScripts);
        }
    }
}