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