From af396db5b1e6dcbb53879af52bd682b4a7e82664 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 21 十月 2024 15:46:44 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |  815 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 772 insertions(+), 43 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 4e8f587..1a0cf5b 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1,17 +1,19 @@
 package com.smartor.service.impl;
 
+import afu.org.checkerframework.checker.oigj.qual.O;
 import com.alibaba.fastjson2.JSON;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.DtoConversionUtils;
-import com.ruoyi.common.utils.RSAPublicKeyExample;
+import com.ruoyi.common.utils.*;
+import com.ruoyi.common.utils.http.HttpUtils;
 import com.smartor.config.PhoneUtils;
 import com.smartor.domain.*;
 import com.smartor.mapper.*;
+import com.smartor.service.IIvrTaskTemplateScriptService;
+import com.smartor.service.IIvrTaskTemplateService;
 import com.smartor.service.IServiceSubtaskService;
 import com.smartor.service.IServiceTaskService;
 import lombok.extern.slf4j.Slf4j;
@@ -20,14 +22,22 @@
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.sql.Time;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 /**
  * 鍗曚竴浠诲姟锛堥殢璁匡級Service涓氬姟灞傚鐞�
@@ -42,7 +52,7 @@
     private ServiceSubtaskMapper serviceSubtaskMapper;
 
     @Autowired
-    private ServiceSubtaskDetailMapper ivrTaskcalldetailMapper;
+    private ServiceSubtaskDetailMapper serviceSubtaskDetailMapper;
 
     @Autowired
     private IServiceTaskService serviceTaskService;
@@ -59,8 +69,19 @@
     @Autowired
     private IvrLibaExtemplatescriptMapper ivrLibaExtemplatescriptMapper;
 
+    @Autowired
+    private IIvrTaskTemplateService ivrTaskTemplateService;
+    @Autowired
+    private IIvrTaskTemplateScriptService iIvrTaskTemplateScriptService;
+
     @Value("${pri_key}")
     private String pri_key;
+
+    @Value("${ASRCallBackPath}")
+    private String ASRCallBackPath;
+
+    @Value("${hangup}")
+    private String hangup;
 
 
     /**
@@ -77,23 +98,27 @@
     /**
      * 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級鍒楄〃
      *
-     * @param ServiceSubtask 鍗曚竴浠诲姟锛堥殢璁匡級
+     * @param serviceSubtaskVO 鍗曚竴浠诲姟锛堥殢璁匡級
      * @return 鍗曚竴浠诲姟锛堥殢璁匡級
      */
     @Override
-    public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtask ServiceSubtask) {
-        return serviceSubtaskMapper.selectServiceSubtaskList(ServiceSubtask);
+    public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskVO serviceSubtaskVO) {
+        return serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
     }
 
     @Override
-    public ServiceTaskVO queryTaskByCondition(ServiceSubtask ServiceSubtask) {
+    public ServiceTaskVO queryTaskByCondition(ServiceSubtask serviceSubtask) {
         //瀹氫箟鎮h�呬笌鍗曚竴浠诲姟鍏宠仈琛ㄩ泦鍚�
         List<PatTaskRelevance> patTaskRelevances = new ArrayList<>();
-        List<ServiceSubtask> list = selectServiceSubtaskList(ServiceSubtask);
+        ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class);
+        List<ServiceSubtask> list = selectServiceSubtaskList(serviceSubtaskVO);
+
+        ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
         if (CollectionUtils.isEmpty(list) || list.size() == 0) {
-            return new ServiceTaskVO();
+            return DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class);
         }
-        ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(ServiceSubtask.getTaskid());
+
+
         //灏嗘煡鍑烘潵鐨勬暟鎹�掑叆ServiceSubtaskVO涓�
         ServiceTaskVO serviceTaskVO = DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class);
         serviceTaskVO.setShowDate(serviceTask.getShowDate());
@@ -126,12 +151,23 @@
                 //鑾峰彇鍒版偅鑰呬俊鎭紝骞舵斁鍏ュ埌闆嗗悎涓�
                 patTaskRelevance.setName(serviceSubtask1.getSendname());
                 patTaskRelevance.setAge(serviceSubtask1.getAge());
+                patTaskRelevance.setFinishtime(serviceSubtask1.getFinishtime());
                 patTaskRelevance.setSfzh(serviceSubtask1.getSfzh());
                 patTaskRelevance.setPhone(serviceSubtask1.getPhone());
                 patTaskRelevance.setAddr(serviceSubtask1.getAddr());
                 patTaskRelevance.setDiagname(serviceSubtask1.getDiagname());
                 patTaskRelevance.setPatid(serviceSubtask1.getPatid());
                 patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate());
+                patTaskRelevance.setDeptCode(serviceSubtask1.getDeptcode());
+                patTaskRelevance.setDeptName(serviceSubtask1.getDeptname());
+                patTaskRelevance.setLeavehospitaldistrictcode(serviceSubtask1.getLeavehospitaldistrictcode());
+                patTaskRelevance.setLeavehospitaldistrictname(serviceSubtask1.getLeavehospitaldistrictname());
+                patTaskRelevance.setInhosptime(serviceSubtask1.getInhosptime());
+                patTaskRelevance.setDrname(serviceSubtask1.getDrname());
+                patTaskRelevance.setDrcode(serviceSubtask1.getDrcode());
+                patTaskRelevance.setEndtime(serviceSubtask1.getEndtime());
+                patTaskRelevance.setNurseId(serviceSubtask1.getNurseId());
+                patTaskRelevance.setNurseName(serviceSubtask1.getNurseName());
                 patTaskRelevances.add(patTaskRelevance);
             }
             if (serviceSubtask1.getHospType().equals("2")) {
@@ -140,12 +176,24 @@
                 patTaskRelevance.setAge(serviceSubtask1.getAge());
                 patTaskRelevance.setSfzh(serviceSubtask1.getSfzh());
                 patTaskRelevance.setPhone(serviceSubtask1.getPhone());
+                patTaskRelevance.setFinishtime(serviceSubtask1.getFinishtime());
                 patTaskRelevance.setAddr(serviceSubtask1.getAddr());
                 patTaskRelevance.setDeptName(serviceSubtask1.getDeptname());
+                patTaskRelevance.setDeptCode(serviceSubtask1.getDeptcode());
                 patTaskRelevance.setBedNo(serviceSubtask1.getBedNo());
                 patTaskRelevance.setDiagname(serviceSubtask1.getDiagname());
                 patTaskRelevance.setPatid(serviceSubtask1.getPatid());
                 patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate());
