<?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.dromara.qa.analy.mapper.RollerTimeDataMapper">
|
|
<select id="selectSampledList" resultType="org.dromara.qa.analy.domain.vo.RollerTimeDataVo">
|
WITH roller_minute AS (
|
SELECT
|
*,
|
ROW_NUMBER() OVER (
|
PARTITION BY equ_no, TO_CHAR(time, 'YYYYMMDDHH24MI')
|
ORDER BY time ASC
|
) AS rn
|
FROM roller_time_data
|
<where>
|
<if test="bo.equNo != null">
|
AND equ_no = #{bo.equNo}
|
</if>
|
<if test="bo.shift != null">
|
AND shift = #{bo.shift}
|
</if>
|
<if test="bo.params.beginTime != null and bo.params.beginTime != ''">
|
AND time >= TO_TIMESTAMP(#{bo.params.beginTime}, 'YYYY-MM-DD HH24:MI:SS')
|
</if>
|
<if test="bo.params.endTime != null and bo.params.endTime != ''">
|
AND time <= TO_TIMESTAMP(#{bo.params.endTime}, 'YYYY-MM-DD HH24:MI:SS')
|
</if>
|
</where>
|
),
|
packer_minute AS (
|
SELECT
|
equ_no,
|
time,
|
ts_qty,
|
qty,
|
ROW_NUMBER() OVER (
|
PARTITION BY equ_no, TO_CHAR(time, 'YYYYMMDDHH24MI')
|
ORDER BY time ASC
|
) AS rn
|
FROM packer_time_data
|
<where>
|
<if test="bo.equNo != null">
|
AND equ_no = (#{bo.equNo}::integer + 100)
|
</if>
|
<if test="bo.shift != null">
|
AND shift = #{bo.shift}
|
</if>
|
<if test="bo.params.beginTime != null and bo.params.beginTime != ''">
|
AND time >= TO_TIMESTAMP(#{bo.params.beginTime}, 'YYYY-MM-DD HH24:MI:SS')
|
</if>
|
<if test="bo.params.endTime != null and bo.params.endTime != ''">
|
AND time <= TO_TIMESTAMP(#{bo.params.endTime}, 'YYYY-MM-DD HH24:MI:SS')
|
</if>
|
</where>
|
)
|
SELECT
|
r.*,
|
p.ts_qty AS tsQty,
|
p.qty AS packerQty
|
FROM roller_minute r
|
LEFT JOIN packer_minute p ON p.equ_no = (r.equ_no + 100)
|
AND TO_CHAR(p.time, 'YYYYMMDDHH24MI') = TO_CHAR(r.time, 'YYYYMMDDHH24MI')
|
AND p.rn = 1
|
WHERE r.rn = 1
|
ORDER BY r.time ASC
|
</select>
|
|
</mapper>
|