From dbbb114c25b2406b6d1fd52019d2f2228ffcacd0 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 27 十一月 2024 18:04:16 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java         |   66 ++++++++++++
 ruoyi-admin/src/main/resources/application-druid.yml                                  |   10 +
 ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java                |    8 
 smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java                  |    6 +
 smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java            |   20 ++-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java |    4 
 smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml                    |    6 +
 smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java                 |    4 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java   |    3 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java   |  153 ++++++++++++++++++++++++++++--
 10 files changed, 245 insertions(+), 35 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
index 30ddbb9..ddaa6f2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -241,8 +241,8 @@
                             serviceSubtaskRecord.setPreachform("3");
                             serviceSubtaskRecord.setResult("fail");
                             serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
-                            serviceSubtaskRecord.setRemark("鐢佃瘽鍙戦�佸け璐�");
-                            log.error("鐢佃瘽鍙戦�佸け璐ワ細{}", exception.getMessage());
+                            serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐�");
+                            log.error("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐ワ細{}", exception.getMessage());
                             lssubIds.add(serviceSubtask.getId());
                             serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                             continue;
@@ -250,7 +250,7 @@
                         //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓�
                         String uuid = UUID.randomUUID().toString();
                         serviceSubtask.setResult("success");
-                        serviceSubtask.setRemark("鐢佃瘽鍙戦�佹垚鍔�");
+                        serviceSubtask.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�");
                         serviceSubtask.setGuid(uuid);
                         serviceSubtask.setSendstate(3L);
                         serviceSubtask.setFinishtime(new Date());
@@ -264,7 +264,7 @@
                         serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                         serviceSubtaskRecord.setPreachform("3");
                         serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
-                        serviceSubtaskRecord.setRemark("鐢佃瘽鍙戦�佹垚鍔�");
+                        serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�");
                         serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                     }
                     if (CollectionUtils.isEmpty(lssubIds)) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
index 8cba22d..2a3f0ad 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
@@ -194,7 +194,7 @@
     public AjaxResult getScriptInfoByCondition(@RequestBody ServiceTaskScriptQues serviceTaskScriptQues) {
         Long tid = null;
         Long pid = null;
-        log.info("getScriptInfoByCondition鍏ュ弬涓猴細{}", serviceTaskScriptQues);
+        log.error("getScriptInfoByCondition鍏ュ弬涓猴細{}", serviceTaskScriptQues);
         try {
             tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam1(), pri_key));
             pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam2(), pri_key));
@@ -202,7 +202,7 @@
             log.error("getScriptInfoByCondition鎶ラ敊浜嗭細{}", e.getMessage());
         }
 
-        log.info("tid鍜宲id鐨勫�间负锛歿},{}", tid, pid);
+        log.error("tid鍜宲id鐨勫�间负锛歿},{}", tid, pid);
         return success(serviceTaskService.getScriptInfoByCondition(tid, pid, true));
     }
 
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index fbc19da..e3166a7 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -143,7 +143,7 @@
 
 #鍏徃鍐呭閾捐姹侷P鍜岀鍙e彿
 #req_path: 8095
-#localIP: 192.168.2.10
+#localIP: 192.168.2.13
 
 #鏂板崕鍖婚櫌澶栭摼璇锋眰IP鍜岀鍙e彿
 req_path: 8093
@@ -169,7 +169,8 @@
 #fs鎵�浣跨敤鐨勯樋閲岀殑app_key(鏂板崕)
 app_key_yq: ZurNHpaQLq6P55YS
 
-
+#鏈� 鍦� 鐭俊璇锋眰鍦板潃(杩欎釜鏈嶅姟鏄垜浠嚜宸卞啓鐨�)
+#xhsmsPath: http://192.168.2.13:8092/sendSms
 #鏂板崕鐭俊璇锋眰鍦板潃(杩欎釜鏈嶅姟鏄垜浠嚜宸卞啓鐨�)
 xhsmsPath: http://192.16.4.220:8092/sendSms
 #甯愬彿
