<?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.CfaSelMapper">

    <resultMap id="BaseResultMap" type="com.brilliance.isc.common.bopcfa.vo.CfaSelResultVo">
        <result property="ltrninr" column="ltrninr" jdbcType="VARCHAR"/>
        <result property="linr" column="linr" jdbcType="VARCHAR"/>
        <result property="lrptno" column="lrptno" jdbcType="VARCHAR"/>
        <result property="lownref" column="lownref" jdbcType="VARCHAR"/>
        <result property="lownusr" column="lownusr" jdbcType="VARCHAR"/>
        <result property="lobjtyp" column="lobjtyp" jdbcType="VARCHAR"/>
        <result property="lcredat" column="lcredat" jdbcType="DATE"/>
        <result property="eactiontype" column="eactiontype" jdbcType="VARCHAR"/>
        <result property="esta" column="esta" jdbcType="VARCHAR"/>
        <result property="einr" column="einr" jdbcType="VARCHAR"/>
        <result property="eobjinr" column="eobjinr" jdbcType="VARCHAR"/>
        <result property="typetable" column="typetable" jdbcType="VARCHAR"/>
        <result property="eord" column="eord" jdbcType="VARCHAR"/>
        <result property="eactiondesc" column="eactiondesc" jdbcType="VARCHAR"/>
        <result property="eguarantorcode" column="eguarantorcode" jdbcType="VARCHAR"/>
        <result property="econtractdate" column="econtractdate" jdbcType="DATE"/>
        <result property="eguarancurr" column="eguarancurr" jdbcType="VARCHAR"/>
        <result property="ematurity" column="ematurity" jdbcType="DATE"/>
        <result property="eguarantype" column="eguarantype" jdbcType="VARCHAR"/>
        <result property="emaindebtcurr" column="emaindebtcurr" jdbcType="VARCHAR"/>
        <result property="emaindebtamount" column="emaindebtamount" jdbcType="DECIMAL"/>
        <result property="eguaranamount" column="eguaranamount" jdbcType="DECIMAL"/>
        <result property="ebencode" column="ebencode" jdbcType="VARCHAR"/>
        <result property="ebename" column="ebename" jdbcType="VARCHAR"/>
        <result property="ebenamen" column="ebenamen" jdbcType="VARCHAR"/>
        <result property="ebencountrycode" column="ebencountrycode" jdbcType="VARCHAR"/>
        <result property="eguedcode" column="eguedcode" jdbcType="VARCHAR"/>
        <result property="eguedname" column="eguedname" jdbcType="VARCHAR"/>
        <result property="eguednamen" column="eguednamen" jdbcType="VARCHAR"/>
        <result property="eguedtype" column="eguedtype" jdbcType="VARCHAR"/>
        <result property="eguedcouncode" column="eguedcouncode" jdbcType="VARCHAR"/>
        <result property="eguappcode" column="eguappcode" jdbcType="VARCHAR"/>
        <result property="eguappname" column="eguappname" jdbcType="VARCHAR"/>
        <result property="eguappnamen" column="eguappnamen" jdbcType="VARCHAR"/>
        <result property="eappdocuno" column="eappdocuno" jdbcType="VARCHAR"/>
        <result property="ewabachandate" column="ewabachandate" jdbcType="DATE"/>
        <result property="ebasere" column="ebasere" jdbcType="DECIMAL"/>
        <result property="ecomplianceno" column="ecomplianceno" jdbcType="VARCHAR"/>
        <result property="ebuscode" column="ebuscode" jdbcType="VARCHAR"/>
        <result property="eguperdate" column="eguperdate" jdbcType="DATE"/>
        <result property="egupercurr" column="egupercurr" jdbcType="VARCHAR"/>
        <result property="eguperamount" column="eguperamount" jdbcType="DECIMAL"/>
        <result property="epguperamount" column="epguperamount" jdbcType="DECIMAL"/>
        <result property="eremark" column="eremark" jdbcType="VARCHAR"/>
        <result property="debtype" column="debtype" jdbcType="VARCHAR"/>
        <result property="debtorcode" column="debtorcode" jdbcType="VARCHAR"/>
        <result property="valuedate" column="valuedate" jdbcType="DATE"/>
        <result property="contractcurr" column="contractcurr" jdbcType="VARCHAR"/>
        <result property="contractamount" column="contractamount" jdbcType="DECIMAL"/>
        <result property="maturity" column="maturity" jdbcType="DATE"/>
        <result property="floatrate" column="floatrate" jdbcType="VARCHAR"/>
        <result property="anninrate" column="anninrate" jdbcType="DECIMAL"/>
        <result property="creditorcode" column="creditorcode" jdbcType="VARCHAR"/>
        <result property="creditorname" column="creditorname" jdbcType="VARCHAR"/>
        <result property="creditornamen" column="creditornamen" jdbcType="VARCHAR"/>
        <result property="creditortype" column="creditortype" jdbcType="VARCHAR"/>
        <result property="crehqcode" column="crehqcode" jdbcType="VARCHAR"/>
        <result property="opercode" column="opercode" jdbcType="VARCHAR"/>
        <result property="appcode" column="appcode" jdbcType="VARCHAR"/>
        <result property="appname" column="appname" jdbcType="VARCHAR"/>
        <result property="inltcabuscode" column="inltcabuscode" jdbcType="VARCHAR"/>
        <result property="spapfeboindex" column="spapfeboindex" jdbcType="VARCHAR"/>
        <result property="relation" column="relation" jdbcType="VARCHAR"/>
        <result property="buscode" column="buscode" jdbcType="VARCHAR"/>
        <result property="changeno" column="changeno" jdbcType="VARCHAR"/>
        <result property="changtype" column="changtype" jdbcType="VARCHAR"/>
        <result property="chdate" column="chdate" jdbcType="DATE"/>
        <result property="chcurrency" column="chcurrency" jdbcType="VARCHAR"/>
        <result property="chamount" column="chamount" jdbcType="DECIMAL"/>
        <result property="fairvalue" column="fairvalue" jdbcType="DECIMAL"/>
        <result property="remark" column="remark" jdbcType="VARCHAR"/>
        <result property="credittype" column="credittype" jdbcType="VARCHAR"/>
        <result property="billsn" column="billsn" jdbcType="VARCHAR"/>
        <result property="debtorname" column="debtorname" jdbcType="VARCHAR"/>
        <result property="dofoexlotype" column="dofoexlotype" jdbcType="VARCHAR"/>
        <result property="lenproname" column="lenproname" jdbcType="VARCHAR"/>
        <result property="lenagree" column="lenagree" jdbcType="VARCHAR"/>
        <result property="loanopenbalan" column="loanopenbalan" jdbcType="VARCHAR"/>
        <result property="withcurrence" column="withcurrence" jdbcType="VARCHAR"/>
        <result property="withamount" column="withamount" jdbcType="VARCHAR"/>
        <result property="settamount" column="settamount" jdbcType="VARCHAR"/>
        <result property="useofunds" column="useofunds" jdbcType="VARCHAR"/>
        <result property="princurr" column="princurr" jdbcType="VARCHAR"/>
        <result property="repayamount" column="repayamount" jdbcType="VARCHAR"/>
        <result property="prepayamount" column="prepayamount" jdbcType="VARCHAR"/>
        <result property="inpaycurr" column="inpaycurr" jdbcType="VARCHAR"/>
        <result property="inpayamount" column="inpayamount" jdbcType="VARCHAR"/>
        <result property="pinpayamount" column="pinpayamount" jdbcType="VARCHAR"/>
        <result property="endbalan" column="endbalan" jdbcType="VARCHAR"/>
    </resultMap>

    <delete id="dyncDelete">
        ${sql}
    </delete>

    <select id="dyncRead" resultMap="BaseResultMap">
        ${sql}
    </select>
    
    <sql id="msg_by_query_where">
        A.OBJTYP= 'EBA' AND A.INR= B.EBLINR
        <if test="bchOwn != null">
            <choose>
                <when test='cfaSel.ownextkey != null and cfaSel.ownextkey != "" '>
                    and A.OWNEXTKEY=#{cfaSel.ownextkey}
                </when>
                <otherwise>
                    <choose>
                        <when test='bchOwn.lev == "0"'>
                            and 1=1
                        </when>
                        <otherwise>
                            <if test="bchList != null">
                                and A.OWNEXTKEY in
                                <foreach collection="bchList" item="bchNo" index="index" open="(" close=")" separator=",">
                                    #{bchNo}
                                </foreach>
                            </if>
                        </otherwise>
                    </choose>
                </otherwise>
            </choose>
        </if>
        <if test='cfaSel.ownref != null and cfaSel.ownref != "" '>
            AND A.OWNREF  LIKE concat('%',#{cfaSel.ownref},'%')
        </if>
        <if test='cfaSel.rptno != null and cfaSel.rptno != "" '>
            AND A.RPTNO LIKE concat(#{cfaSel.rptno},'%')
        </if>
        <choose>
            <when test='cfaSel.dattyp == "A" '>
                AND A.RELDAT <![CDATA[ >= ]]> date_format(#{cfaSel.frmdat},'%Y-%m-%d')
                AND A.RELDAT <![CDATA[ <= ]]> date_format(#{cfaSel.tildat},'%Y-%m-%d')
            </when>
            <otherwise>
                AND B.CREDAT <![CDATA[ >= ]]> date_format(#{cfaSel.frmdat},'%Y-%m-%d')
                AND B.CREDAT <![CDATA[ <= ]]> date_format(#{cfaSel.tildat},'%Y-%m-%d')
            </otherwise>
        </choose>
        <choose>
            <when test='cfaSel.staflg != null and cfaSel.staflg != "" '>
                AND B.STA=#{cfaSel.staflg}
            </when>
            <otherwise>
                AND B.STA != "P"
            </otherwise>
        </choose>
    </sql>

    <select id="queryCfasels" resultMap="BaseResultMap">
        SELECT A.TRNINR AS LTRNINR,A.INR AS LINR,A.RPTNO AS LRPTNO,A.OWNREF AS LOWNREF,A.OWNUSR AS LOWNUSR,B.CREDAT AS LCREDAT,A.OBJTYP AS LOBJTYP,'签约信息' AS TYPETABLE,B.ACTIONTYPE AS EACTIONTYPE,B.STA AS ESTA,B.INR AS EINR,'' AS EOBJINR,'1' AS EORD,B.ACTIONDESC AS EACTIONDESC,B.GUARANTORCODE AS EGUARANTORCODE,
        B.CONTRACTDATE AS ECONTRACTDATE,B.GUARANAMOUNT AS EGUARANAMOUNT,B.GUARANCURR AS EGUARANCURR,B.MATURITY AS EMATURITY,B.GUARANTYPE AS EGUARANTYPE,B.MAINDEBTCURR AS EMAINDEBTCURR,B.MAINDEBTAMOUNT  AS EMAINDEBTAMOUNT,B.BENCODE AS EBENCODE,B.BENAME AS EBENAME,B.BENAMEN AS EBENAMEN,B.BENTYPE AS EBENTYPE,
        B.BENCOUNTRYCODE AS EBENCOUNTRYCODE,B.GUEDCODE AS EGUEDCODE,B.GUEDNAME AS EGUEDNAME,B.GUEDNAMEN AS EGUEDNAMEN,B.GUEDTYPE AS EGUEDTYPE,B.GUEDCOUNCODE AS EGUEDCOUNCODE,B.GUAPPCODE AS EGUAPPCODE,B.GUAPPNAME AS EGUAPPNAME,B.GUAPPNAMEN AS EGUAPPNAMEN,B.APPDOCUNO AS EAPPDOCUNO,null AS EWABACHANDATE, '0' AS EBASERE,
        '' AS ECOMPLIANCENO,'' AS ECGUARANTORCODE,'' AS EBUSCODE, null AS EGUPERDATE, '' AS EGUPERCURR, '0' AS EGUPERAMOUNT, '0' AS EPGUPERAMOUNT, B.REMARK AS EREMARK
        FROM EBL A, EBA B
        <where>
            <include refid="msg_by_query_where"></include>
        </where>
        UNION SELECT A.TRNINR AS LTRNINR, A.INR  AS LINR, A.RPTNO AS LRPTNO, A.OWNREF AS LOWNREF, A.OWNUSR AS LOWNUSR, B.CREDAT AS LCREDAT, A.OBJTYP AS LOBJTYP, '责任余额'  AS TYPETABLE, B.ACTIONTYPE AS EACTIONTYPE, B.STA AS ESTA, B.INR AS EINR, B.OBJINR AS EOBJINR, '2' AS EORD, B.ACTIONDESC AS EACTIONDESC, '' AS EGUARANTORCODE, 
        null AS ECONTRACTDATE, '0' AS EGUARANAMOUNT, '' AS EGUARANCURR, null AS EMATURITY, '' AS EGUARANTYPE, '' AS EMAINDEBTCURR, '0' AS EMAINDEBTAMOUNT, '' AS EBENCODE, '' AS EBENAME, '' AS EBENAMEN, '' AS EBENTYPE, '' AS EBENCOUNTRYCODE, '' AS EGUEDCODE, '' AS EGUEDNAME, '' AS EGUEDNAMEN, '' AS EGUEDTYPE, '' AS EGUEDCOUNCODE,
        '' AS EGUAPPCODE, '' AS EGUAPPNAME, '' AS EGUAPPNAMEN, '' AS EAPPDOCUNO, B.WABACHANDATE AS EWABACHANDATE, B.BASERE AS EBASERE, '' AS ECOMPLIANCENO, '' AS ECGUARANTORCODE, '' AS EBUSCODE, null AS EGUPERDATE, '' AS EGUPERCURR,'0' AS EGUPERAMOUNT, '0' AS EPGUPERAMOUNT, B.REMARK AS EREMARK 
        FROM EBL A, EBB B 
        <where>
            <include refid="msg_by_query_where"></include>
        </where>
        UNION SELECT A.TRNINR, A.INR AS LINR, A.RPTNO AS LRPTNO, A.OWNREF AS LOWNREF, A.OWNUSR AS LOWNUSR, B.CREDAT AS LCREDAT, A.OBJTYP AS LOBJTYP, '履约信息' AS TYPETABLE, B.ACTIONTYPE AS EACTIONTYPE, B.STA AS ESTA, B.INR AS EINR, B.OBJINR AS EOBJINR, '3' AS EORD, B.ACTIONDESC AS EACTIONDESC, '' AS EGUARANTORCODE, null AS ECONTRACTDATE,
        '0' AS EGUARANAMOUNT, '' AS EGUARANCURR, null AS EMATURITY, '' AS EGUARANTYPE, '' AS EMAINDEBTCURR, '' AS EMAINDEBTAMOUNT, B.BENCODE AS EBENCODE, B.BENAME AS EBENAME, B.BENAMEN AS EBENAMEN, '' AS EBENTYPE, '' AS EBENCOUNTRYCODE, '' AS EGUEDCODE, '' AS EGUEDNAME, '' AS EGUEDNAMEN, '' AS EGUEDTYPE, '' AS EGUEDCOUNCODE, '' AS EGUAPPCODE,
        '' AS EGUAPPNAME, '' AS EGUAPPNAMEN, '' AS EAPPDOCUNO, null AS EWABACHANDATE, '0' AS EBASERE, B.COMPLIANCENO AS ECOMPLIANCENO, B.GUARANTORCODE AS ECGUARANTORCODE, B.BUSCODE AS EBUSCODE, B.GUPERDATE AS EGUPERDATE, B.GUPERCURR AS EGUPERCURR, B.GUPERAMOUNT AS EGUPERAMOUNT, B.PGUPERAMOUNT AS EPGUPERAMOUNT, B.REMARK AS EREMARK
        FROM EBL A, EBC B
        <where>
            <include refid="msg_by_query_where"></include>
            ORDER BY LCREDAT DESC ,LTRNINR,EORD
        </where>
    </select>

    <sql id="ead_msg_by_query_where">
        A.OBJTYP= 'EAD' AND A.INR= B.EBLINR
        <if test="bchOwn != null">
            <choose>
                <when test='cfaSel.ownextkey != null and cfaSel.ownextkey != "" '>
                    and A.OWNEXTKEY=#{cfaSel.ownextkey}
                </when>
                <otherwise>
                    <choose>
                        <when test='bchOwn.lev == "0"'>
                            and 1=1
                        </when>
                        <otherwise>
                            <if test="bchList != null">
                                and A.OWNEXTKEY in
                                <foreach collection="bchList" item="bchNo" index="index" open="(" close=")" separator=",">
                                    #{bchNo}
                                </foreach>
                            </if>
                        </otherwise>
                    </choose>
                </otherwise>
            </choose>
        </if>
        <if test='cfaSel.ownref != null and cfaSel.ownref != "" '>
            AND A.OWNREF  LIKE concat('%',#{cfaSel.ownref},'%')
        </if>
        <if test='cfaSel.rptno != null and cfaSel.rptno != "" '>
            AND A.RPTNO LIKE concat(#{cfaSel.rptno},'%')
        </if>
        <choose>
            <when test='cfaSel.dattyp == "A" '>
                AND A.RELDAT <![CDATA[ >= ]]> date_format(#{cfaSel.frmdat},'%Y-%m-%d')
                AND A.RELDAT <![CDATA[ <= ]]> date_format(#{cfaSel.tildat},'%Y-%m-%d')
            </when>
            <otherwise>
                AND B.CREDAT <![CDATA[ >= ]]> date_format(#{cfaSel.frmdat},'%Y-%m-%d')
                AND B.CREDAT <![CDATA[ <= ]]> date_format(#{cfaSel.tildat},'%Y-%m-%d')
            </otherwise>
        </choose>
        <choose>
            <when test='cfaSel.staflg != null and cfaSel.staflg != "" '>
                AND B.STA=#{cfaSel.staflg}
            </when>
            <otherwise>
                AND B.STA != "P"
            </otherwise>
        </choose>
    </sql>

    <select id="queryEadlist" resultMap="BaseResultMap">
        SELECT A.TRNINR AS LTRNINR,A.INR AS LINR,A.RPTNO AS LRPTNO,A.OWNREF AS LOWNREF,A.OWNUSR AS LOWNUSR,B.CREDAT AS LCREDAT,A.OBJTYP AS LOBJTYP,'签约信息' AS TYPETABLE,B.ACTIONTYPE AS EACTIONTYPE,B.STA AS ESTA,B.INR AS EINR,'' AS EOBJINR,'1' AS EORD,B.ACTIONDESC AS EACTIONDESC,
        B.DEBTORCODE AS DEBTORCODE,B.DEBTYPE AS DEBTYPE,B.VALUEDATE AS VALUEDATE, B.CONTRACTCURR AS CONTRACTCURR, B.CONTRACTAMOUNT AS CONTRACTAMOUNT,
        B.MATURITY AS MATURITY, B.FLOATRATE AS FLOATRATE, B.ANNINRATE AS ANNINRATE, B.CREDITORCODE AS CREDITORCODE, B.CREDITORNAME AS CREDITORNAME,
        B.CREDITORNAMEN AS CREDITORNAMEN, B.CREDITORTYPE AS CREDITORTYPE, B.CREHQCODE AS CREHQCODE, B.OPERCODE AS OPERCODE, B.APPCODE AS APPCODE, B.APPNAME AS APPNAME, B.INLTCABUSCODE AS INLTCABUSCODE,
        B.SPAPFEBOINDEX AS SPAPFEBOINDEX, '' AS BUSCODE, '' AS CHANGENO, '' AS CHANGTYPE, null AS CHDATE, '' AS CHCURRENCY, 0 AS CHAMOUNT, 0 AS FAIRVALUE, B.REMARK AS REMARK,B.RELATION AS RELATION
        FROM EBL A, EAD B
        <where>
            <include refid="ead_msg_by_query_where"></include>
        </where>
        UNION SELECT A.TRNINR AS LTRNINR, A.INR AS LINR, A.RPTNO AS LRPTNO,A.OWNREF AS LOWNREF,A.OWNUSR AS LOWNUSR,B.CREDAT AS LCREDAT,A.OBJTYP AS LOBJTYP,concat('变动信息-',CASE B.CHANGTYPE WHEN '1101' THEN '提款'WHEN '1201' THEN '还本' WHEN '1301' THEN '还息' ELSE B.CHANGTYPE END) AS TYPETABLE,B.ACTIONTYPE AS EACTIONTYP,B.STA AS ESTA,B.INR AS EINR,B.OBJINR AS EOBJINR, '2' AS EORD, B.ACTIONDESC  AS EACTIONDESC,
        '' AS DEBTORCODE,'' AS DEBTYPE, null AS VALUEDATE, '' AS CONTRACTCURR, 0 AS CONTRACTAMOUNT,
        null AS MATURITY, '' AS FLOATRATE, 0 AS ANNINRATE, '' AS CREDITORCODE, '' AS CREDITORNAME,
        '' AS CREDITORNAMEN, '' AS CREDITORTYPE, '' AS CREHQCODE, '' AS OPERCODE, '' AS APPCODE, '' AS APPNAME, '' AS INLTCABUSCODE,
        '' AS SPAPFEBOINDEX, B.BUSCODE AS BUSCODE, B.CHANGENO AS CHANGENO, B.CHANGTYPE AS CHANGTYPE, B.CHDATE AS CHDATE, B.CHCURRENCY AS CHCURRENCY, B.CHAMOUNT AS CHAMOUNT, B.FAIRVALUE AS FAIRVALUE, B.REMARK AS REMARK,'' AS RELATION
        FROM EBL A, EAR B
        <where>
            <include refid="ead_msg_by_query_where"></include>
        </where>
        ORDER BY LCREDAT DESC ,LTRNINR,EORD
    </select>

    <sql id="eaf_msg_by_query_where">
        A.OBJTYP= 'EAF' AND A.INR= B.EBLINR
        <if test="bchOwn != null">
            <choose>
                <when test='cfaSel.ownextkey != null and cfaSel.ownextkey != "" '>
                    and A.OWNEXTKEY=#{cfaSel.ownextkey}
                </when>
                <otherwise>
                    <choose>
                        <when test='bchOwn.lev == "0"'>
                            and 1=1
                        </when>
                        <otherwise>
                            <if test="bchList != null">
                                and A.OWNEXTKEY in
                                <foreach collection="bchList" item="bchNo" index="index" open="(" close=")" separator=",">
                                    #{bchNo}
                                </foreach>
                            </if>
                        </otherwise>
                    </choose>
                </otherwise>
            </choose>
        </if>
        <if test='cfaSel.ownref != null and cfaSel.ownref != "" '>
            AND A.OWNREF  LIKE concat('%',#{cfaSel.ownref},'%')
        </if>
        <if test='cfaSel.rptno != null and cfaSel.rptno != "" '>
            AND A.RPTNO LIKE concat(#{cfaSel.rptno},'%')
        </if>
        <choose>
            <when test='cfaSel.dattyp == "A" '>
                AND A.RELDAT <![CDATA[ >= ]]> date_format(#{cfaSel.frmdat},'%Y-%m-%d')
                AND A.RELDAT <![CDATA[ <= ]]> date_format(#{cfaSel.tildat},'%Y-%m-%d')
            </when>
            <otherwise>
                AND B.CREDAT <![CDATA[ >= ]]> date_format(#{cfaSel.frmdat},'%Y-%m-%d')
                AND B.CREDAT <![CDATA[ <= ]]> date_format(#{cfaSel.tildat},'%Y-%m-%d')
            </otherwise>
        </choose>
        <choose>
            <when test='cfaSel.staflg != null and cfaSel.staflg != "" '>
                AND B.STA=#{cfaSel.staflg}
            </when>
            <otherwise>
                AND B.STA != "P"
            </otherwise>
        </choose>
    </sql>

    <select id="queryEaflist" resultMap="BaseResultMap">
        SELECT A.TRNINR AS LTRNINR,A.INR AS LINR,A.RPTNO AS LRPTNO,A.OWNREF AS LOWNREF,A.OWNUSR AS LOWNUSR,B.CREDAT AS LCREDAT,A.OBJTYP AS LOBJTYP,'签约信息' AS TYPETABLE,B.ACTIONTYPE AS EACTIONTYPE,B.STA AS ESTA,B.INR AS EINR,'' AS EOBJINR,'1' AS EORD,B.ACTIONDESC AS EACTIONDESC,
        B.DEBTORCODE AS DEBTORCODE,B.DEBTYPE AS DEBTYPE,B.VALUEDATE AS VALUEDATE, B.CONTRACTCURR AS CONTRACTCURR, B.CONTRACTAMOUNT AS CONTRACTAMOUNT,
        B.MATURITY AS MATURITY,  B.APPCODE AS APPCODE, B.APPNAME AS APPNAME, B.CREDITORCODE AS CREDITORCODE, B.CREDITORNAME AS CREDITORNAME,
        B.CREDITORNAMEN AS CREDITORNAMEN, B.CREDITORTYPE AS CREDITORTYPE, B.CREHQCODE AS CREHQCODE, B.OPERCODE AS OPERCODE, B.SPAPFEBOINDEX AS SPAPFEBOINDEX,
        '' AS BUSCODE, '' AS CHANGENO, '' AS CHANGTYPE, null AS CHDATE, '' AS CHCURRENCY, 0 AS CHAMOUNT, 0 AS FAIRVALUE, B.REMARK AS REMARK,B.CREDITTYPE AS CREDITTYPE,B.BILLSN AS BILLSN,B.RELATION AS RELATION
        FROM EBL A, EAF B
        <where>
            <include refid="eaf_msg_by_query_where"></include>
        </where>
        UNION SELECT A.TRNINR AS LTRNINR, A.INR AS LINR, A.RPTNO AS LRPTNO,A.OWNREF AS LOWNREF,A.OWNUSR AS LOWNUSR,B.CREDAT AS LCREDAT,A.OBJTYP AS LOBJTYP,concat('变动信息-',CASE B.CHANGTYPE WHEN '1101' THEN '提款'WHEN '1201' THEN '还本' WHEN '1301' THEN '还息' ELSE B.CHANGTYPE END) AS TYPETABLE,B.ACTIONTYPE AS EACTIONTYP,B.STA AS ESTA,B.INR AS EINR,B.OBJINR AS EOBJINR, '2' AS EORD, B.ACTIONDESC  AS EACTIONDESC,
        '' AS DEBTORCODE,'' AS DEBTYPE, null AS VALUEDATE, '' AS CONTRACTCURR, 0 AS CONTRACTAMOUNT,
        null AS MATURITY, '' AS APPCODE, '' AS APPNAME, '' AS CREDITORCODE, '' AS CREDITORNAME,
        '' AS CREDITORNAMEN, '' AS CREDITORTYPE, '' AS CREHQCODE, '' AS OPERCODE, '' AS SPAPFEBOINDEX,
        B.BUSCODE AS BUSCODE, B.CHANGENO AS CHANGENO, B.CHANGTYPE AS CHANGTYPE, B.CHDATE AS CHDATE, B.CHCURRENCY AS CHCURRENCY, B.CHAMOUNT AS CHAMOUNT, B.FAIRVALUE AS FAIRVALUE, B.REMARK AS REMARK,'' AS CREDITTYPE ,'' AS BILLSN ,'' AS RELATION
        FROM EBL A, EAR B
        <where>
            <include refid="eaf_msg_by_query_where"></include>
        </where>
        ORDER BY LCREDAT DESC ,LTRNINR,EORD
    </select>

    <sql id="eca_msg_by_query_where">
        A.OBJTYP= 'ECA' AND A.INR= B.EBLINR
        <if test="bchOwn != null">
            <choose>
                <when test='cfaSel.ownextkey != null and cfaSel.ownextkey != "" '>
                    and A.OWNEXTKEY=#{cfaSel.ownextkey}
                </when>
                <otherwise>
                    <choose>
                        <when test='bchOwn.lev == "0"'>
                            and 1=1
                        </when>
                        <otherwise>
                            <if test="bchList != null">
                                and A.OWNEXTKEY in
                                <foreach collection="bchList" item="bchNo" index="index" open="(" close=")" separator=",">
                                    #{bchNo}
                                </foreach>
                            </if>
                        </otherwise>
                    </choose>
                </otherwise>
            </choose>
        </if>
        <if test='cfaSel.ownref != null and cfaSel.ownref != "" '>
            AND A.OWNREF  LIKE concat('%',#{cfaSel.ownref},'%')
        </if>
        <if test='cfaSel.rptno != null and cfaSel.rptno != "" '>
            AND A.RPTNO LIKE concat(#{cfaSel.rptno},'%')
        </if>
        <choose>
            <when test='cfaSel.dattyp == "A" '>
                AND A.RELDAT <![CDATA[ >= ]]> date_format(#{cfaSel.frmdat},'%Y-%m-%d')
                AND A.RELDAT <![CDATA[ <= ]]> date_format(#{cfaSel.tildat},'%Y-%m-%d')
            </when>
            <otherwise>
                AND B.CREDAT <![CDATA[ >= ]]> date_format(#{cfaSel.frmdat},'%Y-%m-%d')
                AND B.CREDAT <![CDATA[ <= ]]> date_format(#{cfaSel.tildat},'%Y-%m-%d')
            </otherwise>
        </choose>
        <choose>
            <when test='cfaSel.staflg != null and cfaSel.staflg != "" '>
                AND B.STA=#{cfaSel.staflg}
            </when>
            <otherwise>
                AND B.STA != "P"
            </otherwise>
        </choose>
    </sql>

    <select id="queryEcalist" resultMap="BaseResultMap">
        SELECT A.TRNINR AS LTRNINR,A.INR AS LINR,A.RPTNO AS LRPTNO,A.OWNREF AS LOWNREF,A.OWNUSR AS LOWNUSR,B.CREDAT AS LCREDAT,A.OBJTYP AS LOBJTYP,'签约信息' AS TYPETABLE,B.ACTIONTYPE AS EACTIONTYPE,B.STA AS ESTA,B.INR AS EINR,'' AS EOBJINR,'1' AS EORD,B.ACTIONDESC AS EACTIONDESC,
        B.CREDITORCODE AS CREDITORCODE, B.DEBTORCODE AS DEBTORCODE, B.DEBTORNAME AS DEBTORNAME, B.DOFOEXLOTYPE AS DOFOEXLOTYPE, B.LENPRONAME AS LENPRONAME, B.LENAGREE AS LENAGREE, B.VALUEDATE AS VALUEDATE,
        B.MATURITY AS MATURITY, B.CURRENCE AS CONTRACTCURR, B.CONTRACTAMOUNT AS CONTRACTAMOUNT, B.ANNINRATE AS ANNINRATE,
        '' AS BUSCODE, '' AS CHANGENO, 0 AS LOANOPENBALAN, null AS CHDATE, '' AS WITHCURRENCE,
        0 AS WITHAMOUNT, 0 AS SETTAMOUNT, '' AS USEOFUNDS, '' AS PRINCURR, 0 AS REPAYAMOUNT, 0 AS PREPAYAMOUNT, '' AS INPAYCURR,
        0 AS INPAYAMOUNT, 0 AS PINPAYAMOUNT, 0 AS ENDBALAN, B.REMARK AS REMARK
        FROM EBL A,ECA B
        <where>
            <include refid="eca_msg_by_query_where"></include>
        </where>
        UNION SELECT A.TRNINR AS LTRNINR, A.INR AS LINR, A.RPTNO AS LRPTNO,A.OWNREF AS LOWNREF,A.OWNUSR AS LOWNUSR,B.CREDAT AS LCREDAT,A.OBJTYP AS LOBJTYP,'变动信息' AS TYPETABLE,B.ACTIONTYPE AS EACTIONTYP,B.STA AS ESTA,B.INR AS EINR,B.OBJINR AS EOBJINR, '2' AS EORD, B.ACTIONDESC  AS EACTIONDESC,
        '' AS CREDITORCODE, '' AS DEBTORCODE, '' AS DEBTORNAME, '' AS DOFOEXLOTYPE, '' AS LENPRONAME, '' AS LENAGREE, null AS VALUEDATE,
        null AS MATURITY, '' AS CONTRACTCURR, 0 AS CONTRACTAMOUNT, 0 AS ANNINRATE,
        B.BUSCODE AS BUSCODE, B.CHANGENO AS CHANGENO, B.LOANOPENBALAN AS LOANOPENBALAN, B.CHANGEDATE AS CHDATE, B.WITHCURRENCE AS WITHCURRENCE,
        B.WITHAMOUNT AS WITHAMOUNT, B.SETTAMOUNT AS SETTAMOUNT, B.USEOFUNDS AS USEOFUNDS, B.PRINCURR AS PRINCURR, B.REPAYAMOUNT AS REPAYAMOUNT, B.PREPAYAMOUNT AS PREPAYAMOUNT, B.INPAYCURR AS INPAYCURR,
        B.INPAYAMOUNT AS INPAYAMOUNT, B.PINPAYAMOUNT AS PINPAYAMOUNT, B.ENDBALAN AS ENDBALAN, B.REMARK  AS REMARK
        FROM EBL A,ECB B
        <where>
            <include refid="eca_msg_by_query_where"></include>
        </where>
        ORDER BY LCREDAT DESC ,LTRNINR,EORD
    </select>


</mapper>