liusheng
3 天以前 c462811cd33e81a80bc089e3677975c069d9cda5
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
@@ -59,23 +59,16 @@
        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());
            svyLibTemplateScript.setOrgid(svyLibTemplate1.getOrgid());
            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());
                    svyLibTemplateTargetoption.setOrgid(svyLibTemplateScript1.getOrgid());
                    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;
    }
@@ -185,9 +178,9 @@
                svyLibScript.setGuid(svyLibTemplateVO.getGuid());
                svyLibScript.setOrgid(svyLibTemplateVO.getOrgid());
                //获取一下分类名称
                if(StringUtils.isEmpty(svyLibScript.getCategoryName())){
                if (StringUtils.isEmpty(svyLibScript.getCategoryName())) {
                    SvyLibScriptCategory svyLibScriptCategory = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(svyLibScript.getCategoryid());
                    if(svyLibScriptCategory != null) svyLibScript.setCategoryName(svyLibScriptCategory.getName());
                    if (svyLibScriptCategory != null) svyLibScript.setCategoryName(svyLibScriptCategory.getName());
                }
@@ -317,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);
        }
    }
}