@@ -179,6 +180,11 @@
 #铏氭嫙鎺ュ叆鐮�
 xhsmsjrm: 1069055
 
+##鏈湴FTP杩炴帴
+#FTP_SERVER: "192.168.2.13"
+#FTP_USERNAME: voice
+#FTP_PASSWORD: xh@2023
+
 #鏂板崕FTP杩炴帴
 FTP_SERVER: "192.16.4.220"
 FTP_USERNAME: voice
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java
index 4bbe534..9a49938 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java
@@ -25,8 +25,8 @@
     @ApiModelProperty(value = "寮傚父鏍囪瘑")
     private String excep;
 
-//    @ApiModelProperty(value = "璇曞嵎绫诲瀷:1 闅忚   2 闂嵎")
-//    private Integer type;
+    @ApiModelProperty(value = "璇曞嵎绫诲瀷:1 闅忚   2 闂嵎")
+    private Integer type;
 
     @ApiModelProperty(value = "闂缁撴灉璇︽儏")
     private List<ServiceSubtaskDetail> serviceSubtaskDetailList;
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java
index 8287e7b..5e356ac 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java
@@ -23,9 +23,13 @@
     private String param2;
 
     @ApiModelProperty(value = "闂鍥炵瓟鏄庣粏(闅忚)")
-    private List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList;
+    private List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList;
 
     @ApiModelProperty(value = "闂鍥炵瓟鏄庣粏(闂嵎)")
     List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS;
 
+    @ApiModelProperty(value = "璇曞嵎绫诲瀷:1 闅忚   2 闂嵎")
+    private Integer type;
+
+
 }
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 6b27a89..f5a8fb8 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -132,10 +132,16 @@
         if (ObjectUtils.isNotEmpty(serviceSubTaskAnswerReq)) {
             //闇�瑕佺珛鍗虫墽琛�
             RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+
             tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam1(), pri_key));
             pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam2(), pri_key));
-            allKeys = new HashSet<>();
-            allKeys.add(pid + "-" + tid + "-WJscriptCache");
+            if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 2) {
+                allKeys = new HashSet<>();
+                allKeys.add(pid + "-" + tid + "-WJscriptCache");
+            } else if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 1) {
+                allKeys = new HashSet<>();
+                allKeys.add(pid + "-" + tid + "-SFscriptCache");
+            }
         }
 
         Long nextScriptno = null;
@@ -182,6 +188,47 @@
                         }
                     }
                 }
+            } else if (key.contains("-SFscriptCache")) {
+                List<IvrLibaTemplateScriptVO> cacheList = redisCache.getCacheList(key);
+                cacheList.sort(Comparator.comparingLong(IvrLibaTemplateScriptVO::getSort));
+                log.error("鐢佃瘽闅忚闂嵎鍥炵瓟缁撴灉锛歿}", cacheList);
+                for (int i = 0; i < cacheList.size(); i++) {
+                    if (i == 0) {
+                        //杩欎釜鏃堕棿瑕佹壘鍒扮涓�棰�
+                        for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : cacheList) {
+                            if (ivrLibaTemplateScriptVO.getSort() == 1L) {
+                                //璇存槑鏄涓�棰�
+                                IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), IvrTaskTemplateScriptVO.class);
+                                List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = cacheList.get(0).getIvrLibaScriptTargetoptionList();
+                                List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(ivrLibaTemplateTargetoptions, IvrTaskTemplateTargetoption.class);
+                                ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
+                                Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, tid, pid);
+                                nextScriptno = Long.valueOf(map.get("nextScriptNo"));
+                                if (score == null) {
+                                    score = Double.valueOf(map.get("score"));
+                                } else {
+                                    score = score + Double.valueOf(map.get("score"));
+                                }
+                            }
+                        }
+
+                    } else {
+                        IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(i), IvrTaskTemplateScriptVO.class);
+                        List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getIvrLibaScriptTargetoptionList(), IvrTaskTemplateTargetoption.class);
+                        ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
+
+                        if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()) == 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"));
+                            if (score == null) {
+                                score = Double.valueOf(map.get("score"));
+                            } else {
+                                score = score + Double.valueOf(map.get("score"));
+                            }
+                        }
+                    }
+                }
             }
             //灏嗚key鍜寁alue浠巖edis涓紝鍒犻櫎
             redisCache.deleteObject(key);
