From 5389773b2d1ae86daec68b00f67c3682dc907e01 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 22 十一月 2024 14:35:48 +0800
Subject: [PATCH] 代码提交(长期任务电话完成)

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 112 insertions(+), 4 deletions(-)

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 7a2de80..31c6f03 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
@@ -1,16 +1,24 @@
 package com.smartor.service.impl;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.smartor.domain.ServiceSubtask;
 import com.smartor.domain.ServiceSubtaskDetail;
 import com.smartor.domain.ServiceSubtaskDetail;
+import com.smartor.domain.ServiceTask;
 import com.smartor.mapper.ServiceSubtaskDetailMapper;
 import com.smartor.mapper.ServiceSubtaskMapper;
 import com.smartor.service.IServiceSubtaskDetailService;
+import com.smartor.service.IServiceTaskService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 璇煶浠诲姟鍛煎彨鏄庣粏Service涓氬姟灞傚鐞�
@@ -25,8 +33,10 @@
     private ServiceSubtaskDetailMapper ServiceSubtaskDetailMapper;
 
     @Autowired
-    private ServiceSubtaskMapper ivrTaskSingleMapper;
+    private ServiceSubtaskMapper serviceSubtaskMapper;
 
+    @Autowired
+    private IServiceTaskService serviceTaskService;
 
 
     /**
@@ -47,8 +57,73 @@
      * @return 璇煶浠诲姟鍛煎彨鏄庣粏
      */
     @Override
-    public List<ServiceSubtaskDetail> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail) {
-        return ServiceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+    public Map<String, Object> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail) {
+        List<ServiceSubtaskDetail> serviceSubtaskDetails = ServiceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+        if (CollectionUtils.isNotEmpty(serviceSubtaskDetails)) {
+            //澶勭悊涓�涓嬮�氶厤绗�
+            for (ServiceSubtaskDetail serviceSubtaskDetail1 : serviceSubtaskDetails) {
+                ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubtaskDetail1.getSubId());
+                serviceSubtaskDetail1.setQuestiontext(getObject(serviceSubtask, serviceSubtaskDetail1.getQuestiontext()));
+            }
+        }
+        //鑾峰彇鏈�鍚庣殑鎬诲綍闊冲湴鍧�
+        Map<String, Object> map = new HashMap<>();
+        map.put("code", 200);
+        map.put("msg", "鏌ヨ鎴愬姛");
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("serviceSubtaskDetails", serviceSubtaskDetails);
+        map1.put("filteredDetails", null);
+        //鐢ㄤ簬瀛樺偍鍘婚噸鐨勬暟鎹�
+        List<ServiceSubtaskDetail> serviceSubtaskDetailSET = new ArrayList<>();
+        Boolean flag = false;
+        if (CollectionUtils.isNotEmpty(serviceSubtaskDetails)) {
+            for (ServiceSubtaskDetail serviceSubtaskDetail1 : serviceSubtaskDetails) {
+                if (serviceSubtaskDetailSET.size() == 0) {
+                    serviceSubtaskDetailSET.add(serviceSubtaskDetail1);
+                } else {
+//                    for (ServiceSubtaskDetail subtaskDetail : serviceSubtaskDetailSET)
+                    for (int i = 0; i < serviceSubtaskDetailSET.size(); i++) {
+                        ServiceSubtaskDetail subtaskDetail = serviceSubtaskDetailSET.get(i);
+                        if (subtaskDetail.getPatid().equals(serviceSubtaskDetail1.getPatid()) && subtaskDetail.getSubId().equals(serviceSubtaskDetail1.getSubId()) && subtaskDetail.getTaskid().equals(serviceSubtaskDetail1.getTaskid()) && subtaskDetail.getQuestiontext().equals(serviceSubtaskDetail1.getQuestiontext())) {
+                            if (StringUtils.isNotEmpty(serviceSubtaskDetail1.getMatchedtext())) {
+                                serviceSubtaskDetailSET.set(i, serviceSubtaskDetail1);
+                            }
+                            //鍖归厤鍒拌繖涓暟鎹�,灏唂lag鏀规垚false
+                            if (flag == true) flag = false;
+                        } else if ((subtaskDetail.getPatid().equals(serviceSubtaskDetail1.getPatid()) && subtaskDetail.getSubId().equals(serviceSubtaskDetail1.getSubId()) && subtaskDetail.getTaskid().equals(serviceSubtaskDetail1.getTaskid()) && !subtaskDetail.getQuestiontext().equals(serviceSubtaskDetail1.getQuestiontext()))) {
+                            //鏍囪瘑涓�涓嬶紝鏆傛椂娌℃湁鍖归厤鍒拌繖涓暟鎹�
+                            flag = true;
+                        } else if ((subtaskDetail.getPatid() == serviceSubtaskDetail1.getPatid() && subtaskDetail.getSubId() != serviceSubtaskDetail1.getSubId() && subtaskDetail.getTaskid() == serviceSubtaskDetail1.getTaskid())) {
+                            //鏍囪瘑涓�涓嬶紝鏆傛椂娌℃湁鍖归厤鍒拌繖涓暟鎹�
+                            flag = true;
+                        }
+                    }
+                    if (flag == true) {
+                        //濡傛灉鍘婚噸寰幆閮界粨鏉熶簡锛岃繕娌℃湁鍖归厤鍒拌繖涓暟鎹紝鍒欏線鍘婚噸瀵硅薄閲屾柊澧炰竴涓�
+                        serviceSubtaskDetailSET.add(serviceSubtaskDetail1);
+                        flag = false;
+                    }
+                }
+            }
+        }
+        Collections.sort(serviceSubtaskDetailSET, Comparator.comparingLong(ServiceSubtaskDetail::getTemplatequestionnum));
+        map1.put("filteredDetails", serviceSubtaskDetailSET);
+
+        map1.put("voice", "");
+        if (CollectionUtils.isNotEmpty(serviceSubtaskDetails) && StringUtils.isNotEmpty(serviceSubtaskDetails.get(0).getQuestionvoice())) {
+            //鑾峰彇瀹屾暣璇煶
+            String filePath = serviceSubtaskDetails.get(0).getQuestionvoice();
+            int lastIndex = filePath.lastIndexOf('.');
+            if (lastIndex != -1) {
+                int secondLastIndex = filePath.lastIndexOf('.', lastIndex - 1);
+                if (secondLastIndex != -1) {
+                    String voicePath = filePath.substring(0, secondLastIndex) + filePath.substring(lastIndex);
+                    map1.put("voice", voicePath);
+                }
+            }
+        }
+        map.put("data", map1);
+        return map;
     }
 
     /**
@@ -103,4 +178,37 @@
         return ServiceSubtaskDetailMapper.deleteServiceSubtaskDetailByCalldetailid(calldetailid);
     }
 
+    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, org.apache.commons.lang3.StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "");
+            }
+        }
+        scriptContent = scriptContent.replace("${name}", org.apache.commons.lang3.StringUtils.isNotEmpty(serviceSubtask.getSendname()) ? serviceSubtask.getSendname() : "");
+        scriptContent = scriptContent.replace("${dzz}", org.apache.commons.lang3.StringUtils.isNotEmpty(serviceSubtask.getAddr()) ? serviceSubtask.getAddr() : "");
+        scriptContent = scriptContent.replace("${phone}", org.apache.commons.lang3.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;
+    }
+
 }

--
Gitblit v1.9.3