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 | 140 +++++++++++++++++++++++++++++++++-------------
1 files changed, 100 insertions(+), 40 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 44f8c04..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
@@ -265,8 +300,11 @@
List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) {
ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0);
- ssp.setSendstate("3");
- serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp);
+ //浜哄伐鏃�-3宸查鍙栫姸鎬�(service_subtask_preachform.sendstate = 3)
+ if(StringUtils.isNotEmpty(ssp.getPreachform()) && !ssp.getPreachform().equals("1")){
+ ssp.setSendstate("3");
+ serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp);
+ }
}
}
if (serviceTask != null) {
@@ -300,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());
}
@@ -456,30 +494,33 @@
serviceSubtaskVO.setPatid(patid);
}
List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = null;
if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() == 1) {
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);
}
- }
- //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
- SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
- svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
- if (serviceTask.getTemplateid() != null) svyTaskTemplateScript.setTemplateID(serviceTask.getTemplateid());
- svyTaskTemplateScript.setDelFlag("0");
- List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
- if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) {
- insertSvyTaskTempScript(null, serviceTask);
- svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
- if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) {
- throw new BaseException("璇疯仈绯荤鐞嗗憳锛屾鏌ラ棶棰樻ā鏉夸俊鎭�!");
- }
- }
- List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
+ //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
+ SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
+ svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
+ if (serviceSubtaskList.get(0).getTemplateid() != null)
+ svyTaskTemplateScript.setTemplateID(serviceSubtaskList.get(0).getTemplateid());
+ else if (serviceTask.getTemplateid() != null)
+ svyTaskTemplateScript.setTemplateID(serviceTask.getTemplateid());
+ svyTaskTemplateScript.setDelFlag("0");
+ List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
+ if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) {
+ insertSvyTaskTempScript(null, serviceTask);
+ svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
+ if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) {
+ throw new BaseException("璇疯仈绯荤鐞嗗憳锛屾鏌ラ棶棰樻ā鏉夸俊鎭�!");
+ }
+ }
+ svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
+ }
//鑾峰彇鎮h�呬俊鎭�
PatArchive patArchive = null;
if (patfrom.equals("0")) patArchive = patArchiveMapper.selectPatArchiveByPatid(patid);
@@ -489,7 +530,7 @@
}
- //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑textParam瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
+ //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑 textParam 瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Map<String, String>> ivrTaskMap = null;
try {
@@ -497,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());
@@ -605,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