From 673757e7a669769041a54ef6471b4d8d250e3416 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 28 七月 2026 18:23:52 +0800
Subject: [PATCH] 【丽水】JZ_MZ_WanChengJZ 就诊信息同步生成随访任务

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   65 ++++++++++++++++++++++----------
 1 files changed, 44 insertions(+), 21 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 1201841..35b9597 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -13,9 +13,11 @@
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.*;
 import com.ruoyi.common.core.service.IConfigService;
+import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.mapper.SysConfigMapper;
+import com.ruoyi.system.service.ISysConfigService;
 import com.smartor.common.DeepSeekApi;
 import com.smartor.common.FtpService;
 import com.smartor.common.MtSubmitSmUtil;
@@ -146,6 +148,9 @@
 
     @Value("${ASRCallBackPath}")
     private String ASRCallBackPath;
+
+    @Autowired
+    private ISysConfigService configService;
 
     @Autowired
     private MtSubmitSmUtil mtSubmitSmUtil;
@@ -1734,14 +1739,14 @@
             if (ivrTaskTemplateScriptVO.getScriptType().equals("1")) {
                 //鐢ㄦ潵鏍囪锛屾槸鍚︽湁鍖归厤涓婄殑
                 Integer flag = 0;
-//                //2-AI璇嗗埆
-//                SysConfig configVoiceMatchType = new SysConfig();
-//                configVoiceMatchType.setOrgid(phoneCallReqYQVO.getOrgid());
-//                configVoiceMatchType.setConfigKey("sys.voice.match.type");
-//                SysConfig matchType = sysConfigMapper.selectConfig(configVoiceMatchType);
-//
-//            if (ObjectUtils.isNotEmpty(matchType) && StringUtils.isNotEmpty(matchType.getConfigValue())
-//                    && matchType.getConfigValue().equals("2")) {
+                //1-AI璇嗗埆
+                SysConfig configVoiceMatchAi = new SysConfig();
+                configVoiceMatchAi.setOrgid(phoneCallReqYQVO.getOrgid());
+                configVoiceMatchAi.setConfigKey("sys.voice.match.ai");
+                SysConfig matchAi = sysConfigMapper.selectConfig(configVoiceMatchAi);
+
+//            if (ObjectUtils.isNotEmpty(matchAi) && StringUtils.isNotEmpty(matchAi.getConfigValue())
+//                    && matchAi.getConfigValue().equals("1")) {
 //                PhoneCallBackYQVO aiMatchResult = AiMatch(phoneCallReqYQVO, phoneCallBackYQVO,
 //                        ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate,
 //                        ivrTaskTemplateScripts, scriptId, flag);
@@ -4976,34 +4981,45 @@
      * @param options
      * @return
      */
-    public String matchOptionIndex(String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options) {
+    public Integer matchOptionIndex(String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options){
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("userQuestion",questionText);
         jsonObject.put("userAnswer",voiceText);
         jsonObject.put("options", options);
         String jsonString = jsonObject.toJSONString();
         String result = null;
-        try {
-            result = OkHttpExample.post("http://localhost:8099/matchOptionIndex", jsonString);
-        } catch (IOException e) {
-            throw new RuntimeException(e);
+
+        String url = "http://localhost:8099/matchOptionIndex";
+//        String url = configService.selectConfigByKey("sys.voice.match.ai.url");
+        if(StringUtils.isNotEmpty(url)){
+            try {
+                Map<String, String> headers = new HashMap<>();
+                headers.put("Content-Type", "application/json");
+
+                result = HttpUtils.sendPostByHeader(url, jsonString, headers);
+            } catch (Exception e) {
+                log.error("AI璇嗗埆澶辫触", e);
+            }
         }
-        return result;
+        if(StringUtils.isNotEmpty(result) && result.matches("^-?\\d+$")){
+            return Integer.parseInt(result);
+        }else {
+            return -1;
+        }
     }
 
     public PhoneCallBackYQVO AiMatch(PhoneCallReqYQVO phoneCallReqYQVO, PhoneCallBackYQVO phoneCallBackYQVO,
                         IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, ServiceSubtask serviceSubtask, IvrTaskTemplate ivrTaskTemplate,
                         List<IvrTaskTemplateScript> ivrTaskTemplateScripts, String scriptId, Integer flag){
         PhoneCallBackYQVO back = null;
-        String result = "0";
         List<IvrTaskTemplateTargetoption> options = ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList();
         String voiceText = phoneCallReqYQVO.getAsrtext();
         String questionText = StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent();
-        result = matchOptionIndex(questionText, voiceText, options);
-        Integer matched = Integer.valueOf(result);
-        IvrTaskTemplateTargetoption chosenOption = options.get(matched);
+        Integer matched = -1;
+        matched = matchOptionIndex(questionText, voiceText, options);
         //璇存槑鍖归厤姝g‘浜�
-        if(matched != null && matched != 0){
+        if(matched != null && matched >= 0){
+            IvrTaskTemplateTargetoption chosenOption = options.get(matched);
             //杩欓噷搴旇鍏堝垽鏂被鍨嬶紝鍘诲啀淇敼锛岃缃甀sUserOperation鏄崟閫夐鐨勬敼娉�
             log.info("鍖归厤姝g‘浜嗗悧--------------");
             chosenOption.setIsUserOperation(1);
@@ -5225,7 +5241,7 @@
     public void TestMatch(){
         String questionText = "鎮ㄥソ,璇烽棶鎮ㄦ槸鎮h�呮湰浜鸿繕鏄灞烇紵\n";
         String voiceText = "鎴戣嚜宸�";
-        Long scriptid = 31231L;
+        String matchedText = "";
         List<IvrTaskTemplateTargetoption> options = new ArrayList<>();
         IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption1 = new IvrTaskTemplateTargetoption();
         ivrTaskTemplateTargetoption1.setTargetvalue("鏈汉");
@@ -5236,6 +5252,13 @@
         IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption3 = new IvrTaskTemplateTargetoption();
         ivrTaskTemplateTargetoption3.setTargetvalue("鍏朵粬");
         options.add(ivrTaskTemplateTargetoption3);
-        matchOptionIndex(questionText,voiceText,options);
+
+        Integer matched = matchOptionIndex(questionText,voiceText,options);
+        if(ObjectUtils.isNotEmpty(matched)){
+            if(matched >= 0){
+                matchedText = options.get(matched).getTargetvalue();
+            }
+        }
+        log.info("ai鍖归厤鎴愬姛锛屽尮閰嶇粨鏋滄槸:" + matchedText);
     }
 }

--
Gitblit v1.9.3