当前角色问题解决
This commit is contained in:
@@ -97,50 +97,56 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
|
||||
<select id="selectVoListAndTime" resultType="com.ruoyi.oa.domain.vo.SysOaAttendanceVo">
|
||||
SELECT
|
||||
ANY_VALUE(id) AS id,
|
||||
user_id,
|
||||
ANY_VALUE(attendance_day) AS attendance_day,
|
||||
project_id,
|
||||
ANY_VALUE(day_length) AS day_length,
|
||||
ANY_VALUE(hour) AS hour,
|
||||
ANY_VALUE(create_time) AS create_time,
|
||||
ANY_VALUE(create_by) AS create_by,
|
||||
ANY_VALUE(update_time) AS update_time,
|
||||
ANY_VALUE(update_by) AS update_by,
|
||||
ANY_VALUE(remark) AS remark,
|
||||
ANY_VALUE(del_flag) AS del_flag,
|
||||
COUNT(id) AS count,
|
||||
SELECT ANY_VALUE(id) AS id,
|
||||
user_id,
|
||||
ANY_VALUE(attendance_day) AS attendance_day,
|
||||
project_id,
|
||||
ANY_VALUE(day_length) AS day_length,
|
||||
ANY_VALUE(hour) AS hour,
|
||||
ANY_VALUE(create_time) AS create_time,
|
||||
ANY_VALUE(create_by) AS create_by,
|
||||
ANY_VALUE(update_time) AS update_time,
|
||||
ANY_VALUE(update_by) AS update_by,
|
||||
ANY_VALUE(remark) AS remark,
|
||||
ANY_VALUE(del_flag) AS del_flag,
|
||||
COUNT(id) AS count,
|
||||
|
||||
/*
|
||||
1)如果这条记录是按天统计 (day_length>0),就直接用 day_length。
|
||||
2)如果这条记录是按小时统计 (hour>0),那么就算作 1 天。
|
||||
这样就不会把多日的小时相加再去整除 9。
|
||||
这样就不会把多日的小时相加再去整除 8。
|
||||
*/
|
||||
SUM(
|
||||
CASE
|
||||
WHEN day_length > 0 THEN day_length
|
||||
WHEN hour > 0 THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
) AS work_times,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN day_length > 0 THEN day_length
|
||||
WHEN hour > 0 THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
) *9 AS hour_work_times,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN day_length > 0 THEN day_length
|
||||
WHEN hour > 0 THEN ROUND(hour / 8, 1)
|
||||
ELSE 0
|
||||
END
|
||||
) AS work_times,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN day_length > 0 THEN day_length * 8
|
||||
WHEN hour > 0 THEN hour
|
||||
ELSE 0
|
||||
END
|
||||
) AS hour_work_times,
|
||||
/*
|
||||
overTime:如果是按小时统计,且 hour>9,才有加班 = (hour - 9)。
|
||||
overTime:如果是按小时统计,且 hour>8,才有加班 = (hour - 8)。
|
||||
如果是 day_length 统计,则一般不会再去算小时加班(你如果有需要,也可以自己按其它规则)。
|
||||
*/
|
||||
SUM(
|
||||
CASE
|
||||
WHEN hour > 9 THEN hour - 9
|
||||
ELSE 0
|
||||
END
|
||||
) AS overTime
|
||||
SUM(
|
||||
IF(hour > 8, hour - 8, 0)
|
||||
) AS overTime,
|
||||
|
||||
/* ---------- 出差天数 (project_id = 0) ---------- */
|
||||
SUM(
|
||||
IF(project_id = 0, 1, 0)
|
||||
) AS tripDays,
|
||||
|
||||
/* ---------- 请假天数 (project_id = 1) ---------- */
|
||||
SUM(
|
||||
IF(project_id = 1, 1, 0)
|
||||
) AS absenceDays
|
||||
|
||||
FROM sys_oa_attendance soa
|
||||
WHERE user_id = #{userId}
|
||||
@@ -149,7 +155,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
AND del_flag = '0'
|
||||
GROUP BY soa.project_id;
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectUserListAndAttendanceListAndProjectListByUserIds"
|
||||
|
||||
Reference in New Issue
Block a user