From 0e06fd9184c0cda32a8c55ed1f4a295305d647fd Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 29 Jun 2023 11:43:41 +0800
Subject: [PATCH] 智能外呼为接同短信通知修改,外呼统计查询修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java |   62 ++++++++++++++++++++++++++++++-
 1 files changed, 60 insertions(+), 2 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 efcc550..018cd35 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
@@ -8,6 +8,9 @@
 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.vo.AttAdBaseVO;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -24,6 +27,7 @@
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
 
+import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
@@ -40,6 +44,9 @@
 
 	@Autowired
 	private CallTaskMapper callTaskMapper;
+
+	@Autowired
+	private IAttAdBaseService attAdBaseService;
 
 	@Autowired
 	private RestTemplate restTemplate;
@@ -302,13 +309,17 @@
 			CompletableFuture.allOf(callTaskStatisticCompletableFuture,threeDayNotCallConnect,twoDayNotCallConnect,oneDayNotCallConnect).get();
 			// 数据处理
 			List<CallTaskStatistic> callTaskStatistics = getCallTaskStatistics(callTaskStatisticCompletableFuture, oneDay, threeDayNotCallConnect, twoDayNotCallConnect, oneDayNotCallConnect);
+			// 取当前行政区总数据
+			List<CallTaskStatistic> totalList = getTotalCallTaskStatistics(callTaskStatistics,callTaskStatistic);
 			// 排序
 			callTaskStatistics = getCallTaskStatisticsByOrder(callTaskStatistic, callTaskStatistics);
+			// 合并数据
+			totalList.addAll(callTaskStatistics);
 			// 返回数据
 			if (null!= callTaskStatistic.getIsPage()) {
-				return callTaskStatistics;
+				return totalList;
 			}else {
-				return page.setRecords(callTaskStatistics);
+				return page.setRecords(totalList);
 			}
 		} catch (InterruptedException e) {
 			e.printStackTrace();
@@ -317,6 +328,52 @@
 		}
 		// 返回
 		return null;
+	}
+
+	/**
+	 * 获取当前行政区总数据
+	 * @param callTaskStatistics
+	 * @param callTaskStatisticEntity
+	 * @return
+	 */
+	private List<CallTaskStatistic> getTotalCallTaskStatistics(List<CallTaskStatistic> callTaskStatistics,CallTaskStatistic callTaskStatisticEntity) {
+		List<CallTaskStatistic> statistics = new ArrayList<>();
+		CallTaskStatistic callTaskStatistic = new CallTaskStatistic();
+		Integer totalCalleeNumberCount = 0;
+		Integer totalConnectionCount = 0;
+		Integer totalThreeNoConnectCount = 0;
+		Integer totalTwoNoConnectCount = 0;
+		Integer totalRefuseConnectCount = 0;
+		// 遍历
+		for (CallTaskStatistic taskStatistic : callTaskStatistics) {
+			totalCalleeNumberCount += Integer.parseInt(taskStatistic.getCalleeNumberCount());
+			totalConnectionCount += Integer.parseInt(taskStatistic.getConnectionCount());
+			totalThreeNoConnectCount += taskStatistic.getThreeNoConnectCount();
+			totalTwoNoConnectCount += taskStatistic.getTwoNoConnectCount();
+			totalRefuseConnectCount += taskStatistic.getRefuseConnectCount();
+		}
+		// 设置数据
+		callTaskStatistic.setCalleeNumberCount(totalCalleeNumberCount.toString());
+		callTaskStatistic.setConnectionCount(totalConnectionCount.toString());
+		callTaskStatistic.setThreeNoConnectCount(totalThreeNoConnectCount);
+		callTaskStatistic.setTwoNoConnectCount(totalTwoNoConnectCount);
+		callTaskStatistic.setRefuseConnectCount(totalRefuseConnectCount);
+		callTaskStatistic.setCreateTime(callTaskStatistics.get(0).getCreateTime());
+		// 查询当前行政区名称
+		AttAdBase attAdBase = new AttAdBase();
+		attAdBase.setGuid(callTaskStatisticEntity.getAdCode());
+		AttAdBaseVO detail = attAdBaseService.getDetail(attAdBase);
+		callTaskStatistic.setAdCode(callTaskStatisticEntity.getAdCode());
+		if (null != detail){
+			callTaskStatistic.setAdName(detail.getAdName());
+		}
+		// 计算比例
+		//格式化小数
+		DecimalFormat df = new DecimalFormat("0.00");
+		callTaskStatistic.setCallCompletingRate(df.format((float)totalConnectionCount/totalCalleeNumberCount*100));
+		statistics.add(callTaskStatistic);
+		// 返回
+		return statistics;
 	}
 
 	/**
@@ -366,6 +423,7 @@
 				List<CallTaskStatistic> outgoingStatisticList = new ArrayList<>();
 				// 判断是否分页
 				if (null!= callTaskStatistic.getIsPage()){
+					// 不分页
 					outgoingStatisticList = callTaskMapper.getOutgoingStatisticList(null,callTaskStatistic,null);
 				}else {
 					// 按天查询数据

--
Gitblit v1.9.3