From 0a8f9800a264c848adf1361db5bcab5b2fc32869 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 05 二月 2026 15:56:34 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |  319 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 290 insertions(+), 29 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 a24a473..c474912 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -9,6 +9,7 @@
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.*;
 import com.smartor.common.FtpService;
+import com.smartor.common.RandomStringGenerator;
 import com.smartor.common.SendService;
 import com.smartor.config.PhoneUtils;
 import com.smartor.domain.*;
@@ -58,9 +59,6 @@
     private IServiceTaskService serviceTaskService;
 
     @Autowired
-    private IvrTaskTemplateTargetoptionMapper serviceTaskScriptTargetoptionMapper;
-
-    @Autowired
     private IvrTaskVisitResultMapper serviceTaskVisitResultMapper;
 
     @Autowired
@@ -74,12 +72,18 @@
 
     @Autowired
     private IIvrTaskTemplateService ivrTaskTemplateService;
+    @Autowired
+    private IIvrTaskTemplateScriptService iIvrTaskTemplateScriptService;
+    @Autowired
+    private IvrTaskTemplateTargetoptionMapper serviceTaskScriptTargetoptionMapper;
 
     @Autowired
     private ISvyTaskTemplateService svyTaskTemplateService;
-
     @Autowired
-    private IIvrTaskTemplateScriptService iIvrTaskTemplateScriptService;
+    private ISvyLibTemplateScriptService svyLibTemplateScriptService;
+    @Autowired
+    private ISvyLibTemplateTargetoptionService svyLibTemplateTargetoptionService;
+
 
     @Autowired
     private IServiceOutPathService iServiceOutPathService;
@@ -98,9 +102,6 @@
 
     @Value("${ASRCallBackPath}")
     private String ASRCallBackPath;
-
-    @Autowired
-    private SendService sendService;
 
     @Value("${hangup}")
     private String hangup;
@@ -125,6 +126,7 @@
 
     @Value("${phoneUpEveryHour}")
     private Integer phoneUpEveryHour;
+
     @Value("${phoneEndHour}")
     private Integer phoneEndHour;
 
@@ -251,8 +253,35 @@
     @Override
     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());
+        List<ServiceSubtask> serviceSubtaskList = new ArrayList<>();
+        //鑾峰彇鍒嗘暟
+//        for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
+//            //璁$畻鎮h�呯殑鍒嗘暟
+//            if (serviceSubtask.getScore() == null || BigDecimal.ZERO.equals(serviceSubtask.getScore())) {
+//                //濡傛灉涓虹┖鐨勮瘽锛屽幓detail閲屾嬁鍒版瘡涓鐨勯�夐」鍒嗭紝濡傛灉鏄綔绛旈锛岀洿鎺ユ嬁棰樼洰鍒嗭紙鍓嶉锛岃妯℃澘鏄垎鏁扮被鍨嬶級
+//                Map<String, Object> map = getScore(serviceSubtask, serviceSubtaskVO.getDetailResult());
+//                serviceSubtask.setScore((BigDecimal) map.get("score"));
+//                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+//                if ((Boolean) map.get("isExist") == true) {
+//                    //娴嬭瘯瀹屽垹闄わ紙搴斾粯娴嬭瘯鐢ㄧ殑锛�
+//                    serviceSubtaskList.add(serviceSubtask);
+//                }
+//            } else {
+//                //娴嬭瘯瀹屽垹闄わ紙搴斾粯娴嬭瘯鐢ㄧ殑锛�
+//                if (!StringUtils.isEmpty(serviceSubtaskVO.getDetailResult())) {
+//                    ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail();
+//                    serviceSubtaskDetail.setSubId(serviceSubtask.getId());
+//                    List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+//                    for (ServiceSubtaskDetail ssd : serviceSubtaskDetails) {
+//                        if (ssd.getAsrtext().equals(serviceSubtaskVO.getDetailResult())) {
+//                            serviceSubtaskList.add(serviceSubtask);
+//                        }
+//                    }
+//                }else {
+//                    serviceSubtaskList.add(serviceSubtask);
+//                }
+//            }
+//        }
         return selectServiceSubtaskList;
     }
 
@@ -269,27 +298,26 @@
 
     @Override
     public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
-        serviceSubtaskVO.setPageSize(99999999);
-        serviceSubtaskVO.setPageNum(1);
-        List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
+        ServiceSubtaskVO serviceSubtaskVO1 = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskVO.class);
+        serviceSubtaskVO1.setSendstate(null);
+        serviceSubtaskVO1.setPageSize(99999999);
+        serviceSubtaskVO1.setPageNum(1);
+        List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO1);
         Map<String, Object> map = new HashMap<>();
         Integer wzx = 0;
         Integer ysf = 0;
         Integer yc = 0;
         Integer fssb = 0;
         Integer yfs = 0;
