This commit is contained in:
2025-03-09 19:04:02 +08:00
parent 3d22504f11
commit 6cfa7d7528
9 changed files with 713 additions and 25 deletions

View File

@@ -21,31 +21,57 @@
<select id="selectStaffVoPage" resultMap="OaSalaryResult">
SELECT
SELECT
os.salary_id,
os.user_id,
os.pay_time,
os.base_salary,
(os.base_salary * DAY(LAST_DAY(#{payTime})) +
COALESCE(SUM(CASE
WHEN osi.flag = 1 THEN osi.price
WHEN osi.flag = 0 AND osi.type = 3 THEN -2 * osi.price
WHEN osi.flag = 0 THEN -osi.price
ELSE 0
END), 0)
) AS real_salary,
(
os.base_salary * DAY(LAST_DAY(#{payTime}))
+ COALESCE(SUM(
CASE
WHEN osi.flag = 1 THEN osi.price
WHEN osi.flag = 0 THEN -osi.price
ELSE 0
END
), 0)
) AS real_salary,
osi.salary_item_id,
osi.sign_time,
su.nick_name
FROM oa_salary os
LEFT JOIN oa_salary_item osi ON osi.salary_id = os.salary_id
FROM oa_salary os
LEFT JOIN oa_salary_item osi
ON osi.salary_id = os.salary_id
AND YEAR(osi.sign_time) = YEAR(#{payTime})
AND MONTH(osi.sign_time) = MONTH(#{payTime})
LEFT JOIN sys_user su on os.user_id = su.user_id
WHERE YEAR(os.pay_time) = YEAR(#{payTime})
AND MONTH(os.pay_time) = MONTH(#{payTime})
GROUP BY os.salary_id, os.user_id, os.pay_time, os.base_salary, osi.salary_item_id, osi.type, osi.reason, osi.price, osi.sign_time;
${ew.getCustomSqlSegment}
LEFT JOIN sys_user su ON os.user_id = su.user_id
<!-- 这里使用 <where> 标签统一管理条件 -->
<where>
YEAR(os.pay_time) = YEAR(#{payTime})
AND MONTH(os.pay_time) = MONTH(#{payTime})
<!-- 如果 ew 中带了自定义条件,就在这里追加 -->
<if test="ew != null and ew.customSqlSegment != null and ew.customSqlSegment != ''">
AND ${ew.customSqlSegment}
</if>
</where>
GROUP BY
os.salary_id,
os.user_id,
os.pay_time,
os.base_salary,
osi.salary_item_id,
osi.type,
osi.reason,
osi.price,
osi.sign_time
</select>
<select id="selectVoByUserId" resultType="com.ruoyi.oa.domain.OaSalary">
select * from oa_salary where user_id = #{userId}
</select>