From 8b9db684defff26456d58609ea243e9fd21ed081 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 17 四月 2026 10:16:02 +0800
Subject: [PATCH] 【本地】获取随访统计比例 逻辑调整
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 66 ++++++++++++++++++++++++++++-----
1 files changed, 56 insertions(+), 10 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
index 8b43b97..efc5708 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -14,9 +14,7 @@
import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
-import com.smartor.service.IServiceSubtaskAnswerService;
-import com.smartor.service.IServiceSubtaskDetailTraceService;
-import com.smartor.service.IServiceTaskService;
+import com.smartor.service.*;
import com.sun.org.apache.bcel.internal.generic.NEW;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -75,6 +73,18 @@
@Autowired
private IServiceSubtaskDetailTraceService traceService;
+
+ @Autowired
+ private ISvyTaskTemplateService svyTaskTemplateService;
+
+ @Autowired
+ private ISvyLibTemplateScriptService svyLibTemplateScriptService;
+
+ @Autowired
+ private IIvrTaskTemplateService ivrTaskTemplateService;
+
+ @Autowired
+ private IIvrLibaTemplateScriptService ivrLibaTemplateScriptService;
@Value("${pri_key}")
private String pri_key;
@@ -377,9 +387,7 @@
}
} else if (serviceSubTaskCacheReq.getType() == 1) {
List<IvrTaskTemplateScriptVO> cacheList = serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList();
- cacheList.sort(Comparator.comparingLong(
- vo -> Optional.ofNullable(vo.getSort()).orElse(0)
- ));
+ cacheList.sort(Comparator.comparingLong(vo -> Optional.ofNullable(vo.getSort()).orElse(0)));
log.error("鐢佃瘽闅忚闂嵎鍥炵瓟缁撴灉锛歿}", cacheList.size());
for (int i = 0; i < cacheList.size(); i++) {
if (i == 0) {
@@ -819,6 +827,9 @@
}
nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno();
+ if (StringUtils.isEmpty(nextScriptNo)) {
+ nextScriptNo = getNextScriptNo(svyTaskTemplateScriptVO.getTemplateID(), svyTaskTemplateScriptVO.getScriptContent());
+ }
if (svyTaskTemplateScriptVO.getScore() != null) {
score = String.valueOf(svyTaskTemplateScriptVO.getScore());
}
@@ -833,7 +844,10 @@
score = String.valueOf(svyTaskTemplateScriptVO.getScore());
}
}
- nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
+ nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno();
+ if (StringUtils.isEmpty(nextScriptNo)) {
+ nextScriptNo = getNextScriptNo(svyTaskTemplateScriptVO.getTemplateID(), svyTaskTemplateScriptVO.getScriptContent());
+ }
}
ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskid);
serviceSubtaskDetailVO.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent());
@@ -848,9 +862,7 @@
serviceSubtaskDetailVO.setCreateTime(new Date());
serviceSubtaskDetailVO.setUpdateTime(new Date());
serviceSubtaskDetailVO.setTemplateType(2);
- serviceSubtaskDetailVO.setLibTemplateid(CollectionUtils.isNotEmpty(selectServiceSubtaskList) ?
- (ObjectUtils.isNotEmpty(selectServiceSubtaskList.get(0).getLibtemplateid()) ?
- selectServiceSubtaskList.get(0).getLibtemplateid().intValue() : null): null);
+ serviceSubtaskDetailVO.setLibTemplateid(CollectionUtils.isNotEmpty(selectServiceSubtaskList) ? (ObjectUtils.isNotEmpty(selectServiceSubtaskList.get(0).getLibtemplateid()) ? selectServiceSubtaskList.get(0).getLibtemplateid().intValue() : null) : null);
if (ObjectUtils.isNotEmpty(serviceTask)) {
serviceSubtaskDetailVO.setGuid(serviceTask.getGuid());
serviceSubtaskDetailVO.setOrgid(serviceTask.getOrgid());
@@ -954,6 +966,33 @@
map.put("isabnormal", isabnormalFlag.toString());
return map;
}
+
+ private String getNextScriptNo(Long taskTemplateID, String scriptContent) {
+ SvyTaskTemplate svyTaskTemplate = svyTaskTemplateService.selectSvyTaskTemplateBySvyid(taskTemplateID);
+ SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
+ svyLibTemplateScript.setSvyid(svyTaskTemplate.getTemplateid());
+ svyLibTemplateScript.setScriptContent(scriptContent);
+ List<SvyLibTemplateScript> svyLibTemplateScriptList = svyLibTemplateScriptService.selectSvyLibTemplateScriptList(svyLibTemplateScript);
+ if (CollectionUtils.isNotEmpty(svyLibTemplateScriptList)) {
+ return svyLibTemplateScriptList.get(0).getNextScriptno();
+ }
+ return null;
+ }
+
+ private Long getVoiceNextScriptNo(Long taskTemplateID, String scriptContent) {
+ IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(taskTemplateID);
+ IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript();
+ if (StringUtils.isEmpty(ivrTaskTemplate.getLibtemplateid())) return null;
+ ivrLibaTemplateScript.setTemplateid(Long.valueOf(ivrTaskTemplate.getLibtemplateid()));
+ ivrLibaTemplateScript.setScriptContent(scriptContent);
+ List<IvrLibaTemplateScript> ivrLibaTemplateScriptList = ivrLibaTemplateScriptService.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript);
+
+ if (CollectionUtils.isNotEmpty(ivrLibaTemplateScriptList)) {
+ return ivrLibaTemplateScriptList.get(0).getNextScriptno();
+ }
+ return null;
+ }
+
private Boolean sendTaskIds(List<Integer> sendTaskids, ServiceSubtask serviceSubtask) {
for (Integer taskId : sendTaskids) {
@@ -1061,6 +1100,10 @@
}
nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno() == null ? null : ivrTaskTemplateScriptVO.getNextScriptno().toString();
+ if (StringUtils.isEmpty(nextScriptNo)) {
+ nextScriptNo = "" + getVoiceNextScriptNo(ivrTaskTemplateScriptVO.getTemplateID(), ivrTaskTemplateScriptVO.getScriptContent());
+ }
+
if (ivrTaskTemplateScriptVO.getScore() != null) {
score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
}
@@ -1079,6 +1122,9 @@
serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult() != null ? ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", "") : ivrTaskTemplateScriptVO.getIvrtext());
serviceSubtaskDetailVO.setScore(ivrTaskTemplateScriptVO.getScore() != null ? ivrTaskTemplateScriptVO.getScore().toString() : "0");
nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno() == null ? null : ivrTaskTemplateScriptVO.getNextScriptno().toString();
+ if (StringUtils.isEmpty(nextScriptNo)) {
+ nextScriptNo = "" + getVoiceNextScriptNo(ivrTaskTemplateScriptVO.getTemplateID(), ivrTaskTemplateScriptVO.getScriptContent());
+ }
if (ivrTaskTemplateScriptVO.getScore() != null) {
score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
}
--
Gitblit v1.9.3