ProjectSalaryHistoryMapper.xml 6.29 KB
<?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.subsidy.mapper.ProjectSalaryHistoryMapper">

    <select id="laborProjects" parameterType="long" resultType="com.subsidy.vo.project.LaborProjectsVO">
        SELECT
            t3.id,
            t2.project_name,
            t4.company_name,
            count( 1 ) AS cnt
        FROM
            labor_project_mapping t
            LEFT JOIN project t2 ON t.project_id = t2.id
            LEFT JOIN project_member_mapping t3 ON t2.id = t3.project_id
            LEFT JOIN company_dict t4 ON t2.company_id = t4.id
            left join labor_service_dict t5 on t.labor_id = t5.id
        WHERE
            t.delete_date IS NULL
            AND t2.delete_date IS NULL
            AND t3.delete_date IS NULL
            AND t4.delete_date IS NULL
            AND t.labor_id = #{laborId}
            <if test="projectName != null and projectName != ''">
               and t2.project_name like concat('%', #{projectName},'%')
            </if>
        GROUP BY
            t2.id,
            t2.project_name,
            t4.company_name
    </select>

    <select id="talentSalary" resultType="com.subsidy.vo.project.TalentSalaryVO">
        SELECT
        t2.id,
        t2.user_name,
        t2.telephone,
        t2.account_name,
        t2.bank,
        t3.job_name,
        t.salary_mark,
        t.salary,
        t.create_date,
        t.salary_date,
        t2.payroll_account,
        t.commit_status,
        t.project_mapping_id,
        t.id unCommitId
        FROM
        project_member_mapping  t3
        LEFT JOIN member t2 ON t3.member_id = t2.id
        left JOIN project_salary_history t ON t.project_mapping_id = t3.id AND t.salary_month = '${salaryMonth}'
        WHERE
            t.delete_date IS NULL
            AND t2.delete_date IS NULL
            AND t3.project_id = #{projectId}
            <if test="userName != null and userName != ''">
                and (t2.user_name like concat('%', #{userName},'%') or  t2.telephone like concat('%', #{userName},'%'))
            </if>
            and t3.status = 1
        order by t.create_date desc
    </select>

    <select id="talentList" resultType="com.subsidy.vo.project.TalentListVO">
        SELECT
            distinct t3.id,
            t3.user_name,
            t3.gender,
            t3.id_card
        FROM
            labor_project_mapping t
            LEFT JOIN project_member_mapping t2 ON t.project_id = t2.project_id
            LEFT JOIN member t3 ON t2.member_id = t3.id
        WHERE
            t.delete_date IS NULL
            AND t2.delete_date IS NULL
            AND t3.delete_date IS NULL
            and t.labor_id = #{laborId}
            and t3.id is not null
            <if test="userName != null and userName != ''">
                and (t3.user_name like concat('%', #{userName},'%') or  t3.telephone like concat('%', #{userName},'%'))
            </if>
    </select>

    <select id="talentSalaryDetail" resultType="com.subsidy.vo.project.TalentSalaryDetailVO">
        SELECT
            t2.id,
            t2.user_name,
            t2.telephone,
            t2.account_name,
            t2.bank,
            t.job_name,
            t.salary_mark,
            t.salary,
            t.create_date,
            t.salary_date,
            t.payroll_account
        FROM
            labor_project_mapping a
            left join project_member_mapping t3 on a.project_id = t3.project_id
            LEFT JOIN project_salary_history t ON t3.id = t.project_mapping_id
            LEFT JOIN member t2 ON t.member_id = t2.id
        WHERE
            t.delete_date IS NULL
            AND t2.delete_date IS NULL
            AND a.delete_date IS NULL
            AND t2.id = #{memberId}
            AND a.labor_id = #{laborId}
            and t.commit_status = 1
            <if test="projectId != null and projectId != ''">
                AND t3.project_id = #{projectId}
            </if>
        order by t.create_date desc
    </select>

    <select id="projectMembers" resultType="com.subsidy.vo.salary.ProjectMembersVO">
        SELECT
            t2.id,
            t2.user_name,
            t2.telephone,
            t.job_name,
            t.id as projectMappingId
        FROM
            project_member_mapping t
            LEFT JOIN member t2 ON t.member_id = t2.id
        WHERE
            t.delete_date IS NULL
            AND t2.delete_date IS NULL
            AND t.project_id = #{projectId}
            and t.status = 1
            <if test="userName != null and userName != ''">
                and (t2.user_name like concat('%', #{userName},'%'))
            </if>
    </select>

    <select id="exportTemplate" resultType="com.subsidy.vo.salary.ProjectMembersVO">
        SELECT
            t2.id,
            t2.user_name,
            t2.telephone,
            t2.payroll_account
        FROM
            project_member_mapping t
            LEFT JOIN member t2 ON t.member_id = t2.id
        WHERE
            t.delete_date IS NULL
            AND t2.delete_date IS NULL
            and t.status = 1
            AND t.project_id = #{projectId}
    </select>

    <update id="commitSalary" parameterType="long">
        update project_salary_history set commit_status = 1 where id = #{id}
    </update>

    <update id="updateSalary">
        update project_salary_history t
        set
        <trim suffixOverrides=",">
            salary = #{salary},
            salary_mark = #{salaryMark},
            salary_date = #{salaryDate},
            update_date = #{updateDate}
        </trim>
        where id =#{id}
    </update>

    <select id="commitMonthSalary" resultType="long">
        SELECT
            t.id
        FROM
            project_member_mapping t
            LEFT JOIN project_salary_history t2 ON t.id = t2.project_mapping_id
            AND t2.member_id = t.member_id
        WHERE
            t.delete_date IS NULL
            AND t2.delete_date IS NULL
            AND t.project_id = #{projectId}
            and t2.salary_month = #{salaryMonth}
            and commit_status = #{commitStatus}
    </select>

    <delete id="deleteSalary">
        DELETE
        FROM
            project_salary_history
        WHERE
            salary_month = #{salaryMonth}
            AND project_mapping_id = #{id}
    </delete>

</mapper>