<?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="cn.timer.api.dao.yggl.YgglAttaHtxxbMapper">

    <resultMap id="BaseResultMap" type="cn.timer.api.bean.yggl.YgglAttaHtxxb">
        <id column="id" property="id"/>
        <id column="id" property="id"/>
        <result column="emp_num" property="empNum"/>
        <result column="ht_id" property="htId"/>
        <result column="ht_name" property="htName"/>
        <result column="type" property="type"/>
        <result column="qd_date" property="qdDate"/>
        <result column="start_time" property="startTime"/>
        <result column="end_time" property="endTime"/>
        <result column="htqygs" property="htqygs"/>
        <result column="status" property="status"/>
        <result column="remark" property="remark"/>
        <result column="org_code" property="orgCode"/>
        <result column="jc_status" property="jcStatus"/>
        <result column="jc_date" property="jcDate"/>
        <result column="htfj" property="htfj"/>
        <result column="delete_flag" property="deleteFlag"/>
    </resultMap>

    <sql id="Base_Column_List">
        id
        ,
                emp_num,
                ht_id,
                ht_name,
                qd_date,
                type,
                start_time,
                end_time,
                htqx,
                htqygs,
                status,
                remark,
                org_code,
                jc_status,
                jc_date,
                htfj,
                delete_flag
    </sql>
    <!--

    <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.yggl.YgglAttaHtxxb">
        INSERT INTO yggl_atta_htxxb
        <trim prefix="(" suffix=")" suffixOverrides=",">
                        <if test ='null != empNum'>
                        emp_num,
                        </if>
                        <if test ='null != htId'>
                        ht_id,
                        </if>
                        <if test ='null != type'>
                        type,
                        </if>
                        <if test ='null != startTime'>
                        start_time,
                        </if>
                        <if test ='null != endTime'>
                        end_time,
                        </if>
                        <if test ='null != htqx'>
                        htqx,
                        </if>
                        <if test ='null != htqygs'>
                        htqygs,
                        </if>
                        <if test ='null != status'>
                        status,
                        </if>
                        <if test ='null != remark'>
                        remark,
                        </if>
                        <if test ='null != orgCode'>
                        org_code
                        </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                        <if test ='null != empNum'>
                        #{empNum},
                        </if>
                        <if test ='null != htId'>
                        #{htId},
                        </if>
                        <if test ='null != type'>
                        #{type},
                        </if>
                        <if test ='null != startTime'>
                        #{startTime},
                        </if>
                        <if test ='null != endTime'>
                        #{endTime},
                        </if>
                        <if test ='null != htqx'>
                        #{htqx},
                        </if>
                        <if test ='null != htqygs'>
                        #{htqygs},
                        </if>
                        <if test ='null != status'>
                        #{status},
                        </if>
                        <if test ='null != remark'>
                        #{remark},
                        </if>
                        <if test ='null != orgCode'>
                        #{orgCode}
                        </if>
        </trim>
    </insert>

    <delete id="delete" >
        DELETE FROM yggl_atta_htxxb
        WHERE id = #{id}
    </delete>

    <update id="update" parameterType="cn.timer.api.bean.yggl.YgglAttaHtxxb">
        UPDATE yggl_atta_htxxb
        <set>
                    <if test ='null != empNum'>emp_num = #{empNum},</if>
                    <if test ='null != htId'>ht_id = #{htId},</if>
                    <if test ='null != type'>type = #{type},</if>
                    <if test ='null != startTime'>start_time = #{startTime},</if>
                    <if test ='null != endTime'>end_time = #{endTime},</if>
                    <if test ='null != htqx'>htqx = #{htqx},</if>
                    <if test ='null != htqygs'>htqygs = #{htqygs},</if>
                    <if test ='null != status'>status = #{status},</if>
                    <if test ='null != remark'>remark = #{remark},</if>
                    <if test ='null != orgCode'>org_code = #{orgCode}</if>
        </set>
        WHERE id = #{id}
    </update>


    <select id="load" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" />
        FROM yggl_atta_htxxb
        WHERE id = #{id}
    </select>

    <select id="pageList" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" />
        FROM yggl_atta_htxxb
        LIMIT #{offset}, #{pageSize}
    </select>

    <select id="pageListCount" resultType="java.lang.Integer">
        SELECT count(1)
        FROM yggl_atta_htxxb
    </select>

     -->
    <select id="queryContract" resultType="cn.timer.api.dto.yggl.HtgkDto">
        SELECT zc.company_name                  companyName,
               (SELECT SUM(job_status BETWEEN 0 and 3) AS probation
                FROM yggl_main_emp
                WHERE org_code = #{orgCode}) as probation,
               (SELECT count(DISTINCT emp_num) AS signCount
                FROM yggl_atta_htxxb AS yah
                WHERE org_code = #{orgCode}
                  AND zc.id = yah.htqygs
                  AND yah.jc_status = 0
                  AND yah.delete_flag = 0
                  AND yah.status = 0
               )                             as signCount,
               (SELECT count(DISTINCT emp_num) AS signCount
                FROM yggl_atta_htxxb AS yah
                WHERE org_code = #{orgCode}
                  AND zc.id = yah.htqygs
                  AND yah.jc_status = 0
                  AND yah.delete_flag = 0
                  AND yah.status = 0
                  and yah.end_time between NOW() AND DATE_FORMAT(DATE_add(NOW(), INTERVAL 5 DAY), '%Y-%m-%d')
               )                             as due_soon
        FROM `zpgl_company` zc
        where zc.org_code =#{orgCode}
    </select>

    <select id="selectListByType" resultType="cn.timer.api.dto.yggl.HtgkDto">
        SELECT
        yh.id as id,
        ye.emp_num as empNum,
        ye.name as userName,
        ye.head_url as headUrl,
        zm.name as deptName,
        ye.job_type as jobType,
        yh.ht_id as htId,
        yh.type as type,
        zc.company_name as companyName,
        yh.status as status,
        yh.htqx as htqx,
        yh.start_time as statTime,
        yh.end_time as endTime
        FROM
        yggl_main_emp ye
        LEFT JOIN  yggl_atta_htxxb yh  ON ( ye.emp_num = yh.emp_num AND ye.org_code = yh.org_code )
        LEFT JOIN zzgl_bmgw_m zm ON zm.id = ye.bmgw_id
        LEFT JOIN zpgl_company zc ON zc.id = yh.htqygs
        <where>
                ye.org_code=#{orgCode}
            <if test="type == 0">
              and  yh.id is not null
              and yh.delete_flag = 0
            </if>
            <if test="type == 1">
              and  yh.id is null
            </if>
        </where>
        LIMIT #{page.offset}, #{page.totalPage}
    </select>
    <select id="selectTotalByType" resultType="java.lang.Integer">
        SELECT
       count(ye.id)
        FROM
        yggl_main_emp ye
        LEFT JOIN  yggl_atta_htxxb yh  ON ( ye.emp_num = yh.emp_num AND ye.org_code = yh.org_code )
        LEFT JOIN zzgl_bmgw_m zm ON zm.id = ye.bmgw_id
        LEFT JOIN zpgl_company zc ON zc.id = yh.htqygs
        <where>
            ye.org_code=#{orgCode}
            <if test="type == 0">
                and  yh.id is not null
                and yh.delete_flag = 0
            </if>
            <if test="type == 1">
                and  yh.id is null
            </if>
<!--            <if test="bmgwId != null and bmgwId != null">-->
<!--                and  ye.bmgwId = #{bmgwId}-->
<!--            </if>-->

<!--            <if test="htType != null and htType != null">-->
<!--                and  yh.htType = #{htType}-->
<!--            </if>-->
<!--            <if test="jobType != null and jobType != null">-->
<!--                and  ye.jobType = #{jobType}-->
<!--            </if>-->

        </where>
    </select>

</mapper>