From eb845e8be695ed1280a7cbf854a4d1dedf9db30d Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 30 十月 2026 15:02:55 +0800
Subject: [PATCH] 【丽水】/smartor/serviceSubtask/getSfStatisticsHyperlink 和 /smartor/serviceSubtask/getSfStatistics 统计的时候,对于 service_subtask.current_preachForm 为空的数据 当成 service_subtask.preachform 字符串的第一个执行方式、首次待随访全部(visitCount = 1 && sendstate in (1、2、3、7)) 区别于原先的待随访,这个是给市一使用的 再次待随访全部(visitCount > 1 && sendstate in (1、2、3、7)) 区别于原先的待随访,这个是给市一使用的 首次待随访待发送(visitCount = 1 && sendstate in (1、2)) 再次待随访待发送(visitCount > 1 && sendstate in (1、2)) 首次待随访已发送(visitCount = 1 && sendstate = in (3、7)) 再次待随访已发送(visitCount > 1 && sendstate = in (3、7)) 首次已发送(visitCount = 1 && sendstate = 3) 再次已发送(visitCount > 1 && sendstate = 3)
---
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java | 153 +++++++++++++++++++++++++-------------------------
1 files changed, 77 insertions(+), 76 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..3d4905b 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;
@@ -273,27 +255,14 @@
}
}
- if (CollectionUtils.isNotEmpty(selectServiceSubtaskList)) {
- //灏嗗綋鍓嶆柟寮忕殑鍙戦�佺姸鎬佹敼鎴愬凡棰嗗彇
- ServiceSubtask serviceSubtask = selectServiceSubtaskList.get(0);
- ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
- serviceSubtaskPreachform.setPreachform(serviceSubtask.getCurrentPreachform());
- serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
- serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid());
- List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
- if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) {
- ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0);
- ssp.setSendstate("3");
- serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp);
- }
+ 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");
}
-
- 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 +404,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,31 +442,50 @@
serviceSubtaskVO.setPatid(patid);
}
List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
- 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());
- serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask);
- }
+ if (CollectionUtils.isEmpty(serviceSubtaskList)) {
+ throw new BaseException("鏈壘鍒版偅鑰呭瓙浠诲姟锛宼askid=" + serviceTask.getTaskid()
+ + ", patid=" + patid + ", subId=" + subId);
}
- //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
+ if (serviceSubtaskList.size() > 1) {
+ throw new BaseException("瀛樺湪澶氭潯鎮h�呭瓙浠诲姟锛岃浼犲叆瀛愪换鍔D鍚庡啀鏌ヨ锛宼askid=" + serviceTask.getTaskid()
+ + ", patid=" + patid);
+ }
+
+ ServiceSubtask serviceSubtask = serviceSubtaskList.get(0);
+ if (Long.valueOf(3L).equals(serviceSubtask.getSendstate()) && Boolean.TRUE.equals(isFinish)) {
+ ServiceSubtask updateSubtask = new ServiceSubtask();
+ updateSubtask.setSendstate(1L);
+ updateSubtask.setPatid(patid);
+ updateSubtask.setTaskid(serviceTask.getTaskid());
+ serviceSubtaskMapper.updateServiceSubtaskByPatId(updateSubtask);
+ }
+
+ // 瀛愪换鍔℃ā鏉夸紭鍏堬紱瀛愪换鍔℃湭璁剧疆鏃跺洖閫�鍒颁换鍔℃ā鏉裤��
+ Long templateId = serviceSubtask.getTemplateid() != null
+ ? serviceSubtask.getTemplateid() : serviceTask.getTemplateid();
+ if (templateId == null) {
+ throw new BaseException("浠诲姟鏈厤缃棶鍗锋ā鏉匡紝taskid=" + serviceTask.getTaskid());
+ }
+
+ // 鏌ヨ涓庡厹搴曞鍒跺繀椤讳娇鐢ㄥ悓涓�涓ā鏉縄D锛屽惁鍒欎細鍑虹幇鈥滃鍒跺埌A銆佷粛鏌鈥濈殑姝诲惊鐜��
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.setTemplateID(templateId);
svyTaskTemplateScript.setDelFlag("0");
- List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
- if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) {
- insertSvyTaskTempScript(null, serviceTask);
+ List<SvyTaskTemplateScript> svyTaskTemplateScripts =
+ svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
+ if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) {
+ log.warn("闂嵎浠诲姟妯℃澘闂涓虹┖锛屽紑濮嬩粠妯℃澘搴撳厹搴曞鍒�, taskid={}, patid={}, subId={}, queryTemplateId={}, taskTemplateId={}, libTemplateId={}",
+ serviceTask.getTaskid(), patid, subId, templateId,
+ serviceTask.getTemplateid(), serviceTask.getLibtemplateid());
+ insertSvyTaskTempScript(null, serviceTask, templateId);
svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) {
- throw new BaseException("璇疯仈绯荤鐞嗗憳锛屾鏌ラ棶棰樻ā鏉夸俊鎭�!");
+ throw new BaseException("璇疯仈绯荤鐞嗗憳锛屾鏌ラ棶棰樻ā鏉夸俊鎭�! taskid=" + serviceTask.getTaskid()
+ + ", templateId=" + templateId + ", libTemplateId=" + serviceTask.getLibtemplateid());
}
}
- List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
-
+ List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS =
+ DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
//鑾峰彇鎮h�呬俊鎭�
PatArchive patArchive = null;
if (patfrom.equals("0")) patArchive = patArchiveMapper.selectPatArchiveByPatid(patid);
@@ -508,7 +495,7 @@
}
- //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑textParam瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
+ //閫氳繃鎮h�呬俊鎭拰浠诲姟淇℃伅涓殑 textParam 瀵归棶棰樹腑鐨勫彉閲忚繘琛屽~鍏�
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Map<String, String>> ivrTaskMap = null;
try {
@@ -516,28 +503,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());
@@ -550,7 +545,7 @@
svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
} else {
//濡傛灉閫夐」娌℃湁鏌ュ埌锛岄渶瑕佸幓鍩虹妯℃澘搴撳皢閫夐」鏌ヨ鍑烘潵锛屾斁鍒颁换鍔℃ā鏉块�夐」搴撲腑
- insertSvyTaskTempScript(svyTaskTemplateScriptVO, serviceTask);
+ insertSvyTaskTempScript(svyTaskTemplateScriptVO, serviceTask, templateId);
}
}
@@ -560,8 +555,13 @@
}
- private void insertSvyTaskTempScript(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, ServiceTask serviceTask) {
- log.info("-------鍩虹妯℃澘libtemplateid鐨勫�间负锛歿}", serviceTask.getLibtemplateid());
+ private void insertSvyTaskTempScript(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO,
+ ServiceTask serviceTask, Long targetTemplateId) {
+ log.info("-------鍩虹妯℃澘libtemplateid鐨勫�间负锛歿}锛岀洰鏍噒emplateID涓猴細{}", serviceTask.getLibtemplateid(), targetTemplateId);
+ if (targetTemplateId == null) {
+ log.warn("鐩爣妯℃澘ID涓虹┖锛屾棤娉曞鍒跺熀纭�妯℃澘闂, taskid={}", serviceTask.getTaskid());
+ return;
+ }
if (StringUtils.isEmpty(serviceTask.getLibtemplateid())) {
return;
}
@@ -572,7 +572,8 @@
log.info("-------鍩虹妯℃澘svyLibTemplateScripts闂鍊间负锛歿}", svyLibTemplateScripts.size());
for (SvyLibTemplateScript sll : svyLibTemplateScripts) {
if (ObjectUtils.isNotEmpty(svyTaskTemplateScriptVO)) {
- if (sll.getScriptContent().trim().equals(svyTaskTemplateScriptVO.getScriptContent().trim())) {
+ if (StringUtils.equals(StringUtils.trim(sll.getScriptContent()),
+ StringUtils.trim(svyTaskTemplateScriptVO.getScriptContent()))) {
SvyLibTemplateTargetoption sltto = new SvyLibTemplateTargetoption();
sltto.setScriptid(sll.getId());
List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(sltto);
@@ -580,7 +581,7 @@
//灏嗘煡鍑烘潵鐨勯�夐」锛屾斁鍒皊vyTaskTemplateTargetoption涓�
List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptionList = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
for (int i = 0; i < svyTaskTemplateTargetoptionList.size(); i++) {
- svyTaskTemplateTargetoptionList.get(i).setTemplateID(svyTaskTemplateScriptVO.getTemplateID());
+ svyTaskTemplateTargetoptionList.get(i).setTemplateID(targetTemplateId);
svyTaskTemplateTargetoptionList.get(i).setScriptid(svyTaskTemplateScriptVO.getId());
svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i));
log.info("-------鏂板瀹屼箣鍚庣殑閫夐」ID鍊间负锛歿}", svyTaskTemplateTargetoptionList.get(i).getId());
@@ -592,7 +593,7 @@
SvyTaskTemplateScript stts = DtoConversionUtils.sourceToTarget(sll, SvyTaskTemplateScript.class);
stts.setId(null);
stts.setTaskid(serviceTask.getTaskid());
- stts.setTemplateID(serviceTask.getTemplateid());
+ stts.setTemplateID(targetTemplateId);
svyTaskTemplateScriptMapper.insertSvyTaskTemplateScript(stts);
//鏂板闂閫夐」
@@ -601,7 +602,7 @@
List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(sltto);
List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptionList = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
for (int i = 0; i < svyTaskTemplateTargetoptionList.size(); i++) {
- svyTaskTemplateTargetoptionList.get(i).setTemplateID(serviceTask.getTemplateid());
+ svyTaskTemplateTargetoptionList.get(i).setTemplateID(targetTemplateId);
svyTaskTemplateTargetoptionList.get(i).setScriptid(stts.getId());
svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i));
}
--
Gitblit v1.9.3