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