yangys
2024-04-02 1a77b1a7c072b136925d6d73c4d8f017ca016e3a
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
<?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.qianwen.smartman.modules.trace.mapper.TraceCatalogMapper">
 
    <select id="traceCatalogPage" resultType="com.qianwen.smartman.modules.trace.entity.TraceCatalog">
        select
        tc.id,
        tc.part_no,
        tc.batch_number,
        tc.online_time,
        tc.offline_time,
        tc.qualified,
        tc.is_rework_part,
        tc.shift_index,
        tc.shift_index_name,
        tc.plan_id,
        tc.trace_status,
        tc.workstation_group_id
        from blade_trace_catalog tc
        <where>
            <if test="searchVO.keywords != null and searchVO.keywords != ''">
                (tc.part_no like concat(#{searchVO.keywords},'%') or tc.batch_number like concat(#{searchVO.keywords},'%') )
            </if>
            <if test="searchVO.workstationId != null and searchVO.workstationId != ''">
                AND exists ( select * from blade_trace_flow_record tfr where tfr.part_no=tc.part_no and tfr.workstation_id = #{searchVO.workstationId} )
            </if>
            <if test="searchVO.workstationGroupIds != null and searchVO.workstationGroupIds.size() > 0 ">
                AND tc.workstation_group_id in
                <foreach collection="searchVO.workstationGroupIds" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
            <if test="searchVO.onlineStartTime != null and searchVO.onlineEndTime != null">
                and tc.online_time between #{searchVO.onlineStartTime} and #{searchVO.onlineEndTime}
            </if>
            <if test="searchVO.offlineStartTime != null and searchVO.offlineEndTime != null">
                and tc.offline_time between #{searchVO.offlineStartTime} and #{searchVO.offlineEndTime}
            </if>
        </where>
        order by tc.online_time desc
    </select>
    <select id="countRelatedCatalog" resultType="java.lang.Long"
            parameterType="com.qianwen.smartman.modules.trace.vo.TraceCatalogSearchVO">
        select
        count(*)
        from blade_trace_catalog tc
        <where>
            <if test="searchVO.keywords != null and searchVO.keywords != ''">
                (tc.part_no like concat(#{searchVO.keywords},'%') or tc.batch_number like concat(#{searchVO.keywords},'%') )
            </if>
            <if test="searchVO.workstationId != null and searchVO.workstationId != ''">
                AND exists ( select * from blade_trace_flow_record tfr where tfr.part_no=tc.part_no and tfr.workstation_id = #{searchVO.workstationId} )
            </if>
            <if test="searchVO.workstationGroupIds != null and searchVO.workstationGroupIds.size() > 0 ">
                AND tc.workstation_group_id in
                <foreach collection="searchVO.workstationGroupIds" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
            <if test="searchVO.onlineStartTime != null and searchVO.onlineEndTime != null">
                and tc.online_time between #{searchVO.onlineStartTime} and #{searchVO.onlineEndTime}
            </if>
            <if test="searchVO.offlineStartTime != null and searchVO.offlineEndTime != null">
                and tc.offline_time between #{searchVO.offlineStartTime} and #{searchVO.offlineEndTime}
            </if>
        </where>
    </select>
</mapper>