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