<?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,
|
date_format(ct."gmt_create",'%Y-%m-%d %H:%i:%s') as createTime,
|
ct."task_status" as taskStatus,
|
date_format(ct."task_schedule_time",'%Y-%m-%d %H:%i:%s') as executeTime,
|
ctr."calling_number" as callingNumber,
|
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 (select DISTINCT "task_id","calling_number" from "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 and ct."is_deleted" = 0
|
<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."task_schedule_time",'%Y-%m-%d') >= #{callTask.startTime}
|
</if>
|
<if test="callTask.endTime!=null and callTask.endTime!=''">
|
and date_format(ct."task_schedule_time",'%Y-%m-%d') <= #{callTask.endTime}
|
</if>
|
order by ct."gmt_create" desc
|
</select>
|
|
<!--查询呼叫详情列表信息-->
|
<select id="getCallTaskResultListPage" 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,
|
cas."tag_title" 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(cas."tag_title",0)>'0',if(instr(cas."tag_title",'未发现险情')>0,1,if(instr(cas."tag_title",'发现险情')>0,2,0)),0) isDange,
|
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) isMan,
|
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) isPatrol,
|
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) isOver
|
from "SJZT_ODS"."call_task_result" 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"
|
where 1=1
|
<if test="callTaskResult.taskId!=null and callTaskResult.taskId!=''">
|
and ctr."task_id" = #{callTaskResult.taskId}
|
</if>
|
<if test="list != null and list.size()>0">
|
and aab."ad_code" in
|
<foreach collection="list" item="adCode" separator ="," open="(" close=")">
|
#{adCode}
|
</foreach>
|
</if>
|
<if test="idsList != null and idsList.size()>0">
|
and ct."id" in
|
<foreach collection="idsList" item="id" separator ="," open="(" close=")">
|
#{id}
|
</foreach>
|
</if>
|
<if test="callTaskResult.waterName!=null and callTaskResult.waterName!=''">
|
and arb."name" like concat('%',#{callTaskResult.waterName},'%')
|
</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') <= #{callTaskResult.endTime}
|
</if>
|
order by ctr."gmt_create" desc
|
</select>
|
|
<!--通过水库编码获取行政区名称-->
|
<select id="getAreaNameByAdCode" resultType="java.lang.String">
|
select aab."ad_name" from SJZT_MD."att_ad_base" aab
|
left join SJZT_MD."att_res_base" arb on aab."guid" = concat(arb."ad_guid",'000000')
|
where arb."code" = #{adCode}
|
</select>
|
|
<!--通过行政区编号获取水库名称-->
|
<select id="getWaterNameByAreaCode" resultType="java.lang.String">
|
select "name" from SJZT_MD."att_res_base" where concat("ad_guid",'000000') = #{adCode}
|
</select>
|
|
<!--查询所有下级区域-->
|
<select id="getAllChildrenAreaByAreaCode" resultType="java.lang.String">
|
select "ad_code" from SJZT_MD."att_ad_base"
|
start with "ad_code" = #{areaCode}
|
CONNECT BY PRIOR "ad_code" = "p_ad_code"
|
</select>
|
|
<!-- <!–查询智能外呼统计数据-按日期-行政区统计–>-->
|
<!-- <select id="getOutgoingStatisticList" resultType="cn.gistack.sm.intelligentCall.vo.CallTaskStatistic">-->
|
<!-- select a.*,round(a.connectionCount/a.calleeNumberCount*100,2) callCompletingRate from-->
|
<!-- (-->
|
<!-- select-->
|
<!-- count(*) as calleeNumberCount,-->
|
<!-- ifnull(sum(case when ctr."call_result"='200000' then 1 else 0 end),0) as connectionCount,-->
|
<!-- DATE_FORMAT(ctr."gmt_create",'%Y-%m-%d') as createTime,-->
|
<!-- aab."ad_name" as adName,-->
|
<!-- aab."guid"-->
|
<!-- from "SJZT_ODS"."call_task_result" ctr-->
|
<!-- left join-->
|
<!-- (-->
|
<!-- select "call_id","task_id",JSON_VALUE("call_task_callee_content",'$."$水库编码$"') as waterCode 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')-->
|
<!-- where 1=1 and aab."ad_name" is not null-->
|
<!-- <if test="callTaskStatistic.startTime!=null and callTaskStatistic.startTime!=''">-->
|
<!-- and date_format(ctr."gmt_create",'%Y-%m-%d') >= #{callTaskStatistic.startTime}-->
|
<!-- </if>-->
|
<!-- <if test="callTaskStatistic.endTime!=null and callTaskStatistic.endTime!=''">-->
|
<!-- and date_format(ctr."gmt_create",'%Y-%m-%d') <= #{callTaskStatistic.endTime}-->
|
<!-- </if>-->
|
<!-- <if test="list != null and list.size()>0">-->
|
<!-- and aab."ad_code" in-->
|
<!-- <foreach collection="list" item="adCode" separator ="," open="(" close=")">-->
|
<!-- #{adCode}-->
|
<!-- </foreach>-->
|
<!-- </if>-->
|
<!-- group by DATE_FORMAT(ctr."gmt_create",'%Y-%m-%d'),aab."ad_name",aab."guid"-->
|
<!-- ) a-->
|
<!-- order by createTime desc,callCompletingRate desc-->
|
<!-- </select> -->
|
|
<!--查询智能外呼统计数据-按日期-行政区统计-->
|
<select id="getOutgoingStatisticList" resultType="cn.gistack.sm.intelligentCall.vo.CallTaskStatistic">
|
select
|
b.*,
|
case when b.calleeNumberCount>0 then round(b.connectionCount/b.calleeNumberCount*100,2) else 0 end callCompletingRate
|
from (
|
select aab."guid",
|
aab."ad_name" as adName,
|
createTime,
|
ifnull(sum(totalCount),0) calleeNumberCount,
|
ifnull(sum(connectCount),0) connectionCount
|
from SJZT_MD."att_ad_base" aab
|
left join (
|
select
|
count(*) as totalCount,
|
ifnull(sum(case when ctr."call_result"='200000' then 1 else 0 end),0) as connectCount,
|
DATE_FORMAT(ctr."gmt_create",'%Y-%m-%d') as createTime,
|
aab."guid",
|
aab."ad_grad",
|
aab."p_ad_code",
|
aab."ad_name" as adName
|
from "SJZT_ODS"."call_task_result" ctr
|
left join
|
(
|
select "call_id","task_id",JSON_VALUE("call_task_callee_content",'$."$水库编码$"') as waterCode 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')
|
where 1=1 and aab."ad_name" is not null
|
<if test="callTaskStatistic.createTime!=null and callTaskStatistic.createTime!=''">
|
and date_format(ctr."gmt_create",'%Y-%m-%d') = #{callTaskStatistic.createTime}
|
</if>
|
<if test="callTaskStatistic.startTime!=null and callTaskStatistic.startTime!=''">
|
and date_format(ctr."gmt_create",'%Y-%m-%d') >= #{callTaskStatistic.startTime}
|
</if>
|
<if test="callTaskStatistic.endTime!=null and callTaskStatistic.endTime!=''">
|
and date_format(ctr."gmt_create",'%Y-%m-%d') <= #{callTaskStatistic.endTime}
|
</if>
|
group by DATE_FORMAT(ctr."gmt_create",'%Y-%m-%d'),aab."ad_name",aab."guid",aab."ad_grad",aab."p_ad_code"
|
) a
|
<if test="callTaskStatistic.grad==1">
|
on aab."guid" = a."p_ad_code" where aab."p_ad_code" = #{callTaskStatistic.adCode}
|
</if>
|
<if test="callTaskStatistic.grad==2">
|
on aab."guid" = a."guid" where aab."p_ad_code" = #{callTaskStatistic.adCode}
|
</if>
|
<if test="callTaskStatistic.grad==3">
|
on aab."guid" = a."guid" where aab."ad_code" = #{callTaskStatistic.adCode}
|
</if>
|
group by createTime,aab."ad_name",aab."guid"
|
order by aab."guid"
|
) b
|
</select>
|
|
<!--查询智能外呼统计数据-行政区统计-->
|
<select id="getOutgoingStatisticByArea" resultType="cn.gistack.sm.intelligentCall.vo.CallTaskStatistic">
|
select b.*,case when b.connectionCount>0 then round(b.connectionCount/b.calleeNumberCount*100,2) else 0 end callCompletingRate from(
|
select aab."guid",
|
aab."ad_name" as adName,
|
createTime,
|
ifnull(sum(totalCount),0) calleeNumberCount,
|
ifnull(sum(connectCount),0) connectionCount
|
from SJZT_MD."att_ad_base" aab
|
left join (
|
select
|
count(*) as totalCount,
|
ifnull(sum(case when ctr."call_result"='200000' then 1 else 0 end),0) as connectCount,
|
DATE_FORMAT(ctr."gmt_create",'%Y-%m-%d') as createTime,
|
aab."guid",
|
aab."ad_grad",
|
aab."p_ad_code",
|
aab."ad_name" as adName
|
from "SJZT_ODS"."call_task_result" ctr
|
left join
|
(
|
select "call_id","task_id",JSON_VALUE("call_task_callee_content",'$."$水库编码$"') as waterCode 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')
|
where 1=1 and aab."ad_name" is not null
|
<if test="callTaskStatistic.createTime!=null and callTaskStatistic.createTime!=''">
|
and date_format(ctr."gmt_create",'%Y-%m-%d') = #{callTaskStatistic.createTime}
|
</if>
|
<if test="callTaskStatistic.startTime!=null and callTaskStatistic.startTime!=''">
|
and date_format(ctr."gmt_create",'%Y-%m-%d') >= #{callTaskStatistic.startTime}
|
</if>
|
<if test="callTaskStatistic.endTime!=null and callTaskStatistic.endTime!=''">
|
and date_format(ctr."gmt_create",'%Y-%m-%d') <= #{callTaskStatistic.endTime}
|
</if>
|
group by DATE_FORMAT(ctr."gmt_create",'%Y-%m-%d'),aab."ad_name",aab."guid",aab."ad_grad",aab."p_ad_code"
|
) a
|
<if test="callTaskStatistic.grad==1">
|
on aab."guid" = a."p_ad_code" where aab."p_ad_code" = #{callTaskStatistic.adCode}
|
</if>
|
<if test="callTaskStatistic.grad==2">
|
on aab."guid" = a."guid" where aab."p_ad_code" = #{callTaskStatistic.adCode}
|
</if>
|
<if test="callTaskStatistic.grad==3">
|
on aab."guid" = a."guid" where aab."ad_code" = #{callTaskStatistic.adCode}
|
</if>
|
group by createTime,aab."ad_name",aab."guid"
|
order by aab."guid"
|
) b
|
</select>
|
|
<!--查询外呼多少天内已呼叫过的人员手机号集合信息-并只取接通的号码-->
|
<select id="getCallUserPhoneByParam" resultType="java.lang.String">
|
select "callee_number" from SJZT_ODS."call_task_result"
|
where date_format("gmt_create",'%Y-%m-%d') >= #{params.startTime}
|
and date_format("gmt_create",'%Y-%m-%d') <= #{params.endTime}
|
and "call_result" = '200000'
|
</select>
|
</mapper>
|