薪资计算初步,等待脚本完善

This commit is contained in:
2025-03-06 22:37:29 +08:00
parent c31f440510
commit 37e1a53c98
16 changed files with 1058 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
<?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.oa.mapper.OaSalaryItemMapper">
<resultMap type="com.ruoyi.oa.domain.OaSalaryItem" id="OaSalaryItemResult">
<result property="salaryItemId" column="salary_item_id"/>
<result property="type" column="type"/>
<result property="reason" column="reason"/>
<result property="price" column="price"/>
<result property="flag" column="flag"/>
<result property="salaryId" column="salary_id"/>
<result property="signTime" column="sign_time"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,52 @@
<?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.oa.mapper.OaSalaryMapper">
<resultMap type="com.ruoyi.oa.domain.vo.OaSalaryVo" id="OaSalaryResult">
<result property="salaryId" column="salary_id"/>
<result property="userId" column="user_id"/>
<result property="realSalary" column="real_salary"/>
<result property="payTime" column="pay_time"/>
<result property="baseSalary" column="base_salary"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="nickName" column="nick_name"/>
</resultMap>
<select id="selectStaffVoPage" resultMap="OaSalaryResult">
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,
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
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}
</select>
</mapper>