From 371603a0eb9f3a279cf77073734e991b5851b792 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期五, 05 九月 2025 16:21:01 +0800
Subject: [PATCH] 市一短信接口同步服务对接
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 75 +++++++++++++++++++++++++++++--------
1 files changed, 59 insertions(+), 16 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 fa83eaf..aa9a70c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -151,8 +151,18 @@
}
Long nextScriptno = null;
+ aa:
for (String key : allKeys) {
String[] split = key.split("-");
+ //鍏堝垽鏂紝鏄笉鏄綋鍓嶆彁浜や汉鐨勶紝涓嶆槸褰撳墠鎻愪氦浜虹殑锛岃烦杩�
+ try {
+ if (ObjectUtils.isNotEmpty(split[0]) && ObjectUtils.isNotEmpty(split[1]) && !Long.valueOf(split[0]).equals(pid) && !Long.valueOf(split[1]).equals(tid)) {
+ continue;
+ }
+ } catch (Exception e) {
+ //杩欓噷涔嬫墍浠ヨ澶勭悊寮傚父锛屾槸鍥犱负鏈夌殑KEY灏变笉鏄垜浠鐨凨EY,娌℃湁鍘绘埅鍙栵紱鏈夊紓甯镐笉澶勭悊锛岀洿鎺ヤ笅涓�涓�
+ continue;
+ }
if (key.contains("-WJscriptCache")) {
List<SvyLibTemplateScriptVO> cacheList = redisCache.getCacheList(key);
cacheList.sort(Comparator.comparingLong(SvyLibTemplateScriptVO::getSort));
@@ -168,6 +178,7 @@
List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, tid, pid);
+ if (map == null) continue aa;
nextScriptno = Long.valueOf(map.get("nextScriptNo"));
if (score == null) {
score = Double.valueOf(map.get("score"));
@@ -182,7 +193,7 @@
List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getSvyLibTemplateTargetoptions(), SvyTaskTemplateTargetoption.class);
svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
- if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort() == nextScriptno) {
+ if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort().equals(nextScriptno)) {
log.error("svyTaskTemplateScriptVO鐨勫�间负锛歿}", svyTaskTemplateScriptVO);
Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]));
log.error("map鐨勪俊鎭负锛歿}", map);
@@ -224,7 +235,7 @@
List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getIvrLibaScriptTargetoptionList(), IvrTaskTemplateTargetoption.class);
ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
- if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()) == nextScriptno) {
+ if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()).equals(nextScriptno)) {
Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]));
log.error("map鐨勪俊鎭负锛歿}", map);
nextScriptno = Long.valueOf(map.get("nextScriptNo"));
@@ -276,7 +287,7 @@
tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
}
- if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 2) {
+ if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS()) && serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS().size() > 0) {
//闂嵎
redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache");
redisCache.setCacheListRight(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS());
@@ -284,7 +295,7 @@
Long tims = Long.valueOf(3 * 24 * 3600);
boolean expire = redisCache.expire(pid + "-" + tid + "-WJscriptCache", tims);
return 1;
- } else if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 1) {
+ } else if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList()) && serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList().size() > 0) {
//闂嵎
redisCache.deleteObject(pid + "-" + tid + "-SFscriptCache");
redisCache.setCacheListRight(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList());
@@ -311,7 +322,10 @@
if (flag == 0L) {
tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
- subId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
+ //杩欎釜鏄湁闂鐨勶紝鍏堣繖鏍凤紝鍚堝苟浠g爜鐨勬椂鍊欐病鏈夋妸param6鍚堣繘鏉�
+ if (StringUtils.isNotEmpty(serviceSubTaskCacheReq.getParam6())) {
+ subId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
+ }
} else if (flag == 1L) {
tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
@@ -344,13 +358,35 @@
log.error("selectPatQuesTionResult鐨勫叆鍙備负锛歿}", serviceSubTaskQueryReq);
Map<String, Object> map = new HashMap<>();
+ //鑾峰彇鏈鐨勯棶绛旂粨鏋�
Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom());
+ map = getMap(scriptInfoByCondition, serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid());
+
+ //鑾峰彇涓婃鐨勯棶绛旂粨鏋�
+ ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId());
+ map.put("upScriptResult", null);
+ map.put("upTaskName", null);
+ if (ObjectUtils.isNotEmpty(serviceSubtask) && serviceSubtask.getUpid() != null) {
+ Map<String, Object> scriptInfoByCondition2 = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom());
+ Map<String, Object> map1 = getMap(scriptInfoByCondition2, Long.valueOf(serviceSubtask.getUpid()), serviceSubTaskQueryReq.getPatid());
+ if (!map1.isEmpty()) {
+ map.put("upScriptResult", map1.get("scriptResult"));
+ map.put("upTaskName", map1.get("taskName"));
+ }
+ }
+
+ return map;
+ }
+
+
+ private Map<String, Object> getMap(Map<String, Object> scriptInfoByCondition, Long subid, Long patid) {
+ Map<String, Object> map = new HashMap<>();
if (ObjectUtils.isNotEmpty(scriptInfoByCondition) && ObjectUtils.isNotEmpty(scriptInfoByCondition.get("script"))) {
- log.error("-----------scriptInfoByCondition鐨勫�间负锛歿}", scriptInfoByCondition);
+// log.error("-----------scriptInfoByCondition鐨勫�间负锛歿}", scriptInfoByCondition);
if (scriptInfoByCondition.get("type").equals("1")) {
List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) {
- Map<String, String> scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), ivrLibaTemplateScriptVO.getId());
+ Map<String, String> scriptResult = getScriptResult(subid, patid, ivrLibaTemplateScriptVO.getId());
if (ObjectUtils.isNotEmpty(scriptResult)) {
ivrLibaTemplateScriptVO.setScriptResult(scriptResult.get("asrtext"));
ivrLibaTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
@@ -358,29 +394,30 @@
}
map.put("scriptResult", ivrLibaTemplateScriptVOList);
map.put("taskName", scriptInfoByCondition.get("taskName"));
- return map;
} else if (scriptInfoByCondition.get("type").equals("2")) {
List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOList) {
- Map<String, String> scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), svyLibTemplateScriptVO.getId());
+ Map<String, String> scriptResult = getScriptResult(subid, patid, svyLibTemplateScriptVO.getId());
if (ObjectUtils.isNotEmpty(scriptResult)) {
- svyLibTemplateScriptVO.setScriptResult(scriptResult.get("asrtext"));
+ if (StringUtils.isNotEmpty(scriptResult.get("asrtext")))
+ svyLibTemplateScriptVO.setScriptResult(StringUtils.isNotEmpty(scriptResult.get("asrtext")) ? scriptResult.get("asrtext").replaceAll("^(\"|')(.*)\\1$", "$2") : "");
svyLibTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
+ if (StringUtils.isNotEmpty(scriptResult.get("answerps")))
+ svyLibTemplateScriptVO.setAnswerps(scriptResult.get("answerps"));
}
}
- map.put("scriptResult", scriptInfoByCondition);
+ map.put("scriptResult", svyLibTemplateScriptVOList);
map.put("taskName", scriptInfoByCondition.get("taskName"));
- return map;
} else if (scriptInfoByCondition.get("type").equals("3")) {
//瀹f暀涓嶉渶瑕佹煡鐪�
List<HeLibrary> heLibraryList = (List) scriptInfoByCondition.get("script");
map.put("scriptResult", heLibraryList);
map.put("taskName", scriptInfoByCondition.get("taskName"));
- return map;
}
}
return map;
}
+
private Map<String, String> getScriptResult(Long subid, Long pid, Long sid) {
Map<String, String> map = new HashMap<>();
@@ -392,6 +429,7 @@
if (CollectionUtils.isNotEmpty(serviceSubtaskDetails)) {
map.put("asrtext", serviceSubtaskDetails.get(0).getAsrtext());
map.put("asrtextId", serviceSubtaskDetails.get(0).getId());
+ map.put("answerps", serviceSubtaskDetails.get(0).getAnswerps());
return map;
}
return null;
@@ -443,7 +481,8 @@
if (svyTaskTemplateScriptVO.getScore() != null) {
score = String.valueOf(svyTaskTemplateScriptVO.getScore());
}
- serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult());
+ serviceSubtaskDetailVO.setAsrtext(StringUtils.isEmpty(svyTaskTemplateScriptVO.getScriptResult()) ? "" : svyTaskTemplateScriptVO.getScriptResult().replaceAll("^\"|\"$", ""));
+ serviceSubtaskDetailVO.setMatchedtext(StringUtils.isEmpty(svyTaskTemplateScriptVO.getScriptResult()) ? "" : svyTaskTemplateScriptVO.getScriptResult().replaceAll("^\"|\"$", ""));
// if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) {
// nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
// }
@@ -461,8 +500,10 @@
ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskid);
serviceSubtaskDetailVO.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent());
serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
+ serviceSubtaskDetailVO.setTargetid(svyTaskTemplateScriptVO.getTargetid() != null ? svyTaskTemplateScriptVO.getTargetid().intValue() : null);
serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
serviceSubtaskDetailVO.setScriptid(svyTaskTemplateScriptVO.getId());
+ serviceSubtaskDetailVO.setTemplatequestionnum(StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptno()) ? Long.valueOf(svyTaskTemplateScriptVO.getScriptno()) : null);
serviceSubtaskDetailVO.setValueType(svyTaskTemplateScriptVO.getScriptType());
serviceSubtaskDetailVO.setComment(null);
serviceSubtaskDetailVO.setCreateTime(new Date());
@@ -471,7 +512,7 @@
serviceSubtaskDetailVO.setGuid(serviceTask.getGuid());
serviceSubtaskDetailVO.setOrgid(serviceTask.getOrgid());
}
- serviceSubtaskDetailVO.setSubId(selectServiceSubtaskList.get(0).getId());
+ serviceSubtaskDetailVO.setSubId(CollectionUtils.isNotEmpty(selectServiceSubtaskList) ? selectServiceSubtaskList.get(0).getId() : null);
serviceSubtaskDetailVO.setTemplatequestionnum(svyTaskTemplateScriptVO.getId());
ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
@@ -523,10 +564,12 @@
}
}
}
+ serviceSubtaskDetailVO.setTargetid(ivrTaskTemplateScriptVO.getTargetid() != null ? ivrTaskTemplateScriptVO.getTargetid().intValue() : null);
serviceSubtaskDetailVO.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent());
serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
- serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getId());
+ serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getScriptID());
+ serviceSubtaskDetailVO.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
serviceSubtaskDetailVO.setValueType(ivrTaskTemplateScriptVO.getScriptType());
serviceSubtaskDetailVO.setComment(null);
serviceSubtaskDetailVO.setCreateTime(new Date());
--
Gitblit v1.9.3