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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?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.yifu.cloud.plus.v1.business.mapper.vacation.TVacationInfoMapper">
<resultMap id="TVacationInfoVO" type="com.yifu.cloud.plus.v1.business.vo.vacation.TVacationInfoVO">
<id property="id" column="ID" jdbcType="VARCHAR"/>
<result property="businessTelecomNumber" column="BUSINESS_TELECOM_NUMBER" jdbcType="VARCHAR"/>
<result property="empName" column="EMP_NAME" jdbcType="VARCHAR"/>
<result property="empIdcard" column="EMP_IDCARD" jdbcType="VARCHAR"/>
<result property="departId" column="DEPART_ID" jdbcType="INTEGER"/>
<result property="departName" column="DEPART_NAME" jdbcType="VARCHAR"/>
<result property="vacationStatus" column="VACATION_STATUS" jdbcType="CHAR"/>
<result property="businessPost" column="BUSINESS_POST" jdbcType="VARCHAR"/>
<result property="vacationType" column="VACATION_TYPE" jdbcType="VARCHAR"/>
<result property="vacationReason" column="VACATION_REASON" jdbcType="VARCHAR"/>
<result property="vacationNote" column="VACATION_NOTE" jdbcType="VARCHAR"/>
<result property="vacationStartTime" column="VACATION_START_TIME" jdbcType="TIMESTAMP"/>
<result property="vacationEndTime" column="VACATION_END_TIME" jdbcType="TIMESTAMP"/>
<result property="vacationDuration" column="VACATION_DURATION" jdbcType="DECIMAL"/>
<result property="vacationNotUsedDuration" column="VACATION_NOT_USED_DURATION" jdbcType="DECIMAL"/>
<result property="acturalVacationEndTime" column="ACTURAL_VACATION_END_TIME" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="GetListColumnList">
a.ID,
a.BUSINESS_TELECOM_NUMBER,
(case
when a.VACATION_STATUS <![CDATA[<>]]> '4' then '3'
when now() <![CDATA[<]]> a.VACATION_START_TIME then '0'
when now() <![CDATA[>=]]> a.VACATION_START_TIME and now() <![CDATA[<=]]> a.VACATION_END_TIME then '1'
when now() <![CDATA[>]]> a.VACATION_END_TIME then '2'
else ''
end
) as VACATION_STATUS,
a.EMP_NAME,
a.EMP_IDCARD,
a.DEPART_ID,
a.BUSINESS_POST,
a.VACATION_TYPE,
a.VACATION_START_TIME,
a.VACATION_END_TIME,
a.VACATION_DURATION,
a.VACATION_REASON,
a.VACATION_NOTE,
a.VACATION_NOT_USED_DURATION,
a.ACTURAL_VACATION_END_TIME,
b.NAME as DEPART_NAME
</sql>
<sql id="GetListWhere">
1=1
<if test="query.businessTelecomNumber != null and query.businessTelecomNumber.trim() != ''">
and a.BUSINESS_TELECOM_NUMBER like concat('%',#{query.businessTelecomNumber} ,'%')
</if>
<if test="query.empName != null and query.empName.trim() != ''">
and a.EMP_NAME like concat('%',#{query.empName} ,'%')
</if>
<if test="query.empIdcard != null and query.empIdcard.trim() != ''">
and a.EMP_IDCARD like concat('%',#{query.empIdcard} ,'%')
</if>
<if test="query.businessPost != null and query.businessPost.trim() != ''">
and a.BUSINESS_POST = #{query.businessPost}
</if>
<if test="query.departId != null and query.departId != 1">
AND (b.id = #{query.departId} or b.tree_logo like concat('%-', #{query.departId},'-%'))
</if>
<if test="query.vacationType != null and query.vacationType.trim() != ''">
and a.VACATION_TYPE = #{query.vacationType}
</if>
<if test="query.vacationStartTime != null and query.vacationEndTime != null">
and
(a.VACATION_START_TIME between #{query.vacationStartTime} and #{query.vacationEndTime}
or
a.VACATION_END_TIME between #{query.vacationStartTime} and #{query.vacationEndTime}
)
</if>
<if test="query.vacationStatus != null and query.vacationStatus.trim() != ''">
<!-- 待休 -->
<if test="query.vacationStatus == '0'.toString()">
and now() <![CDATA[<]]> a.VACATION_START_TIME and a.VACATION_STATUS = '4'
</if>
<!-- 休假中 -->
<if test="query.vacationStatus == '1'.toString()">
and now() <![CDATA[>=]]> a.VACATION_START_TIME and now() <![CDATA[<=]]> a.VACATION_END_TIME and a.VACATION_STATUS = '4'
</if>
<!-- 到期待销假 -->
<if test="query.vacationStatus == '2'.toString()">
and now() <![CDATA[>]]> a.VACATION_END_TIME and a.VACATION_STATUS = '4'
</if>
<!-- 已销假 -->
<if test="query.vacationStatus == '3'.toString()">
and a.VACATION_STATUS <![CDATA[<>]]> '4'
</if>
</if>
</sql>
<select id="getListByPage" resultMap="TVacationInfoVO">
select
<include refid="GetListColumnList"/>
from hr_business.t_vacation_info a
left join hr_business.t_bus_dept b
on a.DEPART_ID = b.id
<where>
<include refid="GetListWhere"/>
</where>
order by a.CREATE_TIME desc
</select>
<select id="getDataById" resultMap="TVacationInfoVO">
select
<include refid="GetListColumnList"/>
from hr_business.t_vacation_info a
left join hr_business.t_bus_dept b
on a.DEPART_ID = b.id
where a.id = #{id}
</select>
</mapper>