<?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.kqmk.KqglAssoLeaveRulesMapper">

    <resultMap id="BaseResultMap" type="cn.timer.api.bean.kqmk.KqglAssoLeaveRules" >
                <id column="id" property="id" />
                <result column="name" property="name" />
                <result column="company" property="company" />
                <result column="leave_type" property="leaveType" />
                <result column="apply" property="apply" />
                <result column="create_time" property="createTime" />
                <result column="create_userid" property="createUserid" />
                <result column="org_code" property="orgCode" />
                <result column="is_open" property="isOpen" />
                <result column="leave_balance" property="leaveBalance" />
                <result column="rules_type" property="rulesType" />
    </resultMap>

    <sql id="Base_Column_List">
                id,
                name,
                company,
                leave_type,
                apply,
                create_time,
                create_userid,
                org_code,
                is_open,
                leave_balance,
                rules_type
    </sql>
    
    <sql id="Base_Column_List_Alias">
                id KqglAssoLeaveRules_id,
                name KqglAssoLeaveRules_name,
                company KqglAssoLeaveRules_company,
                leave_type KqglAssoLeaveRules_leave_type,
                apply KqglAssoLeaveRules_apply,
                create_time KqglAssoLeaveRules_create_time,
                create_userid KqglAssoLeaveRules_create_userid,
                org_code KqglAssoLeaveRules_org_code,
                is_open KqglAssoLeaveRules_is_open,
                leave_balance KqglAssoLeaveRules_leave_balance
    </sql>
    
    <select id="selHeaderdata" resultMap="BaseResultMap">
    	SELECT <include refid="Base_Column_List" />
    		FROM kqgl_asso_leave_rules 
    		WHERE org_code = #{orgcode} 
    		AND (leave_type = #{leavetype} OR is_open = #{isopen}) 
    </select>
    
    <select id="selCompanywidedata" resultMap="BaseResultMap">
    	SELECT <include refid="Base_Column_List" />
    		FROM kqgl_asso_leave_rules 
    		WHERE org_code = #{orgcode} 
    		and apply = 0
    		AND (leave_type = #{leavetype} OR is_open = #{isopen}) 
    </select>
    
    <select id="AssociatedHolidays" resultMap="BaseResultMap">
    	SELECT * FROM kqgl_asso_leave_rules rul 
		where rul.id in (select vic.leave_rules_id from kqgl_asso_rules_vice vic where vic.attgroup_id = #{attgroupid})
    </select>
    
	
	<insert id="insertleaverulesList" parameterType="java.util.List" >
	    insert into kqgl_asso_leave_rules (name,company,leave_type,apply,create_time,create_userid,org_code,is_open,leave_balance,rules_type)
	    <foreach collection="list" item="item" index="index" open="values " close="" separator=",">
	   	(
	      <if test="item.name != null" >
	        #{item.name,jdbcType=VARCHAR},
	      </if>
	      <if test="item.company != null" >
	        #{item.company,jdbcType=VARCHAR},
	      </if>
	      <if test="item.leaveType != null" >
	        #{item.leaveType,jdbcType=INTEGER},
	      </if>
	      <if test="item.apply != null" >
	        #{item.apply,jdbcType=INTEGER},
	      </if>
	      <if test="item.createTime != null" >
	        #{item.createTime,jdbcType=VARCHAR},
	      </if>
	      <if test="item.createUserid != null" >
	        #{item.createUserid,jdbcType=INTEGER},
	      </if>
	      <if test="item.orgCode != null" >
	        #{item.orgCode,jdbcType=INTEGER},
	      </if>
	      <if test="item.isOpen != null" >
	        #{item.isOpen,jdbcType=INTEGER},
	      </if>
	      <if test="item.leaveBalance != null" >
	        #{item.leaveBalance,jdbcType=INTEGER},
	      </if>
	      <if test="item.rulesType != null" >
	        #{item.rulesType,jdbcType=INTEGER}
	      </if>
	      )
	    </foreach>
  	 </insert>

	<!-- 

    <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.kqmk.KqglAssoLeaveRules">
        INSERT INTO kqgl_asso_leave_rules
        <trim prefix="(" suffix=")" suffixOverrides=",">
                        <if test ='null != name'>
                        name,
                        </if>
                        <if test ='null != company'>
                        company,
                        </if>
                        <if test ='null != leaveType'>
                        leave_type,
                        </if>
                        <if test ='null != apply'>
                        apply,
                        </if>
                        <if test ='null != createTime'>
                        create_time,
                        </if>
                        <if test ='null != createUserid'>
                        create_userid,
                        </if>
                        <if test ='null != orgCode'>
                        org_code,
                        </if>
                        <if test ='null != isOpen'>
                        is_open,
                        </if>
                        <if test ='null != leaveBalance'>
                        leave_balance
                        </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                        <if test ='null != name'>
                        #{name},
                        </if>
                        <if test ='null != company'>
                        #{company},
                        </if>
                        <if test ='null != leaveType'>
                        #{leaveType},
                        </if>
                        <if test ='null != apply'>
                        #{apply},
                        </if>
                        <if test ='null != createTime'>
                        #{createTime},
                        </if>
                        <if test ='null != createUserid'>
                        #{createUserid},
                        </if>
                        <if test ='null != orgCode'>
                        #{orgCode},
                        </if>
                        <if test ='null != isOpen'>
                        #{isOpen},
                        </if>
                        <if test ='null != leaveBalance'>
                        #{leaveBalance}
                        </if>
        </trim>
    </insert>

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

    <update id="update" parameterType="cn.timer.api.bean.kqmk.KqglAssoLeaveRules">
        UPDATE kqgl_asso_leave_rules
        <set>
                    <if test ='null != name'>name = #{name},</if>
                    <if test ='null != company'>company = #{company},</if>
                    <if test ='null != leaveType'>leave_type = #{leaveType},</if>
                    <if test ='null != apply'>apply = #{apply},</if>
                    <if test ='null != createTime'>create_time = #{createTime},</if>
                    <if test ='null != createUserid'>create_userid = #{createUserid},</if>
                    <if test ='null != orgCode'>org_code = #{orgCode},</if>
                    <if test ='null != isOpen'>is_open = #{isOpen},</if>
                    <if test ='null != leaveBalance'>leave_balance = #{leaveBalance}</if>
        </set>
        WHERE id = #{id}
    </update>


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

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

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

	 -->

</mapper>