@@ -206,16 +253,35 @@
      */
     @Override
     public Integer saveQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq) {
-        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
-        Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
-        Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
-        //闂嵎
-        redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache");
-        redisCache.setCacheList(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS());
-        //璁剧疆杩囨湡鏃堕棿 3澶�
-        Long tims = Long.valueOf(3 * 24 * 3600);
-        redisCache.expire(pid + "-" + tid + "-WJscriptCache", tims);
-        return 1;
+        try {
+
+
+            RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+            Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
+            Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
+            if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 2) {
+                //闂嵎
+                redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache");
+                redisCache.setCacheList(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS());
+                //璁剧疆杩囨湡鏃堕棿 3澶�
+                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) {
+                //闂嵎
+                redisCache.deleteObject(pid + "-" + tid + "-SFscriptCache");
+                redisCache.setCacheList(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList());
+                //璁剧疆杩囨湡鏃堕棿 3澶�
+                Long tims = Long.valueOf(3 * 24 * 3600);
+                redisCache.expire(pid + "-" + tid + "-SFscriptCache", tims);
+                return 1;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("缂撳瓨淇濆瓨澶辫触锛歿}", e.getMessage());
+            return 0;
+        }
+        return 0;
     }
 
     @Override
@@ -307,7 +373,7 @@
                 if (StringUtils.isEmpty(serviceSubtaskDetailVO.getTargetvalue())) {
                     serviceSubtaskDetailVO.setTargetvalue(svyTaskTemplateTargetoption.getOptioncontent());
                 } else {
-                    serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + "  " + svyTaskTemplateTargetoption.getOptioncontent());
+                    serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + "&" + svyTaskTemplateTargetoption.getOptioncontent());
                 }
 //                if (svyTaskTemplateTargetoption.getIsUserOperation() == true) {
 //                    //灏嗛�変腑鐨勭粨鏋滄斁鍒癮srtext涓�
@@ -359,6 +425,67 @@
         serviceSubtaskDetailVO.setCreateTime(new Date());
         serviceSubtaskDetailVO.setUpdateTime(new Date());
         serviceSubtaskDetailVO.setSubId(selectServiceSubtaskList.get(0).getId());
