From 4fd01645f3c8591840a4ef0d2665da4f27a5a812 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 01 Aug 2023 16:02:49 +0800
Subject: [PATCH] 新增水位水位接近设计洪水位告警--电话告警
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java | 85 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 85 insertions(+), 0 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 3b493b3..06a639e 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
@@ -154,6 +154,91 @@
}
/**
+ * 创建告警外呼任务
+ * @param map
+ * @return
+ */
+ @Override
+ public List<String> createOutCallTaskByAlarm(Map<String, Object> map) {
+ List<Map<String, String>> params = (List<Map<String, String>>) map.get("list");
+ JSONArray arr = getCalleeInfoAlarm(params,(List<String>) map.get("titles"));
+ 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:ss")) + "智能外呼";
+ if(null!= map.get("taskName") && !map.get("taskName").equals("")){
+ taskName = map.get("taskName").toString();
+ }
+ String[] numbers = StringUtils.split(callingNumbers,",");
+ String taskScheduleTime = LocalDateTime.now().plusHours(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ if (null!=map.get("taskScheduleTime") && !map.get("taskScheduleTime").equals("")){
+ taskScheduleTime = map.get("taskScheduleTime").toString();
+ }
+ String scenesIds = scenesId;
+ if (null!=map.get("scenesId") && !map.get("scenesId").equals("")){
+ scenesIds = map.get("scenesId").toString();
+ }
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.add("Content-Type", CONTENT_TYPE);
+ httpHeaders.add("Accept", ACCEPT_TYPE);
+ httpHeaders.add("Accept-Encoding", ACCEPT_ENCODING);
+ JSONObject paramJson = new JSONObject();
+ paramJson.put("taskName", taskName);
+ paramJson.put("scenesId", scenesIds);
+ paramJson.put("callingNumbers", numbers);
+ paramJson.put("taskScheduleTime", taskScheduleTime);
+ paramJson.put("calleeData", arr);
+ paramJson.put("empId", empId);
+ String token = getToken(appId, timestamp, transId, appSecret, paramJson.toJSONString());
+ JSONObject headerJson = new JSONObject();
+ headerJson.put("appId", appId);
+ headerJson.put("timestamp", timestamp);
+ headerJson.put("transId", transId);
+ headerJson.put("token", token);
+ JSONObject bodyJson = new JSONObject();
+ bodyJson.put("head", headerJson);
+ bodyJson.put("body", paramJson);
+ HttpEntity<String> stringHttpEntity = new HttpEntity<>(bodyJson.toJSONString(), httpHeaders);
+ log.info("创建超汛限智能外呼任务请求参数:{}", bodyJson.toJSONString());
+ ResponseEntity<String> response = restTemplate.postForEntity(requestUrl, stringHttpEntity, String.class);
+ log.info("创建外呼任务请求结果:{}", response.getBody());
+ if (response.getStatusCode() != HttpStatus.OK) {
+ log.error("创建智能外呼任务失败:{}", response.getStatusCode());
+ }
+ 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;
+ }
+
+ /**
+ * 外呼动态数据封装
+ * @param params
+ * @return
+ */
+ private JSONArray getCalleeInfoAlarm(List<Map<String, String>> params,List<String> titles) {
+ JSONArray arr = new JSONArray();
+ params.forEach(map -> {
+ JSONObject json = new JSONObject();
+ for (String title : titles) {
+ json.put(title, map.get(title));
+ }
+ arr.add(json);
+ });
+ return arr;
+ }
+
+ /**
* 获取通话详情
* @param taskId
* @param calleeNumber
--
Gitblit v1.9.3