<?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.brilliance.isc.mda.dao.AdrcofMapper">

    <resultMap id="BaseResultMap" type="com.brilliance.isc.bo.Adrcof">
        <result property="inr" column="inr" jdbcType="VARCHAR"/>
        <result property="extkey" column="extkey" jdbcType="VARCHAR"/>
        <result property="branch" column="branch" jdbcType="VARCHAR"/>
        <result property="needcustom" column="needcustom" jdbcType="VARCHAR"/>
        <result property="objinr" column="objinr" jdbcType="VARCHAR"/>
        <result property="objtyp" column="objtyp" jdbcType="VARCHAR"/>
        <result property="credat" column="credat" jdbcType="DATE"/>
        <result property="upddat" column="upddat" jdbcType="DATE"/>
    </resultMap>

    <sql id="Base_Column_List">
        inr,extkey,branch,needcustom,objinr,objtyp,credat,upddat
    </sql>

    <insert id="insert">
        insert into adrcof (<include refid="Base_Column_List"/>)
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            #{inr,jdbcType=VARCHAR},
            #{extkey,jdbcType=VARCHAR},
            #{branch,jdbcType=VARCHAR},
            #{needcustom,jdbcType=VARCHAR},
            #{objinr,jdbcType=VARCHAR},
            'ADR',
            #{credat,jdbcType=DATE},
            #{upddat,jdbcType=DATE},
        </trim>
    </insert>

    <update id="updateByPrimaryKey">
        update adrcof
        <set>
            extkey = #{extkey,jdbcType=VARCHAR},
            branch = #{branch,jdbcType=VARCHAR},
            needcustom = #{needcustom,jdbcType=VARCHAR},
            objinr = #{objinr,jdbcType=VARCHAR},
            credat = #{credat,jdbcType=VARCHAR},
            upddat = #{upddat,jdbcType=VARCHAR},
        </set>
        where inr = #{inr,jdbcType=VARCHAR}
    </update>

    <delete id="delete">
        delete
        from adrcof
        where inr = #{inr}
    </delete>

    <delete id="deleteByObjinrAndObjtyp">
        delete from adrcof where objtyp='ADR' AND objinr = #{inr}
    </delete>

    <delete id="deleteByObjInrsAndObjtyp">
        delete from adrcof where objtyp='ADR' and  objinr in
        <foreach item="item" index="index" collection="adrlist" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>

    <select id="selectDataByObjtypAndObjinr" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"/> from adrcof where objtyp='ADR' AND objinr = #{inr}
    </select>

    <select id="selectFlgbyExtkey" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"/> from adrcof where extkey=#{extkey} ORDER BY length(INR) DESC, INR DESC
        limit 1
    </select>

</mapper>