Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
79102718
Commit
79102718
authored
Jul 08, 2022
by
wujiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交统计代码
parent
9d79da1b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
361 additions
and
179 deletions
+361
-179
StatisticsRecordMapper.xml
...base/src/main/resources/mapper/StatisticsRecordMapper.xml
+361
-179
No files found.
amos-boot-system-knowledgebase/src/main/resources/mapper/StatisticsRecordMapper.xml
View file @
79102718
<?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=
"com.yeejoin.amos.knowledgebase.face.orm.dao.StatisticsRecordMapper"
>
<mapper
namespace=
"com.yeejoin.amos.knowledgebase.face.orm.dao.StatisticsRecordMapper"
>
<update
id=
"deleteAll"
>
truncate table knowlege_statistics_record
</update>
<update
id=
"deleteAll"
>
truncate table knowlege_statistics_record
</update>
<!-- 灾情数量同比环比 -->
<select
id=
"selectDisasterCount"
resultType=
"java.util.Map"
>
SELECT
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_ADD(
CURDATE(),
INTERVAL - DAY(CURDATE()) + 1 DAY
)
AND LAST_DAY(CURDATE())) AS currentMonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1,
INTERVAL 1 MONTH
)
AND LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH))) AS lastMonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1,
INTERVAL 2 MONTH
)
AND LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH))) AS last2MonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1,
INTERVAL 1 YEAR
)
AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))) AS lastYearCurrentMonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB(
DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1,
INTERVAL 1 MONTH
),
INTERVAL 1 YEAR
)
AND LAST_DAY(
DATE_SUB(
DATE_SUB(CURDATE(), INTERVAL 1 YEAR),
INTERVAL 1 MONTH
)
)) AS lastYearLastMonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN CONCAT(
YEAR(NOW()),
'-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
'-01'
)
AND LAST_DAY(
CONCAT(
YEAR(NOW()),
'-',
LPAD(QUARTER(NOW()) * 3, 2, 0),
'-01'
)
)) AS currentQuarterCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB(
CONCAT(
YEAR(NOW()),
'-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
'-01'
),
INTERVAL 1 QUARTER
)
AND DATE_SUB(
CONCAT(
YEAR(NOW()),
'-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
'-01'
),
INTERVAL 1 DAY
)) AS lastQuarterCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB(
CONCAT(
YEAR(NOW()),
'-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
'-01'
),
INTERVAL 1 YEAR
)
AND DATE_SUB(
LAST_DAY(
CONCAT(
YEAR(NOW()),
'-',
LPAD(QUARTER(NOW()) * 3, 2, 0),
'-01'
)
),
INTERVAL 1 YEAR
)) AS lastYearCurrentQuarterCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN CONCAT(YEAR(CURDATE()), '-01-01')
AND CONCAT(YEAR(CURDATE()), '-12-31')) AS currentYearCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN CONCAT(
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)),
'-01-01'
)
AND CONCAT(
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)),
'-12-31'
)) AS lastYearCount
</select>
<!-- 灾情数量同比环比 -->
<select
id=
"selectDisasterCount"
resultType=
"java.util.Map"
>
SELECT
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_ADD(
CURDATE(),
INTERVAL - DAY(CURDATE()) + 1 DAY
)
AND LAST_DAY(CURDATE())) AS
currentMonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE
record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN
DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1,
INTERVAL 1 MONTH
)
AND
LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH))) AS lastMonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB(
CURDATE() -
DAY(CURDATE()) + 1,
INTERVAL 2 MONTH
)
AND LAST_DAY(DATE_SUB(NOW(),
INTERVAL 2 MONTH))) AS last2MonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND
DATE(disaster_time) BETWEEN DATE_SUB(
CURDATE() - DAY(CURDATE()) + 1,
INTERVAL 1 YEAR
)
AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))) AS
lastYearCurrentMonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND
DATE(disaster_time) BETWEEN DATE_SUB(
DATE_SUB(
CURDATE() -
DAY(CURDATE()) + 1,
INTERVAL 1 MONTH
),
INTERVAL 1 YEAR
)
AND LAST_DAY(
DATE_SUB(
DATE_SUB(CURDATE(), INTERVAL 1 YEAR),
INTERVAL 1 MONTH
)
)) AS
lastYearLastMonthCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN
CONCAT(
YEAR(NOW()),
'-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
'-01'
)
AND LAST_DAY(
CONCAT(
YEAR(NOW()),
'-',
LPAD(QUARTER(NOW()) * 3, 2,
0),
'-01'
)
)) AS currentQuarterCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND
DATE(disaster_time) BETWEEN DATE_SUB(
CONCAT(
YEAR(NOW()),
'-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
'-01'
),
INTERVAL 1 QUARTER
)
AND DATE_SUB(
CONCAT(
YEAR(NOW()),
'-',
LPAD((QUARTER(CURDATE()) - 1) *
3+1, 2, '0'),
'-01'
),
INTERVAL 1 DAY
)) AS lastQuarterCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN DATE_SUB(
CONCAT(
YEAR(NOW()),
'-',
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
'-01'
),
INTERVAL 1 YEAR
)
AND DATE_SUB(
LAST_DAY(
CONCAT(
YEAR(NOW()),
'-',
LPAD(QUARTER(NOW()) * 3, 2, 0),
'-01'
)
),
INTERVAL 1 YEAR
)) AS
lastYearCurrentQuarterCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND
DATE(disaster_time) BETWEEN CONCAT(YEAR(CURDATE()), '-01-01')
AND
CONCAT(YEAR(CURDATE()), '-12-31')) AS currentYearCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN CONCAT(
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)),
'-01-01'
)
AND CONCAT(
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)),
'-12-31'
)) AS lastYearCount
</select>
<!-- 燃烧物质分类查询 -->
<select
id=
"selectCategoryByName"
resultType=
"java.util.Map"
parameterType=
"java.lang.String"
>
SELECT
category_value category, count(1) quantity
FROM
knowlege_statistics_record
WHERE record_name = #{recordName}
group by category_value
</select>
<select
id=
"selectCountByNameAndDateRange"
resultType=
"java.util.Map"
parameterType=
"java.util.Map"
>
SELECT
DATE_FORMAT(disaster_time, #{format}) AS period,
SUM(COUNT_VALUE) quantity
FROM
knowlege_statistics_record
WHERE record_name = #{recordName}
<if
test=
"dateRangeLeft != null"
>
AND DATE_FORMAT(disaster_time, #{format})
<![CDATA[ >= ]]>
DATE_FORMAT(#{dateRangeLeft}, #{format})
</if>
<if
test=
"dateRangeRight != null"
>
AND DATE_FORMAT(disaster_time, #{format})
<![CDATA[ <= ]]>
DATE_FORMAT(#{dateRangeRight}, #{format})
</if>
GROUP BY period
ORDER BY period ASC
</select>
<!-- 燃烧物质分类查询 -->
<select
id=
"selectCategoryByName"
resultType=
"java.util.Map"
parameterType=
"java.lang.String"
>
SELECT
category_value category, count(1) quantity
FROM
knowlege_statistics_record
WHERE record_name = #{recordName}
group by
category_value
</select>
<select
id=
"selectCountByNameAndDateRange"
resultType=
"java.util.Map"
parameterType=
"java.util.Map"
>
SELECT
DATE_FORMAT(disaster_time, #{format}) AS period,
SUM(COUNT_VALUE) quantity
FROM
knowlege_statistics_record
WHERE
record_name = #{recordName}
<if
test=
"dateRangeLeft != null"
>
AND DATE_FORMAT(disaster_time, #{format})
<![CDATA[ >= ]]>
DATE_FORMAT(#{dateRangeLeft}, #{format})
</if>
<if
test=
"dateRangeRight != null"
>
AND DATE_FORMAT(disaster_time, #{format})
<![CDATA[ <= ]]>
DATE_FORMAT(#{dateRangeRight}, #{format})
</if>
GROUP BY period
ORDER BY period ASC
</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
<
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
<
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
<
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
<
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>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment