From c24d16a37523a49080392610357872ce580cbc38 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 26 十月 2026 14:03:33 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/service/impl/PatSatisfactionServiceImpl.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/service/impl/PatSatisfactionServiceImpl.java b/ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/service/impl/PatSatisfactionServiceImpl.java
index fd18c80..16e57c9 100644
--- a/ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/service/impl/PatSatisfactionServiceImpl.java
+++ b/ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/service/impl/PatSatisfactionServiceImpl.java
@@ -218,6 +218,8 @@
             for (SatisfactionIvrScriptRow ivrLibaTemplateScript : ivrLibaTemplateScripts) {
                 scriptRefs.add(new SatScriptRef(ivrLibaTemplateScript.getTemplateid(), ivrLibaTemplateScript.getScriptid(), ivrLibaTemplateScript.getScriptContent(), ivrLibaTemplateScript.getDimension()));
             }
+            // 鍙繚鐣欐湰鏈熺湡姝d笅鍙戣繃浠诲姟鐨勬ā鏉匡細棰樺簱閲屾寕鐫�鐨勫巻鍙叉ā鏉匡紙浠庢湭涓嬪彂锛変笉鍐嶅崰琛�
+            scriptRefs = keepActiveTemplates(scriptRefs, activeTemplateIds(patSatisfactionReqVO, "1"));
             buildSatisfactionDetailEntities(patSatisfactionReqVO, "1", true, scriptRefs, patSatisfactionDetailEntities, personTotals);
         }
 
@@ -233,6 +235,8 @@
                 // 闂嵎鐨勯�夐」琛ㄦ寜 svy_lib_template_script 鐨勪富閿叧鑱�
                 scriptRefs.add(new SatScriptRef(svyLibTemplateScript.getSvyid(), svyLibTemplateScript.getId(), svyLibTemplateScript.getScriptContent(), svyLibTemplateScript.getDimension()));
             }
+            // 鍙繚鐣欐湰鏈熺湡姝d笅鍙戣繃浠诲姟鐨勬ā鏉匡細棰樺簱閲屾寕鐫�鐨勫巻鍙叉ā鏉匡紙浠庢湭涓嬪彂锛変笉鍐嶅崰琛�
+            scriptRefs = keepActiveTemplates(scriptRefs, activeTemplateIds(patSatisfactionReqVO, "2"));
             buildSatisfactionDetailEntities(patSatisfactionReqVO, "2", false, scriptRefs, patSatisfactionDetailEntities, personTotals);
         }
         result.setTotalAnswerRate(Arith.div(personTotals[0], personTotals[1]));
@@ -272,6 +276,8 @@
                 for (SatisfactionIvrScriptRow ivrLibaTemplateScript : ivrLibaTemplateScripts) {
                     scriptRefs.add(new SatScriptRef(ivrLibaTemplateScript.getTemplateid(), ivrLibaTemplateScript.getScriptid(), ivrLibaTemplateScript.getScriptContent(), ivrLibaTemplateScript.getDimension()));
                 }
+                // 鍙繚鐣欐湰鏈熺湡姝d笅鍙戣繃浠诲姟鐨勬ā鏉匡細棰樺簱閲屾寕鐫�鐨勫巻鍙叉ā鏉匡紙浠庢湭涓嬪彂锛変笉鍐嶅崰琛�
+                scriptRefs = keepActiveTemplates(scriptRefs, activeTemplateIds(patSatisfactionReqVO, "1"));
                 buildSatisfactionDetailEntities(patSatisfactionReqVO, "1", true, scriptRefs, patSatisfactionDetailEntities, personTotals);
             }
         }
@@ -286,6 +292,8 @@
                     // 闂嵎鐨勯�夐」琛ㄦ寜 svy_lib_template_script 鐨勪富閿叧鑱�
                     scriptRefs.add(new SatScriptRef(svyLibTemplateScript.getSvyid(), svyLibTemplateScript.getId(), svyLibTemplateScript.getScriptContent(), svyLibTemplateScript.getDimension()));
                 }
+                // 鍙繚鐣欐湰鏈熺湡姝d笅鍙戣繃浠诲姟鐨勬ā鏉匡細棰樺簱閲屾寕鐫�鐨勫巻鍙叉ā鏉匡紙浠庢湭涓嬪彂锛変笉鍐嶅崰琛�
+                scriptRefs = keepActiveTemplates(scriptRefs, activeTemplateIds(patSatisfactionReqVO, "2"));
                 buildSatisfactionDetailEntities(patSatisfactionReqVO, "2", false, scriptRefs, patSatisfactionDetailEntities, personTotals);
             }
         }
@@ -578,6 +586,8 @@
         statQuery.setEndTime(reqVO.getEndTime());
         statQuery.setDeptcodes(reqVO.getDeptcodes());
         statQuery.setHospitaldistrictcodes(reqVO.getHospitaldistrictcodes());
