yangys
2025-11-18 8e944cfabb253fc2556588e308e282586043f7b0
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
70
71
72
<?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.smis.mapper.WorkstationWorkbenchMapper">
 
    <resultMap id="workstationOfWorkbenchVO" type="com.qianwen.smartman.modules.smis.vo.WorkstationOfWorkbenchVO">
        <result column="workstationCode" property="workstationCode"/>
        <result column="workstationName" property="workstationName"/>
        <result column="workstationId" property="workstationId"/>
        <collection property="workstationWorkbenchVOList" ofType="com.qianwen.smartman.modules.smis.vo.WorkstationWorkbenchVO">
            <id column="id" property="id"/>
            <result column="name" property="name"/>
            <result column="sort" property="sort"/>
        </collection>
    </resultMap>
 
    <select id="listByGroupId" resultMap="workstationOfWorkbenchVO">
        SELECT
            bww.*,
            bw.id workstationId,
            bw.code workstationCode,
            bw.name workstationName
        FROM
            blade_workstation_workbench bww
                LEFT JOIN blade_workstation bw ON bww.workstation_id = bw.id and bw.status = 1
                LEFT JOIN blade_common_group_of_item gi ON bw.id = gi.item_id
                LEFT JOIN blade_common_group cg ON cg.id = gi.group_id
        WHERE bww.is_deleted = 0
          AND bw.is_deleted = 0
        <if test="groupIds != null and groupIds.size > 0">
            AND cg.id IN
            <foreach collection="groupIds" item="groupId" open="(" separator="," close=")">
                #{groupId}
            </foreach>
            AND cg.is_deleted = 0
        </if>
        <if test="keyWord != null and keyWord != ''">
            and (bw.code Like concat(#{keyWord},'%') or bw.name Like concat(#{keyWord},'%'))
        </if>
        ORDER BY bww.sort
    </select>
    <select id="listByGroupIdAndWorkstationNotIn" resultMap="workstationOfWorkbenchVO">
        SELECT
        bww.*,
        bw.id workstationId,
        bw.code workstationCode,
        bw.name workstationName
        FROM
        blade_workstation_workbench bww
        LEFT JOIN blade_workstation bw ON bww.workstation_id = bw.id and bw.status = 1
        LEFT JOIN blade_common_group_of_item gi ON bw.id = gi.item_id
        LEFT JOIN blade_common_group cg ON cg.id = gi.group_id
        WHERE bww.is_deleted = 0
        AND bw.is_deleted = 0
        AND cg.is_deleted = 0
        <if test="groupIds != null and groupIds.size > 0">
            AND cg.id IN
            <foreach collection="groupIds" item="groupId" open="(" separator="," close=")">
                #{groupId}
            </foreach>
        </if>
        <if test="workstationIdList != null and workstationIdList.size > 0">
            AND bww.workstation_id NOT IN
            <foreach collection="workstationIdList" item="workstationId" open="(" separator="," close=")">
               #{workstationId}
            </foreach>
        </if>
        <if test="keyWord != null and keyWord != ''">
            and (bw.code Like concat(#{keyWord},'%') or bw.name Like concat(#{keyWord},'%'))
        </if>
        ORDER BY bww.sort
    </select>
</mapper>