Commit 79102718 authored by wujiang's avatar wujiang

提交统计代码

parent 9d79da1b
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.knowledgebase.face.orm.dao.StatisticsRecordMapper"> <mapper
namespace="com.yeejoin.amos.knowledgebase.face.orm.dao.StatisticsRecordMapper">
<update id="deleteAll"> <update id="deleteAll">
truncate table knowlege_statistics_record truncate table knowlege_statistics_record
...@@ -13,50 +14,62 @@ ...@@ -13,50 +14,62 @@
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_ADD( AND DATE(disaster_time) BETWEEN DATE_ADD(
CURDATE(), CURDATE(),
INTERVAL - DAY(CURDATE()) + 1 DAY INTERVAL - DAY(CURDATE()) + 1 DAY
) )
AND LAST_DAY(CURDATE())) AS currentMonthCount, AND LAST_DAY(CURDATE())) AS
currentMonthCount,
(SELECT (SELECT
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE
AND DATE(disaster_time) BETWEEN DATE_SUB( record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN
DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1, CURDATE() - DAY(CURDATE()) + 1,
INTERVAL 1 MONTH INTERVAL 1 MONTH
) )
AND LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH))) AS lastMonthCount, AND
LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH))) AS lastMonthCount,
(SELECT (SELECT
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB( AND DATE(disaster_time) BETWEEN DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1, CURDATE() -
DAY(CURDATE()) + 1,
INTERVAL 2 MONTH INTERVAL 2 MONTH
) )
AND LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH))) AS last2MonthCount, AND LAST_DAY(DATE_SUB(NOW(),
INTERVAL 2 MONTH))) AS last2MonthCount,
(SELECT (SELECT
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB( AND
DATE(disaster_time) BETWEEN DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1, CURDATE() - DAY(CURDATE()) + 1,
INTERVAL 1 YEAR INTERVAL 1 YEAR
) )
AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))) AS lastYearCurrentMonthCount, AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))) AS
lastYearCurrentMonthCount,
(SELECT (SELECT
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB( AND
DATE(disaster_time) BETWEEN DATE_SUB(
DATE_SUB( DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1, CURDATE() -
DAY(CURDATE()) + 1,
INTERVAL 1 MONTH INTERVAL 1 MONTH
), ),
INTERVAL 1 YEAR INTERVAL 1 YEAR
...@@ -66,13 +79,15 @@ ...@@ -66,13 +79,15 @@
DATE_SUB(CURDATE(), INTERVAL 1 YEAR), DATE_SUB(CURDATE(), INTERVAL 1 YEAR),
INTERVAL 1 MONTH INTERVAL 1 MONTH
) )
)) AS lastYearLastMonthCount, )) AS
lastYearLastMonthCount,
(SELECT (SELECT
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN CONCAT( AND DATE(disaster_time) BETWEEN
CONCAT(
YEAR(NOW()), YEAR(NOW()),
'-', '-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'), LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
...@@ -82,7 +97,8 @@ ...@@ -82,7 +97,8 @@
CONCAT( CONCAT(
YEAR(NOW()), YEAR(NOW()),
'-', '-',
LPAD(QUARTER(NOW()) * 3, 2, 0), LPAD(QUARTER(NOW()) * 3, 2,
0),
'-01' '-01'
) )
)) AS currentQuarterCount, )) AS currentQuarterCount,
...@@ -91,7 +107,8 @@ ...@@ -91,7 +107,8 @@
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB( AND
DATE(disaster_time) BETWEEN DATE_SUB(
CONCAT( CONCAT(
YEAR(NOW()), YEAR(NOW()),
'-', '-',
...@@ -104,7 +121,8 @@ ...@@ -104,7 +121,8 @@
CONCAT( CONCAT(
YEAR(NOW()), YEAR(NOW()),
'-', '-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'), LPAD((QUARTER(CURDATE()) - 1) *
3+1, 2, '0'),
'-01' '-01'
), ),
INTERVAL 1 DAY INTERVAL 1 DAY
...@@ -113,7 +131,8 @@ ...@@ -113,7 +131,8 @@
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB( AND DATE(disaster_time) BETWEEN DATE_SUB(
CONCAT( CONCAT(
YEAR(NOW()), YEAR(NOW()),
...@@ -133,19 +152,23 @@ ...@@ -133,19 +152,23 @@
) )
), ),
INTERVAL 1 YEAR INTERVAL 1 YEAR
)) AS lastYearCurrentQuarterCount, )) AS
lastYearCurrentQuarterCount,
(SELECT (SELECT
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN CONCAT(YEAR(CURDATE()), '-01-01') AND
AND CONCAT(YEAR(CURDATE()), '-12-31')) AS currentYearCount, DATE(disaster_time) BETWEEN CONCAT(YEAR(CURDATE()), '-01-01')
AND
CONCAT(YEAR(CURDATE()), '-12-31')) AS currentYearCount,
(SELECT (SELECT
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN CONCAT( AND DATE(disaster_time) BETWEEN CONCAT(
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)), YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)),
'-01-01' '-01-01'
...@@ -157,29 +180,188 @@ ...@@ -157,29 +180,188 @@
</select> </select>
<!-- 燃烧物质分类查询 --> <!-- 燃烧物质分类查询 -->
<select id="selectCategoryByName" resultType="java.util.Map" parameterType="java.lang.String"> <select id="selectCategoryByName" resultType="java.util.Map"
parameterType="java.lang.String">
SELECT SELECT
category_value category, count(1) quantity category_value category, count(1) quantity
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = #{recordName} WHERE record_name = #{recordName}
group by category_value group by
category_value
</select> </select>
<select id="selectCountByNameAndDateRange" resultType="java.util.Map" parameterType="java.util.Map"> <select id="selectCountByNameAndDateRange"
resultType="java.util.Map" parameterType="java.util.Map">
SELECT SELECT
DATE_FORMAT(disaster_time, #{format}) AS period, DATE_FORMAT(disaster_time, #{format}) AS period,
SUM(COUNT_VALUE) quantity SUM(COUNT_VALUE) quantity
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = #{recordName} WHERE
record_name = #{recordName}
<if test="dateRangeLeft != null"> <if test="dateRangeLeft != null">
AND DATE_FORMAT(disaster_time, #{format}) <![CDATA[ >= ]]> DATE_FORMAT(#{dateRangeLeft}, #{format}) AND DATE_FORMAT(disaster_time, #{format}) <![CDATA[ >= ]]>
DATE_FORMAT(#{dateRangeLeft}, #{format})
</if> </if>
<if test="dateRangeRight != null"> <if test="dateRangeRight != null">
AND DATE_FORMAT(disaster_time, #{format}) <![CDATA[ <= ]]> DATE_FORMAT(#{dateRangeRight}, #{format}) AND DATE_FORMAT(disaster_time, #{format}) <![CDATA[ <= ]]>
DATE_FORMAT(#{dateRangeRight}, #{format})
</if> </if>
GROUP BY period GROUP BY period
ORDER BY period ASC ORDER BY period ASC
</select> </select>
<select id="tagStatisticsMonth" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT * FROM (
SELECT
SUM( ktv.TAG_VALUE ) AS
datas,DATE_FORMAT(ktv.REC_DATE,'%Y-%m') AS date
FROM
knowledge_tag_value ktv
LEFT JOIN knowledge_tag_instance kti ON
kti.SEQUENCE_NBR =
ktv.INSTANCE_SEQ
WHERE
TAG_NAME = #{tag} AND
ktv.REC_DATE BETWEEN #{startDate} AND #{endDate}
GROUP BY
DATE_FORMAT(ktv.REC_DATE,'%Y-%m')
UNION all
SELECT
0 AS datas,
DATE_FORMAT( @cdate := DATE_ADD( @cdate, INTERVAL + 1 MONTH ), '%Y-%m'
) date
FROM
( SELECT @cdate := DATE_ADD( DATE_SUB( #{startDate},
INTERVAL + 2 MONTH
), INTERVAL + 1 MONTH ) FROM knowledge_tag_value )
AS t1
WHERE
@cdate &lt; DATE_SUB( #{endDate} , INTERVAL + 0 MONTH )
) as
t2
GROUP BY date ASC
</select>
<select id="tagStatisticsYear" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT * FROM (
SELECT
SUM( ktv.TAG_VALUE ) AS
datas,DATE_FORMAT(ktv.REC_DATE,'%Y') AS date
FROM
knowledge_tag_value
ktv
LEFT JOIN knowledge_tag_instance kti ON kti.SEQUENCE_NBR =
ktv.INSTANCE_SEQ
WHERE
TAG_NAME = #{tag} AND ktv.REC_DATE BETWEEN
#{startDate} AND #{endDate}
GROUP BY
DATE_FORMAT(ktv.REC_DATE,'%Y')
UNION all
SELECT
0 AS datas,
DATE_FORMAT( @cdate := DATE_ADD( @cdate,
INTERVAL + 1 YEAR ), '%Y' ) date
FROM
( SELECT @cdate := DATE_ADD(
DATE_SUB( #{startDate}, INTERVAL + 2 YEAR
), INTERVAL + 1 YEAR ) FROM
knowledge_tag_value ) AS t1
WHERE
@cdate &lt; DATE_SUB( #{endDate} ,
INTERVAL + 0 YEAR )
) as t2
GROUP BY date ASC
</select>
<select id="docStatisticsMonth" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT * FROM (
SELECT
COUNT(1) AS datas,DATE_FORMAT(kdc.REC_DATE,'%Y-%m')AS date
FROM
knowledge_doc_content kdc
LEFT JOIN knowledge_doc_category kdca ON
kdca.SEQUENCE_NBR=kdc.DIRECTORY_ID
WHERE
kdc.REC_DATE BETWEEN #{startDate} AND #{endDate}
<if test="categoryName != null and categoryName != ''">
AND kdca.CATEGORY_NAME=#{categoryName}
</if>
GROUP BY
DATE_FORMAT(kdc.REC_DATE,'%Y-%m')
UNION all
SELECT
0 AS datas,
DATE_FORMAT( @cdate := DATE_ADD( @cdate, INTERVAL + 1 MONTH ), '%Y-%m' ) date
FROM
( SELECT @cdate := DATE_ADD( DATE_SUB(#{startDate}, INTERVAL + 2 MONTH
), INTERVAL + 1 MONTH ) FROM knowledge_tag_value ) AS t1
WHERE
@cdate &lt; DATE_SUB(#{endDate}, INTERVAL + 0 MONTH )
) AS t2
GROUP BY date ASC
</select>
<select id="docStatisticsYear" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT * FROM (
SELECT
COUNT(1) AS datas,DATE_FORMAT(kdc.REC_DATE,'%Y')AS date
FROM
knowledge_doc_content kdc
LEFT JOIN knowledge_doc_category kdca ON
kdca.SEQUENCE_NBR=kdc.DIRECTORY_ID
WHERE
kdc.REC_DATE BETWEEN #{startDate} AND #{endDate}
<if test="categoryName != null and categoryName != ''">
AND kdca.CATEGORY_NAME=#{categoryName}
</if>
GROUP BY
DATE_FORMAT(kdc.REC_DATE,'%Y')
UNION all
SELECT
0 AS datas,
DATE_FORMAT( @cdate := DATE_ADD( @cdate, INTERVAL + 1 MONTH ), '%Y') date
FROM
( SELECT @cdate := DATE_ADD( DATE_SUB(#{startDate}, INTERVAL + 2 MONTH
), INTERVAL + 1 MONTH ) FROM knowledge_tag_value ) AS t1
WHERE
@cdate &lt; DATE_SUB(#{endDate}, INTERVAL + 0 MONTH )
) AS t2
GROUP BY date ASC
</select>
<select id="tagChartStatistics" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT
COUNT(1) AS datas,${splitSQL} AS level
FROM
knowledge_doc_content kdc
LEFT JOIN knowledge_tag_instance kti ON kti.TARGET_SEQ = kdc.SEQUENCE_NBR
LEFT JOIN knowledge_tag_value ktv ON kti.SEQUENCE_NBR =
ktv.INSTANCE_SEQ
WHERE
TAG_NAME = #{tag} AND ktv.REC_DATE BETWEEN #{startDate}AND #{endDate}
GROUP BY
${splitSQL}
</select>
<select id="docChartStatistics" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT
COUNT(1) AS datas,kdca.CATEGORY_NAME AS categoryName
FROM
knowledge_doc_content kdc
LEFT JOIN knowledge_doc_category kdca ON
kdca.SEQUENCE_NBR=kdc.DIRECTORY_ID
WHERE
kdc.REC_DATE BETWEEN #{startDate} AND #{endDate}
GROUP BY
kdca.CATEGORY_NAME
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment