From 1dd5d8f8a616f5cf3caa7828d46989c7d3dcafc4 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 19 Oct 2023 15:01:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java | 269 +++++++++++++++++++++++++++++++++++++----------------
1 files changed, 187 insertions(+), 82 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
index b03191c..055cbe3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
@@ -1,23 +1,28 @@
package cn.gistack.sm.intelligentCall.controller;
-import cn.gistack.sm.intelligentCall.constant.CallConstant;
-import cn.gistack.sm.intelligentCall.entity.User;
-import cn.gistack.sm.intelligentCall.util.HttpClientUtils;
-import com.alibaba.fastjson.JSON;
+import cn.gistack.sm.intelligentCall.entity.CallTaskResult;
+import cn.gistack.sm.intelligentCall.entity.Scene;
+import cn.gistack.sm.intelligentCall.excel.CallExcel;
+import cn.gistack.sm.intelligentCall.listener.ExcelListener;
+import cn.gistack.sm.intelligentCall.service.CallService;
+import cn.gistack.sm.intelligentCall.service.ICallSmsNoticeTaskService;
+import cn.gistack.sm.intelligentCall.vo.CallTaskResultVO;
+import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
+import com.alibaba.excel.EasyExcel;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.text.SimpleDateFormat;
-import java.util.*;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
-import static cn.gistack.sm.intelligentCall.util.CallUtil.getRandom;
-import static cn.gistack.sm.intelligentCall.util.CallUtil.getToken;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.*;
/**
* 智能呼叫控制层
@@ -31,84 +36,184 @@
@AllArgsConstructor
public class CallController {
- /**
- * 创建任务
- * @return
- */
- @GetMapping("/createCall")
- public R createCall(){
- // 请求
- Map<String, Object> map = new HashMap<>();
- map.put("p1",createCallUtil());
- // 返回
- return R.data(map);
- }
+ private final CallService callService;
+
+ private final ICallSmsNoticeTaskService callSmsNoticeTaskService;
/**
* 创建任务
* @return
*/
- public String createCallUtil(){
- Date date = new Date();
- String dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
- String timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date);
- String transId = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date) + getRandom();
-
- Map<String, Object> map = new HashMap<>();
- map.put("taskName","测试");
- map.put("sceneId",230);
- map.put("callingNumbers", Arrays.asList("00862787222298"));
- map.put("taskScheduleTime",dateFormat);
- List<Map<String,Object>> list = new ArrayList<>();
- Map<String,Object> maps = new HashMap<>();
- maps.put("被叫号码","15170720695");
- maps.put("水库名称","测试水库");
- maps.put("超汛限多少米","0");
- maps.put("水库编码","1241241122");
- maps.put("用户名","zrj");
- maps.put("用户id","123456");
- list.add(maps);
- map.put("calleeData",list);
-
- String token = getToken(timestamp, transId, map);
- String url = CallConstant.HOST + CallConstant.createTaskUrl1;
- String httpPost = HttpClientUtils.httpPost(url, CallConstant.AppKey, timestamp, transId, token, map);
+ @PostMapping("/createCall")
+ public R createCall(@RequestBody Map<String,Object> map){
+ List<String> task = callService.createTask(map);
+ // 创建外呼短信发送任务记录
+ createCallSmsNoticeTask(task);
// 返回
- return httpPost;
+ return R.data(task);
+ }
+
+ /**
+ * 创建外呼短信发送任务记录
+ * @param result
+ */
+ private Boolean createCallSmsNoticeTask(List<String> result) {
+ Boolean flag = false;
+ if (null != result && result.size() > 0) {
+ if (result.get(2).equals("true")) {
+ // 获取任务id
+ String taskId = result.get(1);
+ flag = callSmsNoticeTaskService.createCallSmsNoticeTask(taskId);
+ }
+ }
+ return flag;
+ }
+
+ /**
+ * 获取通话详情
+ * @return
+ */
+ @GetMapping("/getCallDetail")
+ public R getCallDetail(String taskId,String calleeNumber){
+ // 返回
+ return R.data(callService.getCallDetail(taskId,calleeNumber));
}
+ /**
+ * 查询呼叫列表信息
+ * @param callTask
+ * @param query
+ * @return
+ */
+ @GetMapping("/getCallListPage")
+ public R getCallListPage(CallTaskStatistic callTask, Query query){
+ // 返回
+ return R.data(callService.getCallListPage(Condition.getPage(query),callTask));
+ }
-// /**
-// * 测试
-// * @param args
-// */
-// public static void main(String[] args) {
-// Date date = new Date();
-// String dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
-// String timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date);
-// String transId = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date) + getRandom();
-//
-// Map<String, Object> map = new HashMap<>();
-// map.put("taskName","测试");
-// map.put("sceneId",230);
-// map.put("callingNumbers", Arrays.asList("00862787222298"));
-// map.put("taskScheduleTime",dateFormat);
-// List<Map<String,Object>> list = new ArrayList<>();
-// Map<String,Object> maps = new HashMap<>();
-// maps.put("被叫号码","15170720695");
-// maps.put("水库名称","测试水库");
-// maps.put("超汛限多少米","0");
-// maps.put("水库编码","1241241122");
-// maps.put("用户名","zrj");
-// maps.put("用户id","123456");
-// list.add(maps);
-// map.put("calleeData",list);
-//
-// String token = getToken(timestamp, transId, map);
-// String url = CallConstant.HOST + CallConstant.createTaskUrl1;
-// String httpPost = HttpClientUtils.httpPost(url, CallConstant.AppKey, timestamp, transId, token, map);
-// System.out.println("httpPost = " + httpPost);
-// }
+ /**
+ * 查询呼叫详情列表信息
+ * @param callTaskResult
+ * @param query
+ * @return
+ */
+ @GetMapping("/getCallTaskResultListPage")
+ public R getCallTaskResultListPage(CallTaskResultVO callTaskResult, Query query){
+ // 返回
+ return R.data(callService.getCallTaskResultListPage(Condition.getPage(query),callTaskResult));
+ }
+
+ /**
+ * 导出呼叫详情列表信息
+ * @param callTaskResult
+ * @return
+ */
+ @GetMapping("/getCallTaskResultList")
+ public R getCallTaskResultList(CallTaskResultVO callTaskResult){
+ // 返回
+ return R.data(callService.getCallTaskResultList(callTaskResult));
+ }
+
+ /**
+ * 查询智能外呼统计数据-按日期-行政区统计
+ * @param callTaskStatistic
+ * @param query
+ * @return
+ */
+ @GetMapping("/getOutgoingStatisticList")
+ public R getOutgoingStatisticList(CallTaskStatistic callTaskStatistic, Query query){
+ // 返回
+ return R.data(callService.getOutgoingStatisticList(Condition.getPage(query),callTaskStatistic));
+ }
+
+ /**
+ * 查询智能外呼统计数据-行政区统计
+ * @param callTaskStatistic
+ * @return
+ */
+ @GetMapping("/getOutgoingStatisticByArea")
+ public R getOutgoingStatisticByArea(CallTaskStatistic callTaskStatistic){
+ // 返回
+ return R.data(callService.getOutgoingStatisticByArea(callTaskStatistic));
+ }
+
+ /**
+ * 根据条件自动创建外呼任务
+ * @param params
+ * @return
+ */
+ @PostMapping("/createCallTaskByParams")
+ public R createCallTaskByParam(@RequestBody Map<String, Object> params){
+ // 返回
+ return R.data(callService.createCallTaskByParam(params));
+ }
+
+ /**
+ * 查询未接通,拒接的呼叫结果详情列表信息
+ * @param callTaskStatistic
+ * @param query
+ * @return
+ */
+ @GetMapping("/getCallNotConnectResultList")
+ public R getCallNotConnectResultList(CallTaskStatistic callTaskStatistic, Query query){
+ // 返回
+ return R.data(callService.getCallNotConnectResultList(Condition.getPage(query),callTaskStatistic));
+ }
+
+ /**
+ * 按日期行政区呼叫结果详情列表信息
+ * @param callTaskStatistic
+ * @param query
+ * @return
+ */
+ @GetMapping("/getCallResultList")
+ public R getCallResultList(CallTaskStatistic callTaskStatistic, Query query){
+ // 返回
+ return R.data(callService.getCallResultList(Condition.getPage(query),callTaskStatistic));
+ }
+
+ /**
+ * 详情导出临时接口
+ * @param callTaskResult
+ * @param query
+ * @return
+ */
+ @GetMapping("/getCallResultListTemp")
+ public R getCallResultListTemp(CallTaskResultVO callTaskResult, Query query){
+ // 返回
+ return R.data(callService.getCallResultListTemp(Condition.getPage(query),callTaskResult));
+ }
+
+
+ /**
+ * 导入表格发送智能外呼
+ * @param file excel文件
+ * @param time 呼叫时间(空的话默认选择当前时间)
+ * @return
+ */
+ @PostMapping("/import-call")
+ public R importCall(MultipartFile file,String time){
+ ExcelListener<CallExcel> listener = new ExcelListener<>();
+ //headRowNumber(1)从第2行开始读取,使用getDatas()方法取出数据
+ try {
+ EasyExcel.read(file.getInputStream(), CallExcel.class, listener).headRowNumber(1).sheet(0).doRead();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ List<CallExcel> list = listener.getDatas();
+ // 导入并返回
+ return R.data(callService.importCall(list,time));
+ }
+
+ /**
+ * 导出模板
+ */
+ @GetMapping("/export-template")
+ @ApiOperation(value = "导出模板")
+ public void exportTemplate(HttpServletResponse response) {
+ List<CallExcel> list = new ArrayList<>();
+ ExcelUtil.export(response, "智能外呼数据模板", "智能外呼数据表", list, CallExcel.class);
+ }
}
--
Gitblit v1.9.3