From b18ef6541657a371aefaf6e155489724f4761c9d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 19 Jun 2023 10:52:49 +0800
Subject: [PATCH] 外呼未接通短信通知修改
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java | 46 ++++++++++++++++++++++++++++++++++++----------
1 files changed, 36 insertions(+), 10 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 317ae16..9218aa3 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
@@ -360,22 +360,48 @@
*/
@Override
public List<String> createOutCallTaskByNotConnectJobHandler(Map<String, Object> map) {
- map.put("day",3);
+ map.put("day",1);
+ map.put("isOver","");
// 自动创建任务的 条件1:昨天外呼未接通人员 条件2:前三天如果同一个人都未接通,则不再呼叫
// 计算开始时间,结束时间
computationTime(map);
// 1. 查询前一天呼叫未接通人员
List<Scene> oneDayCallNotConnectList = callTaskMapper.getBeforeOneDayCallNotConnect(map);
- // 2. 查询三天都未接通的人员
-// List<Scene> threeDayCallNotConnectList = callTaskMapper.getBeforeThreeDayCallNotConnect();
- // 3. 组装数据
+ if (oneDayCallNotConnectList.size()>0) {
+ // 2. 判断是否填报,查询前一天已填报的人员
+ List<String> fillRecordList = callTaskMapper.getFillRecordList(map);
+ // 3. 查询三天都未接通的人员
+ map.put("day", 3);
+ List<String> threeDayCallNotConnectList = callTaskMapper.getBeforeThreeDayCallNotConnect(map);
+ // 4. 组装数据,从前一天呼叫未接通里面去除已填报人员,去除连续三天未接人员
+ Set<Scene> taskRandomList = callNotConnectListDataHandle(oneDayCallNotConnectList, fillRecordList, threeDayCallNotConnectList);
+ // 5. 传入调度时间和随机得到的人员信息进行任务的创建并返回
+ map.put("list", setForListMap(taskRandomList));
+ // 调度时间处理
+ map.put("taskScheduleTime", new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + " " + map.get("taskScheduleTime") + ":00");
+ // 创建任务并返回结果
+ return createTask(map);
+ }
+ return null;
+ }
- // 4. 传入调度时间和随机得到的人员信息进行任务的创建并返回
-// map.put("list",setForListMap(taskRandomList));
- // 调度时间处理
- map.put("taskScheduleTime",new SimpleDateFormat("yyyy-MM-dd").format(new Date())+ " " +map.get("taskScheduleTime") + ":00");
- // 创建任务并返回结果
- return createTask(map);
+ /**
+ * 组装数据,从前一天呼叫未接通里面去除已填报人员,去除连续三天未接人员
+ * @param oneDayCallNotConnectList 前一天呼叫未接通人员信息
+ * @param fillRecordList 前一天已填报的人员手机号集合
+ * @param threeDayCallNotConnectList 连续三天都未接通的人员手机号集合
+ * @return
+ */
+ private Set<Scene> callNotConnectListDataHandle(List<Scene> oneDayCallNotConnectList, List<String> fillRecordList, List<String> threeDayCallNotConnectList) {
+ // 取差集
+ // 去除前一天已填报的人员手机号集合
+ List<Scene> sceneList = oneDayCallNotConnectList.stream().filter(item -> !fillRecordList.contains(item.getPhone())).collect(Collectors.toList());
+ // 再去除连续三天都未接通的人员手机号集合
+ List<Scene> resultList = sceneList.stream().filter(item -> !threeDayCallNotConnectList.contains(item.getPhone())).collect(Collectors.toList());
+ // 转set去重
+ HashSet<Scene> scenes = new HashSet<>(resultList);
+ // 返回
+ return scenes;
}
/**
--
Gitblit v1.9.3