李林
2023-10-07 658d4927d468c47208fd012d9128b09249c07eff
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
<?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.chinaztt.mes.production.mapper.HandymanTableMapper">
 
    <resultMap id="handymanTableMap" type="com.chinaztt.mes.production.dto.HandymanTableDTO">
        <id property="id" column="id"/>
        <result property="handymanType" column="handyman_type"/>
        <result property="workload" column="workload"/>
        <result property="workloadUnit" column="workload_unit"/>
        <result property="staffName" column="staff_name"/>
        <result property="staffNo" column="staff_no"/>
    </resultMap>
 
    <select id="selectByWorkstationId" resultMap="handymanTableMap">
        select oht."id",oht.handyman_type,oht.workload,oht.workload_unit,
        string_agg(bs.staff_no,',') staff_no,string_agg(bs.staff_name,',') staff_name
        from production_handyman_table oht
        left join production_join_person_handyman ojph on ojph.handyman_table_id=oht."id"
        left join production_person_board opd on opd."id"=ojph.person_board_id
        left join basic_staff bs on bs."id"=opd.staff_id
        where exists(select 1 from production_person_board pd
        left join production_join_person_handyman ojph on ojph.person_board_id=pd."id"
        where pd.status='01working' and pd.workstation_id=#{workstationId} and ojph.handyman_table_id=oht."id")
        group by oht."id",oht.handyman_type,oht.workload,oht.workload_unit
    </select>
 
    <select id="getDtoById" resultMap="handymanTableMap">
        select oht."id",oht.handyman_type,oht.workload,oht.workload_unit,
        string_agg(bs.staff_no,',') staff_no,string_agg(bs.staff_name,',') staff_name
        from production_handyman_table oht
        left join production_join_person_handyman ojph on ojph.handyman_table_id=oht."id"
        left join production_person_board opd on opd."id"=ojph.person_board_id
        left join basic_staff bs on bs."id"=opd.staff_id
        where oht."id"=#{id}
        group by oht."id",oht.handyman_type,oht.workload,oht.workload_unit
    </select>
</mapper>