+                patTaskRelevance.setLeavehospitaldistrictcode(serviceSubtask1.getLeavehospitaldistrictcode());
+                patTaskRelevance.setLeavehospitaldistrictname(serviceSubtask1.getLeavehospitaldistrictname());
+                patTaskRelevance.setInhosptime(serviceSubtask1.getInhosptime());
+                patTaskRelevance.setStarttime(serviceSubtask1.getStarttime());
+                patTaskRelevance.setDrname(serviceSubtask1.getDrname());
+                patTaskRelevance.setDrcode(serviceSubtask1.getDrcode());
+                patTaskRelevance.setEndtime(serviceSubtask1.getEndtime());
+                patTaskRelevance.setStarttime(serviceSubtask1.getStarttime());
+                patTaskRelevance.setNurseId(serviceSubtask1.getNurseId());
+                patTaskRelevance.setNurseName(serviceSubtask1.getNurseName());
                 patTaskRelevances.add(patTaskRelevance);
             }
         }
@@ -155,10 +203,41 @@
     }
 
     @Override
-    public List<ServiceSubtask> patItem(ServiceSubtask serviceSubtask) {
+    public List<ServiceSubtask> patItem(ServiceSubtaskVO serviceSubtaskVO) {
+        List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
+        //鏍规嵁鍑洪櫌 鏃堕棿鍊掑簭
+//        List<ServiceSubtask> sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime).reversed()).collect(Collectors.toList());
+        return selectServiceSubtaskList;
+    }
 
+    @Override
+    public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
+        serviceSubtaskVO.setPageSize(99999999);
+        serviceSubtaskVO.setPageNum(1);
+        List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
+        Map<String, Object> map = new HashMap<>();
+        Integer wzx = 0;
+        Integer ysf = 0;
+        Integer yc = 0;
+        Integer fssb = 0;
+        Integer yfs = 0;
+        Integer blq = 0;
+        for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
+            if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
+            else if (serviceSubtask.getSendstate() != 4L) ysf = ysf + 1;
+            if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
+            if (serviceSubtask.getSendstate() == 3L) yfs = yfs + 1;
+            if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
+            if (serviceSubtask.getExcep().equals("1")) yc = yc + 1;
+        }
+        map.put("wzx", wzx);
+        map.put("ysf", ysf);
+        map.put("yc", yc);
+        map.put("fssb", fssb);
+        map.put("yfs", yfs);
+        map.put("blq", blq);
 
