<?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="org.springblade.modules.traceability.mapper.SweepRecordMapper">
|
|
<!--自定义查询溯源码扫描记录分页数据-->
|
<select id="selectSweepRecordPage" resultType="org.springblade.modules.traceability.vo.SweepRecordVO">
|
select * from sys_sweep_record
|
where 1=1
|
</select>
|
|
<!--获取扫描次数统计数据-->
|
<select id="getSweepRecordStatistics" resultType="java.lang.Integer">
|
select count(*) from sys_sweep_record ssr left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
WHERE DAY(ssr.create_time) = NOW()
|
and sl.farm_id = #{sweepRecord.farmId}
|
union all
|
select count(*) from sys_sweep_record ssr left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
WHERE TO_DAYS( NOW( ) ) - TO_DAYS( ssr.create_time) = 1
|
and sl.farm_id = #{sweepRecord.farmId}
|
union all
|
select count(*) from sys_sweep_record ssr left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
WHERE YEARWEEK(date_format(ssr.create_time,'%Y-%m-%d')) = YEARWEEK(now())
|
and sl.farm_id = #{sweepRecord.farmId}
|
union all
|
select count(*) from sys_sweep_record ssr left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
WHERE YEARWEEK(date_format(ssr.create_time,'%Y-%m-%d')) = YEARWEEK(now())-1
|
and sl.farm_id = #{sweepRecord.farmId}
|
union all
|
select count(*) from sys_sweep_record ssr left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
WHERE DATE_FORMAT( ssr.create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
|
and sl.farm_id = #{sweepRecord.farmId}
|
union all
|
select count(*) from sys_sweep_record ssr left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( ssr.create_time, '%Y%m' ) ) =1
|
and sl.farm_id = #{sweepRecord.farmId}
|
</select>
|
|
|
<!--获取扫描次数统计数据(日统计)-->
|
<select id="getSweepRecordStatisticsByDay" resultType="org.springblade.modules.traceability.dto.SweepRecordStatisticDTO">
|
select a.order_hour as time, ifnull(b.num, 0) as num
|
from (
|
SELECT 0 AS order_hour UNION ALL SELECT 1 AS order_hour UNION ALL
|
SELECT 2 AS order_hour UNION ALL SELECT 3 AS order_hour UNION ALL
|
SELECT 4 AS order_hour UNION ALL SELECT 5 AS order_hour UNION ALL
|
SELECT 6 AS order_hour UNION ALL SELECT 7 AS order_hour UNION ALL
|
SELECT 8 AS order_hour UNION ALL SELECT 9 AS order_hour UNION ALL
|
SELECT 10 AS order_hour UNION ALL SELECT 11 AS order_hour UNION ALL
|
SELECT 12 AS order_hour UNION ALL SELECT 13 AS order_hour UNION ALL
|
SELECT 14 AS order_hour UNION ALL SELECT 15 AS order_hour UNION ALL
|
SELECT 16 AS order_hour UNION ALL SELECT 17 AS order_hour UNION ALL
|
SELECT 18 AS order_hour UNION ALL SELECT 19 AS order_hour UNION ALL
|
SELECT 20 AS order_hour UNION ALL SELECT 21 AS order_hour UNION ALL
|
SELECT 22 AS order_hour UNION ALL SELECT 23 AS order_hour
|
) as a
|
LEFT JOIN
|
(
|
SELECT HOUR(ssr.create_time) AS order_hour, count(*) AS num from sys_sweep_record ssr
|
left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
WHERE ssr.create_time >= str_to_date(concat(#{sweepRecord.time},' 00:00:00'),'%Y-%m-%d %T')
|
AND ssr.create_time<= str_to_date(concat(#{sweepRecord.time},' 23:59:59'),'%Y-%m-%d %T')
|
and sl.farm_id = #{sweepRecord.farmId}
|
GROUP BY order_hour
|
) b ON a.order_hour=b.order_hour
|
ORDER BY a.order_hour
|
</select>
|
|
<!--获取扫描次数统计数据(月统计)-->
|
<select id="getSweepRecordStatisticsByMonth" resultType="org.springblade.modules.traceability.dto.SweepRecordStatisticDTO">
|
SELECT lefttable.date time,
|
IFNULL(righttable.m, '0') AS num
|
FROM (
|
SELECT ADDDATE(y.FIRST, x.d - 1) AS date
|
FROM
|
(
|
SELECT
|
1 AS d UNION ALL
|
SELECT
|
2 UNION ALL
|
SELECT
|
3 UNION ALL
|
SELECT
|
4 UNION ALL
|
SELECT
|
5 UNION ALL
|
SELECT
|
6 UNION ALL
|
SELECT
|
7 UNION ALL
|
SELECT
|
8 UNION ALL
|
SELECT
|
9 UNION ALL
|
SELECT
|
10 UNION ALL
|
SELECT
|
11 UNION ALL
|
SELECT
|
12 UNION ALL
|
SELECT
|
13 UNION ALL
|
SELECT
|
14 UNION ALL
|
SELECT
|
15 UNION ALL
|
SELECT
|
16 UNION ALL
|
SELECT
|
17 UNION ALL
|
SELECT
|
18 UNION ALL
|
SELECT
|
19 UNION ALL
|
SELECT
|
20 UNION ALL
|
SELECT
|
21 UNION ALL
|
SELECT
|
22 UNION ALL
|
SELECT
|
23 UNION ALL
|
SELECT
|
24 UNION ALL
|
SELECT
|
25 UNION ALL
|
SELECT
|
26 UNION ALL
|
SELECT
|
27 UNION ALL
|
SELECT
|
28 UNION ALL
|
SELECT
|
29 UNION ALL
|
SELECT
|
30 UNION ALL
|
SELECT
|
31
|
) x,
|
( SELECT CONCAT( #{sweepRecord.time}, '-01' ) AS FIRST, DAY ( LAST_DAY( str_to_date( concat(#{sweepRecord.time},'-01'), '%Y-%m-%d' ) ) ) AS
|
last ) y
|
WHERE
|
x.d <= y.last
|
AND ADDDATE( y.FIRST
|
, x.d - 1 ) <= CURDATE()
|
) AS lefttable
|
LEFT JOIN (
|
SELECT
|
IFNULL( COUNT( * ), 0 ) AS m,
|
DATE_FORMAT( ssr.create_time, '%Y-%c-%d' ) AS gptime
|
FROM
|
sys_sweep_record ssr left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
WHERE
|
DATE_FORMAT( ssr.create_time, '%Y-%m' ) = #{sweepRecord.time}
|
and sl.farm_id = #{sweepRecord.farmId}
|
GROUP BY gptime
|
) AS righttable ON DATE_FORMAT(lefttable.date, '%Y-%c-%d') = righttable.gptime
|
</select>
|
|
<!--获取扫描次数统计数据(年统计)-->
|
<select id="getSweepRecordStatisticsByYear" resultType="org.springblade.modules.traceability.dto.SweepRecordStatisticDTO">
|
select m.id time, IFNULL(b,0) num from
|
(
|
select 1 as id union
|
select 2 union
|
select 3 union
|
select 4 union
|
select 5 union
|
select 6 union
|
select 7 union
|
select 8 union
|
select 9 union
|
select 10 union
|
select 11 union
|
select 12
|
) m
|
left join
|
(
|
select month(ssr.create_time) a,count(*) b from sys_sweep_record ssr
|
left join sys_traceability st on ssr.code = st.id
|
left join sys_recovery sr on sr.id = st.recovery_id
|
left join sys_land sl on sl.id = sr.land_id
|
where year(ssr.create_time) = #{sweepRecord.farmId}
|
and sl.farm_id = #{sweepRecord.farmId}
|
GROUP BY month(ssr.create_time)
|
) n
|
on m.id = n.a
|
order by id
|
</select>
|
</mapper>
|