From 74d2c3cab808d806daba576b1797fa6342d8876c Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 14 Jul 2023 11:55:05 +0800
Subject: [PATCH] 智能外呼新增临时导出明细接口

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java |   12 ++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java    |   12 ++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml         |  115 ++++++++++++++++++++++++++++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java          |    8 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java        |   11 +++
 5 files changed, 158 insertions(+), 0 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 6bdd653..dd80561 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
@@ -165,4 +165,16 @@
 		// 返回
 		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));
+	}
 }
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
index 0079e02..e2f01d6 100644
--- 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
@@ -177,4 +177,15 @@
 	List<CallTaskStatistic> getCallResultList(@Param("page") IPage<CallTaskStatistic> page,
 											  @Param("list") List<String> list,
 											  @Param("callTaskStatistic") CallTaskStatistic callTaskStatistic);
+
+	/**
+	 * 详情导出临时接口
+	 * @param callTaskResult
+	 * @param page
+	 * @return
+	 */
+	@DS("ztznwh")
+	@InterceptorIgnore(tenantLine = "true")
+	List<CallTaskResultVO> getCallResultListTemp(@Param("page") IPage<CallTaskResultVO> page,
+												 @Param("callTaskResult")  CallTaskResultVO callTaskResult);
 }
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
index 83f21d4..9f338c7 100644
--- 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
@@ -679,4 +679,119 @@
         </if>
     </select>
 