-        return this.selectServiceSubtaskList(serviceSubtask);
+        return map;
     }
 
     /**
@@ -206,21 +285,36 @@
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public int insertOrUpdateTask(ServiceTaskVO serviceTaskVO) {
+    public Map<String, Integer> insertOrUpdateTask(ServiceTaskVO serviceTaskVO) {
         if (ObjectUtils.isEmpty(serviceTaskVO)) {
             log.info("浠诲姟鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
             throw new BaseException("浠诲姟鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
         }
-        Integer integer = 1;
+        Integer integer = null;
         ServiceTask serviceTask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceTask.class);
         serviceTask.setTextParam(JSON.toJSONString(serviceTaskVO.getTextParam()));
         if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 1) {
             //寰�浠诲姟琛ㄤ腑锛屾柊澧炰换鍔�
             if (ObjectUtils.isNotEmpty(serviceTaskVO.getSendTimeslot()))
                 serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot()));
-            if (serviceTask.getSendState() == null) serviceTask.setSendState(1);
-            serviceTask.setTemplateid(serviceTaskVO.getLibtemplateid());
+            if (serviceTask.getSendState() == null) {
+                serviceTask.setSendState(1L);
+                serviceTaskVO.setSendState(1L);
+            }
+            if (StringUtils.isNotEmpty(serviceTaskVO.getLibtemplateid())) {
+                serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid());
+            }
+            serviceTask.setTemplateid(serviceTaskVO.getTemplateid());
+
+            serviceTask.setLeaveldeptcodes(serviceTaskVO.getLeaveldeptcodes());
+            serviceTask.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode());
             serviceTaskService.insertServiceTask(serviceTask);
+            if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1) {
+                Map<String, Integer> map = new HashMap<>();
+                map.put("subTaskId", null);
+                map.put("taskId", serviceTask.getTaskid().intValue());
+                return map;
+            }
 
             //灏嗕换鍔′俊鎭斁鍒版湇鍔¤〃涓�
             ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class);
@@ -232,15 +326,25 @@
                     //灏嗕换鍔′俊鎭柊澧炲埌闅忚鏈嶅姟琛ㄤ腑
                     serviceSubtask.setSendname(patTaskRelevance.getName());
                     serviceSubtask.setAge(patTaskRelevance.getAge());
-                    serviceSubtask.setSfzh(patTaskRelevance.getSfzh());
+                    serviceSubtask.setSfzh(patTaskRelevance.getIdcardno());
                     serviceSubtask.setPhone(patTaskRelevance.getPhone());
                     serviceSubtask.setAddr(patTaskRelevance.getAddr());
                     serviceSubtask.setPatid(patTaskRelevance.getPatid());
                     serviceSubtask.setCreateTime(DateUtils.getNowDate());
                     serviceSubtask.setSendstate(1L);
+                    serviceSubtask.setDeptcode(patTaskRelevance.getDeptCode());
+                    serviceSubtask.setDeptname(patTaskRelevance.getDeptName());
+                    serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode());
+                    serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname());
                     serviceSubtask.setType(serviceTaskVO.getHospType());
                     serviceSubtask.setHospType(patTaskRelevance.getHospType());
                     serviceSubtask.setOpenid(patTaskRelevance.getOpenid());
+                    serviceSubtask.setDrname(patTaskRelevance.getDrname());
+                    serviceSubtask.setDrcode(patTaskRelevance.getDrcode());
+                    serviceSubtask.setInhosptime(patTaskRelevance.getInhosptime());
+                    serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
+                    serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
+                    serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
                     serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                     integer = serviceSubtask.getId().intValue();
                 }
@@ -252,13 +356,14 @@
                 serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot()));
             //淇敼鎿嶄綔锛岄渶瑕佸皢stopState鐘舵��+1
             ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceTask.getTaskid());
-            serviceTask.setStopState(serviceTask1.getStopState() + 1);
-            serviceTask.setTemplateid(serviceTaskVO.getLibtemplateid());
+            long l = serviceTask1.getStopState() + 1;
+            serviceTask.setStopState(l);
+            if (serviceTaskVO.getLibtemplateid() != null)
+                serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid().toString());
+            serviceTask.setTemplateid(serviceTaskVO.getTemplateid());
             serviceTaskService.updateServiceTask(serviceTask);
-
             if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) {
                 for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) {
-
                     ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class);
                     serviceSubtask.setSendname(patTaskRelevance.getName());
                     serviceSubtask.setAge(patTaskRelevance.getAge());
@@ -267,9 +372,19 @@
                     serviceSubtask.setAddr(patTaskRelevance.getAddr());
                     serviceSubtask.setPatid(patTaskRelevance.getPatid());
                     serviceSubtask.setOpenid(patTaskRelevance.getOpenid());
+                    serviceSubtask.setDeptcode(patTaskRelevance.getDeptCode());
+                    serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname());
+                    serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode());
+                    serviceSubtask.setDeptname(patTaskRelevance.getDeptName());
                     serviceSubtask.setType(serviceTaskVO.getHospType());
                     serviceSubtask.setCreateTime(DateUtils.getNowDate());
+                    serviceSubtask.setDrname(patTaskRelevance.getDrname());
+                    serviceSubtask.setDrcode(patTaskRelevance.getDrcode());
+                    serviceSubtask.setInhosptime(patTaskRelevance.getInhosptime());
                     serviceSubtask.setHospType(patTaskRelevance.getHospType());
+                    serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
+                    serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
+                    serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
                     serviceSubtask.setTextParam(new Gson().toJson(serviceTaskVO.getTextParam()));
                     if (patTaskRelevance.getIsoperation() != null) {
                         if (patTaskRelevance.getIsoperation() == 2)
@@ -286,13 +401,15 @@
                 }
             }
         }
-        return integer;
+        Map<String, Integer> map = new HashMap<>();
+        map.put("subTaskId", integer);
+        map.put("taskId", serviceTask.getTaskid().intValue());
+        return map;
     }
 
 
     @Override
     public void phoneCallBack(PhoneCallBackVO phoneCallBackVO) {
-
         phoneCallBackVO.setTextResult(phoneCallBackVO.getTextResult().substring(0, phoneCallBackVO.getTextResult().length() - 1));
         SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
 
@@ -380,7 +497,7 @@
                 if (StringUtils.isNotEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) {
                     //璇存槑鍖归厤姝g‘浜�
                     //杩欓噷搴旇鍏堝垽鏂被鍨嬶紝鍘诲啀淇敼锛岃缃甀sUserOperation鏄崟閫夐鐨勬敼娉�
-                    nowQuestion.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(true);
+                    nowQuestion.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(1);
                     serviceTaskScriptTargetoptionMapper.updateIvrTaskTemplateTargetoption(nowQuestion.getIvrTaskScriptTargetoptionList().get(j));
 
                     //灏嗛潤榛樼疆涓�0
@@ -506,7 +623,6 @@
                             nowQuestion1.setScriptVoice(null);
                             questionMessage.setNowQuestion(nowQuestion1);
                             redisCache.setCacheObject(phoneCallBackVO.getUuid() + "returnQues", questionMessage, 120, TimeUnit.MINUTES);
-
                             redisCache.setCacheObject(phoneCallBackVO.getUuid() + "isOver", 1, 120, TimeUnit.MINUTES);
                         }
                         //璋冪敤鈥�15銆乼ts鍚堟垚鍜屾挱鏀撅紝 tts_playback鈥濆皢缁撴灉浼犲洖
@@ -522,6 +638,541 @@
             }
         }
     }
+
+    /**
+     * 鐢佃瘽ASR閫氳瘽鍥炶皟(闆ㄧ划)
+     *
+     * @param phoneCallReqYQVO
+     */
+    @Override
+    public PhoneCallBackYQVO phoneCallBackYQ(PhoneCallReqYQVO phoneCallReqYQVO) {
+        //瀹氫箟涓�涓垎鏁扮殑鍙橀噺
+        Boolean aBoolean1 = redisCache.hasKey(phoneCallReqYQVO.getUuid() + "SCORE");
+        if (!aBoolean1) redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", 0.0, 120, TimeUnit.MINUTES);
+        PhoneCallBackYQVO phoneCallBackYQVO = new PhoneCallBackYQVO();
+        //channel_create 閫氶亾鍒涘缓鐨勬椂鍊欙紝鍙互鎵ц涓�浜涘叾瀹冩搷浣滐紝璀鍙戜釜鐭俊涔嬬被鐨�;  鎴戜滑鐨勪笟鍔″彲浠ヤ笉鐢ㄧ    PlayEventCallback 杩欎釜鏄挱鏀捐闊崇殑,鏆傛椂鐢ㄤ笉鍒�     End_time()= -1鎴杗ull琛ㄧず褰撳墠鐨刟srtext涓嶆槸涓�鍙ュ畬鏁寸殑璇�
+        if (phoneCallReqYQVO.getOperate().equals("channel_create")) {
+            return phoneCallBackYQVO;
+        }
+        //PlayEventCallback 杩欎釜鏄挱鏀捐闊崇殑    playstart锛氭斁闊冲紑濮嬶紙闂鎾姤寮�濮嬶級    playstop锛� 鏀鹃煶缁撴潫锛堥棶棰樻挱鎶ョ粨鏉燂級
+        if (phoneCallReqYQVO.getOperate().equals("PlayEventCallback")) {
+            String cacheJSY = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "- jsy");
+            if (phoneCallReqYQVO.getOperate().equals("PlayEventCallback") && phoneCallReqYQVO.getPlaystop() == false) {
+                //鍒ゆ柇redis涓槸鍚︽湁缁撴潫璇�
+                if (StringUtils.isEmpty(cacheJSY)) {
+                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop", false, 120, TimeUnit.MINUTES);
+                    log.error("PlayEventCallbackPlaystop鐨勫�间负-------锛歿}", false);
+                }
+            } else {
+                //濡傛灉缁撴潫璇笉涓虹┖锛屽垯瑕佹寕鐢佃瘽浜�
+                if (StringUtils.isNotEmpty(cacheJSY)) {
+                    Map<String, String> req = new HashMap<>();
+                    req.put("uuid", phoneCallReqYQVO.getUuid());
+                    req.put("caller", phoneCallReqYQVO.getPhone());
+                    HttpUtils.sendPost(hangup, new Gson().toJson(req));
+                    //鍒犻櫎缁撴潫璇殑鎮e瓨
+                    redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "- jsy");
+                } else {
+                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop", true, 120, TimeUnit.MINUTES);
+                    log.error("-------PlayEventCallbackPlaystop鐨勫�间负锛歿}", true);
+                }
+            }
+            return phoneCallBackYQVO;
+        }
+        //鑾峰彇鏀鹃煶鏄惁缁撴潫
+        boolean isPlayEventOver = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
+        if (!isPlayEventOver) {
+            return phoneCallBackYQVO;
+        }
+
+        //閫氳繃瀛愪换鍔D鑾峰彇鍒版ā鏉夸俊鎭�
+        ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(phoneCallReqYQVO.getTaskid()));
+        IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(serviceSubtask.getTemplateid());
+        //鑾峰彇妯℃澘闂
+        IvrTaskTemplateScript ivrTaskTemplateScript = new IvrTaskTemplateScript();
+        ivrTaskTemplateScript.setTemplateID(serviceSubtask.getTemplateid());
+        List<IvrTaskTemplateScript> ivrTaskTemplateScripts = iIvrTaskTemplateScriptService.selectIvrTaskTemplateScriptList(ivrTaskTemplateScript);
+        //鑾峰彇闂ID 鍜� 搴忓彿
+        String scriptId = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim());
+        log.error("scriptId鏄灏戯細{}", scriptId);
+        //褰撳墠棰樼殑淇℃伅
+        IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = iIvrTaskTemplateScriptService.getTaskTempScriptInfoByid(Long.valueOf(scriptId));
+        //鍒ゆ柇UUID鏄惁瀛樺湪
+        Boolean aBoolean = redisCache.hasKey(phoneCallReqYQVO.getUuid());
+        if (!aBoolean) {
+            //缁欓潤榛樿缃竴涓粯璁ゆ鏁板湪redis涓�
+            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "noVoice", 0, 120, TimeUnit.MINUTES);
+            //濡傛灉涓嶅瓨鍦紝灏辨妸褰撳墠鐨刄UID鍋氫负key锛屾斁鍒板璞′腑鍘�
+            redisCache.setCacheObject(phoneCallReqYQVO.getUuid(), phoneCallReqYQVO, 120, TimeUnit.MINUTES);
+        }
+
+        if ("SilentCallback".equals(phoneCallReqYQVO.getOperate())) {
+            //濡傛灉鏄潤榛樺洖璋�
+            Integer num = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "noVoice");
+            //鍒ゆ柇闈欓粯鍥炶皟娆℃暟鏄惁灏忎笌妯℃澘瑙勫畾鐨勬鏁�
+            if (num < ivrTaskTemplate.getNoVoiceNum()) {
+                //灏忎笌鐨勮瘽,灏辩户缁棶鎮h��
+                phoneCallBackYQVO.setType("text");
+                phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                String scriptContent = ivrTaskTemplateScriptVO.getScriptContent();
+                log.error("SilentCallback鐨勯棶棰樺唴瀹箂criptContent锛歿}", scriptContent);
+                phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
+                //灏嗛潤榛樻鏁板姞1
+                Integer noVoiceNum = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "noVoice");
+                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "noVoice", noVoiceNum + 1, 120, TimeUnit.MINUTES);
+                return phoneCallBackYQVO;
+            } else {
+                log.error("闈欓粯娆℃暟杈惧埌,鎸傛帀鐢佃瘽锛歿}", num);
+                //澶т笌绛変簬鐨勮瘽,鐩存帴鎸傛柇
+                phoneCallBackYQVO.setType("text");
+                phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                phoneCallBackYQVO.setValue(ivrTaskTemplate.getRevisitAfter());
+                //灏嗙粨鏋滃啓鍒癲etail涓�
+                ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
+                List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
+                serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
+                serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
+                saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+                //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎
+                Long id = serviceSubtask.getId();
+                //鍏堟洿鏂颁竴涓嬪垎鏁�
+                double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                serviceSubtask.setScore(BigDecimal.valueOf(score));
+                serviceSubtask.setFinishtime(new Date());
+                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+                Map<String, String> map = delRedisValue(null, id.toString());
+                redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+                redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+                redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
+                //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
+                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", ivrTaskTemplate.getRevisitAfter(), 120, TimeUnit.MINUTES);
+            }
+            return phoneCallBackYQVO;
+        } else if ("AsrCallback".equals(phoneCallReqYQVO.getOperate()) && phoneCallReqYQVO.getEnd_time() != null && phoneCallReqYQVO.getEnd_time() != -1) {
+            //鎾姤绗竴棰�
+            Integer integer = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim() + "-firstSort");
+//            if(integer==0){
+//                //integer==0,琛ㄧず寮�鍦虹櫧鍒氭挱鎶ュ畬锛岄渶瑕佸仠椤夸竴涓嬶紝绛夋偅鑰呰璇�
+//                redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim() + "-firstSort", 1, 120, TimeUnit.MINUTES);
+//                return phoneCallBackYQVO;
+//            }
+            if (ivrTaskTemplateScriptVO.getSort() == 1 && integer == 1) {
+                phoneCallBackYQVO.setType("text");
+                phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                String scriptContent = ivrTaskTemplateScriptVO.getScriptContent();
+                phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
+                redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim() + "-firstSort", 2, 120, TimeUnit.MINUTES);
+                return phoneCallBackYQVO;
+            }
+
+            //濡傛灉鏄枃鏈洖璋�
+            //鏍规嵁闂ID鑾峰彇璇ラ棶棰樼殑绫诲瀷
+            if (ivrTaskTemplateScriptVO.getScriptType().equals("1")) {
+                //鏄�夋嫨棰�
+                for (int j = 0; j < ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size(); j++) {
+                    log.error("phoneCallReqYQVO.getAsrtext()鐨勫�间负锛歿}", phoneCallReqYQVO.getAsrtext());
+                    if (StringUtils.isEmpty(phoneCallReqYQVO.getAsrtext())) {
+                        continue;
+                    }
+                    //鍖呭惈
+                    Matcher matcher = null;
+                    if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex())) {
+                        Pattern pattern = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex());
+                        matcher = pattern.matcher(phoneCallReqYQVO.getAsrtext());
+                    }
+                    //涓嶅寘鍚�
+                    Matcher matcher2 = null;
+                    if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2())) {
+                        Pattern pattern2 = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2());
+                        matcher2 = pattern2.matcher(phoneCallReqYQVO.getAsrtext());
+                    }
+                    if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) {
+                        //璇存槑鍖归厤姝g‘浜�
+                        //杩欓噷搴旇鍏堝垽鏂被鍨嬶紝鍘诲啀淇敼锛岃缃甀sUserOperation鏄崟閫夐鐨勬敼娉�
+                        ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(1);
+                        serviceTaskScriptTargetoptionMapper.updateIvrTaskTemplateTargetoption(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j));
+
+                        //灏嗘偅鑰呯殑鍥炵鍐欒繘service_subtask_detail涓�
+                        ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
+                        List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
+                        ivrTaskTemplateScriptVO.setQuestionResult(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getOptiondesc());
+                        serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
+                        serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
+                        saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+                        //灏嗗綋鍓嶅墠鐨勬挱鎶ョ姸鎬佸垹闄わ紝缁欎笅涓�棰樿浣�
+                        redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
+//                        //鑾峰彇涓嬩竴棰�
+                        log.error("鑾峰彇涓嬩竴棰樼殑淇℃伅锛歿}", ivrTaskTemplateScriptVO);
+                        if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1") || ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() != null && ivrTaskTemplateScriptVO.getNextScriptno() != 0) {
+                            Long nextQuestion = null;
+                            if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1")) {
+                                nextQuestion = ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getNextQuestion();
+                                //鏇存柊鍒嗘暟
+                                double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                                score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getScore()).doubleValue();
+                                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score);
+                            } else {
+                                nextQuestion = ivrTaskTemplateScriptVO.getNextScriptno();
+                                //鏇存柊鍒嗘暟
+                                Object obj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                                Double score = (obj == null ? new Double(0.00) : new Double(((Double) obj).doubleValue()));
+                                score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getScore()).doubleValue();
+                                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score,120,TimeUnit.MINUTES);
+                            }
+
+                            for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) {
+                                if (script.getSort() == nextQuestion.intValue()) {
+                                    phoneCallBackYQVO.setType("text");
+                                    phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                                    String scriptContent = script.getScriptContent();
+                                    log.error("涓嬩竴棰橀棶棰橈細{}", scriptContent);
+                                    phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
+                                    //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
+                                    redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
+                                    //鍒犻櫎鏃犲搷搴�
+                                    redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
+                                }
+                            }
+                        } else if (ivrTaskTemplateScriptVO.getBranchFlag().equals("0")) {
+                            if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
+                                phoneCallBackYQVO.setType("text");
+                                phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                                //鏇存柊涓�涓嬪垎鏁�
+                                double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                                serviceSubtask.setScore(BigDecimal.valueOf(score));
+                                serviceSubtask.setFinishtime(new Date());
+                                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+                                //璁剧疆缁撴潫璇�
+                                phoneCallBackYQVO.setValue(ivrTaskTemplate.getRevisitAfter());
+                                Long id = serviceSubtask.getId();
+                                Map<String, String> map = delRedisValue(null, id.toString());
+                                redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+                                redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+                                redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
+                                redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                                redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
+                                //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
+                                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", ivrTaskTemplate.getRevisitAfter(), 120, TimeUnit.MINUTES);
+//                                return phoneCallBackYQVO;
+                            }
+                        }
+                    } else {
+                        continue;
+                    }
+                }
+                //閮芥病鏈夊尮閰嶅埌
+                if (StringUtils.isEmpty(phoneCallBackYQVO.getValue())) {
+                    Integer count = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
+                    if (count != null && count >= ivrTaskTemplate.getMateNum()) {
+                        //濡傛灉count宸茬粡澶т簬鎴栫瓑浜庢病鏈夊尮閰嶆鏁�
+                        if (ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() == 0 || ivrTaskTemplateScriptVO.getBranchFlag().equals("1") && ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getBranchFlag().equals("1") && ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
+                            //濡傛灉鏄渶鍚庝竴閬撻锛屾垨鑰呮病鏈変笅涓�棰樹簡锛屽氨鐩存帴鎸傛満
+                            phoneCallBackYQVO.setType("text");
+                            phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                            if (StringUtils.isNotEmpty(phoneCallBackYQVO.getValue()))
+                                phoneCallBackYQVO.setValue(phoneCallBackYQVO.getValue() + ivrTaskTemplate.getRevisitAfter());
+                            else phoneCallBackYQVO.setValue(ivrTaskTemplate.getRevisitAfter());
+
+                            //鏇存柊涓�涓嬪垎鏁�
+                            double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                            serviceSubtask.setScore(BigDecimal.valueOf(score));
+                            serviceSubtask.setFinishtime(new Date());
+                            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+
+                            //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
+                            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", ivrTaskTemplate.getRevisitAfter(), 120, TimeUnit.MINUTES);
+                            //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎
+                            Long id = serviceSubtask.getId();
+                            Map<String, String> map = delRedisValue(null, id.toString());
+                            redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+                            redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+                            redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+//                            return phoneCallBackYQVO;
+                        } else {
+                            //鏍规嵁ivrTaskTemplateScriptVO.getNextScriptno()鑾峰彇涓嬩竴棰樿繘琛屾彁闂�
+                            for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) {
+                                if (script.getSort() == ivrTaskTemplateScriptVO.getNextScriptno().intValue()) {
+                                    phoneCallBackYQVO.setType("text");
+                                    phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                                    String scriptContent = script.getScriptContent();
+                                    phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
+                                    //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
+                                    redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
+
+                                    //鏇存柊涓�涓嬪垎鏁�
+                                    double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                                    score = BigDecimal.valueOf(score).add(script.getScore()).doubleValue();
+
+                                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score,120, TimeUnit.MINUTES);
+                                }
+                            }
+                        }
+                    } else {
+                        if (count == null)
+                            redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid(), 1, 120, TimeUnit.MINUTES);
+                        else
+                            redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid(), count + 1, 120, TimeUnit.MINUTES);
+
+                        phoneCallBackYQVO.setType("text");
+                        phoneCallBackYQVO.setValue(ivrTaskTemplateScriptVO.getNoMatchText() + getObject(serviceSubtask, ivrTaskTemplateScriptVO.getScriptContent()));
+                    }
+                }
+
+            } else {
+                //涓嶆槸閫夋嫨棰�,鐩存帴璁板綍绛旀锛屽皢缁撴灉鍐欏埌detail涓�
+                ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
+                List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
+                serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
+                serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
+                saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+//                String xh = idSort.split("-")[1];
+
+                //濡傛灉閫夐」鍒嗘敮涓�1鐨勮瘽锛屽垯闇�瑕佹牴鎹棶棰樹笂鐨刵extScriptno杩涜璺宠浆
+                //闂瓟棰樻病鏈夎烦杞�
+                if (ivrTaskTemplateScriptVO.getNextScriptno() != null && ivrTaskTemplateScriptVO.getNextScriptno() != 0) {
+                    for (IvrTaskTemplateScript ivrTaskTemplateScript1 : ivrTaskTemplateScripts) {
+                        if (ivrTaskTemplateScriptVO.getNextScriptno().intValue() == ivrTaskTemplateScript1.getSort()) {
+                            phoneCallBackYQVO.setType("text");
+                            phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                            String scriptContent = ivrTaskTemplateScript1.getScriptContent();
+                            phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
+                            redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
+                            redisCache.setCacheObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone(), ivrTaskTemplateScript1.getId().toString());
+
+                            //鏇存柊涓�涓嬪垎鏁�
+                            double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                            score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getScore()).doubleValue();
+                            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score,120, TimeUnit.MINUTES);
+
+//                            return phoneCallBackYQVO;
+                        }
+                    }
+                } else if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
+                    //娌℃湁涓嬩竴棰樹簡锛屽氨缁撴潫浜�
+                    phoneCallBackYQVO.setType("text");
+                    phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                    phoneCallBackYQVO.setValue(ivrTaskTemplate.getRevisitAfter());
+
+                    //鏇存柊涓�涓嬪垎鏁�
+                    double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                    serviceSubtask.setScore(BigDecimal.valueOf(score));
+                    serviceSubtask.setFinishtime(new Date());
+                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+
+                    //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎
+                    Long id = serviceSubtask.getId();
+                    Map<String, String> map = delRedisValue(null, id.toString());
+                    redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+                    //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
+                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", ivrTaskTemplate.getRevisitAfter(), 120, TimeUnit.MINUTES);
+                    redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+                    redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                }
+
+                //閫夐」鍖归厤瀹屾垚鍚庯紝闇�瑕佸啀鍘婚�氳繃搴撳啀杩涜鍖归厤涓�娆�
+                String extemplateID = ivrTaskTemplate.getSubmoduleID();
+                if (StringUtils.isNotEmpty(extemplateID)) {
+                    String[] split = extemplateID.split(",");
+                    List<String> list = Arrays.asList(split);
+                    List<Long> list1 = new ArrayList<>();
+                    for (String str : list) {
+                        list1.add(Long.valueOf(str));
+                    }
+                    List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
+                    for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
+                        Matcher matcher = null;
+                        if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
+                            Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
+                            matcher = pattern.matcher(phoneCallReqYQVO.getAsrtext());
+                        }
+
+                        Matcher matcher2 = null;
+                        if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
+                            Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
+                            matcher2 = pattern2.matcher(phoneCallReqYQVO.getAsrtext());
+                        }
+                        if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
+                            //灏嗛�氱敤搴撳尮閰嶇殑锛屾斁鍒拌繑鍥炲�间腑
+                            phoneCallBackYQVO.setValue(phoneCallBackYQVO.getValue() + ivrLibaExtemplatescript.getSwitchText());
+                        }
+                        break;
+                    }
+                }
+            }
+        }
+        return phoneCallBackYQVO;
+    }
+
+
+    private String getObject(ServiceSubtask serviceSubtask, String scriptContent) {
+        Map<String, Map<String, String>> param = getParam(serviceSubtask.getTaskid());
+        for (Map<String, String> map : param.values()) {
+            for (String key : map.keySet()) {
+                scriptContent = scriptContent.replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "");
+            }
+        }
+        scriptContent.replace("${name}", StringUtils.isNotEmpty(serviceSubtask.getName()) ? serviceSubtask.getName() : "");
+        scriptContent.replace("${dzz}", StringUtils.isNotEmpty(serviceSubtask.getPlaceOfResidence()) ? serviceSubtask.getPlaceOfResidence() : "");
+        scriptContent.replace("${phone}", StringUtils.isNotEmpty(serviceSubtask.getTelcode()) ? serviceSubtask.getTelcode() : "");
+
+        return scriptContent;
+    }
+
+
+    /**
+     * 鑾峰彇浠诲姟閲岀殑閫氶厤绗�
+     *
+     * @param taskId
+     * @return
+     */
+    private Map<String, Map<String, String>> getParam(Long taskId) {
+        ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskId);
+        ObjectMapper objectMapper = new ObjectMapper();
+        Map<String, Map<String, String>> serviceTaskMap = null;
+        try {
+            serviceTaskMap = objectMapper.readValue(serviceTask.getTextParam(), Map.class);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+        return serviceTaskMap;
+    }
+
+    private Map<String, String> delRedisValue(String cache, String id) {
+        id = "," + id + ",";
+        String val = "";
+        String cacheName = "";
+        Map<String, String> map = new HashMap<>();
+
+        if (StringUtils.isNotEmpty(cache)) {
+            val = redisCache.getCacheObject(cache);
+            if (!StringUtils.isEmpty(val)) {
+                if (val.contains(id)) {
+                    val = val.replaceAll(id, "");
+                }
+            }
+            map.put("val", val);
+            map.put("cacheName", cache);
+            return map;
+        }
+
+        for (int i = 0; i < 6; i++) {
+            val = redisCache.getCacheObject("cache-0" + i);
+            if (!StringUtils.isEmpty(val)) {
+                if (val.contains(id)) {
+                    val = val.replaceAll(id, "");
+                    map.put("val", val);
+                    map.put("cacheName", "cache-0" + i);
+                }
+            }
+        }
+        return map;
+    }
+
+
+    /**
+     * 闆ㄧ划浠诲姟鎷夊彇
+     *
+     * @return
+     */
+    @Override
+    public List<PullTaskVO> taskPull() {
+        //pullTaskVOList鐢ㄤ簬鏁版嵁杩斿洖
+        List<PullTaskVO> pullTaskVOList = new ArrayList<>();
+        String value0 = redisCache.getCacheObject("cache-0");
+        //  cache-0涓虹珛鍗冲彂璧风殑,鍏跺畠鐨勫厛鎺ㄨ繜
+        if (!StringUtils.isEmpty(value0)) {
+            pullTaskVOList = getPullTaskList(value0, "cache-0");
+            //灏哻ache-0鐨勬暟鎹紝杞Щ涓嶅鍔瞔ache-00涓�
+            redisCache.deleteObject("cache-00");
+            String cache00 = redisCache.getCacheObject("cache-00");
+            if (!StringUtils.isEmpty(cache00))
+                redisCache.setCacheObject("cache-00", cache00 + "," + value0, 120, TimeUnit.MINUTES);
+            else redisCache.setCacheObject("cache-00", value0, 120, TimeUnit.MINUTES);
+            redisCache.deleteObject("cache-0");
+        } else {
+            for (int i = 1; i < 6; i++) {
+                //鍙栧嚭浠巆ache-1 鍒� cache-5鐨勭涓�涓瓙浠诲姟淇℃伅
+                String value = redisCache.getCacheObject("cache-" + i);
+                if (StringUtils.isEmpty(value)) continue;
+                List<PullTaskVO> pullTaskVOList2 = getPullTaskList(value, "cache-" + i);
+                if (CollectionUtils.isNotEmpty(pullTaskVOList2) && pullTaskVOList2.size() > 0) {
+                    pullTaskVOList.addAll(pullTaskVOList2);
+                }
+                //灏哻ache-i鐨勬暟鎹紝杞Щ涓嶅鍔瞔ache-0i涓�
+                String cache0i = redisCache.getCacheObject("cache-0" + i);
+                if (!StringUtils.isEmpty(cache0i)) redisCache.setCacheObject("cache-0" + i, cache0i + "," + value);
+                else redisCache.setCacheObject("cache-0" + i, value);
+                redisCache.deleteObject("cache-" + i);
+            }
+        }
+        if (CollectionUtils.isNotEmpty(pullTaskVOList)) {
+            //缁欏洖璋冨弬鏁拌祴鍊�
+            for (PullTaskVO pullTaskVO : pullTaskVOList) {
+                pullTaskVO.setAsrcallback(ASRCallBackPath);
+            }
+        }
+        return pullTaskVOList;
+    }
+
+
+    private List<PullTaskVO> getPullTaskList(String subIds, String cacheName) {
+        //pullTaskVOList鐢ㄤ簬鏁版嵁杩斿洖
+        List<PullTaskVO> pullTaskVOList = new ArrayList<>();
+        //newValue0鐢ㄤ簬淇濆瓨娌℃湁澶勭悊鐨勫瓙 浠诲姟
+        String newValue0 = "";
+        //鏍规嵁,鑾峰彇瀛愪换鍔$殑ID
+        String[] split = subIds.split(",,");
+        for (int i = 0; i < split.length; i++) {
+            if (cacheName.equals("cache-0") && i < 5 || !cacheName.equals("cache-0") && i < 1) {
+                PullTaskVO pullTaskVO = new PullTaskVO();
+                String subId = split[i].trim().replace(",", "");
+
+                ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(subId));
+                IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(serviceSubtask.getTemplateid());
+                //閫氳繃浠诲姟妯℃澘涓殑"绗竴娆¢棶棰樼紪鍙�"鑾峰彇绗竴涓棶棰�;
+                IvrTaskTemplateScript ivrTaskTemplateScript = null;
+                IvrTaskTemplateScript ivrTaskTemplateScript1 = new IvrTaskTemplateScript();
+                ivrTaskTemplateScript1.setTemplateID(ivrTaskTemplate.getId());
+                List<IvrTaskTemplateScript> ivrTaskTemplateScripts = iIvrTaskTemplateScriptService.selectIvrTaskTemplateScriptList(ivrTaskTemplateScript1);
+                aa:
+                for (IvrTaskTemplateScript ivrTaskTemplateScript2 : ivrTaskTemplateScripts) {
+                    if (ivrTaskTemplate.getFirstQuestionNum() == Long.valueOf(ivrTaskTemplateScript2.getSort())) {
+                        ivrTaskTemplateScript = ivrTaskTemplateScript2;
+                        break aa;
+                    }
+                }
+                //濡傛灉ivrTaskTemplateScript涓虹┖锛屼篃灏辨病鏈夊線涓嬫墽琛岀殑蹇呰浜�
+                if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) return null;
+                //鑾峰彇閫氶厤绗﹀尮閰嶈繃鍚庣殑闂
+//                String scrContent = getObject(serviceSubtask, ivrTaskTemplateScript.getScriptContent());
+//                String kcb = ivrTaskTemplate.getRevisitBefore() + "," + scrContent;
+                String kcb = ivrTaskTemplate.getRevisitBefore();
+
+                //灏佽杩斿洖鏁版嵁
+                //taskId = 瀛愪换鍔D + 闂ID +闂搴忓彿
+                pullTaskVO.setTaskid(subId);
+                pullTaskVO.setAppkey("ZurNHpaQLq6P55YS");
+                pullTaskVO.setSections(LocalTime.now().format(DateTimeFormatter.ofPattern("hh:mm")) + "-" + LocalTime.now().plusMinutes(1).format(DateTimeFormatter.ofPattern("hh:mm")));
+                pullTaskVO.setPhones(serviceSubtask.getPhone());
+                pullTaskVO.setPrologue(kcb);
+                pullTaskVO.setDisplayNo("85129866");
+                pullTaskVOList.add(pullTaskVO);
+                redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim(), ivrTaskTemplateScript.getId().toString());
+                redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim() + "-firstSort", 1, 120, TimeUnit.MINUTES);
+            } else {
+                if (StringUtils.isEmpty(newValue0)) {
+                    newValue0 = "," + split[i].trim() + ",";
+                } else {
+                    newValue0 = newValue0 + "," + split[i].trim() + ",";
+                }
+                redisCache.setCacheObject(cacheName, newValue0);
+            }
+        }
+
+        return pullTaskVOList;
+    }
+
 
     //涓嬮潰鐨勪唬鐮佷笉鑳藉垹闄わ紝涓婇潰鐨勬柟娉曞彧鏄厤鍚堢數璇濈鑱旇皟鐢ㄧ殑锛�
 //    @Override
