From 34f78281cf395a24e1f3f1c3b861186ff8a03b7b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 16 十月 2026 11:09:40 +0800
Subject: [PATCH] 出入院模块、门急诊模块、模块模块、宣教模块、其它模块
---
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java | 99 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 76 insertions(+), 23 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
index 5ec965b..a6b5a37 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -5,6 +5,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.core.service.TemplateModuleDisabledException;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
@@ -20,6 +21,28 @@
import com.smartor.service.IServiceTaskService;
import org.springframework.transaction.annotation.Transactional;
+import com.ruoyi.template.domain.HeLibrary;
+import com.ruoyi.inhospvisit.domain.PatMedInhosp;
+import com.ruoyi.inhospvisit.domain.PatMedInhospVO;
+import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
+import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq;
+import com.ruoyi.inhospvisit.api.InhospVisitFacade;
+import com.ruoyi.outpatientvisit.api.OuthospDataFacade;
+import com.ruoyi.template.domain.IvrTaskTemplateScript;
+import com.ruoyi.template.domain.IvrTaskTemplateScriptVO;
+import com.ruoyi.template.domain.IvrTaskTemplateTargetoption;
+import com.ruoyi.template.mapper.IvrTaskTemplateScriptMapper;
+import com.ruoyi.template.mapper.IvrTaskTemplateTargetoptionMapper;
+import com.ruoyi.template.domain.SvyLibTemplateScript;
+import com.ruoyi.template.domain.SvyLibTemplateTargetoption;
+import com.ruoyi.template.domain.SvyTaskTemplateScript;
+import com.ruoyi.template.domain.SvyTaskTemplateScriptVO;
+import com.ruoyi.template.domain.SvyTaskTemplateTargetoption;
+import com.ruoyi.template.mapper.SvyLibTemplateScriptMapper;
+import com.ruoyi.template.mapper.SvyLibTemplateTargetoptionMapper;
+import com.ruoyi.template.mapper.SvyTaskTemplateScriptMapper;
+import com.ruoyi.template.mapper.SvyTaskTemplateTargetoptionMapper;
+import com.ruoyi.template.api.TemplateFacade;
/**
* 璇煶浠诲姟Service涓氬姟灞傚鐞�
*
@@ -31,6 +54,24 @@
public class ServiceTaskServiceImpl implements IServiceTaskService {
@Autowired
private ServiceTaskMapper serviceTaskMapper;
+
+ /**
+ * 妯℃澘鏁版嵁涓�寰嬬粡 ruoyi-template 鐨勯棬闈㈠彇鐢紙璺ㄦā鍧楁暟鎹闂師鍒欙級銆�
+ */
+ @Autowired
+ private TemplateFacade templateFacade;
+
+ /**
+ * 璺ㄦā鍧楄闂竴寰嬬粡妯″潡闂ㄩ潰锛堢姝㈢洿杩炲凡鎼蛋鐨� Mapper锛夈��
+ */
+ @Autowired
+ private OuthospDataFacade outhospDataFacade;
+
+ /**
+ * 璺ㄦā鍧楄闂竴寰嬬粡妯″潡闂ㄩ潰锛堢姝㈢洿杩炲凡鎼蛋鐨� Mapper锛夈��
+ */
+ @Autowired
+ private InhospVisitFacade inhospVisitFacade;
@Autowired
private ServiceSubtaskMapper serviceSubtaskMapper;
@Autowired
@@ -40,8 +81,6 @@
@Autowired
private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper;
@Autowired
- private HeLibraryMapper heLibraryMapper;
- @Autowired
private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper;
@Autowired
private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper;
@@ -49,10 +88,6 @@
private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
@Autowired
private PatArchiveMapper patArchiveMapper;
- @Autowired
- private PatMedInhospMapper patMedInhospMapper;
- @Autowired
- private PatMedOuthospMapper patMedOuthospMapper;
@Autowired
private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
@Autowired
@@ -303,14 +338,14 @@
if (StringUtils.isNotEmpty(zyserialnum)) {
PatMedInhospVO patMedInhospVO = new PatMedInhospVO();
patMedInhospVO.setSerialnum(zyserialnum);
- List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO);
+ List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospListByCondition(patMedInhospVO);
if (CollectionUtils.isNotEmpty(patMedInhospList)) {
patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid());
}
} else if (StringUtils.isNotEmpty(mzserialnum)) {
PatMedOuthospQueryReq patMedOuthosp = new PatMedOuthospQueryReq();
patMedOuthosp.setSerialnum(mzserialnum);
- List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthosp);
+ List<PatMedOuthosp> patMedOuthosps = outhospDataFacade.callSpQueryOuthosp(patMedOuthosp);
if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid());
}
@@ -464,8 +499,7 @@
if (serviceSubtaskList.get(0).getSendstate() == 3 && isFinish == true) {
ServiceSubtask serviceSubtask = new ServiceSubtask();
serviceSubtask.setSendstate(1L);
- serviceSubtask.setPatid(patid);
- serviceSubtask.setTaskid(serviceTask.getTaskid());
+ serviceSubtask.setId(serviceSubtaskList.get(0).getId());
serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask);
}
@@ -496,7 +530,7 @@
}
- //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑textParam瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
+ //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑 textParam 瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Map<String, String>> ivrTaskMap = null;
try {
@@ -504,28 +538,36 @@
} catch (JsonProcessingException e) {
e.printStackTrace();
}
- List<Map<String, String>> mapList = new ArrayList<>();
+ // 浼樺寲 1: 棰勫厛鍚堝苟鎵�鏈夋浛鎹㈣鍒欎负涓�涓� Map锛岄伩鍏嶅娆¢亶鍘�
+ Map<String, String> replaceMap = new HashMap<>();
if (ivrTaskMap != null) {
for (Map<String, String> map : ivrTaskMap.values()) {
- mapList.add(map);
+ replaceMap.putAll(map);
}
}
+
//灏嗘ā鏉块棶棰樿瘽鏈噷鐨勯�氶厤绗︽浛鎹�
for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) {
if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent())) {
- for (Map<String, String> map : mapList) {
- for (String key : map.keySet()) {
- svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
- }
+ // 浼樺寲 2: 浣跨敤姝e垯 PatternMatcher 鎵归噺鏇挎崲锛屾彁鍗囨�ц兘
+ String scriptContent = svyTaskTemplateScriptVO.getScriptContent();
+
+ // 鎵归噺鏇挎崲 IVR 浠诲姟鍙傛暟
+ for (Map.Entry<String, String> entry : replaceMap.entrySet()) {
+ String value = StringUtils.isNotEmpty(entry.getValue()) ? entry.getValue() : "";
+ scriptContent = scriptContent.replace(entry.getKey(), value);
}
+
//鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹�
- log.info("闂id锛歿}, 闂鍐呭锛歿}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
- if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
- svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
- svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
- svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
+ log.info("闂 id锛歿}, 闂鍐呭锛歿}", svyTaskTemplateScriptVO.getId(), scriptContent);
+ if (ObjectUtils.isNotEmpty(patArchive)) {
+ // 浼樺寲 3: 鍑忓皯涓嶅繀瑕佺殑闈炵┖鍒ゆ柇锛坧atArchive 宸茬粡鍒よ繃锛�
+ scriptContent = scriptContent.replace("${name}", StringUtils.defaultString(patArchive.getName()));
+ scriptContent = scriptContent.replace("${dzz}", StringUtils.defaultString(patArchive.getPlaceOfResidence()));
+ scriptContent = scriptContent.replace("${dhh}", StringUtils.defaultString(patArchive.getTelcode()));
}
+ svyTaskTemplateScriptVO.setScriptContent(scriptContent);
//鑾峰彇闂閫夐」
SvyTaskTemplateTargetoption svyTaskTemplateTargetoption = new SvyTaskTemplateTargetoption();
svyTaskTemplateTargetoption.setScriptid(svyTaskTemplateScriptVO.getId());
@@ -612,7 +654,18 @@
serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
}
}
- HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(Long.valueOf(templateId));
+ HeLibrary heLibrary;
+ try {
+ heLibrary = templateFacade.findHeLibraryById(Long.valueOf(templateId));
+ } catch (TemplateModuleDisabledException e) {
+ // 妯℃澘妯″潡琚叧闂紙sys_config: template.enabled=false锛夛細
+ // 杩欓噷闄嶇骇涓虹┖鍒楄〃锛岃��**涓嶆槸**璁╁紓甯稿啋鍑哄幓 鈥斺��
+ // 鎮h�呮墦寮�鐨勫鏁欓〉闈㈢収甯稿彲鐪嬨�佸彲鎻愪氦锛�"鍙鎵撳紑浜嗛〉闈㈠氨绠楁垚鍔�"鐨勫悗缁姸鎬佹洿鏂扮収鏃ф墽琛岋級銆�
+ // 鍘熷疄鐜板湪妯℃澘鏌ヤ笉鍒版椂杩斿洖鐨勪篃鏄� [null]锛屽墠绔湰灏辫兘瀹归敊锛涚┖鍒楄〃鏇村共鍑�銆�
+ log.warn("銆愭ā鏉裤�戝鏁欎换鍔″彇妯℃澘琚嫆锛堟ā鍧楀凡鍏抽棴锛夛紝taskid={}, templateId={}锛屾湰娆¤繑鍥炵┖鍐呭",
+ taskid, templateId);
+ return new ArrayList();
+ }
List list = new ArrayList();
list.add(heLibrary);
return list;
--
Gitblit v1.9.3