-        Integer xj = 0;
-        Integer dfs = 0;
-        Integer ywc = 0;
-        Integer ywc2 = 0;
+        Integer blq = 0;
+        Integer dsf = 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) xj = xj + 1;
-            if (serviceSubtask.getSendstate() == 2L) dfs = dfs + 1;
-            if (serviceSubtask.getSendstate() == 6L) ywc = ywc + 1;
+            if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1;
+            if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1;
+            if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
             if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && serviceSubtask.getExcep().equals("1")) yc = yc + 1;
         }
         map.put("wzx", wzx);
@@ -297,10 +325,9 @@
         map.put("yc", yc);
         map.put("fssb", fssb);
         map.put("yfs", yfs);
-        map.put("xj", xj);
-        map.put("dfs", dfs);
-        map.put("ywc", ywc);
-        map.put("yfs2", yfs + ywc);
+        map.put("blq", blq);
+        map.put("dsf", dsf);
+
         return map;
     }
 
@@ -444,6 +471,19 @@
                 return map;
             }
 
+            //鑾峰彇闅忚鏃堕棿
+            Date visitTime = null;
+            List<TaskSendTimeVO> sendTimeslot = serviceTaskVO.getSendTimeslot();
+            if (CollectionUtils.isNotEmpty(sendTimeslot) && sendTimeslot.size() > 0) {
+                String dateString = sendTimeslot.get(0).getBegantime();
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                try {
+                    visitTime = format.parse(dateString);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
             //灏嗕换鍔′俊鎭斁鍒版湇鍔¤〃涓�
             ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class);
             serviceSubtask.setTaskid(serviceTask.getTaskid().longValue());
@@ -455,13 +495,12 @@
                     //灏嗕换鍔′俊鎭柊澧炲埌闅忚鏈嶅姟琛ㄤ腑
                     serviceSubtask.setSendname(patTaskRelevance.getName());
                     serviceSubtask.setAge(patTaskRelevance.getAge());
-//                    serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
                     serviceSubtask.setSfzh(patTaskRelevance.getIdcardno());
                     serviceSubtask.setPhone(patTaskRelevance.getTelcode());
                     serviceSubtask.setAddr(patTaskRelevance.getAddr());
                     serviceSubtask.setPatid(patTaskRelevance.getPatid());
                     serviceSubtask.setCreateTime(DateUtils.getNowDate());
-                    serviceSubtask.setSendstate(1L);
+                    serviceSubtask.setSendstate(2L);
                     if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1)
                         serviceSubtask.setSendstate(2L);
                     serviceSubtask.setDeptcode(patTaskRelevance.getDeptCode());
@@ -477,12 +516,22 @@
                     serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
                     serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
                     serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
-                    serviceSubtask.setVisitTime(patTaskRelevance.getVisitTime());
+                    serviceSubtask.setVisitTime(visitTime);
                     if (serviceTask.getSendType() == 2) {
                         serviceSubtask.setVisitTime(new Date());
                     }
                     if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1)
                         serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime());
+
+                    //鐢熸垚澶栭摼鍦板潃
+                    String outPath = null;
+                    if (serviceTaskVO.getType().equals("1"))
+                        outPath = getOutPath(serviceSubtask.getPhone(), serviceSubtask.getTaskid(), serviceSubtask.getTaskName(), serviceSubtask.getPatid(), 1);
+                    else if (serviceTaskVO.getType().equals("2"))
+                        outPath = getOutPath(serviceSubtask.getPhone(), serviceSubtask.getTaskid(), serviceSubtask.getTaskName(), serviceSubtask.getPatid(), 2);
+                    else if (serviceTaskVO.getType().equals("3"))
+                        outPath = getOutPath(serviceSubtask.getPhone(), serviceSubtask.getTaskid(), serviceSubtask.getTaskName(), serviceSubtask.getPatid(), 3);
+                    serviceSubtask.setOutPath(outPath);
                     serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                     serviceSubtask.getId().intValue();
                 }
@@ -597,11 +646,20 @@
                     serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
                     serviceSubtask.setVisitTime(patTaskRelevance.getVisitTime());
                     serviceSubtask.setTextParam(new Gson().toJson(serviceTaskVO.getTextParam()));