@@ -760,26 +1411,65 @@
 
     @Override
     public Integer saveQuestionAnswerPhone(ServiceSubTaskDetailReq serviceSubTaskDetailReq) {
-        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
-        Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskDetailReq.getParam1(), pri_key));
-        Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskDetailReq.getParam2(), pri_key));
-        ServiceSubtask ivrTaskSingle = new ServiceSubtask();
-        ivrTaskSingle.setTaskid(tid);
-        ivrTaskSingle.setPatid(pid);
-        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(ivrTaskSingle);
-        if (CollectionUtils.isEmpty(selectServiceSubtaskList) || selectServiceSubtaskList.size() == 0) {
-            log.error("鎶ラ敊浜嗭紝selectServiceSubtaskList鏁版嵁涓虹┖浜嗭細{}", ivrTaskSingle);
-            return 0;
-        }
         int i = 0;
-        //闅忚
-        for (ServiceSubtaskDetail serviceSubtaskDetail : serviceSubTaskDetailReq.getServiceSubtaskDetailList()) {
-            serviceSubtaskDetail.setSubId(selectServiceSubtaskList.get(0).getId());
-            serviceSubtaskDetail.setId(UUID.randomUUID().toString());
-            serviceSubtaskDetail.setCreateTime(new Date());
-            i = ivrTaskcalldetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
+        if (StringUtils.isNotEmpty(serviceSubTaskDetailReq.getParam1())) {
+            RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+            Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskDetailReq.getParam1(), pri_key));
+            Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskDetailReq.getParam2(), pri_key));
+            ServiceSubtaskVO ivrTaskSingle = new ServiceSubtaskVO();
+            ivrTaskSingle.setTaskid(tid);
+            ivrTaskSingle.setPatid(pid);
+            List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(ivrTaskSingle);
+            if (CollectionUtils.isEmpty(selectServiceSubtaskList) || selectServiceSubtaskList.size() == 0) {
+                log.error("鎶ラ敊浜嗭紝selectServiceSubtaskList鏁版嵁涓虹┖浜嗭細{}", ivrTaskSingle);
+                return 0;
+            }
+            //闅忚
+            for (ServiceSubtaskDetail serviceSubtaskDetail : serviceSubTaskDetailReq.getServiceSubtaskDetailList()) {
+                serviceSubtaskDetail.setSubId(selectServiceSubtaskList.get(0).getId());
+                serviceSubtaskDetail.setId(UUID.randomUUID().toString());
+                serviceSubtaskDetail.setCreateTime(new Date());
+                i = serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
+            }
+        } else {
+            for (ServiceSubtaskDetail serviceSubtaskDetail : serviceSubTaskDetailReq.getServiceSubtaskDetailList()) {
+                serviceSubtaskDetail.setCreateTime(new Date());
+                i = serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
+            }
         }
         return i;
