From 3e27630f0102a9fa590ce029df0994535eb86bd6 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 17 Jun 2023 16:37:27 +0800
Subject: [PATCH] 外呼短信通知逻辑修改
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 44 insertions(+), 9 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
index 2c16f77..317ae16 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
@@ -69,13 +69,13 @@
* @return
*/
@Override
- public Object createTask(Map<String,Object> map) {
+ public List<String> createTask(Map<String,Object> map) {
List<Map<String, String>> params = (List<Map<String, String>>) map.get("list");
String requestUrl = url + CREATE_TASK_URL;
LocalDateTime now = LocalDateTime.now();
String timestamp = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss SSS"));
String transId = generateTransId(now);
- String taskName = now.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm")) + "智能外呼";;
+ String taskName = now.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss")) + "智能外呼";;
if(null!= map.get("taskName") && !map.get("taskName").equals("")){
taskName = map.get("taskName").toString();
}
@@ -112,11 +112,23 @@
HttpEntity<String> stringHttpEntity = new HttpEntity<>(bodyJson.toJSONString(), httpHeaders);
log.info("创建超汛限智能外呼任务请求参数:{}", bodyJson.toJSONString());
ResponseEntity<String> response = restTemplate.postForEntity(requestUrl, stringHttpEntity, String.class);
- log.info("创建外呼任务请求结果:{}", response);
+ log.info("创建外呼任务请求结果:{}", response.getBody());
if (response.getStatusCode() != HttpStatus.OK) {
log.error("创建智能外呼任务失败:{}", response.getStatusCode());
}
- return response;
+ JSONObject jsonObject = JSON.parseObject(response.getBody());
+ Boolean success = jsonObject.getBoolean("success");
+ String taskId = "";
+ if (success){
+ //通过任务名称查询taskId
+ taskId = callTaskMapper.getTaskIdByTaskName(taskName);
+ }
+ List<String> list = new ArrayList<>();
+ list.add(response.getBody());
+ list.add(taskId);
+ list.add(success.toString());
+ // 返回
+ return list;
}
/**
@@ -320,7 +332,7 @@
* @return
*/
@Override
- public boolean createCallTaskByParam(Map<String, Object> params) {
+ public List<String> createCallTaskByParam(Map<String, Object> params) {
// 自动创建任务的 4个条件 1:呼叫人数 2:调度时间 3:是否超汛限 4:多少天内呼叫过的不呼叫(天数)
//1. 调用中台接口查询出所有需要发任务的水库巡查责任人相关信息(该处需要将是否超汛限条件传入)
JSONArray jsonArray = getZtWaterMangerData(params);
@@ -337,10 +349,33 @@
params.put("list",setForListMap(taskRandomList));
// 调度时间处理
params.put("taskScheduleTime",new SimpleDateFormat("yyyy-MM-dd").format(new Date())+ " " +params.get("taskScheduleTime") + ":00");
- // 创建任务
- createTask(params);
- //5. 返回
- return true;
+ // 创建任务并返回结果
+ return createTask(params);
+ }
+
+ /**
+ * 智能外呼呼叫前一天未接通人员
+ * @param map 包含调度时间
+ * @return
+ */
+ @Override
+ public List<String> createOutCallTaskByNotConnectJobHandler(Map<String, Object> map) {
+ map.put("day",3);
+ // 自动创建任务的 条件1:昨天外呼未接通人员 条件2:前三天如果同一个人都未接通,则不再呼叫
+ // 计算开始时间,结束时间
+ computationTime(map);
+ // 1. 查询前一天呼叫未接通人员
+ List<Scene> oneDayCallNotConnectList = callTaskMapper.getBeforeOneDayCallNotConnect(map);
+ // 2. 查询三天都未接通的人员
+// List<Scene> threeDayCallNotConnectList = callTaskMapper.getBeforeThreeDayCallNotConnect();
+ // 3. 组装数据
+
+ // 4. 传入调度时间和随机得到的人员信息进行任务的创建并返回
+// map.put("list",setForListMap(taskRandomList));
+ // 调度时间处理
+ map.put("taskScheduleTime",new SimpleDateFormat("yyyy-MM-dd").format(new Date())+ " " +map.get("taskScheduleTime") + ":00");
+ // 创建任务并返回结果
+ return createTask(map);
}
/**
--
Gitblit v1.9.3