From 87b79ea739ec32bd7d0e493a6ea8525212f6c763 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 10 十月 2026 15:11:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into smartor_ls_261008
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 291 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 185 insertions(+), 106 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 25e9f60..90c007a 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -9,25 +9,23 @@
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.core.service.IConfigService;
-import com.ruoyi.common.dx.MessageSend;
-import com.ruoyi.common.enums.WxGZHEnum;
+import com.ruoyi.message.sms.provider.sltd.ws.MessageSend;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.*;
import com.ruoyi.common.utils.http.HttpUtils;
-import com.ruoyi.common.utils.sms.smsUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.message.SendResult;
+import com.ruoyi.message.sms.SmsSendRequest;
+import com.ruoyi.message.sms.SmsSenderFactory;
+import com.ruoyi.message.wechat.WechatSendRequest;
+import com.ruoyi.message.wechat.WechatSenderFactory;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.common.FtpService;
-import com.smartor.common.MtSubmitSmUtil;
import com.smartor.common.ScheduleSubtaskBuilder;
import com.smartor.config.PhoneUtils;
-import com.smartor.domain.DTO.MydTrendReqDTO;
-import com.smartor.domain.DTO.MzMydScoreRankDTO;
-import com.smartor.domain.DTO.QuestionCountKsOrBqDTO;
-import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
-import com.smartor.domain.DTO.ServiceSubtaskOptionStatDTO;
+import com.smartor.domain.DTO.*;
import com.smartor.domain.*;
import com.smartor.domain.VO.*;
import com.smartor.domain.entity.ServiceSubtaskEntity;
@@ -170,10 +168,16 @@
private ISysConfigService configService;
@Autowired
- private MtSubmitSmUtil mtSubmitSmUtil;
+ private SysConfigMapper sysConfigMapper;
+
+ /**
+ * 娑堟伅鍙戦�佹柟宸ュ巶锛堢煭淇�/寰俊鍏紬鍙凤級锛屾浛浠e師鏉ョ洿鎺ヨ皟鐢ㄥ悇绔欑偣鍙戦�佷唬鐮佺殑鍐欐硶
+ */
+ @Autowired
+ private SmsSenderFactory smsSenderFactory;
@Autowired
- private SysConfigMapper sysConfigMapper;
+ private WechatSenderFactory wechatSenderFactory;
@Autowired
private RedisTemplate redisTemplate;
@@ -195,9 +199,6 @@
@Value("${req_path}")
private String req_path;
-
- @Value("${xhsmsPath}")
- private String xhsmsPath;
@Value("${phoneUpEveryHour}")
private Integer phoneUpEveryHour;
@@ -2940,7 +2941,7 @@
* @return
*/
@Override
- @Cacheable(value = "sfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
+// @Cacheable(value = "sfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
log.info("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
String drcode = "drcode";
@@ -3062,6 +3063,8 @@
ssRate.setOrgid(serviceSubtaskCountReq.getOrgid());
ssRate.setStarttime(serviceSubtaskCountReq.getStartTime());
ssRate.setEndtime(serviceSubtaskCountReq.getEndTime());
+ ssRate.setStartOutHospTime(serviceSubtaskCountReq.getHospitalStartTime());
+ ssRate.setEndOutHospTime(serviceSubtaskCountReq.getHospitalEndTime());
ssRate.setVisitCount(serviceSubtaskCountReq.getVisitCount());
ssRate.setServiceTypeList(serviceSubtaskCountReq.getServiceType());
if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
@@ -3153,6 +3156,8 @@
if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
ss.setEndtime(new Date());
}
+ ss.setStartOutHospTime(serviceSubtaskCountReq.getHospitalStartTime());
+ ss.setEndOutHospTime(serviceSubtaskCountReq.getHospitalEndTime());
Double jsRate = serviceSubtaskMapper.selectTimelyRate(ss);
statistic.setRate(jsRate);
if (ObjectUtils.isNotEmpty(statistic)) {
@@ -4218,10 +4223,8 @@
serviceOutPath.setUpdateTime(new Date());
serviceOutPath.setUrl(url);
iServiceOutPathService.updateServiceOutPath(serviceOutPath);
- Map<String, String> map = new HashMap<>();
- map.put("phone", serviceSubtask.getPhone());
- map.put("content", sendMagParam.getContent());
- HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(map));
+ //鐭俊鍙戦�佸凡鏀跺彛鍒� ruoyi-message 妯″潡锛涗笌鍘熷疄鐜颁竴鑷达細涓嶅垽鏂彂閫佺粨鏋�
+ smsSenderFactory.send(active, SmsSendRequest.of(serviceSubtask.getPhone(), sendMagParam.getContent(), serviceSubtask.getOrgid()));
redisCache.setCacheObject(subTaskId + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES);
if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))
serviceSubtask.setRemark("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�");
@@ -5177,9 +5180,11 @@
sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl()));
}
+ //鐭俊鍙戦�侊細鍚勭珯鐐瑰鎺ユ柟寮忓樊寮傝緝澶э紝宸叉敹鍙e埌 ruoyi-message 妯″潡
if (active.equals("nhfy")) {
- Map<String, Object> smsResult = mtSubmitSmUtil.submitSm(sendMagParam.getPhone(), sendMagParam.getContent());
- if (smsResult != null && smsResult.get("result") != null && smsResult.get("result").toString().equals("0")) {
+ SendResult smsResult = smsSenderFactory.send(active,
+ SmsSendRequest.of(sendMagParam.getPhone(), sendMagParam.getContent(), serviceSubtask.getOrgid()));
+ if (smsResult.isOk()) {
resultMap.put("code", "200");
resultMap.put("msg", "鍙戦�佹垚鍔�");
serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ";鐭俊鍙戦�佹垚鍔�(鎵嬪姩鎻愪氦)" : "鐭俊鍙戦�佹垚鍔�(鎵嬪姩鎻愪氦)");
@@ -5225,35 +5230,33 @@
iServiceOutPathService.updateServiceOutPath(serviceOutPath);
- //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D
- List<String> wxqqxx = WxGZHEnum.getDescByCode(serviceSubtask.getOrgid());
- if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) {
- resultMap.put("code", -1);
- resultMap.put("message", "鍙戦�佸紓甯革細" + "銆愬叕浼楀彿銆戣鏈烘瀯鐨勫叕浼楀彿閰嶇疆淇℃伅涓嶅叏锛屾棤娉曢�氳繃鍏紬鍙峰彂閫�");
- return resultMap;
- }
-
+ //his鎮h�卛d鏍¢獙锛堜笌鍘熷疄鐜颁竴鑷达細鍏堟牎楠岃繖涓�椤癸級
if (StringUtils.isEmpty(serviceSubtask.getPatidHis())) {
resultMap.put("code", -1);
resultMap.put("message", "鍙戦�佸紓甯革細" + "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佸け璐�,his绯荤粺鐨勬偅鑰卛d涓虹┖");
return resultMap;
}
- String wxCode = "";
- wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx);
- Map map = JSONObject.parseObject(wxCode, Map.class);
- Boolean wxCodeSuccess = false;
- if (!map.isEmpty() && map.get("succ") != null) {
- wxCodeSuccess = (boolean) map.get("succ");
- }
+
+ //鏈烘瀯閰嶇疆鏍¢獙銆佹姤鏂囩鍚嶄笌杩斿洖鍒ゅ畾鍧囧凡鏀跺彛鍒� ruoyi-message 鐨勫彂閫佹柟瀹炵幇
+ WechatSendRequest wechatRequest = new WechatSendRequest();
+ wechatRequest.setOrgid(serviceSubtask.getOrgid());
+ wechatRequest.setIdCard(serviceSubtask.getSfzh());
+ wechatRequest.setUrl(url);
+ wechatRequest.setTitle(serviceSubtask.getTaskName());
+ wechatRequest.setContent(serviceSubtask.getTaskDesc());
+ wechatRequest.setPhone(patArchive.getTelcode());
+ wechatRequest.setPatientName(serviceSubtask.getSendname());
+ wechatRequest.setPatidHis(patArchive.getPatidHis());
+ SendResult wechatResult = wechatSenderFactory.send(active, wechatRequest);
//鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬�
serviceSubtask.setSendstate(3L);
- if (wxCodeSuccess) {
+ if (wechatResult.isOk()) {
serviceSubtask.setResult("success");
resultMap.put("code", "200");
resultMap.put("msg", "鍙戦�佹垚鍔�");
} else {
- log.error("銆恠fHandlle銆戝叕浼楀彿鍙戦�佸け璐ワ紝鎮h�呬俊鎭細{}锛岄敊璇俊鎭細{}", serviceSubtask, map.get("msg"));
+ log.error("銆恠fHandlle銆戝叕浼楀彿鍙戦�佸け璐ワ紝鎮h�呬俊鎭細{}锛岄敊璇俊鎭細{}", serviceSubtask, wechatResult.getMessage());
resultMap.put("code", -1);
resultMap.put("message", "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佸け璐�");
return resultMap;
@@ -5985,7 +5988,39 @@
Date newDate = new Date();
serviceSubtask.setLongSendTime(newDate);
serviceSubtask.setVisitTime(newDate);
+ // 闄㈠尯锛�/scanGenerateSubtask 鏄尶鍚嶆帴鍙o紙SecurityConfig permitAll锛夛紝鍙栦笉鍒扮櫥褰曠敤鎴凤紱
+ // 鑰� service_task.campusid 鍦ㄦ湰搴撴槸鍗犱綅鍊� '1'锛岀洿鎺ユ部鐢ㄤ細璁╃粺璁℃帴鍙o紙@AddOrgId 鎸夐櫌鍖鸿繃婊わ級鏌ヤ笉鍒版暟鎹��
+ // 杩欓噷鐢ㄤ换鍔¢厤缃殑鐥呭尯锛堝叾娆$瀹わ級鍙嶆煡 sys_dept.campusid 钀藉簱锛屼繚璇侀棶鍗风粺璁¤兘鎸夐櫌鍖哄彇鍒般��
+ String campusIdByDept = queryCampusIdByDeptCode(serviceSubtask.getLeavehospitaldistrictcode(), serviceTask.getOrgid());
+ if (StringUtils.isEmpty(campusIdByDept)) {
+ campusIdByDept = queryCampusIdByDeptCode(serviceSubtask.getDeptcode(), serviceTask.getOrgid());
+ }
+ if (StringUtils.isNotEmpty(campusIdByDept)) {
+ serviceSubtask.setCampusid(campusIdByDept);
+ }
+ // 鍙厤浜嗙瀹わ紙娌℃湁鐥呭尯锛夌殑婊℃剰搴︿换鍔★細杩欓亾绛斿嵎鍦ㄦ寜鐥呭尯绛涢�夌殑鎶ヨ〃閲岀粺璁′笉鍒帮紝鐣欐棩蹇椾究浜庤繍缁村彂鐜�
+ if (StringUtils.isEmpty(serviceSubtask.getLeavehospitaldistrictcode())
+ && ("6".equals(serviceSubtask.getServiceType()) || "14".equals(serviceSubtask.getServiceType()))) {
+ log.warn("銆愭壂鐮佺敓鎴愪换鍔°�戞弧鎰忓害瀛愪换鍔℃病鏈夌梾鍖猴紝鎸夌梾鍖虹瓫閫夌殑鎶ヨ〃灏嗙粺璁′笉鍒拌绛斿嵎锛歵askid={}, deptcode={}, campusid={}",
+ serviceSubtask.getTaskid(), serviceSubtask.getDeptcode(), serviceSubtask.getCampusid());
+ }
return serviceSubtask;
+ }
+
+ /**
+ * 鎸夌瀹�/鐥呭尯缂栫爜鍙嶆煡鎵�灞為櫌鍖猴紙鏌ヤ笉鍒拌繑鍥� null锛�
+ */
+ private String queryCampusIdByDeptCode(String deptCode, String orgid) {
+ if (StringUtils.isEmpty(deptCode)) {
+ return null;
+ }
+ try {
+ SysDept sysDept = sysDept2Mapper.selectDeptByCode(deptCode, orgid);
+ return sysDept == null ? null : sysDept.getCampusid();
+ } catch (Exception e) {
+ log.warn("鎸夌紪鐮佸弽鏌ラ櫌鍖哄け璐ワ細deptCode={}, orgid={}, err={}", deptCode, orgid, e.getMessage());
+ return null;
+ }
}
/**
@@ -6187,6 +6222,8 @@
String voiceText = phoneCallReqYQVO.getAsrtext();
String questionText = StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent();
Integer matched = -1;
+ log.info("AI鍖归厤:url = {},questionText = {},voiceText = {},options = {},uuid ={}",
+ url,questionText,voiceText,options,uuid);
matched = matchOptionIndex(url, questionText, voiceText, options, uuid);
//璇存槑鍖归厤姝g‘浜�
if (matched != null && matched >= 0) {
@@ -6280,7 +6317,8 @@
phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy());
//璁板綍鐘舵��
setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9");
- return phoneCallBackYQVO;
+ back = phoneCallBackYQVO;
+ return back;
}
flag = 1;
@@ -6288,9 +6326,10 @@
redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
// //鑾峰彇涓嬩竴棰�
log.error("鑾峰彇涓嬩竴棰樼殑淇℃伅锛歿}", ivrTaskTemplateScriptVO);
- if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1") || ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() != null && ivrTaskTemplateScriptVO.getNextScriptno() != 0) {
+ //branchFlag涓簄ull鏃舵寜鍒嗘敮0澶勭悊锛岄伩鍏峃PE
+ if ("1".equals(ivrTaskTemplateScriptVO.getBranchFlag()) || "0".equals(ivrTaskTemplateScriptVO.getBranchFlag()) && ivrTaskTemplateScriptVO.getNextScriptno() != null && ivrTaskTemplateScriptVO.getNextScriptno() != 0) {
Long nextQuestion = null;
- if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1")) {
+ if ("1".equals(ivrTaskTemplateScriptVO.getBranchFlag())) {
nextQuestion = chosenOption.getNextQuestion();
//鏇存柊鍒嗘暟
double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
@@ -6323,15 +6362,9 @@
redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
phoneCallBackYQVO.setType("text");
phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy());
- //灏嗙粨鏋滃啓杩沝etail琛�
- ServiceSubTaskDetailReq ssdReq = new ServiceSubTaskDetailReq();
- List<ServiceSubtaskDetail> serviceSubtaskDetailList2 = new ArrayList<>();
- serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
- serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList2);
- ssdReq.setGuid(phoneCallReqYQVO.getGuid());
- ssdReq.setOrgid(phoneCallReqYQVO.getOrgid());
- saveQuestionAnswerPhone(ssdReq);
- return phoneCallBackYQVO;
+ //鏄庣粏鍦ㄦ湰棰樺尮閰嶆垚鍔熸椂宸茶惤搴擄紙瑙佷笂鏂� saveQuestionAnswerPhone锛夛紝杩欓噷涓嶅啀閲嶅淇濆瓨
+ back = phoneCallBackYQVO;
+ return back;
}
for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) {
@@ -6348,6 +6381,15 @@
redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
}
}
+ //涓嬩竴棰樿剼鏈病鎵惧埌鏃讹紝鍏滃簳閲嶉棶褰撳墠棰橈紝閬垮厤璋冪敤鏂硅鍒や负鏈鐞嗚�岄��鍥炴鍒欒瘑鍒�
+ if (StringUtils.isEmpty(phoneCallBackYQVO.getValue())) {
+ log.error("涓嬩竴棰樿剼鏈湭鎵惧埌锛岄噸闂綋鍓嶉锛宯extQuestion锛歿}", nextQuestion);
+ phoneCallBackYQVO.setType("text");
+ phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+ phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, questionText));
+ }
+ back = phoneCallBackYQVO;
+ return back;
} else if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
phoneCallBackYQVO.setType("text");
@@ -6376,33 +6418,101 @@
//鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
-// return phoneCallBackYQVO;
+ //缁撴潫璇凡鎷艰繘杩斿洖鍊硷紝鎸傛満鐢卞钩鍙版寜杩斿洖鍊兼墽琛�
+ back = phoneCallBackYQVO;
+ return back;
}
} else {
- log.info("娌℃湁鍖归厤涓�----------------------------");
- //flag=0,璇存槑娌� 鍖归厤涓婏紝涔熻鎶婃偅鑰呰鐨勮瘽璁板綍涓嬫潵
- if (matched == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1 && flag == 0) {
- ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
- List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
- ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate);
- //淇敼涓�涓嬭闊宠矾寰勶紙鏀规垚鍓嶇鍙互璁块棶鐨勶紝瀛樺埌鏁版嵁搴撲腑锛�
- if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) {
- String questionvoice = serviceSubtaskDetail.getQuestionvoice();
- String[] split = questionvoice.split("\\\\");
- if (split.length > 0) {
- String lastPart = split[split.length - 1];
- serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart);
+ //AI娌℃湁鍖归厤涓婏細鐢盇I鍒嗘敮鑷繁鎸�"娌¢棶娓呭氨閲嶉棶"鐨勬鏁板鐞嗭紝涓嶅啀閫�鍥炴鍒欒瘑鍒�
+ log.info("ai娌℃湁鍖归厤涓�----------------------------");
+ //娌″尮閰嶄笂涔熻鎶婃偅鑰呰鐨勮瘽璁板綍涓嬫潵锛坢atchedtext缃┖锛屼笌姝e垯璺緞鍙e緞涓�鑷达級
+ ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
+ List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
+ ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate);
+ //淇敼涓�涓嬭闊宠矾寰勶紙鏀规垚鍓嶇鍙互璁块棶鐨勶紝瀛樺埌鏁版嵁搴撲腑锛�
+ if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) {
+ String questionvoice = serviceSubtaskDetail.getQuestionvoice();
+ String[] split = questionvoice.split("\\\\");
+ if (split.length > 0) {
+ String lastPart = split[split.length - 1];
+ serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart);
+ }
+ }
+ serviceSubtaskDetailList.add(serviceSubtaskDetail);
+ //濡傛灉娌℃湁 鍖归厤涓婏紝杩欎釜蹇呴』涓簄ull
+ serviceSubtaskDetailList.get(0).setMatchedtext("");
+ serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
+ serviceSubTaskDetailReq.setGuid(phoneCallReqYQVO.getGuid());
+ serviceSubTaskDetailReq.setOrgid(phoneCallReqYQVO.getOrgid());
+ saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+
+ String mateKey = phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid();
+ Integer count = null;
+ Object countObj = redisCache.getCacheObject(mateKey);
+ if (ObjectUtils.isNotEmpty(countObj)) count = (Integer) countObj;
+ if (count != null && count >= ivrTaskTemplate.getMateNum()) {
+ //娌″尮閰嶆鏁板凡缁忕敤婊★紝涓嶈兘鍐嶉噸闂簡
+ boolean noNextQuestion = ("0".equals(ivrTaskTemplateScriptVO.getBranchFlag()) || "1".equals(ivrTaskTemplateScriptVO.getBranchFlag()))
+ && (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0);
+ if (noNextQuestion) {
+ //宸茬粡鏄渶鍚庝竴棰橈紝鐩存帴鎸傛満
+ ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+ phoneCallBackYQVO.setType("text");
+ phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+ phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy());
+ //鏇存柊涓�涓嬪垎鏁�
+ Double score = null;
+ Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj;
+ serviceSubtask.setScore(String.valueOf(score));
+ serviceSubtask.setFinishtime(new Date());
+ serviceSubtask.setSendstate(6L);
+ serviceSubtask.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�");
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ //璁板綍鐘舵��
+ setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9");
+ //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
+ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+ redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
+ //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎
+ Long id = serviceSubtask.getId();
+ Map<String, String> map = delRedisValue(null, id.toString());
+ if (ObjectUtils.isNotEmpty(map)) {
+ redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+ redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+ redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ }
+ } else {
+ //杩樻湁涓嬩竴棰橈紝鎸塶extScriptno缁х画鎻愰棶
+ for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) {
+ if (script.getSort() == ivrTaskTemplateScriptVO.getNextScriptno().intValue()) {
+ phoneCallBackYQVO.setType("text");
+ phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+ String scriptContent = StringUtils.isNotEmpty(script.getIvrtext()) ? script.getIvrtext() : script.getScriptContent();
+ phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
+ //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
+ redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
+ //鏇存柊涓�涓嬪垎鏁�
+ Double score = null;
+ Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj;
+ score = BigDecimal.valueOf(score).add(new BigDecimal(script.getScore())).doubleValue();
+ redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES);
+ //鎹㈤鎴愬姛锛屾病鍖归厤娆℃暟娓呴浂
+ redisCache.deleteObject(mateKey);
+ }
}
}
- serviceSubtaskDetailList.add(serviceSubtaskDetail);
- //濡傛灉娌℃湁 鍖归厤涓婏紝杩欎釜蹇呴』涓簄ull
- serviceSubtaskDetailList.get(0).setMatchedtext("");
- serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
- serviceSubTaskDetailReq.setGuid(phoneCallReqYQVO.getGuid());
- serviceSubTaskDetailReq.setOrgid(phoneCallReqYQVO.getOrgid());
- saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+ } else {
+ //杩樻病闂弧娆℃暟锛岀敤noMatchText寮曞鎮h�呴噸绛�
+ redisCache.setCacheObject(mateKey, count == null ? 1 : count + 1, 120, TimeUnit.MINUTES);
+ phoneCallBackYQVO.setType("text");
+ phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+ phoneCallBackYQVO.setValue(ivrTaskTemplateScriptVO.getNoMatchText() + getObject(serviceSubtask, StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent()));
}
+ back = phoneCallBackYQVO;
+ return back;
}
return back;
}
@@ -6787,39 +6897,8 @@
return list;
}
- private String getWXCode(String idcard, String url, String taskName, String taskDesc, String phone, String setPatientname, String setPatientid, List<String> wxqqxx) {
- XinHuaWXReq xinHuaWXReq = new XinHuaWXReq();
- xinHuaWXReq.setIdcard(idcard);
- xinHuaWXReq.setUrl(url);
- xinHuaWXReq.setPatientid(setPatientid);
- xinHuaWXReq.setPatientname(setPatientname);
- xinHuaWXReq.setMobile(phone);
- xinHuaWXReq.setMedcardno(null);
- xinHuaWXReq.setTitlename(taskName);
- xinHuaWXReq.setContent(taskDesc);
- xinHuaWXReq.setAppid(wxqqxx.get(1));
- log.info("銆恎etWXCode銆戝井淇″叕浼楀彿璇锋眰鍙傛暟锛歿}", xinHuaWXReq);
- String body = new Gson().toJson(xinHuaWXReq);
- String encode = encode(wxqqxx.get(2).concat(body));
- Map<String, String> headerMap = new HashMap<>();
- headerMap.put("sign", encode);
- String result = HttpUtils.sendPostByHeader(wxqqxx.get(3), body, headerMap);
- log.info("銆恎etWXCode銆戝井淇″叕浼楀彿杩斿洖鍙傛暟锛歿}", result);
- JSONObject jsonObject = JSONObject.parseObject(result);
- String code = (String) jsonObject.toString();
- return code;
- }
- public String encode(String arg) {
- if (arg == null) {
- arg = "";
- }
- MessageDigest md5 = null;
- try {
- md5 = MessageDigest.getInstance("MD5");
- md5.update(arg.getBytes("UTF-8"));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return toHex(md5.digest());
- }
+ // ---------------------------------------------------------------------
+ // 璇存槑锛氬師绉佹湁 getWXCode / encode 宸查殢鍙戦�佹柟涓�璧锋敹鍙e埌 ruoyi-message 妯″潡
+ // 锛圶inHuaMpApi锛夛紝姝ゅ宸插垹闄わ紝閬垮厤涓変唤鎷疯礉鍚勫啓涓�濂楃鍚嶉�昏緫銆�
+ // ---------------------------------------------------------------------
}
--
Gitblit v1.9.3