From c1cf84479cd38ba7c544fc712ca12f7e99476c48 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 25 Apr 2023 21:00:25 +0800
Subject: [PATCH] 智能外呼查询统计接口新增

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/entity/CallTask.java              |   14 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java |   21 ++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java    |   18 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java         |   88 +++++++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml         |   38 +++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java          |   13 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml                                        |    5 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java        |   28 +++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskVO.java                |   34 ++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml                                       |    5 +
 10 files changed, 263 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 dd20993..89b7000 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,9 +1,14 @@
 package cn.gistack.sm.intelligentCall.controller;
 
+import cn.gistack.sm.intelligentCall.entity.CallTask;
 import cn.gistack.sm.intelligentCall.service.CallService;
+import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
+import cn.gistack.sm.intelligentCall.vo.CallTaskVO;
 import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+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.*;
 
@@ -43,4 +48,17 @@
 		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));
+	}
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/entity/CallTask.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/entity/CallTask.java
new file mode 100644
index 0000000..5bef6b8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/entity/CallTask.java
@@ -0,0 +1,14 @@
+package cn.gistack.sm.intelligentCall.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 智能外呼任务
+ * @author zhongrj
+ * @date 2023-04-25
+ */
+@Data
+public class CallTask implements Serializable {
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java
new file mode 100644
index 0000000..8048266
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java
@@ -0,0 +1,28 @@
+package cn.gistack.sm.intelligentCall.mapper;
+
+import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author zhongrj
+ * @date 2023-04-25
+ */
+@Mapper
+@DS("ztznwh")
+public interface CallTaskMapper{
+
+	/**
+	 * 查詢任务列表数据
+	 * @param page
+	 * @param callTask
+	 * @return
+	 */
+	@InterceptorIgnore(tenantLine = "true")
+	List<CallTaskStatistic> getCallListPage(@Param("page") IPage<CallTaskStatistic> page, @Param("callTask") CallTaskStatistic callTask);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml
new file mode 100644
index 0000000..068298f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.sm.intelligentCall.mapper.CallTaskMapper">
+
+    <select id="getCallListPage" resultType="cn.gistack.sm.intelligentCall.vo.CallTaskStatistic">
+        select
+        ct."id",
+        ct."task_name" as taskName,
+        ct."gmt_create" as createTime,
+        ct."task_status" as taskStatus,
+        ctr."calling_number" as callingNumber,
+        ctr."callee_number" as calleeNumber,
+        ctr."gmt_create" as executeTime,
+        ctra."callee_number_count" as calleeNumberCount,
+        ctra."connection_count" as connectionCount,
+        ctra."failure_count" as failureCount,
+        ctra."other_status_count" as otherStatusCount,
+        cs."call_scenes_name" as  callScenesName
+        from "SJZT_ODS"."call_task" ct
+        left join (select * from "SJZT_ODS"."call_scenes" where "is_deleted" = 0) cs on ct."scene_id" = cs."id"
+        left join "SJZT_ODS"."call_task_result" ctr on ctr."task_id" = ct."id"
+        left join "SJZT_ODS"."call_task_result_analyse" ctra on  ctra."task_id" = ct."id"
+        where 1=1
+        <if test="callTask.taskName!=null and callTask.taskName!=''">
+            and ct."task_name" like concat(concat('%',#{callTask.taskName}),'%')
+        </if>
+        <if test="callTask.taskStatus!=null">
+            and ct."task_status" = #{callTask.taskStatus}
+        </if>
+        <if test="callTask.startTime!=null and callTask.startTime!=''">
+            and date_format(ct."gmt_create",'%Y-%m-%d') >= #{callTask.startTime}
+        </if>
+        <if test="callTask.endTime!=null and callTask.endTime!=''">
+            and date_format(ct."gmt_create",'%Y-%m-%d') &lt;= #{callTask.endTime}
+        </if>
+        order by ct."gmt_create" desc
+    </select>
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
index 9fc2da2..54527dd 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
@@ -1,6 +1,11 @@
 package cn.gistack.sm.intelligentCall.service;
 
 
+import cn.gistack.sm.intelligentCall.entity.CallTask;
+import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
+import cn.gistack.sm.intelligentCall.vo.CallTaskVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
 import java.util.List;
 import java.util.Map;
 
@@ -20,4 +25,12 @@
 	 * @return
 	 */
 	Object getCallDetail(String taskId, String calleeNumber);
+
+	/**
+	 * 查詢任务列表数据
+	 * @param page
+	 * @param callTask
+	 * @return
+	 */
+	IPage<CallTaskStatistic> getCallListPage(IPage<CallTaskStatistic> page, CallTaskStatistic callTask);
 }
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 a0f5a03..9dc5187 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
@@ -1,9 +1,14 @@
 package cn.gistack.sm.intelligentCall.service.impl;
 
 import cn.gistack.sm.intelligentCall.constant.CallConstant;
+import cn.gistack.sm.intelligentCall.mapper.CallTaskMapper;
 import cn.gistack.sm.intelligentCall.service.CallService;
+import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
+import cn.gistack.sm.intelligentCall.vo.CallTaskVO;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -15,7 +20,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.DigestUtils;
 import org.springframework.web.client.RestTemplate;
-import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
@@ -23,7 +27,11 @@
 
 @Slf4j
 @Service
+@DS("ztznwh")
 public class CallServiceImpl implements CallService {
+
+	@Autowired
+	private CallTaskMapper callTaskMapper;
 
 	@Autowired
 	private RestTemplate restTemplate;
@@ -180,4 +188,15 @@
 		});
 		return arr;
 	}
+
+	/**
+	 * 查詢任务列表数据
+	 * @param page
+	 * @param callTask
+	 * @return
+	 */
+	@Override
+	public IPage<CallTaskStatistic> getCallListPage(IPage<CallTaskStatistic> page, CallTaskStatistic callTask) {
+		return page.setRecords(callTaskMapper.getCallListPage(page,callTask));
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java
new file mode 100644
index 0000000..f74782d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskStatistic.java
@@ -0,0 +1,88 @@
+package cn.gistack.sm.intelligentCall.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 呼叫统计
+ * @author zhongrj
+ * @date 2023-04-25
+ */
+@Data
+public class CallTaskStatistic implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 任务id
+	 */
+	private String id;
+
+	/**
+	 * 任务名称
+	 */
+	private String taskName;
+
+	/**
+	 * 创建时间
+	 */
+	private String createTime;
+
+	/**
+	 * 任务状态 0:未执行  1:执行中  2:已取消 3:已终止  4:已完成
+	 */
+	private Integer taskStatus;
+
+	/**
+	 * 主叫号码
+	 */
+	private String callingNumber;
+
+	/**
+	 * 被叫号码
+	 */
+	private String calleeNumber;
+
+	/**
+	 * 执行时间
+	 */
+	private String executeTime;
+
+	/**
+	 * 被叫号码量
+	 */
+	private String calleeNumberCount;
+
+	/**
+	 * 接通数量
+	 */
+	private String connectionCount;
+
+	/**
+	 * 失败数量
+	 */
+	private String failureCount;
+
+	/**
+	 * 其它状态数量
+	 */
+	private String otherStatusCount;
+
+	/**
+	 * 场景名称
+	 */
+	private String callScenesName;
+
+	/**
+	 * 开始时间
+	 */
+	private String startTime;
+
+	/**
+	 * 结束时间
+	 */
+	private String endTime;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskVO.java
new file mode 100644
index 0000000..65bb718
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/vo/CallTaskVO.java
@@ -0,0 +1,34 @@
+package cn.gistack.sm.intelligentCall.vo;
+
+import cn.gistack.sm.intelligentCall.entity.CallTask;
+import lombok.Data;
+
+/**
+ * 智能外呼任务 vo
+ * @author zhongrj
+ * @date 2023-04-25
+ */
+@Data
+public class CallTaskVO extends CallTask {
+
+	/**
+	 * 任务名称
+	 */
+	private String taskName;
+
+	/**
+	 * 任务状态 0:未执行  1:执行中  2:已取消 3:已终止  4:已完成
+	 */
+	private Integer status;
+
+	/**
+	 * 开始时间
+	 */
+	private String startTime;
+
+	/**
+	 * 结束时间
+	 */
+	private String endTime;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml
index 149b0af..e728a38 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml
@@ -27,4 +27,9 @@
           url: ${blade.datasource.dev.zt.url}
           username: ${blade.datasource.dev.zt.username}
           password: ${blade.datasource.dev.zt.password}
+        # 智能外呼数据库
+        ztznwh:
+          url: ${blade.datasource.dev.ztznwh.url}
+          username: ${blade.datasource.dev.ztznwh.username}
+          password: ${blade.datasource.dev.ztznwh.password}
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
index 1201c7f..ec84042 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
@@ -27,3 +27,8 @@
           url: ${blade.datasource.prod.zt.url}
           username: ${blade.datasource.prod.zt.username}
           password: ${blade.datasource.prod.zt.password}
+        # 智能外呼数据库
+        ztznwh:
+          url: ${blade.datasource.prod.ztznwh.url}
+          username: ${blade.datasource.prod.ztznwh.username}
+          password: ${blade.datasource.prod.ztznwh.password}

--
Gitblit v1.9.3