+                    //鐢熸垚澶栭摼鍦板潃
+                    String outPath = null;
+                    if (serviceTaskVO.getType().equals("1"))
+                        outPath = getOutPath(serviceSubtask.getPhone(), serviceSubtask.getTaskid(), serviceSubtask.getTaskName(), serviceSubtask.getPatid(), 1);
+                    else if (serviceTaskVO.getType().equals("2"))
+                        outPath = getOutPath(serviceSubtask.getPhone(), serviceSubtask.getTaskid(), serviceSubtask.getTaskName(), serviceSubtask.getPatid(), 2);
+                    else if (serviceTaskVO.getType().equals("3"))
+                        outPath = getOutPath(serviceSubtask.getPhone(), serviceSubtask.getTaskid(), serviceSubtask.getTaskName(), serviceSubtask.getPatid(), 3);
+
                     if (patTaskRelevance.getIsoperation() != null) {
                         if (patTaskRelevance.getIsoperation() == 2) serviceSubtask.setUpdateTime(new Date());
                         serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
                         if (patTaskRelevance.getIsoperation() == 1) {
-                            serviceSubtask.setSendstate(1L);
+                            serviceSubtask.setSendstate(2L);
                             serviceSubtask.setCreateTime(new Date());
                             serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                         }
@@ -1970,6 +2028,38 @@
         return serviceSubtaskStatistics;
     }
 
+    /**
+     * 鏈嶅姟缁熻鏌ヨ - 鎸夋椂闂寸淮搴︾粺璁″嚭闄�/闂ㄨ瘖闅忚鏁版嵁
+     *
+     * @param request 缁熻璇锋眰鍙傛暟
+     * @return 缁熻缁撴灉鍒楄〃
+     */
+    @Override
+    public List<ServiceStatisticsResponse> getServiceStatistics(ServiceStatisticsRequest request) {
+        log.info("getServiceStatistics鐨勫叆鍙備负锛歿}", request);
+
+        // 鍙傛暟鏍¢獙
+        if (request.getStartDate() == null || request.getEndDate() == null) {
+            throw new IllegalArgumentException("寮�濮嬫棩鏈熷拰缁撴潫鏃ユ湡涓嶈兘涓虹┖");
+        }
+
+        if (request.getStartDate().after(request.getEndDate())) {
+            throw new IllegalArgumentException("寮�濮嬫棩鏈熶笉鑳芥櫄浜庣粨鏉熸棩鏈�");
+        }
+
+        // 濡傛灉timeType涓虹┖锛岄粯璁ゆ寜澶╃粺璁�
+        if (com.ruoyi.common.utils.StringUtils.isEmpty(request.getTimeType())) {
+            request.setTimeType("day");
+        }
+
+        List<ServiceStatisticsResponse> result = serviceSubtaskMapper.getServiceStatistics(request);
+
+
+        log.info("getServiceStatistics杩斿洖缁撴灉鏁伴噺锛歿}", result.size());
+        return result;
+    }
+
+
     private ServiceSubtaskStatistic getStatistic(List<ServiceSubtask> serviceSubtaskList) {
         log.error("-------------serviceSubtaskList鐨勫�间负锛歿}", serviceSubtaskList);
         ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic();
@@ -2133,4 +2223,175 @@
         int remainingCalls = (int) (remainingHours * phoneUpEveryHour);
         return remainingCalls;
     }
