zss
2024-07-04 90e768e3d4e6603ca9e47c0950255ec105757883
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?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.yuanchu.mom.mapper.AuxiliaryWorkingHoursDayMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
        <id column="id" property="id"/>
        <result column="nameUser" property="nameUser"/>
        <result column="number" property="number"/>
        <result column="auxiliary_project" property="auxiliaryProject"/>
        <result column="approved_working_hour" property="approvedWorkingHour"/>
        <result column="amount" property="amount"/>
        <result column="nonproductive_time" property="nonproductiveTime"/>
        <result column="remarks" property="remarks"/>
        <result column="reviewer" property="reviewer"/>
        <result column="reviewer_number" property="reviewerNumber"/>
        <result column="reviewer_nonproductive_time" property="reviewerNonproductiveTime"/>
        <result column="reviewer_remark" property="reviewerRemark"/>
        <result column="year" property="year"/>
        <result column="shift" property="shift"/>
        <result column="week" property="week"/>
        <result column="week_day" property="weekDay"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="create_user" property="createUser"/>
        <result column="update_user" property="updateUser"/>
        <result column="state" property="state"/>
    </resultMap>
    <select id="selectAuxiliaryWorkingHoursDay" resultType="com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto">
        select A.*
        from (
        select awhd.*,name
        FROM auxiliary_working_hours_day awhd
        left join user on name_user=user.id
        WHERE name_user in(#{ids})
        <!--<if test="ids !=null and ids != ''">
            WHERE name_user in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>-->
        ) A
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDataByUser" resultType="com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto">
        select awhd.*,name
        FROM auxiliary_working_hours_day awhd
        left join user on name_user=user.id
        WHERE name_user in(#{ids})
        <!--<if test="ids !=null and ids != ''">
            WHERE name_user in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>-->
    </select>
    <select id="selectListByIds" resultType="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
        select * from auxiliary_working_hours_day
        where 1=1
        and name_user in(#{ids})
       <!-- <if test="ids !=null and ids != ''">
            and name_user in
            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                #{val}
            </foreach>
        </if>-->
    </select>
    <select id="totalHours" resultType="java.util.Map">
        select A.name,
        A.month,
        sum(A.manHour)as manHours
        from(
        select user.name,
        case when reviewer_nonproductive_time is null then nonproductive_time
        else reviewer_nonproductive_time end as manHour,
        date_time as month
        from auxiliary_working_hours_day awhd
        left join user on user.id=awhd.name_user
        left join department_lims dl on depart_lims_id=dl.id
        where date_time LIKE CONCAT('%', #{month}, '%')
        and awhd.state='已批准'
        and name_user in (#{ids})
        <!-- <if test="ids !=null and ids != ''">
             and name_user in
             <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
                 #{val}
             </foreach>
         </if>-->
        order by month,user.name
        )A
        group by A.name,A.month
        order by A.name,A.month
    </select>
</mapper>