+    }
+
+    @Override
+    public List<ServiceSubtaskCount> getSfFzInfoEveryMonth(ServiceSubtaskCountReq serviceSubtaskCountReq) {
+        if (serviceSubtaskCountReq.getUserId() == null) {
+            Long userId = SecurityUtils.getUserId();
+            serviceSubtaskCountReq.setUserId(userId);
+        }
+        if (serviceSubtaskCountReq.getStartTime() == null) {
+            LocalDate of = LocalDate.of(LocalDate.now().getYear(), 1, 1);
+            serviceSubtaskCountReq.setStartTime(Date.from(of.atStartOfDay(ZoneId.systemDefault()).toInstant()));
+        }
+        if (serviceSubtaskCountReq.getEndTime() == null) {
+            serviceSubtaskCountReq.setEndTime(new Date());
+        }
+        List<ServiceSubtaskCount> sfFzInfoEveryMonth = serviceSubtaskMapper.getSfFzInfoEveryMonth(serviceSubtaskCountReq);
+        List<ServiceSubtaskCount> result = sfFzInfoEveryMonth.stream().collect(Collectors.groupingBy(ServiceSubtaskCount::getMonth, Collectors.groupingBy(ServiceSubtaskCount::getServiceType, Collectors.summingLong(ServiceSubtaskCount::getCount)))).entrySet().stream().flatMap(monthEntry -> monthEntry.getValue().entrySet().stream().map(typeEntry -> new ServiceSubtaskCount(monthEntry.getKey(), typeEntry.getKey(), typeEntry.getValue()))).collect(Collectors.toList());
+
+        List<ServiceSubtaskCount> result2 = new ArrayList<>();
+        //鏍规嵁鏈嶅姟绫诲瀷杩涜绛涢��
+        if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getServiceType())) {
+            for (ServiceSubtaskCount serviceSubtaskCount : result) {
+                for (Long type : serviceSubtaskCountReq.getServiceType()) {
+                    if (type == serviceSubtaskCount.getServiceType()) {
+                        result2.add(serviceSubtaskCount);
+                    }
+                }
+            }
+        } else {
+            result2 = result;
+        }
+        return result2;
     }
 
     private IvrTaskTemplateScriptVO getNextQuestion(List<IvrTaskTemplateScriptVO> IvrTaskTemplateScriptVOList, IvrTaskTemplateScriptVO IvrTaskTemplateScriptVO) {
@@ -793,4 +1483,43 @@
         return null;
     }
 
