From 141eef1ac1e9111fb33f96a95b59ba69422f8688 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 14 九月 2026 17:02:17 +0800
Subject: [PATCH] 1.优化问卷详情的查询速度
---
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java | 108 ++++++++++++++++++++++++++----------------------------
1 files changed, 52 insertions(+), 56 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 531474a..1e72519 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -4,12 +4,10 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.gson.Gson;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
-import com.ruoyi.common.utils.http.HttpUtils;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@@ -18,7 +16,6 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.smartor.service.IServiceTaskService;
import org.springframework.transaction.annotation.Transactional;
@@ -34,49 +31,34 @@
public class ServiceTaskServiceImpl implements IServiceTaskService {
@Autowired
private ServiceTaskMapper serviceTaskMapper;
-
@Autowired
private ServiceSubtaskMapper serviceSubtaskMapper;
-
@Autowired
private ServiceTaskdeptMapper serviceTaskdeptMapper;
-
@Autowired
private PatArchiveImportMapper patArchiveImportMapper;
-
-
@Autowired
private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper;
-
@Autowired
private HeLibraryMapper heLibraryMapper;
-
@Autowired
private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper;
@Autowired
private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper;
-
@Autowired
private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
-
@Autowired
private PatArchiveMapper patArchiveMapper;
-
@Autowired
private PatMedInhospMapper patMedInhospMapper;
-
@Autowired
private PatMedOuthospMapper patMedOuthospMapper;
-
-
@Autowired
private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
@Autowired
private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper;
-
@Autowired
private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper;
-
@Autowired
private RedisCache redisCache;
@@ -283,17 +265,21 @@
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 (StringUtils.isNotEmpty(serviceTask.getKcb())) map.put("kcb", serviceTask.getKcb());
- map.put("script", info);
- if (StringUtils.isNotEmpty(serviceTask.getJsy())) map.put("jsy", serviceTask.getJsy());
- map.put("type", serviceTask.getType());
- map.put("taskName", serviceTask.getTaskName());
- map.put("submit", "0");
+ if (serviceTask != null) {
+ if (StringUtils.isNotEmpty(serviceTask.getKcb())) map.put("kcb", serviceTask.getKcb());
+ map.put("script", info);
+ if (StringUtils.isNotEmpty(serviceTask.getJsy())) map.put("jsy", serviceTask.getJsy());
+ map.put("type", serviceTask.getType());
+ map.put("taskName", serviceTask.getTaskName());
+ map.put("submit", "0");
+ }
return map;
}
@@ -435,7 +421,6 @@
if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getScriptContent())) {
for (Map<String, String> map : mapList) {
for (String key : map.keySet()) {
-
ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
}
}
@@ -474,6 +459,7 @@
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();
@@ -482,23 +468,25 @@
serviceSubtask.setTaskid(serviceTask.getTaskid());
serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask);
}
- }
- //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
- SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
- svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
- if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.get(0).getTemplateid() != null)
- svyTaskTemplateScript.setTemplateID(serviceSubtaskList.get(0).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);
@@ -508,7 +496,7 @@
}
- //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑textParam瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
+ //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑 textParam 瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Map<String, String>> ivrTaskMap = null;
try {
@@ -516,28 +504,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());
--
Gitblit v1.9.3