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 |  133 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 132 insertions(+), 1 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 5c83f22..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,17 +1,27 @@
 package cn.gistack.sm.intelligentCall.controller;
 
 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.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.*;
 
 /**
@@ -28,14 +38,35 @@
 
 	private final CallService callService;
 
+	private final ICallSmsNoticeTaskService callSmsNoticeTaskService;
+
 	/**
 	 * 创建任务
 	 * @return
 	 */
 	@PostMapping("/createCall")
 	public R createCall(@RequestBody Map<String,Object> map){
+		List<String> task = callService.createTask(map);
+		// 创建外呼短信发送任务记录
+		createCallSmsNoticeTask(task);
 		// 返回
-		return R.data(callService.createTask(map));
+		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;
 	}
 
 	/**
@@ -85,4 +116,104 @@
 		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