+        serviceSubtaskDetailVO.setTemplatequestionnum(svyTaskTemplateScriptVO.getId());
+        ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
+        serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
+
+        Map<String, String> map = new HashMap<>();
+        map.put("nextScriptNo", nextScriptNo);
+        map.put("score", score);
+        return map;
+    }
+
+    private Map<String, String> setSFInfo(IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, Long taskid, Long patid) {
+        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+        serviceSubtaskVO.setTaskid(taskid);
+        serviceSubtaskVO.setPatid(patid);
+        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+
+        String score = "0";
+        //涓嬮璺宠浆
+        String nextScriptNo = null;
+        ServiceSubtaskDetailVO serviceSubtaskDetailVO = new ServiceSubtaskDetailVO();
+        List<ServiceSubtaskOptionAnswer> answerList = new ArrayList<>();
+        if (ivrTaskTemplateScriptVO.getScriptType().equals("1") || ivrTaskTemplateScriptVO.getScriptType().equals("2")) {
+            //1銆�2涓哄崟閫夋垨澶氶��
+            for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption : ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()) {
+                //灏嗛棶棰橀�夐」璁板綍涓嬫潵
+                if (StringUtils.isEmpty(serviceSubtaskDetailVO.getTargetvalue())) {
+                    serviceSubtaskDetailVO.setTargetvalue(ivrTaskTemplateTargetoption.getTargetvalue());
+                } else {
+                    serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + "&" + ivrTaskTemplateTargetoption.getTargetvalue());
+                }
+
+            }
+            nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno().toString();
+            if (ivrTaskTemplateScriptVO.getScore() != null) {
+                score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
+            }
+            if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getQuestionResult())) {
+                serviceSubtaskDetailVO.setAsrtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
+                serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
+            }
+        } else {
+            //闈炲崟澶氶��
+            if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getQuestionResult())) {
+                serviceSubtaskDetailVO.setAsrtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
+                serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
+                nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno().toString();
+                if (ivrTaskTemplateScriptVO.getScore() != null) {
+                    score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
+                }
+            }
+        }
+        serviceSubtaskDetailVO.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent());
+        serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
+        serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
+        serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getId());
+        serviceSubtaskDetailVO.setValueType(ivrTaskTemplateScriptVO.getScriptType());
+        serviceSubtaskDetailVO.setComment(null);
+        serviceSubtaskDetailVO.setCreateTime(new Date());
+        serviceSubtaskDetailVO.setUpdateTime(new Date());
+        serviceSubtaskDetailVO.setSubId(selectServiceSubtaskList.get(0).getId());
+        serviceSubtaskDetailVO.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
         ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
         serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
 
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
index 31c6f03..64e2c60 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
@@ -59,12 +59,14 @@
     @Override
     public Map<String, Object> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail) {
         List<ServiceSubtaskDetail> serviceSubtaskDetails = ServiceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+        String taskName = null;
         if (CollectionUtils.isNotEmpty(serviceSubtaskDetails)) {
             //澶勭悊涓�涓嬮�氶厤绗�
             for (ServiceSubtaskDetail serviceSubtaskDetail1 : serviceSubtaskDetails) {
                 ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubtaskDetail1.getSubId());
                 serviceSubtaskDetail1.setQuestiontext(getObject(serviceSubtask, serviceSubtaskDetail1.getQuestiontext()));
             }
+            taskName = serviceTaskService.selectServiceTaskByTaskid(serviceSubtaskDetails.get(0).getTaskid()).getTaskName();
         }
         //鑾峰彇鏈�鍚庣殑鎬诲綍闊冲湴鍧�
         Map<String, Object> map = new HashMap<>();
@@ -73,6 +75,7 @@
         Map<String, Object> map1 = new HashMap<>();
         map1.put("serviceSubtaskDetails", serviceSubtaskDetails);
         map1.put("filteredDetails", null);
+        map1.put("taskName", taskName);
         //鐢ㄤ簬瀛樺偍鍘婚噸鐨勬暟鎹�
         List<ServiceSubtaskDetail> serviceSubtaskDetailSET = new ArrayList<>();
         Boolean flag = false;
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 d96e13e..9294e4f 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -8,6 +8,7 @@
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.*;
 import com.smartor.common.FtpService;
+import com.smartor.common.SendService;
 import com.smartor.config.PhoneUtils;
 import com.smartor.domain.*;
 import com.smartor.mapper.*;
@@ -21,6 +22,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
@@ -73,13 +75,22 @@
     private IIvrTaskTemplateScriptService iIvrTaskTemplateScriptService;
 
     @Autowired
+    private IServiceOutPathService iServiceOutPathService;
+
+    @Autowired
     private FtpService ftpService;
 
     @Value("${pri_key}")
     private String pri_key;
 
+    @Value("${pub_key}")
+    private String pub_key;
+
     @Value("${ASRCallBackPath}")
     private String ASRCallBackPath;
+
+    @Autowired
+    private SendService sendService;
 
     @Value("${hangup}")
     private String hangup;
@@ -93,6 +104,14 @@
     @Value("${voicePathPrefix}")
     private String voicePathPrefix;
 