+        statQuery.setLeaveldeptcodes(reqVO.getLeaveldeptcodes());
+        statQuery.setLeavehospitaldistrictcodes(reqVO.getLeavehospitaldistrictcodes());
         statQuery.setLibTemplateIds(CollectionUtils.isEmpty(templateIds) ? templateIds
                 : templateIds.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList()));
         return statQuery;
@@ -1080,6 +1090,47 @@
     // 杩欓噷鎶婁笁澶勬瀯閫犳敹鏁涗负甯姪鏂规硶锛屾潯浠朵笌鍘熸潵閫愬瓧瀵瑰簲銆�
 
     /**
+     * 鏈湡鍐�<b>鐪熸涓嬪彂杩囦换鍔�</b>鐨勬ā鏉� id 闆嗗悎锛堢┖闆嗗悎琛ㄧず鏈鏉′欢涓嬫病鏈変换浣曚换鍔★級銆�
+     * <p>
+     * 鑳屾櫙锛歿@code /statistics} 鐨勯鐩潵婧愭槸銆屾弧鎰忓害鍒嗙被銆嶄笅鐨勫叏閲忛搴撻鐩�
+     * 锛坽@link SatisfactionScriptMapper#querySvyScriptByCategory} /
+     * {@link SatisfactionScriptMapper#queryIvrScriptByAssort}锛夛紝
+     * 鏃笉鐪嬫ā鏉夸篃涓嶇湅鏃堕棿銆傞搴撻噷鍙鎸傝繘杩囦竴濂楀巻鍙查棶鍗锋ā鏉�
+     * 锛堥鐩繕鍦ㄣ�佷絾浠庢潵娌′笅鍙戣繃浠诲姟锛夛紝缁熻缁撴灉灏变細澶氬嚭涓�鏁存壒
+     * 銆屽钩鍧囧垎 0 / 鏈�楂樺垎 0 / 绛旈浜烘暟 0銆嶇殑琛屻��
+     * <p>
+     * 瀹炴祴锛堜附姘� smartor_sltd锛屾煇娆″叆鍙傦級锛氭弧鎰忓害鍒嗙被涓� 6 濂楁ā鏉垮叡 69 閬撻锛�
+     * 鑰屾湰鏈熷彧鏈� 2 濂楁ā鏉垮叡 25 閬撻鐪熸涓嬪彂杩囷紝浜庢槸椤甸潰鏄剧ず 69 琛屻�佸叾涓� 44 琛屽叏 0銆�
+     * 鐢ㄦ湰鏂规硶瑁佹帀鏃犱换鍔℃ā鏉垮悗锛岃鏁板洖鍒� 25銆�
+     *
+     * @param reqVO 鍘熷璇锋眰锛堟潯浠朵笌銆屾湁鏁版嵁銆嶅垽鏂悓鍙e緞锛氭満鏋勩�佹湇鍔$被鍨嬨�佺瀹� OR 鐥呭尯銆佹椂闂村厹搴曪級
+     * @param type  service_subtask.type锛�1 璇煶銆�2 闂嵎
+     */
+    private Set<Long> activeTemplateIds(PatSatisfactionReqVO reqVO, String type) {
+        List<Long> ids = satisfactionMapper.selectSatisfactionActiveTemplateIds(reqVO, type);
+        if (CollectionUtils.isEmpty(ids)) return Collections.emptySet();
+        return new HashSet<>(ids);
+    }
+
+    /**
+     * 鍙繚鐣欐湰鏈熺湡姝d笅鍙戣繃浠诲姟鐨勬ā鏉跨殑棰樼洰锛堢┖闆嗗悎鏃惰繑鍥炵┖鍒楄〃锛屽嵆銆屾湰鏈熸病鏈変换鍔� 鈫� 涓嶅嚭琛屻�嶏級銆�
+     * <p>
+     * 淇濈暀 {@code scriptRefs} 鐨勫師鏈夐『搴忥紝鍥犱负杩斿洖椤哄簭灏辨槸椤甸潰灞曠ず椤哄簭銆�
+     */
+    private List<SatScriptRef> keepActiveTemplates(List<SatScriptRef> scriptRefs, Set<Long> activeTemplateIds) {
+        if (CollectionUtils.isEmpty(scriptRefs) || CollectionUtils.isEmpty(activeTemplateIds)) {
+            return new ArrayList<>();
+        }
+        List<SatScriptRef> kept = new ArrayList<>(scriptRefs.size());
+        for (SatScriptRef scriptRef : scriptRefs) {
+            if (scriptRef.getTemplateId() != null && activeTemplateIds.contains(scriptRef.getTemplateId())) {
+                kept.add(scriptRef);
+            }
+        }
+        return kept;
+    }
+
+    /**
      * 婊℃剰搴﹀垎绫绘煡璇紙璇煶渚э級銆�
      * <p>
      * 鈿狅笍 <b>涓庡師鏂囦竴鑷达細鍙紶 orgid锛�<u>涓嶄紶 type</u></b>銆傚師瀹炵幇鏄�

--
Gitblit v1.9.3