From 2cba0d00dc45998105129a0c26cb546282cd39a8 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 05 六月 2024 13:44:23 +0800
Subject: [PATCH] 随访功能测试:模板、任务、定时发送、公众号发送,流程走通

---
 smartor/src/main/java/com/smartor/service/impl/IvrTaskSingleServiceImpl.java |  120 +++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 70 insertions(+), 50 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrTaskSingleServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrTaskSingleServiceImpl.java
index 983c0a0..ca7713b 100644
--- a/smartor/src/main/java/com/smartor/service/impl/IvrTaskSingleServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrTaskSingleServiceImpl.java
@@ -21,6 +21,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import com.fasterxml.jackson.core.type.TypeReference;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -85,28 +86,33 @@
     }
 
     @Override
-    public IvrTaskSingleVO queryTaskByCondition(IvrTaskSingle ivrTaskcall) {
+    public IvrTaskVO queryTaskByCondition(IvrTaskSingle ivrTaskcall) {
         //瀹氫箟鎮h�呬笌鍗曚竴浠诲姟鍏宠仈琛ㄩ泦鍚�
         List<PatTaskRelevance> patTaskRelevances = new ArrayList<>();
         List<IvrTaskSingle> list = selectIvrTaskcallList(ivrTaskcall);
-        if (CollectionUtils.isEmpty(list)) {
-            new BaseException("璇ヤ换鍔′笉瀛樺湪");
+        if (CollectionUtils.isEmpty(list) || list.size() == 0) {
+            return new IvrTaskVO();
         }
         IvrTask ivrTask = ivrTaskService.selectIvrTaskByTaskid(ivrTaskcall.getTaskid());
         //灏嗘煡鍑烘潵鐨勬暟鎹�掑叆ivrTasksingleVO涓�
-        IvrTaskSingleVO ivrTasksingleVO2 = DtoConversionUtils.sourceToTarget(list.get(0), IvrTaskSingleVO.class);
+        IvrTaskVO ivrTaskVO = DtoConversionUtils.sourceToTarget(list.get(0), IvrTaskVO.class);
+        ivrTaskVO.setShowDate(ivrTask.getShowDate());
+        ivrTaskVO.setShowTimeMorn(ivrTask.getShowTimeMorn());
+        ivrTaskVO.setShowTimeNoon(ivrTask.getShowTimeNoon());
+        ivrTaskVO.setShowTimeNight(ivrTask.getShowTimeNight());
         String sendTimeSlot = ivrTask.getSendTimeSlot();
         ObjectMapper objectMapper = new ObjectMapper();
         try {
             //鑾峰彇鍒板彂閫佹椂闂寸殑闆嗗悎
             if (com.ruoyi.common.utils.StringUtils.isNotEmpty(sendTimeSlot)) {
                 List<TaskSendTimeVO> taskSendTimeVOList = objectMapper.readValue(sendTimeSlot, List.class);
-                ivrTasksingleVO2.setSendTimeslot(taskSendTimeVOList);
+                ivrTaskVO.setSendTimeslot(taskSendTimeVOList);
+                ivrTaskVO.setSendType(ivrTask.getSendType());
             }
             //鏂囨湰鍙橀噺鍙傛暟
-            if (com.ruoyi.common.utils.StringUtils.isNotEmpty(list.get(0).getTextParam())) {
-                Map<String, Map<String, String>> textParam = objectMapper.readValue(list.get(0).getTextParam(), Map.class);
-                ivrTasksingleVO2.setTextParam(textParam);
+            if (com.ruoyi.common.utils.StringUtils.isNotEmpty(ivrTask.getTextParam())) {
+                Map<String, Map<String, String>> textParam = objectMapper.readValue(ivrTask.getTextParam(), Map.class);
+                ivrTaskVO.setTextParam(textParam);
             }
         } catch (JsonProcessingException e) {
             e.printStackTrace();
@@ -123,6 +129,7 @@
                 patTaskRelevance.setPhone(ivrTaskcall1.getPhone());
                 patTaskRelevance.setAddr(ivrTaskcall1.getAddr());
                 patTaskRelevance.setDiagname(ivrTaskcall1.getDiagname());
+                patTaskRelevance.setPatid(ivrTaskcall1.getPatid());
                 patTaskRelevances.add(patTaskRelevance);
             }
             if (ivrTaskcall1.getHospType().equals("2")) {
@@ -135,12 +142,13 @@
                 patTaskRelevance.setDeptName(ivrTaskcall1.getDeptname());
                 patTaskRelevance.setBedNo(ivrTaskcall1.getBedNo());
                 patTaskRelevance.setDiagname(ivrTaskcall1.getDiagname());
+                patTaskRelevance.setPatid(ivrTaskcall1.getPatid());
                 patTaskRelevances.add(patTaskRelevance);
             }
         }
 
-        ivrTasksingleVO2.setPatTaskRelevances(patTaskRelevances);
-        return ivrTasksingleVO2;
+        ivrTaskVO.setPatTaskRelevances(patTaskRelevances);
+        return ivrTaskVO;
     }
 
     @Override
@@ -195,68 +203,78 @@
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public int insertOrUpdateTask(IvrTaskSingleVO ivrTasksingleVO) {
-        if (ObjectUtils.isEmpty(ivrTasksingleVO)) {
+    public int insertOrUpdateTask(IvrTaskVO ivrTaskVO) {
+        if (ObjectUtils.isEmpty(ivrTaskVO)) {
             log.info("浠诲姟鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
             throw new BaseException("浠诲姟鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
         }
-        Integer integer = 0;
-        if (ivrTasksingleVO.getIsoperation() != null && ivrTasksingleVO.getIsoperation() == 1) {
+        Integer integer = 1;
+        IvrTask ivrTask = DtoConversionUtils.sourceToTarget(ivrTaskVO, IvrTask.class);
+        ivrTask.setTextParam(JSON.toJSONString(ivrTaskVO.getTextParam()));
+        if (ivrTaskVO.getIsoperation() != null && ivrTaskVO.getIsoperation() == 1) {
             //寰�浠诲姟琛ㄤ腑锛屾柊澧炰换鍔�
-            IvrTask ivrTask = DtoConversionUtils.sourceToTarget(ivrTasksingleVO, IvrTask.class);
-            if (ObjectUtils.isNotEmpty(ivrTasksingleVO.getSendTimeslot()))
-                ivrTask.setSendTimeSlot(JSON.toJSONString(ivrTasksingleVO.getSendTimeslot()));
+            if (ObjectUtils.isNotEmpty(ivrTaskVO.getSendTimeslot()))
+                ivrTask.setSendTimeSlot(JSON.toJSONString(ivrTaskVO.getSendTimeslot()));
+            if (ivrTask.getSendState() == null) ivrTask.setSendState(1);
+            ivrTask.setTemplateid(ivrTaskVO.getLibtemplateid());
             ivrTaskService.insertIvrTask(ivrTask);
-            ivrTasksingleVO.setTaskid(ivrTask.getTaskid().longValue());
+
+            //灏嗕换鍔′俊鎭斁鍒版湇鍔¤〃涓�
+            IvrTaskSingle ivrTaskcall = DtoConversionUtils.sourceToTarget(ivrTaskVO, IvrTaskSingle.class);
+            ivrTaskcall.setTaskid(ivrTask.getTaskid().longValue());
             //鏂板
-            if (CollectionUtils.isNotEmpty(ivrTasksingleVO.getPatTaskRelevances())) {
-                for (PatTaskRelevance patTaskRelevance : ivrTasksingleVO.getPatTaskRelevances()) {
+            if (CollectionUtils.isNotEmpty(ivrTaskVO.getPatTaskRelevances())) {
+                for (PatTaskRelevance patTaskRelevance : ivrTaskVO.getPatTaskRelevances()) {
                     //灏嗕换鍔′俊鎭柊澧炲埌闅忚鏈嶅姟琛ㄤ腑
-                    IvrTaskSingle ivrTaskcall = DtoConversionUtils.sourceToTarget(ivrTasksingleVO, IvrTaskSingle.class);
                     ivrTaskcall.setSendname(patTaskRelevance.getName());
                     ivrTaskcall.setAge(patTaskRelevance.getAge());
                     ivrTaskcall.setSfzh(patTaskRelevance.getSfzh());
                     ivrTaskcall.setPhone(patTaskRelevance.getPhone());
                     ivrTaskcall.setAddr(patTaskRelevance.getAddr());
+                    ivrTaskcall.setPatid(patTaskRelevance.getPatid());
                     ivrTaskcall.setCreateTime(DateUtils.getNowDate());
-                    ivrTaskcall.setTextParam(new Gson().toJson(patTaskRelevance.getTextParam()));
+                    ivrTaskcall.setCreateTime(DateUtils.getNowDate());
+                    ivrTaskcall.setType(ivrTaskVO.getHospType());
                     ivrTaskSingleMapper.insertIvrTaskcall(ivrTaskcall);
                     integer = ivrTaskcall.getId().intValue();
                 }
             }
 
-        } else if (ivrTasksingleVO.getIsoperation() != null && ivrTasksingleVO.getIsoperation() == 2) {
+        } else if (ivrTaskVO.getIsoperation() != null && ivrTaskVO.getIsoperation() == 2) {
             //浠诲姟淇敼
-            IvrTask ivrTask = DtoConversionUtils.sourceToTarget(ivrTasksingleVO, IvrTask.class);
-            if (ObjectUtils.isNotEmpty(ivrTasksingleVO.getSendTimeslot()))
-                ivrTask.setSendTimeSlot(JSON.toJSONString(ivrTasksingleVO.getSendTimeslot()));
-            //鑾峰彇琛ㄩ噷鐨剆topState鏁板��  + 1
+            if (ObjectUtils.isNotEmpty(ivrTaskVO.getSendTimeslot()))
+                ivrTask.setSendTimeSlot(JSON.toJSONString(ivrTaskVO.getSendTimeslot()));
             IvrTask ivrTask1 = ivrTaskService.selectIvrTaskByTaskid(ivrTask.getTaskid());
-            ivrTask.setStopState(ivrTask1.getStopState() + 1);
+            ivrTask.setTemplateid(ivrTaskVO.getLibtemplateid());
             ivrTaskService.updateIvrTask(ivrTask);
 
-            if (CollectionUtils.isNotEmpty(ivrTasksingleVO.getPatTaskRelevances())) {
-                for (PatTaskRelevance patTaskRelevance : ivrTasksingleVO.getPatTaskRelevances()) {
+            if (CollectionUtils.isNotEmpty(ivrTaskVO.getPatTaskRelevances())) {
+                for (PatTaskRelevance patTaskRelevance : ivrTaskVO.getPatTaskRelevances()) {
 
-                    IvrTaskSingle ivrTaskcall = DtoConversionUtils.sourceToTarget(ivrTasksingleVO, IvrTaskSingle.class);
+                    IvrTaskSingle ivrTaskcall = DtoConversionUtils.sourceToTarget(ivrTaskVO, IvrTaskSingle.class);
                     ivrTaskcall.setSendname(patTaskRelevance.getName());
                     ivrTaskcall.setAge(patTaskRelevance.getAge());
                     ivrTaskcall.setSfzh(patTaskRelevance.getSfzh());
                     ivrTaskcall.setPhone(patTaskRelevance.getPhone());
                     ivrTaskcall.setAddr(patTaskRelevance.getAddr());
+                    ivrTaskcall.setPatid(patTaskRelevance.getPatid());
+                    ivrTaskcall.setType(ivrTaskVO.getHospType());
                     ivrTaskcall.setCreateTime(DateUtils.getNowDate());
-                    ivrTaskcall.setTextParam(new Gson().toJson(ivrTasksingleVO.getTextParam()));
-                    if (patTaskRelevance.getIsoperation() == 2) ivrTaskSingleMapper.updateIvrTaskcall(ivrTaskcall);
-                    if (patTaskRelevance.getIsoperation() == 1) ivrTaskSingleMapper.insertIvrTaskcall(ivrTaskcall);
-                    integer = ivrTaskcall.getId().intValue();
+                    ivrTaskcall.setTextParam(new Gson().toJson(ivrTaskVO.getTextParam()));
+                    if (patTaskRelevance.getIsoperation() != null) {
+                        if (patTaskRelevance.getIsoperation() == 2)
+                            ivrTaskSingleMapper.updateIvrTaskcallByCondition(ivrTaskcall);
+                        if (patTaskRelevance.getIsoperation() == 1) ivrTaskSingleMapper.insertIvrTaskcall(ivrTaskcall);
+                        if (patTaskRelevance.getIsoperation() == 3)
+                            //  閫氳繃taskid鍜宲atid鍘诲垹闄よ鏉℃暟鎹�
+                            ivrTaskSingleMapper.deleteIvrTaskcallByCondition(ivrTaskVO.getTaskid(), patTaskRelevance.getPatid());
+                    }
+                    integer = ivrTaskcall.getTaskid().intValue();
                 }
             }
-
-        } else if (ivrTasksingleVO.getIsoperation() != null && ivrTasksingleVO.getIsoperation() == 3) {
-            ivrTaskSingleMapper.deleteIvrTaskcallById(ivrTasksingleVO.getId());
-
-            integer = ivrTasksingleVO.getId().intValue();
         }
+
+
         return integer;
     }
 
@@ -269,7 +287,7 @@
     public int heTaskSend(SendTaskVO sendTaskVO) {
         if (sendTaskVO.getTaskId() == null) throw new BaseException("浠诲姟ID涓嶈兘涓虹┖锛岃妫�鏌ュ悗锛屽啀杩涜鎵ц");
         IvrTask ivrTask = ivrTaskService.selectIvrTaskByTaskid(sendTaskVO.getTaskId());
-        if (StringUtils.isNotEmpty(sendTaskVO.getSendState()) && sendTaskVO.getSendState().equals("3") || StringUtils.isNotEmpty(sendTaskVO.getSendState()) && sendTaskVO.getSendState().equals("4")) {
+        if (sendTaskVO.getSendState() != null && sendTaskVO.getSendState() == 3 || sendTaskVO.getSendState() != null && sendTaskVO.getSendState() == 4) {
             //浠诲姟鏆傚仠鎴栫粓姝�
             IvrTask ivrTask3 = new IvrTask();
             ivrTask3.setTaskid(sendTaskVO.getTaskId());
@@ -283,14 +301,15 @@
         if (StringUtils.isEmpty(sendTaskVO.getSendType())) {
             sendTaskVO.setSendType(ivrTask.getSendType().toString());
         }
-
+        Long ss = ivrTask.getStopState() + 1;
         //鍒ゆ柇浠诲姟鏄惁鏄珛鍗冲彂閫�
         if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) {
             IvrTaskcallMQ ivrTaskcallMQ = new IvrTaskcallMQ();
             ivrTaskcallMQ.setTaskid(sendTaskVO.getTaskId());
             ivrTaskcallMQ.setSendType(sendTaskVO.getSendType());
             ivrTaskcallMQ.setTemplateid(ivrTask.getTemplateid().toString());
-            ivrTaskcallMQ.setStopState(ivrTask.getStopState());
+            ivrTaskcallMQ.setStopState(ss);
+            ivrTaskcallMQ.setPreachform(ivrTask.getPreachform());
 
             String ivrTaskcallMQJson = JSON.toJSONString(ivrTaskcallMQ);
             ivrTaskcallMQJson = ivrTaskcallMQJson.substring(1, ivrTaskcallMQJson.length() - 1);
@@ -300,8 +319,8 @@
             //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓�
             IvrTask ivrTask2 = new IvrTask();
             ivrTask2.setTaskid(ivrTask.getTaskid());
-            ivrTask2.setSendState("2");
-            ivrTask2.setStopState(ivrTask.getStopState() + 1);
+            ivrTask2.setSendState(2);
+            ivrTask2.setStopState(ss);
             ivrTaskService.updateIvrTask(ivrTask2);
         } else if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1")) {
             //鏃堕棿娈靛彂閫�
@@ -309,7 +328,8 @@
             if (StringUtils.isNotEmpty(ivrTask.getSendTimeSlot())) {
                 List<TaskSendTimeVO> taskSendTimeVOList = null;
                 try {
-                    taskSendTimeVOList = objectMapper.readValue(ivrTask.getSendTimeSlot(), List.class);
+                    taskSendTimeVOList = objectMapper.readValue(ivrTask.getSendTimeSlot(), new TypeReference<List<TaskSendTimeVO>>() {
+                    });
                 } catch (JsonProcessingException e) {
                     log.error("JsonProcessingException鎶ラ敊浜嗭細{}", e.getMessage());
                 }
@@ -340,17 +360,17 @@
                     Long finalMilliseconds = milliseconds;
                     String ivrTaskcallMQJson = JSON.toJSONString(ivrTaskcallMQ);
                     ivrTaskcallMQJson = ivrTaskcallMQJson.substring(1, ivrTaskcallMQJson.length() - 1);
-                    rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", ivrTaskcallMQJson, 0L);
+                    rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", ivrTaskcallMQJson, milliseconds);
                 }
                 //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓�
                 IvrTask ivrTask2 = new IvrTask();
                 ivrTask2.setTaskid(ivrTask.getTaskid());
-                ivrTask2.setSendState("2");
-                ivrTask2.setStopState(ivrTask.getStopState() + 1);
+                ivrTask2.setSendState(2);
+                ivrTask2.setStopState(ss);
                 ivrTaskService.updateIvrTask(ivrTask2);
             }
         }
-        return 0;
+        return 1;
     }
 
     @Override

--
Gitblit v1.9.3