广丰卷烟厂数采质量分析系统
zhuguifei
2026-03-04 63b4909ac5d0b7355be211cc7080673b41cdb3cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?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 &gt;= TO_TIMESTAMP(#{bo.params.beginTime}, 'YYYY-MM-DD HH24:MI:SS')
                </if>
                <if test="bo.params.endTime != null and bo.params.endTime != ''">
                    AND time &lt;= 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 &gt;= TO_TIMESTAMP(#{bo.params.beginTime}, 'YYYY-MM-DD HH24:MI:SS')
                </if>
                <if test="bo.params.endTime != null and bo.params.endTime != ''">
                    AND time &lt;= 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>