+
+    private String getOutPath(String phone, Long tid, String taskName, Long pId, Integer type) {
+        log.info("tid鐨勫�间负锛歿},pid鐨勫�间负锛歿}",tid,pId);
+        //瀵箄rl涓袱涓弬鏁板姞瀵�
+        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+        String taskId = rsaPublicKeyExample.encryptedData(tid.toString(), pub_key).toString();
+        String outpath = null;
+        try {
+            String patid = rsaPublicKeyExample.encryptedData(pId.toString(), pub_key).toString();
+
+            log.info("tid鍔犲瘑鍚庣殑鍊间负锛歿},pid鍔犲瘑鍚庣殑鍊间负锛歿}",taskId,patid);
+            SendMagParam sendMagParam = new SendMagParam();
+            sendMagParam.setType("4");
+            if (type == 1) {
+                //闅忚
+                ServiceOutPath serviceOutPath = new ServiceOutPath();
+                serviceOutPath.setParam1(taskId);
+                serviceOutPath.setParam2(patid);
+                serviceOutPath.setCreateTime(new Date());
+                serviceOutPath.setType(1);
+                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+                //杞垚16杩涘埗
+                String format = String.format("%03X", serviceOutPath.getId()) + RandomStringGenerator.generateRandomString();
+                serviceOutPath.setRadix(format);
+                outpath = localIP + ":" + req_path + "/sf?p=" + format;
+                serviceOutPath.setUpdateTime(new Date());
+                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
+                sendMagParam.setPhone(phone);
+                sendMagParam.setUrl(outpath);
+                sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌闅忚璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "   濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+            } else if (type == 2) {
+                //闂埜锛堥棶棰橈級
+                ServiceOutPath serviceOutPath = new ServiceOutPath();
+                serviceOutPath.setParam1(taskId);
+                serviceOutPath.setParam2(patid);
+                serviceOutPath.setParam3(taskName);
+                serviceOutPath.setCreateTime(new Date());
+                serviceOutPath.setType(2);
+                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+                String format = String.format("%03X", serviceOutPath.getId()) + RandomStringGenerator.generateRandomString();
+                serviceOutPath.setRadix(format);
+                serviceOutPath.setUpdateTime(new Date());
+                outpath = localIP + ":" + req_path + "/wt?p=" + format;
+                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
+
+//                                sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false");
+                sendMagParam.setPhone(phone);
+                sendMagParam.setUrl(outpath);
+                sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "   濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+                log.info("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�,{}", sendMagParam.getUrl());
+            } else if (type == 3) {
+                //瀹f暀
+                ServiceOutPath serviceOutPath = new ServiceOutPath();
+                serviceOutPath.setParam1(taskId);
+                serviceOutPath.setParam2(patid);
+                serviceOutPath.setParam3(taskName);
+                serviceOutPath.setCreateTime(new Date());
+                serviceOutPath.setType(3);
+                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+                String format = String.format("%03X", serviceOutPath.getId()) + RandomStringGenerator.generateRandomString();
+                serviceOutPath.setRadix(format);
+                serviceOutPath.setUpdateTime(new Date());
+                outpath = localIP + ":" + req_path + "/xj?p=" + format;
+                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
+                sendMagParam.setPhone(phone);
+                sendMagParam.setUrl(outpath);
+                sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�");
+                log.info("-----------sendMagParam鐨勫�间负锛歿}", sendMagParam);
+            }
+        } catch (Exception e) {
+            log.error("鐢熸垚澶辫触浜嗭細{}", e.getMessage());
+        }
+        return outpath;
+    }
+
+    private Map<String, Object> getScore(ServiceSubtask serviceSubtask, String detailResult) {
+        Map<String, Object> map = new HashMap<>();
+        Boolean isExist = false;
+        //缁熻鎬诲垎
+        BigDecimal bigDecimal = BigDecimal.ZERO;
+        if (serviceSubtask.getScore() != null && !BigDecimal.ZERO.equals(serviceSubtask.getScore())) {
+            //濡傛灉鏈夊垎鏁帮紝鐩存帴杩斿洖
+            map.put("score", serviceSubtask.getScore());
+            //isExist搴斾粯娴嬭瘯鐢ㄧ殑锛屾祴璇曞畬鍚庡垹闄�
+            map.put("isExist", true);
+            return map;
+        }
+
+        if (serviceSubtask.getScore() == null || BigDecimal.ZERO.equals(serviceSubtask.getScore())) {
+            //濡傛灉涓虹┖鐨勮瘽锛屽幓detail閲屾嬁鍒版瘡涓鐨勯�夐」鍒嗭紝濡傛灉鏄綔绛旈锛岀洿鎺ユ嬁棰樼洰鍒嗭紙鍓嶉锛岃妯℃澘鏄垎鏁扮被鍨嬶級
+            ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+            if (serviceTask.getType().equals("1")) {
+                //濡傛灉鏄満鍣ㄤ汉璇煶
+                IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(serviceTask.getTemplateid());
+                //鍒ゆ柇鏄笉鏄瘎鍒�
+                if (StringUtils.isNotEmpty(ivrTaskTemplate.getScoreType()) && ivrTaskTemplate.getScoreType().equals("1")) {
+                    ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail();
+                    serviceSubtaskDetail.setSubId(serviceSubtask.getId());
+                    List<ServiceSubtaskDetail> serviceSubtaskDetailList = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+                    for (ServiceSubtaskDetail serviceSubtaskDetail1 : serviceSubtaskDetailList) {
+                        Long scriptid = serviceSubtaskDetail1.getScriptid();
+                        IvrTaskTemplateScript ivrTaskTemplateScript = iIvrTaskTemplateScriptService.selectIvrTaskTemplateScriptByID(scriptid);
+                        if (StringUtils.isNotEmpty(ivrTaskTemplateScript.getScriptType())) {
+                            if (ivrTaskTemplateScript.getScriptType().equals("3") || ivrTaskTemplateScript.getScriptType().equals("4")) {
+                                if (StringUtils.isNotEmpty(serviceSubtaskDetail1.getAsrtext())) {
+                                    //涓嶆槸閫夋嫨棰橈紝鐩存帴鎷块鐩垎
+                                    bigDecimal = bigDecimal.add(ivrTaskTemplateScript.getScore());
+                                }
+                            } else if (ivrTaskTemplateScript.getScriptType().equals("1") || ivrTaskTemplateScript.getScriptType().equals("2")) {
+                                IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption = new IvrTaskTemplateTargetoption();
+                                ivrTaskTemplateTargetoption.setScriptid(scriptid);
+                                List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = serviceTaskScriptTargetoptionMapper.selectIvrTaskTemplateTargetoptionList(ivrTaskTemplateTargetoption);
+                                //鑾峰彇閫夐」锛岀敤閫変腑鐨勫�煎幓閫夐」閲屽尮閰嶏紝鎷垮埌閫夐」鍒�
+                                for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption1 : ivrTaskTemplateTargetoptions) {
+                                    if (ivrTaskTemplateTargetoption1.getTargetvalue().equals(serviceSubtaskDetail1.getMatchedtext())) {
+                                        bigDecimal = bigDecimal.add(ivrTaskTemplateTargetoption1.getScore());
+                                        //娴嬭瘯瀹屽垹闄�
+                                        if (StringUtils.isEmpty(detailResult) || ivrTaskTemplateTargetoption1.getTargetvalue().equals(detailResult)) {
+                                            isExist = true;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            if (serviceTask.getType().equals("2")) {
+                //濡傛灉鏄棶鍗�
+                SvyTaskTemplate svyTaskTemplate = svyTaskTemplateService.selectSvyTaskTemplateBySvyid(serviceTask.getTemplateid());
+                //鍒ゆ柇鏄笉鏄瘎鍒�
+                if (StringUtils.isNotEmpty(svyTaskTemplate.getScoreType()) && svyTaskTemplate.getScoreType().equals("1")) {
+                    ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail();
+                    serviceSubtaskDetail.setSubId(serviceSubtask.getId());
+                    List<ServiceSubtaskDetail> serviceSubtaskDetailList = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+                    for (ServiceSubtaskDetail serviceSubtaskDetail1 : serviceSubtaskDetailList) {
+                        Long scriptid = serviceSubtaskDetail1.getScriptid();
+                        SvyLibTemplateScript svyLibTemplateScript = svyLibTemplateScriptService.selectSvyLibTemplateScriptByTopicid(scriptid);
+                        if (StringUtils.isNotEmpty(svyLibTemplateScript.getScriptType())) {
+                            if (svyLibTemplateScript.getScriptType().equals("3") || svyLibTemplateScript.getScriptType().equals("4")) {
+                                if (StringUtils.isNotEmpty(serviceSubtaskDetail1.getAsrtext())) {
+                                    //涓嶆槸閫夋嫨棰橈紝鐩存帴鎷块鐩垎
+                                    bigDecimal = bigDecimal.add(svyLibTemplateScript.getScore());
+                                }
+                            } else if (svyLibTemplateScript.getScriptType().equals("1") || svyLibTemplateScript.getScriptType().equals("2")) {
+                                SvyLibTemplateTargetoption svyLibTemplateTargetoption = new SvyLibTemplateTargetoption();
+                                svyLibTemplateTargetoption.setScriptid(scriptid);
+                                List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionService.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption);
+                                //鑾峰彇閫夐」锛岀敤閫変腑鐨勫�煎幓閫夐」閲屽尮閰嶏紝鎷垮埌閫夐」鍒�
+                                for (SvyLibTemplateTargetoption svyLibTemplateTargetoption1 : svyLibTemplateTargetoptions) {
+                                    if (svyLibTemplateTargetoption1.getOptioncontent().equals(serviceSubtaskDetail1.getAsrtext())) {
+                                        bigDecimal = bigDecimal.add(svyLibTemplateTargetoption1.getScore());
+                                        //娴嬭瘯瀹屽垹闄�
+                                        if (StringUtils.isEmpty(detailResult) || svyLibTemplateTargetoption1.getOptioncontent().equals(detailResult)) {
+                                            isExist = true;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+
+            }
+
+        }
+        map.put("score", bigDecimal);
+        map.put("isExist", isExist);
+        return map;
+    }
+
 }

--
Gitblit v1.9.3