+
+    private ServiceSubtaskDetail getServiceSubtaskDetail(PhoneCallReqYQVO phoneCallReqYQVO, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, ServiceSubtask serviceSubtask, IvrTaskTemplate ivrTaskTemplate) {
+        ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail();
+        serviceSubtaskDetail.setSubId(Long.valueOf(phoneCallReqYQVO.getTaskid()));
+        serviceSubtaskDetail.setUuid(phoneCallReqYQVO.getUuid());
+        serviceSubtaskDetail.setPhone(phoneCallReqYQVO.getPhone());
+        serviceSubtaskDetail.setOperate(serviceSubtask.getCreateBy());
+        serviceSubtaskDetail.setDisplayno(phoneCallReqYQVO.getPhone());
+        serviceSubtaskDetail.setAssigntime(System.currentTimeMillis());
+        serviceSubtaskDetail.setStarttime(System.currentTimeMillis());
+        serviceSubtaskDetail.setAnswertime(System.currentTimeMillis());
+        serviceSubtaskDetail.setAsrtext("鏃犲簲绛�");
+        if (StringUtils.isNotEmpty(phoneCallReqYQVO.getAsrtext()))
+            serviceSubtaskDetail.setAsrtext(phoneCallReqYQVO.getAsrtext());
+        serviceSubtaskDetail.setBeginTime(System.currentTimeMillis());
+        serviceSubtaskDetail.setEndTime(System.currentTimeMillis());
+        serviceSubtaskDetail.setSentEnd(1L);
+        serviceSubtaskDetail.setTemplateid(ivrTaskTemplate.getId().toString());
+        serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
+        serviceSubtaskDetail.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent());
+        serviceSubtaskDetail.setCategoryname(ivrTaskTemplateScriptVO.getScriptType());
+        serviceSubtaskDetail.setTargetoptions(ivrTaskTemplateScriptVO.getTargetOptions());
+
+        int i = 1;
+        for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption : ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()) {
+            if (ivrTaskTemplateTargetoption.getIsUserOperation() == 1) {
+                serviceSubtaskDetail.setMatchedtext(ivrTaskTemplateTargetoption.getTargetvalue());
+            }
+            serviceSubtaskDetail.setTargetvalue(StringUtils.isEmpty(serviceSubtaskDetail.getTargetvalue()) ? i + ivrTaskTemplateTargetoption.getTargetvalue() : serviceSubtaskDetail.getTargetvalue() + "  " + (i + 1) + ivrTaskTemplateTargetoption.getTargetvalue());
+        }
+
+        serviceSubtaskDetail.setAddtime(new Date());
+        serviceSubtaskDetail.setIsupload(0L);
+        serviceSubtaskDetail.setUploadTime(new Date());
+        serviceSubtaskDetail.setDelFlag("0");
+        serviceSubtaskDetail.setValueType(ivrTaskTemplateScriptVO.getScriptType());
+        return serviceSubtaskDetail;
+    }
+
 }

--
Gitblit v1.9.3