You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
229 lines
5.9 KiB
XML
229 lines
5.9 KiB
XML
2 years ago
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTO Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||
|
<mapper namespace="com.icomsys.main_vm.db.mybatis.mapper.StatisticsDashboardMapper">
|
||
|
|
||
|
<select id="selectStatCallInfo" resultType="java.util.HashMap">
|
||
|
/* StatisticsDashboardMapper.selectStatCallInfo */
|
||
|
<![CDATA[
|
||
|
SELECT
|
||
|
b.callInitDate AS callInitDateB
|
||
|
, a.*
|
||
|
FROM
|
||
|
(
|
||
|
SELECT
|
||
|
DATE_FORMAT(Z.CALL_INIT_DATE, '%Y-%m-%d') AS callInitDate
|
||
|
, Z.TOKEN
|
||
|
, Z.OPR_MNG_CODE
|
||
|
, Z.IN_CHANNEL_TYPE
|
||
|
, Z.CALL_END_CONVERSION
|
||
|
FROM TB_CALL_INFO Z
|
||
|
WHERE Z.CALL_INIT_DATE > DATE_ADD(CURDATE(), INTERVAL -6 DAY) AND Z.CALL_INIT_DATE < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
|
||
|
AND Z.IN_CHANNEL_TYPE = 'VOICE'
|
||
|
]]>
|
||
|
<if test="oprMngCode != null and oprMngCode != ''">
|
||
|
<choose>
|
||
|
<when test="oprMngCode == 'all'">
|
||
|
<![CDATA[
|
||
|
AND Z.OPR_MNG_CODE IN
|
||
|
]]>
|
||
|
<foreach item="item" index="index" collection="oprMngCodeList" open="(" separator="," close=")">
|
||
|
#{item}
|
||
|
</foreach>
|
||
|
</when>
|
||
|
<otherwise>
|
||
|
<![CDATA[
|
||
|
AND Z.OPR_MNG_CODE = #{oprMngCode}
|
||
|
]]>
|
||
|
</otherwise>
|
||
|
</choose>
|
||
|
</if>
|
||
|
<![CDATA[
|
||
|
) a
|
||
|
RIGHT JOIN
|
||
|
(
|
||
|
SELECT
|
||
|
@N := @N +1 AS n
|
||
|
, DATE_FORMAT( DATE_ADD( DATE_ADD(CURDATE(), INTERVAL -6 DAY) , INTERVAL @N -1 DAY),'%Y-%m-%d') AS callInitDate
|
||
|
FROM (TB_CALL_INFO), (SELECT @N:=0 FROM DUAL ) a
|
||
|
LIMIT 7
|
||
|
) b ON a.callInitDate = b.callInitDate
|
||
|
ORDER BY b.callInitDate ASC
|
||
|
]]>
|
||
|
</select>
|
||
|
|
||
|
<select id="selectStatIntent" resultType="java.util.HashMap">
|
||
|
/* StatisticsDashboardMapper.selectStatIntent */
|
||
|
<![CDATA[
|
||
|
SELECT
|
||
|
b.callInitDate AS callInitDateB
|
||
|
, a.*
|
||
|
FROM
|
||
|
(
|
||
|
SELECT
|
||
|
DATE_FORMAT(Y.CALL_INIT_DATE, '%Y-%m-%d') AS callInitDate
|
||
|
, Z.*
|
||
|
FROM TB_CALL_USER_LOG Z
|
||
|
INNER JOIN TB_CALL_INFO Y
|
||
|
ON Y.TOKEN = Z.TOKEN
|
||
|
WHERE Z.USER_TEXT != ''
|
||
|
AND Z.INTENT_RESULT_CODE IS NOT NULL
|
||
|
AND Y.CALL_INIT_DATE > DATE_ADD(CURDATE(), INTERVAL -6 DAY) AND Y.CALL_INIT_DATE < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
|
||
|
AND Y.IN_CHANNEL_TYPE = 'VOICE'
|
||
|
]]>
|
||
|
<if test="oprMngCode != null and oprMngCode != ''">
|
||
|
<choose>
|
||
|
<when test="oprMngCode == 'all'">
|
||
|
<![CDATA[
|
||
|
AND Z.OPR_MNG_CODE IN
|
||
|
]]>
|
||
|
<foreach item="item" index="index" collection="oprMngCodeList" open="(" separator="," close=")">
|
||
|
#{item}
|
||
|
</foreach>
|
||
|
</when>
|
||
|
<otherwise>
|
||
|
<![CDATA[
|
||
|
AND Z.OPR_MNG_CODE = #{oprMngCode}
|
||
|
]]>
|
||
|
</otherwise>
|
||
|
</choose>
|
||
|
</if>
|
||
|
<![CDATA[
|
||
|
) a
|
||
|
RIGHT JOIN
|
||
|
(
|
||
|
SELECT
|
||
|
@N := @N +1 AS n
|
||
|
, DATE_FORMAT( DATE_ADD( DATE_ADD(CURDATE(), INTERVAL -6 DAY) , INTERVAL @N -1 DAY),'%Y-%m-%d') AS callInitDate
|
||
|
FROM (TB_CALL_INFO), (SELECT @N:=0 FROM DUAL ) a
|
||
|
LIMIT 7
|
||
|
) b ON a.callInitDate = b.callInitDate
|
||
|
ORDER BY b.callInitDate ASC
|
||
|
]]>
|
||
|
</select>
|
||
|
|
||
|
<select id="selectStatScenario" resultType="java.util.HashMap">
|
||
|
/* StatisticsDashboardMapper.selectStatScenario */
|
||
|
<![CDATA[
|
||
|
SELECT
|
||
|
b.callInitDate AS callInitDateB
|
||
|
, a.*
|
||
|
FROM
|
||
|
(
|
||
|
SELECT
|
||
|
DATE_FORMAT(Y.CALL_INIT_DATE, '%Y-%m-%d') AS callInitDate
|
||
|
, Z.*
|
||
|
FROM TB_SCENARIO_BREAK_NODE Z
|
||
|
INNER JOIN TB_CALL_INFO Y
|
||
|
ON Y.TOKEN = Z.TOKEN
|
||
|
WHERE Y.CALL_INIT_DATE > DATE_ADD(CURDATE(), INTERVAL -6 DAY) AND Y.CALL_INIT_DATE < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
|
||
|
AND Y.IN_CHANNEL_TYPE = 'VOICE'
|
||
|
]]>
|
||
|
<if test="oprMngCode != null and oprMngCode != ''">
|
||
|
<choose>
|
||
|
<when test="oprMngCode == 'all'">
|
||
|
<![CDATA[
|
||
|
AND Z.OPR_MNG_CODE IN
|
||
|
]]>
|
||
|
<foreach item="item" index="index" collection="oprMngCodeList" open="(" separator="," close=")">
|
||
|
#{item}
|
||
|
</foreach>
|
||
|
</when>
|
||
|
<otherwise>
|
||
|
<![CDATA[
|
||
|
AND Z.OPR_MNG_CODE = #{oprMngCode}
|
||
|
]]>
|
||
|
</otherwise>
|
||
|
</choose>
|
||
|
</if>
|
||
|
<![CDATA[
|
||
|
) a
|
||
|
RIGHT JOIN
|
||
|
(
|
||
|
SELECT
|
||
|
@N := @N +1 AS n
|
||
|
, DATE_FORMAT( DATE_ADD( DATE_ADD(CURDATE(), INTERVAL -6 DAY) , INTERVAL @N -1 DAY),'%Y-%m-%d') AS callInitDate
|
||
|
FROM (TB_CALL_INFO), (SELECT @N:=0 FROM DUAL ) a
|
||
|
LIMIT 7
|
||
|
) b ON a.callInitDate = b.callInitDate
|
||
|
ORDER BY b.callInitDate ASC
|
||
|
]]>
|
||
|
</select>
|
||
|
|
||
|
<select id="selectCallCntByToday" resultType="java.util.HashMap">
|
||
|
<![CDATA[
|
||
|
SELECT
|
||
|
b.callInitDate AS callInitDate
|
||
|
, IFNULL(a.totCnt, 0) AS totCnt
|
||
|
, b.n
|
||
|
FROM
|
||
|
(
|
||
|
SELECT
|
||
|
DATE_FORMAT(Z.CALL_INIT_DATE, '%H:00') AS callInitDate
|
||
|
, COUNT(*) AS totCnt
|
||
|
FROM TB_CALL_INFO Z
|
||
|
WHERE Z.CALL_INIT_DATE > CURDATE() AND Z.CALL_INIT_DATE < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
|
||
|
AND Z.IN_CHANNEL_TYPE = 'VOICE'
|
||
|
]]>
|
||
|
<if test="oprMngCode != null and oprMngCode != ''">
|
||
|
<choose>
|
||
|
<when test="oprMngCode == 'all'">
|
||
|
<![CDATA[
|
||
|
AND Z.OPR_MNG_CODE IN
|
||
|
]]>
|
||
|
<foreach item="item" index="index" collection="oprMngCodeList" open="(" separator="," close=")">
|
||
|
#{item}
|
||
|
</foreach>
|
||
|
</when>
|
||
|
<otherwise>
|
||
|
<![CDATA[
|
||
|
AND Z.OPR_MNG_CODE = #{oprMngCode}
|
||
|
]]>
|
||
|
</otherwise>
|
||
|
</choose>
|
||
|
</if>
|
||
|
<![CDATA[
|
||
|
GROUP BY DATE_FORMAT(Z.CALL_INIT_DATE, '%H')
|
||
|
) a
|
||
|
RIGHT JOIN
|
||
|
(
|
||
|
SELECT
|
||
|
@N := @N +1 AS n
|
||
|
, DATE_FORMAT( DATE_ADD( DATE_FORMAT(CURDATE(), '%Y-%m-%d 00:00') , INTERVAL @N -1 HOUR),'%H:00') AS callInitDate
|
||
|
FROM (TB_CALL_INFO), (SELECT @N:=0 FROM DUAL ) a
|
||
|
LIMIT 24
|
||
|
) b ON a.callInitDate = b.callInitDate
|
||
|
WHERE n-1 <= DATE_FORMAT(CURTIME(), '%H')
|
||
|
ORDER BY b.callInitDate ASC
|
||
|
]]>
|
||
|
</select>
|
||
|
|
||
|
<select id="selectCurCallCnt" resultType="int">
|
||
|
<![CDATA[
|
||
|
SELECT
|
||
|
COUNT(*)
|
||
|
FROM TB_CALL_INFO
|
||
|
WHERE CALL_INIT_DATE > CURDATE() AND CALL_INIT_DATE < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
|
||
|
AND IN_CHANNEL_TYPE = 'VOICE'
|
||
|
AND CALL_END_TYPE = 'ING'
|
||
|
]]>
|
||
|
<if test="oprMngCode != null and oprMngCode != ''">
|
||
|
<choose>
|
||
|
<when test="oprMngCode == 'all'">
|
||
|
<![CDATA[
|
||
|
AND OPR_MNG_CODE IN
|
||
|
]]>
|
||
|
<foreach item="item" index="index" collection="oprMngCodeList" open="(" separator="," close=")">
|
||
|
#{item}
|
||
|
</foreach>
|
||
|
</when>
|
||
|
<otherwise>
|
||
|
<![CDATA[
|
||
|
AND OPR_MNG_CODE = #{oprMngCode}
|
||
|
]]>
|
||
|
</otherwise>
|
||
|
</choose>
|
||
|
</if>
|
||
|
</select>
|
||
|
|
||
|
</mapper>
|