From 52ef8b68a7b49d3f596266109c43dc9dfade2a9a Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Wed, 03 Jul 2024 18:36:10 +0800
Subject: [PATCH] 智能外呼新增导出

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java |   72 +++++++++++++++++++++++++++++++-----
 1 files changed, 62 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 993e8cd..990baf7 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
@@ -4,12 +4,14 @@
 import cn.gistack.sm.intelligentCall.constant.CallConstant;
 import cn.gistack.sm.intelligentCall.constant.ZtConstant;
 import cn.gistack.sm.intelligentCall.entity.Scene;
+import cn.gistack.sm.intelligentCall.excel.CallExcel;
 import cn.gistack.sm.intelligentCall.mapper.CallTaskMapper;
 import cn.gistack.sm.intelligentCall.service.CallService;
 import cn.gistack.sm.intelligentCall.vo.CallTaskResultVO;
 import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
 import cn.gistack.sm.sjztmd.entity.AttAdBase;
 import cn.gistack.sm.sjztmd.service.IAttAdBaseService;
+import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
 import cn.gistack.sm.sjztmd.vo.AttAdBaseVO;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -20,6 +22,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.jetbrains.annotations.NotNull;
 import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
@@ -53,6 +56,9 @@
 
 	@Autowired
 	private BladeRedis bladeRedis;
+
+	@Autowired
+	private IAttResManagePersonService attResManagePersonService;
 
 	@Autowired
 	private AsyncCallService asyncCallService;
@@ -216,6 +222,9 @@
 		if (success){
 			//通过任务名称查询taskId
 			taskId = callTaskMapper.getTaskIdByTaskName(taskName);
+		}else {
+			// 任务创建失败,发送短信告知
+			asyncCallService.createOutCallErrorSendSms(jsonObject.getString("code"),jsonObject.getString("message"));
 		}
 		List<String> list = new ArrayList<>();
 		list.add(response.getBody());
@@ -498,7 +507,10 @@
 		callTaskStatistic.setThreeNoConnectCount(totalThreeNoConnectCount);
 //		callTaskStatistic.setTwoNoConnectCount(totalTwoNoConnectCount);
 		callTaskStatistic.setRefuseConnectCount(totalRefuseConnectCount);
-		callTaskStatistic.setCreateTime(callTaskStatistics.get(0).getCreateTime());
+		if(callTaskStatistics.size() > 0) {
+			callTaskStatistic.setCreateTime(callTaskStatistics.get(0).getCreateTime());
+		}
+
 		// 查询当前行政区名称
 		AttAdBase attAdBase = new AttAdBase();
 		attAdBase.setGuid(callTaskStatisticEntity.getAdCode());
@@ -510,7 +522,11 @@
 		// 计算比例
 		//格式化小数
 		DecimalFormat df = new DecimalFormat("0.00");
-		callTaskStatistic.setCallCompletingRate(df.format((float)totalConnectionCount/totalCalleeNumberCount*100));
+		if (totalCalleeNumberCount == 0){
+			callTaskStatistic.setCallCompletingRate("0");
+		}else{
+			callTaskStatistic.setCallCompletingRate(df.format((float)totalConnectionCount/totalCalleeNumberCount*100));
+		}
 		statistics.add(callTaskStatistic);
 		// 返回
 		return statistics;
@@ -1201,16 +1217,11 @@
 	 */
 	@Override
 	public Object getCallResultList(IPage<CallTaskStatistic> page, CallTaskStatistic callTaskStatistic) {
-		List<String> list = new ArrayList<>();
-		if (null!= callTaskStatistic.getAdCode() && !callTaskStatistic.getAdCode().equals("")){
-			// 查询所有下级区域code
-			list = getAllChildrenAreaByAreaCode(callTaskStatistic.getAdCode());
-		}
 		if (null!=callTaskStatistic.getIsPage()){
 			// 不分页
-			return callTaskMapper.getCallResultList(null, list,callTaskStatistic);
+			return callTaskMapper.getCallResultList(null,callTaskStatistic);
 		}
-		List<CallTaskStatistic> callNotConnectResultList = callTaskMapper.getCallResultList(page,list, callTaskStatistic);
+		List<CallTaskStatistic> callNotConnectResultList = callTaskMapper.getCallResultList(page, callTaskStatistic);
 		// 返回
 		return page.setRecords(callNotConnectResultList);
 	}
@@ -1222,7 +1233,7 @@
 	 * @return
 	 */
 	@Override
-	public Object getCallResultListTemp(IPage<CallTaskResultVO> page, CallTaskResultVO callTaskResult) {
+	public List<CallTaskResultVO> getCallResultListTemp(IPage<CallTaskResultVO> page, CallTaskResultVO callTaskResult) {
 		List<String> list = new ArrayList<>();
 		if (null!=callTaskResult.getIds() && !callTaskResult.getIds().equals("")){
 			list = Arrays.asList(callTaskResult.getIds().split(","));
@@ -1230,4 +1241,45 @@
 		// 不分页
 		return callTaskMapper.getCallResultListTemp(null,callTaskResult,list);
 	}
+
+	/**
+	 * 导入表格发送智能外呼
+	 * @param list
+	 * @param time
+	 * @return
+	 */
+	@Override
+	public Object importCall(List<CallExcel> list,String time) {
+		// 转换
+		List<String> stringList = list.stream().map(CallExcel::getWaterCode).collect(Collectors.toList());
+		// 通过水库代码获取水库及巡查责任人信息
+		Set<Scene>  personList = attResManagePersonService.getPatrolPersonListByWaterCodeList(stringList);
+		Map<String, Object> params = new HashMap<>();
+		//传入调度时间和随机得到的人员信息进行任务的创建并返回
+		params.put("list",setForListMap(personList));
+		// 调度时间处理
+		if (null!=time && !time.equals("")){
+			params.put("taskScheduleTime",time);
+		}else {
+			params.put("taskScheduleTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+		}
+		// 创建任务并返回结果
+		List<String> task = createTask(params);
+		if (null!=task.get(1) && !task.get(1).equals("")){
+			String successMsg = "外呼任务创建成功";
+			// 返回
+			return R.data(200,successMsg,null);
+		}
+		String errorMsg = task.get(0);
+		// 返回
+		return R.data(400,errorMsg,null);
+	}
+
+	/**
+	 * 测试接口-调用外呼库查询任务详情信息
+	 */
+	@Override
+	public Object getTaskDetail(Integer taskId) {
+		return callTaskMapper.getTaskDetail(taskId);
+	}
 }

--
Gitblit v1.9.3