From c462811cd33e81a80bc089e3677975c069d9cda5 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 09 五月 2026 17:50:06 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 41 insertions(+), 18 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
index 4dee0f7..d5944ea 100644
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
+++ b/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);
+
+            // 鏀堕泦鎵�鏈夐渶瑕佹煡璇㈤�夐」鐨剆criptId锛坰criptType涓�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);
+        }
+    }
 }

--
Gitblit v1.9.3