+    <!--详情导出临时接口-->
+    <select id="getCallResultListTemp" resultType="cn.gistack.sm.intelligentCall.vo.CallTaskResultVO">
+        select
+        ctr."id",
+        ctr."call_result" as callResult,
+        ctr."call_duration" as callDuration,
+        ctr."call_conversation_round" as callConversationRound,
+        ctr."call_hangup_direction" as callHangupDirection,
+        ctr."call_id" as callId,
+        date_format(ctr."gmt_create",'%Y-%m-%d %H:%i:%s') as gmtCreate,
+        ctr."calling_number" as callingNumber,
+        ctr."callee_number" as calleeNumber,
+        ctr."task_id" as taskId,
+        ctr."call_start_time" as callStartTime,
+        date_format(ctr."call_end_time",'%Y-%m-%d %H:%i:%s') as callEndTime,
+        ctr."call_record_file" as callRecordFile,
+        ctr."intention_customer_flag" as intentionCustomerFlag,
+        ctr."is_deleted" as isDeleted,
+        ctc.waterCode,
+        aab."ad_name" as areaName,
+        case when ctr."call_result"!='200000' then concat(
+        if(ifnull(scnfr.is_danger,0)='0','',if(scnfr.is_danger='是','发现险情,','未发现险情,')),
+        if(ifnull(scnfr.is_patrol_person,0)='0','',if(scnfr.is_patrol_person='是','是巡查责任人,','不是巡查责任人,')) ,
+        if(ifnull(scnfr.is_patrol,0)='0','',if(scnfr.is_patrol='是','已巡查,','未巡查,')),
+        if(ifnull(scnfr.is_over,0)='0','',if(scnfr.is_over='是','超汛限','未超汛限'))
+        )
+        else cas."tag_title" end as tagTitle,
+        ctc.userName,
+        arb."name" as waterName,
+        arb."res_reg_code" resRegCode,
+        arb."eng_scal" engScal,
+        arb."res_type" resType,
+        arb."rv_name" rvName,
+        REGEXP_SUBSTR (arb."res_loc",'[^-]+',1,2) as cityName,
+        REGEXP_SUBSTR (arb."res_loc",'[^-]+',1,3) as countyName,
+        if(ifnull(scnfr.call_id,0)='0','','已反馈') isSmsFill,
+        case when ctr."call_result"!='200000' then if(ifnull(scnfr.is_danger,0)>'0',if(scnfr.is_danger='是',2,1),0)
+        else if(ifnull(cas."tag_title",0)>'0',if(instr(cas."tag_title",'未发现险情')>0,1,if(instr(cas."tag_title",'发现险情')>0,2,0)),0) end as isDange,
+        case when ctr."call_result"!='200000' then if(ifnull(scnfr.is_patrol_person,0)>'0',if(scnfr.is_patrol_person='是',2,1),0)
+        else if(ifnull(cas."tag_title",0)>'0',if(instr(cas."tag_title",'是否巡查责任人-未识别')>0,0,if(instr(cas."tag_title",'不是巡查责任人')>0,1,if(instr(cas."tag_title",'是巡查责任人')>0,2,0))),0) end as isMan,
+        case when ctr."call_result"!='200000' then if(ifnull(scnfr.is_patrol,0)>'0',if(scnfr.is_patrol='是',2,1),0)
+        else if(ifnull(cas."tag_title",0)>'0',if(instr(cas."tag_title",'是否巡查-未识别')>0,0,if(instr(cas."tag_title",'未巡查')>0,1,if(instr(cas."tag_title",'已巡查')>0,2,0))),0) end as isPatrol,
+        case when ctr."call_result"!='200000' then if(ifnull(scnfr.is_over,0)>'0',if(scnfr.is_over='是',2,1),0)
+        else if(ifnull(cas."tag_title",0)>'0',if(instr(cas."tag_title",'是否超汛限-未识别')>0,0,if(instr(cas."tag_title",'未超汛限')>0,1,if(instr(cas."tag_title",'超汛限')>0,2,0))),0) end as isOver
+        from
+        (
+            select ctr.* from SJZT_ODS."call_task_result" ctr
+            left join SJZT_ODS."call_task" ct on ct."id" = ctr."task_id"
+            left join YWXT.sm_daily_call_task sdct on sdct.task_id = ct."id"
+            where date_format(ctr."gmt_create",'%Y-%m-%d') = #{callTaskResult.gmtCreate}
+            and (sdct.type = '1' or sdct.type = '2' or sdct.type = '3') and ctr."call_result" = '200000' and ct."scene_id" = 228
+            union
+            select ctr.* from SJZT_ODS."call_task_result" ctr
+            left join SJZT_ODS."call_task" ct on ct."id" = ctr."task_id"
+            left join YWXT.sm_daily_call_task sdct on sdct.task_id = ct."id"
+            where date_format(ctr."gmt_create",'%Y-%m-%d') = #{callTaskResult.gmtCreate}
+            and sdct.type = '3' and ctr."call_result" != '200000' and ct."scene_id" = 228
+            union all
+            select ctr.* from SJZT_ODS."call_task_result" ctr
+            left join SJZT_ODS."call_task" ct on ct."id" = ctr."task_id"
+            left join YWXT.sm_daily_call_task sdct on sdct.task_id = ct."id"
+            where date_format(ctr."gmt_create",'%Y-%m-%d') = #{callTaskResult.gmtCreate} and ct."scene_id" = 228
+            and sdct.task_id is null
+        ) ctr
+        left join
+        (
+        select "callee_number",
+        "call_id",
+        "task_id",
+        JSON_VALUE("call_task_callee_content",'$."$水库编码$"') as waterCode,
+        JSON_VALUE("call_task_callee_content",'$."$用户名$"') as userName from "SJZT_ODS"."call_task_callee"
+        ) ctc
+        on ctr."call_id" = ctc."call_id"
+        left join "SJZT_MD"."att_res_base" arb on ctc.waterCode = arb."code"
+        left join "SJZT_MD"."att_ad_base" aab on aab."guid" = concat(arb."ad_guid",'000000')
+        left join
+        (
+        SELECT ctra."call_id", replace(WM_CONCAT(ctag."tag_title"),',', ',') as "tag_title" from "SJZT_ODS"."call_tag" ctag
+        left join "SJZT_ODS"."call_task_result_attribute" ctra on ctag."id" = ctra."attribute_value"
+        GROUP BY ctra."call_id"
+        ) cas
+        on cas."call_id" = ctr."call_id"
+        left join "SJZT_ODS"."call_task" ct on ct."id" = ctr."task_id"
+        left join "YWXT".sm_call_not_fill_record scnfr on scnfr.call_id = ctr."call_id"
+        where 1=1
+        <if test="callTaskResult.taskId!=null and callTaskResult.taskId!=''">
+            and ctr."task_id" = #{callTaskResult.taskId}
+        </if>
+        <if test="callTaskResult.waterName!=null and callTaskResult.waterName!=''">
+            and arb."name" like concat('%',#{callTaskResult.waterName},'%')
+        </if>
+        <if test="callTaskResult.isSmsFill!=null and callTaskResult.isSmsFill=='已反馈'">
+            and scnfr.call_id is not null
+        </if>
+        <if test="callTaskResult.isSmsFill!=null and callTaskResult.isSmsFill=='未反馈'">
+            and scnfr.call_id is null and ctr."call_result"!='200000'
+        </if>
+        <if test="callTaskResult.userName!=null and callTaskResult.userName!=''">
+            and ctc.userName like concat('%',#{callTaskResult.userName},'%')
+        </if>
+        <if test="callTaskResult.taskName!=null and callTaskResult.taskName!=''">
+            and ct."task_name" like concat(concat('%',#{callTaskResult.taskName}),'%')
+        </if>
+        <if test="callTaskResult.taskStatus!=null">
+            and ct."task_status" = #{callTaskResult.taskStatus}
+        </if>
+        <if test="callTaskResult.startTime!=null and callTaskResult.startTime!=''">
+            and date_format(ctr."gmt_create",'%Y-%m-%d') >= #{callTaskResult.startTime}
+        </if>
+        <if test="callTaskResult.endTime!=null and callTaskResult.endTime!=''">
+            and date_format(ctr."gmt_create",'%Y-%m-%d') &lt;= #{callTaskResult.endTime}
+        </if>
+        order by ctr."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 b98a0c7..ee32d94 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
@@ -93,4 +93,12 @@
 	 * @return
 	 */
 	Object getCallResultList(IPage<CallTaskStatistic> page, CallTaskStatistic callTaskStatistic);
+
+	/**
+	 * 详情导出临时接口
+	 * @param callTaskResult
+	 * @param page
+	 * @return
+	 */
+	Object getCallResultListTemp(IPage<CallTaskResultVO> page, CallTaskResultVO callTaskResult);
 }
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 c2be88b..89f53c6 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
@@ -981,4 +981,16 @@
 		// 返回
 		return page.setRecords(callNotConnectResultList);
 	}
+
+	/**
+	 * 详情导出临时接口
+	 * @param callTaskResult
+	 * @param page
+	 * @return
+	 */
+	@Override
+	public Object getCallResultListTemp(IPage<CallTaskResultVO> page, CallTaskResultVO callTaskResult) {
+		// 不分页
+		return callTaskMapper.getCallResultListTemp(null,callTaskResult);
+	}
 }

--
Gitblit v1.9.3