Files
platform/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml

164 lines
7.0 KiB
XML
Raw Normal View History

2025-02-18 14:15:00 +08:00
<?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.ruoyi.bgt.mapper.BgtProjectRecruitApplyMapper">
<resultMap type="com.ruoyi.bgt.domain.BgtProjectRecruitApply" id="BgtProjectRecruitApplyResult">
<result property="id" column="id"/>
<result property="recruitId" column="recruit_id"/>
<result property="userId" column="user_id"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="appQueryList" resultType="com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO">
2025-02-22 13:42:15 +08:00
select bpra.id,
bpra.entry_time,
2025-03-05 16:08:51 +08:00
bpra.leave_time,
2025-02-27 14:43:21 +08:00
bpra.recruit_id,
2025-02-22 13:42:15 +08:00
wu.user_id,
wu.phone,
wu.score,
wu.avatar_name,
wu.username,
2025-02-26 18:43:45 +08:00
bpra.status,
2025-02-22 13:42:15 +08:00
wu.type_of_work,
bpr.recruit_name,
2025-03-05 16:08:51 +08:00
fpt.task_name,
2025-03-06 14:30:45 +08:00
bpr.task_id,
2025-03-05 16:08:51 +08:00
wsr.score as hasScore
2025-02-18 14:15:00 +08:00
from bgt_project_recruit_apply bpra
2025-02-22 13:42:15 +08:00
left join wgz_user wu on bpra.user_id = wu.user_id
left join bgt_project_recruit bpr on bpr.id = bpra.recruit_id
left join fbs_project_task fpt on fpt.id = bpr.task_id
2025-03-06 14:30:45 +08:00
left join wgz_score_record wsr on bpra.user_id = wsr.user_id and bpra.recruit_id = wsr.recruit_id
2025-02-22 13:42:15 +08:00
<where>
<if test="dto.username !=null and dto.username !='' ">
and wu.username like concat('%', #{dto.username}, '%')
</if>
<if test="dto.recruitIds != null and dto.recruitIds.size() > 0">
AND bpra.recruit_id IN
<foreach collection="dto.recruitIds" item="recruitId" open="(" separator="," close=")">
#{recruitId}
</foreach>
</if>
<if test="dto.status != null and dto.status.size() > 0">
AND bpra.status IN
<foreach collection="dto.status" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
2025-03-06 14:30:45 +08:00
<if test="dto.date != null">
AND (entry_time between #{dto.beginDate} and #{dto.endDate}) or (leave_time between #{dto.beginDate} and #{dto.endDate})
</if>
2025-02-22 13:42:15 +08:00
</where>
2025-02-26 18:43:45 +08:00
order by bpra.create_time desc,bpra.status asc
2025-02-22 13:42:15 +08:00
</select>
2025-03-04 17:01:15 +08:00
<select id="dayAttendanceList" resultType="com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO">
2025-02-22 13:42:15 +08:00
select bpra.id,
bpra.entry_time,
wu.user_id,
wu.phone,
wu.score,
wu.avatar_name,
wu.username,
wu.type_of_work,
bpr.recruit_name,
2025-03-04 17:01:15 +08:00
fpt.task_name,
CASE
WHEN wa.leave_mark_id is not null THEN '请假'
WHEN wa.late =1 THEN '迟到'
WHEN wa.early_leave =1 THEN '早退'
WHEN wa.missed_in = 0 OR wa.missed_out = 0 THEN '出勤'
2025-03-05 09:17:22 +08:00
ELSE '缺勤'
2025-03-04 17:01:15 +08:00
END AS attendance_status
2025-02-22 13:42:15 +08:00
from wgz_attendance wa
left join wgz_user wu on wa.user_id = wu.user_id
left join bgt_project_recruit_apply bpra on wa.recruit_id = bpra.recruit_id and bpra.user_id = wa.user_id
left join bgt_project_recruit bpr on bpr.id = bpra.recruit_id
left join fbs_project_task fpt on fpt.id = bpr.task_id
2025-02-25 17:13:38 +08:00
where wa.date = #{dto.date}
2025-02-22 13:42:15 +08:00
<if test="dto.attendanceType !=null and dto.attendanceType ==1 ">
2025-03-04 17:01:15 +08:00
and (wa.missed_in =0 or wa.missed_out = 0 )
2025-02-22 13:42:15 +08:00
</if>
<if test="dto.attendanceType !=null and dto.attendanceType ==2 ">
2025-03-04 17:01:15 +08:00
and (wa.missed_in =1 and wa.missed_out = 1)
2025-02-18 17:25:21 +08:00
</if>
2025-02-22 13:42:15 +08:00
<if test="dto.attendanceType !=null and dto.attendanceType ==3 ">
and wa.late =1
2025-02-18 17:25:21 +08:00
</if>
2025-02-18 14:15:00 +08:00
</select>
2025-03-05 09:17:22 +08:00
<select id="todayAttendanceList" resultType="com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO">
SELECT bpra.id,
2025-03-06 16:22:37 +08:00
bpra.entry_time,
bpra.user_id,
wu.phone,
wu.score,
wu.avatar_name,
wu.username,
wu.type_of_work,
bpr.recruit_name,
fpt.task_name,
CASE
WHEN wa.leave_mark_id = 1 THEN '请假'
WHEN wa.late = 0 and wa.early_leave = 0 and wa.missed_in = 0 and wa.missed_out = 0 THEN '正常'
WHEN wa.late = 1 or wa.early_leave = 1 or wa.missed_in = 1 or wa.missed_out = 1 THEN '异常'
ELSE '异常'
END AS attendance_status
2025-03-05 09:17:22 +08:00
FROM bgt_project_recruit_apply bpra
2025-03-06 16:22:37 +08:00
LEFT JOIN bgt_project_recruit bpr ON bpr.id = bpra.recruit_id
LEFT JOIN fbs_project_task fpt ON fpt.id = bpr.task_id
LEFT JOIN wgz_user wu ON bpra.user_id = wu.user_id
LEFT JOIN wgz_attendance wa ON wa.user_id = wu.user_id AND wa.recruit_id = bpra.recruit_id AND wa.date = #{dto.date}
WHERE bpra.entry_time &lt;= #{dto.date} and ((bpra.leave_time is null and bpra.status = '5')or leave_time>=#{dto.date})
and bpra.recruit_id IN (SELECT id FROM bgt_project_recruit WHERE task_id = #{dto.taskId})
<if test="dto.attendanceType !=null and dto.attendanceType ==1 ">
and (wa.late = 0 and wa.early_leave = 0 and wa.missed_in = 0 and wa.missed_out = 0) and leave_mark_id is null
</if>
<if test="dto.attendanceType !=null and dto.attendanceType ==2 ">
(wa.late = 1 or wa.early_leave = 1 or wa.missed_in = 1 or wa.missed_out = 1) and leave_mark_id is null
</if>
<if test="dto.attendanceType !=null and dto.attendanceType ==3 ">
and wa.leave_mark_id = 1
</if>
2025-03-05 09:17:22 +08:00
</select>
2025-02-21 16:15:49 +08:00
<select id="underwayPage" resultType="com.ruoyi.wgz.bo.res.WgzAppUnderwayRes">
SELECT
a.entry_time,
a.leave_time,
2025-02-21 16:15:49 +08:00
b.*,
c.task_name,
c.task_address,
c.task_img,
c.create_time as taskCreateTime
2025-02-21 16:15:49 +08:00
FROM
bgt_project_recruit_apply as a
LEFT JOIN bgt_project_recruit as b on(a.recruit_id = b.id and b.del_flag = 0 )
LEFT JOIN fbs_project_task as c ON (b.task_id = c.id AND c.del_flag = 0)
<where>
2025-02-27 10:03:24 +08:00
<if test="req.userId!=null and req.userId!=0 ">
a.user_id = #{req.userId} AND
</if>
<choose>
2025-02-27 10:03:24 +08:00
<when test="req.type!=null and req.type!='' and req.type == 1">
a.status IN ('3', '5') AND
</when>
2025-02-27 10:03:24 +08:00
<when test="req.type!=null and req.type!='' and req.type == 2">
a.status IN ('6') AND
</when>
</choose>
2025-02-21 16:15:49 +08:00
a.del_flag = 0
</where>
2025-02-21 16:15:49 +08:00
</select>
2025-02-18 14:15:00 +08:00
</mapper>