+    @Value("${localIP}")
+    private String localIP;
+
+    @Value("${req_path}")
+    private String req_path;
+
+    @Value("${xhsmsPath}")
+    private String xhsmsPath;
 
     /**
      * 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級
@@ -708,12 +727,18 @@
     public PhoneCallBackYQVO phoneCallBackYQ(PhoneCallReqYQVO phoneCallReqYQVO) {
         //鍒ゆ柇鏄惁鎸傛満
         String hangupState = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "- hangup");
-        if (StringUtils.isNotEmpty(hangupState) && hangup.equals("1")) {
+        Object cacheObject1 = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup");
+        if (StringUtils.isNotEmpty(hangupState) && hangup.equals("1") || ObjectUtils.isNotEmpty(cacheObject1) && String.valueOf(cacheObject1).equals("1")) {
             return new PhoneCallBackYQVO();
         }
         if ("AsrCallback".equals(phoneCallReqYQVO.getOperate()) && phoneCallReqYQVO.getEnd_time() != null && phoneCallReqYQVO.getEnd_time() != -1) {
             //澶勭悊鎸傛柇
             if (phoneCallReqYQVO.getAsrtext().contains("鎷ㄥ彨鐨勭敤鎴锋蹇�")) {
+                //鍒ゆ柇 recordAccept-hungup 鏄惁鏈夊�硷紝濡傛灉鏈夛紝鍒欒鏄庝笉鐢ㄥ鐞嗕簡锛屼箣鍓嶅凡缁忓鐞嗚繃浜嗭紙recordAccept-hungup杩欎釜涓昏鏄粰鈥滈�氳瘽璁板綍鐢ㄧ殑锛屸�濓級
+                Object cacheObject = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup");
+                if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("1")) {
+                    return new PhoneCallBackYQVO();
+                }
                 ServiceSubtask serviceSubtask2 = new ServiceSubtask();
                 serviceSubtask2.setRemark("鐢佃瘽鍙戦�佹垚鍔燂紙鎮h�呮寕鏂級");
                 serviceSubtask2.setSenduuid(phoneCallReqYQVO.getUuid());
@@ -724,6 +749,8 @@
                 req.put("caller", phoneCallReqYQVO.getPhone());
                 HttpUtil.postJsonRequest(hangup, new Gson().toJson(req));
                 redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- hangup", "1", 2, TimeUnit.MINUTES);
+                //杩欎釜鏃跺�欏氨闇�瑕佽蛋琛ュ伩鏈哄埗浜嗭紝鍏堟殏瀹氳蛋鐭俊
+                getSmsCompensate(Long.valueOf(phoneCallReqYQVO.getTaskid()));
                 return new PhoneCallBackYQVO();
             }
         }
@@ -754,6 +781,7 @@
                     HttpUtil.postJsonRequest(hangup, new Gson().toJson(req));
                     //鍒犻櫎缁撴潫璇殑鎮e瓨
                     redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "- jsy");
+                    redisCache.setCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup", "2", 10, TimeUnit.MINUTES);
                 } else {
                     redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop", true, 120, TimeUnit.MINUTES);
                     log.error("-------PlayEventCallbackPlaystop鐨勫�间负锛歿}", true);
@@ -1672,7 +1700,9 @@
 
     @Override
     public Integer recordAccept(PhoneCallRecordVO phoneCallRecordVO) {
-        if (phoneCallRecordVO.getAnswered() != null && phoneCallRecordVO.getAnswered() == true) {
+        Object cacheObject = redisCache.getCacheObject("recordAccept-hungup");
+        if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("2")) {
+//        if (phoneCallRecordVO.getAnswered() != null && phoneCallRecordVO.getAnswered() == true) {
             log.error("鏈変汉鎺ョ數璇濅簡锛屽苟涓斿畬浜�");
             //璇存槑鏈変汉鎺ヤ簡
             int startIndex = phoneCallRecordVO.getRecord_path().indexOf("voice") + "voice".length() + 1;  // 鍔�1鏄烦杩�/绗﹀彿
@@ -1680,7 +1710,11 @@
             String result = phoneCallRecordVO.getRecord_path().substring(startIndex, endIndex);
             //涓嬭浇鏂囦欢
             ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
+        } else if (phoneCallRecordVO.getHangup_cause().equals("NO_USER_RESPONSE") || ObjectUtils.isNotEmpty(cacheObject) && !String.valueOf(cacheObject).equals("2")) {
+            //鏃犱汉鎺ュ惉
+            getSmsCompensate(Long.valueOf(phoneCallRecordVO.getTaskid()));
         }
+        redisCache.deleteObject("recordAccept-hungup");
         return 1;
     }
 
@@ -1772,4 +1806,32 @@
         return serviceSubtaskDetail;
     }
 
+    private void getSmsCompensate(Long subTaskId) {
+        ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(subTaskId);
+        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+        String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key);
+        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+        ServiceOutPath serviceOutPath = new ServiceOutPath();
+        serviceOutPath.setParam1(taskId);
+        serviceOutPath.setParam2(patid);
+        serviceOutPath.setCreateTime(new Date());
+        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+        //杞垚16杩涘埗
+        String format = String.format("%03X", serviceOutPath.getId());
+        serviceOutPath.setRadix(format);
+        serviceOutPath.setUpdateTime(new Date());
+        iServiceOutPathService.updateServiceOutPath(serviceOutPath);
+        SendMagParam sendMagParam = new SendMagParam();
+        sendMagParam.setUrl(localIP + ":" + req_path + "/sf?p=" + format);
+        sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌闅忚璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+        Map<String, String> map = new HashMap<>();
+        map.put("phone", serviceSubtask.getPhone());
+        map.put("content", sendMagParam.getContent());
+        String result = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(map));
+        redisCache.setCacheObject(subTaskId + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES);
+        if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))
+            serviceSubtask.setRemark("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�");
+        else serviceSubtask.setRemark("鐭俊琛ュ伩鍙戦�佹垚鍔�");
+        serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+    }
 }
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 0773844..25c5761 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -155,23 +155,25 @@
         ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
         serviceSubtaskVO.setPatid(patid);
         serviceSubtaskVO.setTaskid(taskid);
-        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
-        //鏌ヨ鎮h�呮槸鍚﹂噸瑕嗗仛棰�
-        if (CollectionUtils.isEmpty(selectServiceSubtaskList)) {
-            Long submit = selectServiceSubtaskList.get(0).getSubmit();
-            if (submit == 1L) {
-                map.put("submit", "1");
-                return map;
-            }
-        }
+//        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+//        //鏌ヨ鎮h�呮槸鍚﹂噸瑕嗗仛棰�
+//        if (CollectionUtils.isEmpty(selectServiceSubtaskList)) {
+//            Long submit = selectServiceSubtaskList.get(0).getSubmit();
+//            if (submit == 1L) {
+//                map.put("submit", "1");
+//                return map;
+//            }
+//        }
         //閫氳繃浠诲姟ID鑾峰彇妯℃澘ID
         ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
         List info = new ArrayList();
         if (serviceTask.getType().equals("1")) {
             //闅忚
+            log.error("鏂囨湰闅忚闂");
             info = sfInfo(serviceTask, patid);
         } else if (serviceTask.getType().equals("2")) {
             //闂嵎
+            log.error("鏂囨湰闂嵎闂");
             info = wjInfo(serviceTask, patid, isFinish);
         } else {
             //瀹f暀
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
index 19c6a8f..a16bb8b 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
@@ -54,6 +54,7 @@
             <if test="radix != null  and radix != ''">
                 and radix = #{radix}
             </if>
+
         </where>
     </select>
 
@@ -77,6 +78,9 @@
             </if>
             <if test="radix != null">radix,
             </if>
+            <if test="createTime != null">create_time,
+            </if>
+
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="param1 != null">#{param1},
@@ -89,6 +93,8 @@
             </if>
             <if test="radix != null">#{radix},
             </if>
+            <if test="createTime != null">#{createTime},
+            </if>
         </trim>
     </insert>
 

--
Gitblit v1.9.3