LaborServiceDictMapper.xml 4.62 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.LaborServiceDictMapper">

    <select id="getPermissions" resultType="com.subsidy.vo.administer.PermissionsVO">
        SELECT DISTINCT
        t4.*
        FROM
        role_administer_mapping t
        LEFT JOIN role_dict t2 ON t.role_id = t2.id
        LEFT JOIN role_permission_mapping t3 ON t2.id = t3.role_id
        LEFT JOIN permissions_dict t4 ON t3.permission_id = t4.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
        <if test="id !=null and id !=''">
            and t.administer_id = #{id}
        </if>
    </select>

    <select id="projects" parameterType="long" resultType="com.subsidy.vo.labor.ProjectsVO">
        SELECT
            t.id,
            t.project_name,
            t2.id as companyId,
            t2.company_name,
            t5.id as laborId,
            t5.labor_service_name,
            t.salary_date,
            t.start_date,
            t.end_date,
            count(distinct t3.member_id) AS cnt
        FROM
            project t
            LEFT JOIN company_dict t2 ON t.company_id = t2.id
            LEFT JOIN project_member_mapping t3 ON t.id = t3.project_id and t3.status = 1
        LEFT JOIN labor_service_dict t5 ON t.labor_service_id = t5.id
        WHERE
            t.delete_date IS NULL
            and t2.delete_date is null
            and t3.delete_date is null
            and t5.delete_date is null
            <if test="laborId != null and laborId != ''">
                AND t.labor_service_id = #{laborId}
            </if>
            <if test="projectName != null and projectName != ''">
                and t.project_name like concat('%', #{projectName},'%')
            </if>
        GROUP BY
            t.id,
            t2.id,
            t.project_name,
            t2.company_name,
            t5.labor_service_name,
            t.start_date,
            t.end_date
    </select>

    <select id="projectManage" resultType="com.subsidy.vo.labor.ProjectManageVO">
        SELECT
            t2.id,
            t.id as mappingId,
            t2.user_name,
            t2.gender,
            t2.telephone,
            t2.id_card,
            t2.email,
            t2.payroll_account,
            t2.bank,
            t2.open_id,
            t.job_name,
            if( t2.open_id IS NULL, '未绑定', '已绑定' ) AS wechatStatus
        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="userInfo != null and userInfo != ''">
                and (t2.user_name like concat('%', #{userInfo},'%') or  t2.telephone like concat('%', #{userInfo},'%'))
            </if>
    </select>

    <select id="abnormalRecord" resultType="com.subsidy.vo.labor.AbnormalRecordVO">
        SELECT
        t2.id,
        t2.user_name,
        t2.gender,
        t2.telephone,
        t2.id_card,
        t2.payroll_account,
        t2.bank,
        IF
        ( t2.open_id IS NULL, '是', '否' ) AS wechatStatus,
        IF
        ( t.`status` = 1, '入职', '入职' ) fireStatus,
        t.create_date AS hireTime
        FROM
        project_member_mapping t
        LEFT JOIN member t2 ON t.member_id = t2.id
        WHERE
        t.project_id = #{projectId}
        AND t.delete_date IS NULL
        AND t2.delete_date IS NULL
        <if test="userInfo != null and userInfo != ''">
            and (t2.user_name like concat('%', #{userInfo},'%') or  t2.telephone like concat('%', #{userInfo},'%'))
        </if>
        UNION ALL
        SELECT
        t2.id,
        t2.user_name,
        t2.gender,
        t2.telephone,
        t2.id_card,
        t2.payroll_account,
        t2.bank,
        IF
        ( t2.open_id IS NULL, '是', '否' ) AS wechatStatus,
        IF
        ( t.`status` = 1, '入职', '离职' ) fireStatus,
        t.update_date AS hireTime
        FROM
        project_member_mapping t
        LEFT JOIN member t2 ON t.member_id = t2.id
        WHERE
        t.project_id = #{projectId}
        AND t.delete_date IS NULL
        AND t.`status` = 0
        AND t2.delete_date IS NULL
        <if test="userInfo != null and userInfo != ''">
            and (t2.user_name like concat('%', #{userInfo},'%') or  t2.telephone like concat('%', #{userInfo},'%'))
        </if>
        ORDER BY
        hireTime
    </select>

</mapper>