<?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.dxhy.extend.dao.ExtBbfpzhDao">

    <resultMap id="BaseResultMap"
               type="com.dxhy.extend.model.ExtBbfpzhcxRespVO">
        <result column="invoice_code" property="invoiceCode"/>
        <result column="bzdh" property="bzdh"/>
        <result column="bzr" property="bzr"/>
        <result column="inaccount_status" property="inAccountStatus"/>
        <result column="invoice_no" property="invoiceNo"/>
        <result column="kprq" property="invoiceDate"/>
        <result column="invoice_type" property="invoiceType"/>
        <result column="gfsh" property="gfsh"/>
        <result column="gfmc" property="gfmc"/>
        <result column="xf_tax_no" property="xfsh"/>
        <result column="xf_name" property="xfmc"/>
        <result column="invoice_amount" property="invoiceAmount"/>
        <result column="tax_amount" property="taxAmount"/>
        <result column="dk_tax_amount" property="dkTaxAmount"/>
        <result column="invoice_status" property="invoiceStatus"/>
        <result column="rzh_date" property="rzsj"/>
        <result column="qs_date" property="qsrq"/>
        <result column="dqskssq" property="skssq"/>
        <result column="auth_status" property="rzclzt"/>
        <result column="qs_type" property="qsfs"/>
        <result column="qs_status" property="qszt"/>
        <result column="qs_name" property="qsr"/>
        <result column="rzh_yesorno" property="rzzt"/>
        <result column="deptId" property="deptId"/>
        <result column="deptName" property="businessName"/>
        <result column="confirm_user" property="rzhr"/>
        <result column="glzt" property="glzt"/>
        <result column="uuid" property="uuid"/>
        <result column="bdk_status" property="bdkStatus"/>
        <result column="export_mark" property="exportMark"/>
        <result column="scan_id" property="scanId"/>
<!--        <result column="in_account_status" property="inAccountStatus"/>-->
        <result column="settle_source" property="settleSource"/>
        <result column="settlement_no" property="settlementNo"/>
        <result column="settlement_status" property="settlementStatus"/>
        <result column="voucher_number" property="voucherNumber"/>
        <result column="total_amount" property="totalAmount"/>
        <result column="sn_voucher_number" property="snVoucherNumber"/>
        <result column="posting_time" property="postingTime"/>
        <result column="image_id" property="imageNumber"/>
        <result column="account_period" property="accountPeriod"/>
    </resultMap>

    <resultMap id="BbfpzhcxhjResultMap"
               type="com.dxhy.extend.model.ExtBbfpzhcxRespVO">
        <result column="hjsl" property="id"/>
        <result column="hjje" property="invoiceAmount"/>
        <result column="hjse" property="taxAmount"/>
    </resultMap>

    <select id="selectByPramsMap" parameterType="java.util.Map"
            resultMap="BaseResultMap" databaseId="mysql">
        select
        t.invoice_code,t.invoice_no,DATE_FORMAT(t.invoice_date,'%Y-%m-%d') kprq,t.gf_tax_no
        gfsh,t.gf_name gfmc,t.bzr,
        t.xf_tax_no,t.xf_name,t.tax_amount,t.dk_tax_amount,t.invoice_status,t.invoice_amount,DATE_FORMAT(t.rzh_date,'%Y-%m-%d')
        rzh_date ,DATE_FORMAT(t.qs_date,'%Y-%m-%d') qs_date,t.rzh_type,t.dept_id deptId,
        t.gx_user_name,t.rzh_belong_date
        dqskssq,t.auth_status,t.qs_type,t.qs_status,t.confirm_user,t.qs_name,t.rzh_yesorno,
        t.invoice_type , t.dept_name deptName,t.glzt
        glzt,t.uuid,t.bdk_status,t.scan_id,t.in_account_status,t.settle_source,
        t.settlement_no,t.inaccount_status,t.bzdh,
        t.settlement_status,t.voucher_number,t.total_amount,t.sn_voucher_number,t.posting_time,t.image_id,t.account_period
        from t_dx_record_invoice t
        WHERE t.company = #{company}
        and t.invoice_date between #{kpksrq} and #{kpjsrq}

        <if test="sign != '88'">
            and t.gf_tax_no in
            <foreach collection="gfsh" index="index" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>

        <if test="companyCode != null and companyCode != '' and companyCode != 'null' and companyCode == '99'">
            and (t.comp_code in
            <foreach collection="companyCodes" index="index" item="companyCode" separator="," open="(" close=")">
                #{companyCode}
            </foreach>
            or t.comp_code is null or t.comp_code = ''
            )
        </if>
        <if test="companyCode != null and companyCode != '99' and companyCode != '88' and companyCode != '' and companyCode != 'null'" >
            and t.comp_code = #{companyCode}
        </if>
        <if test="companyCode != null and companyCode != ''  and companyCode == '88'">
            and (t.comp_code = '' or t.comp_code is null)
        </if>
        <if test="bzdh != null and bzdh != '' and bzdh != 'null'">
            and t.bzdh = #{bzdh}
        </if>
        <if test="bzr != null and bzr != '' and bzr != 'null'">
            and t.bzr like concat('%',#{bzr},'%')
        </if>
        <if test="inAccountStatus != null and inAccountStatus != '' and inAccountStatus != 'null' and inAccountStatus != '99' and inAccountStatus == '1'.toString()">
            and t.inaccount_status = #{inAccountStatus}
        </if>
        <if test="inAccountStatus != null and inAccountStatus != '' and inAccountStatus != 'null' and inAccountStatus != '99' and inAccountStatus == '0'.toString()">
            and (t.inaccount_status = '0' or t.inaccount_status = '' or t.inaccount_status is null)
        </if>
        <if
                test="invoiceStatus != null and invoiceStatus != '' and invoiceStatus != 'null' and invoiceStatus != '99'">
            and t.invoice_status = #{invoiceStatus}
        </if>
        <if test="qszt != null and qszt != '' and qszt != 'null' and qszt != '99'">
            and t.qs_status = #{qszt}
        </if>
        <if test="voucherNumber != null and voucherNumber != ''">
            and t.voucher_number like concat('%',concat(#{voucherNumber},'%'))
        </if>
        <if test="rzzt != null and rzzt != '' and rzzt != 'null' and rzzt != '99'">
            and t.rzh_yesorno = #{rzzt}
        </if>
        <if
                test="invoiceType != null and invoiceType != '' and invoiceType != 'null'  and invoiceType != '99'">
            and t.invoice_type = #{invoiceType}
        </if>
        <if test="invoiceSource != null and invoiceSource != '' and invoiceSource != 'null' and invoiceSource != '99' ">
            and t.invoice_source = #{invoiceSource}
        </if>
        <if
                test="fprzfs != null and fprzfs != '' and fprzfs != 'null' and fprzfs != '99'">
            and t.rzh_type = #{fprzfs}
        </if>
        <if
                test="fprzclzt != null and fprzclzt != '' and fprzclzt != 'null' and fprzclzt != '99'">
            and t.auth_status = #{fprzclzt}
        </if>
        <if test="rzlx != null and rzlx != '' and rzlx != 'null' and rzlx != '99'">
            and t.bdk_status = #{rzlx}
        </if>
        <if test="xfmc != null and xfmc != '' and xfmc != 'null' ">
            and t.xf_name like CONCAT(#{xfmc},'%')
        </if>
        <if test="xfsh != null and xfsh != '' and xfsh != 'null' ">
            and SUBSTR(t.xf_tax_no , -6) = #{xfsh}
        </if>
        <if test="amountMin!=null and amountMin!=''">
            and t.invoice_amount &gt;= #{amountMin}
        </if>

        <if test="amountMax!=null and amountMax!=''">
            and t.invoice_amount &lt;= #{amountMax}
        </if>
        <if test="taxAmountMin!=null and taxAmountMin!=''">
            and t.tax_amount &gt;= #{taxAmountMin}
        </if>

        <if test="taxAmountMax!=null and taxAmountMax!=''">
            and t.tax_amount &lt;= #{taxAmountMax}
        </if>

        <if test="qsr != null and qsr != '' and qsr != 'null' ">
            and t.qs_name = #{qsr}
        </if>
        <if test="rzhr != null and rzhr != '' and rzhr != 'null' ">
            and t.confirm_user like CONCAT(#{rzhr},'%')
        </if>
        <if test="settlementNo != null and settlementNo != ''">
            and t.settlement_no like concat(#{settlementNo},'%')
        </if>
        <if test="glzt != null and glzt != '' and glzt != 'null' and glzt != '99'">
            and t.glzt = #{glzt}
        </if>
        <if test="invoiceNo != null and invoiceNo != '' and invoiceNo != 'null' ">
            and t.invoice_no = #{invoiceNo}
        </if>
        <if test="rzksrq != null and rzjsrq != null and rzksrq != '' and rzjsrq != ''">
            and t.rzh_date between #{rzksrq} and #{rzjsrq}
        </if>
        <if test="skssq != null and skssq != '' and skssq != 'null' ">
            and t.rzh_belong_date = #{skssq}
        </if>
        <if test="qsfs != null and qsfs != '' and qsfs != 'null' and qsfs != '99'">
            and t.qs_type = #{qsfs}
        </if>
        <if test="qsksrq != null and qsjsrq != null and qsksrq != '' and qsjsrq != ''">
            and t.qs_date between #{qsksrq} and #{qsjsrq}
        </if>
        <if
                test="businessCode != '99' and businessCode != null and businessCode != '' and businessCode != 'null' ">
            and t.dept_id = #{businessCode}
        </if>
        <if test="businessCode==''">
            and (t.dept_id is null or t.dept_id='' or t.dept_id='99')
        </if>
        <if test='businessCode == "99" and business!=null and business.size()>0'>
            and (t.dept_id in
            <foreach collection="business" index="index" item="item" open="(" separator="," close="">
                #{item.businessCode}
            </foreach>
            ) or (t.dept_id is null or t.dept_id='' or t.dept_id='99'))
        </if>
<!--        <if test='inAccountStatus!=null and inAccountStatus != "" and inAccountStatus != "99"'>-->
<!--            and t.in_account_status = #{inAccountStatus}-->
<!--        </if>-->
        <if test="snVoucherNumber != null and snVoucherNumber != '' and snVoucherNumber != 'null' and snVoucherNumber != '99'">
            and t.sn_voucher_number = #{snVoucherNumber}
        </if>
        <if test="postingTimeStart != null and postingTimeStart != '' and postingTimeStart != 'null' and postingTimeStart != '99' and postingTimeEnd != null and postingTimeEnd != '' and postingTimeEnd != 'null' and postingTimeEnd != '99'">
            and posting_time between #{postingTimeStart} and #{postingTimeEnd}
        </if>
        <if test="imageNumber != null and imageNumber != '' and imageNumber != 'null' and imageNumber != '99'">
            and t.image_id = #{imageNumber}
        </if>
        <if test="accountPeriod != null and accountPeriod != '' and accountPeriod != 'null' and accountPeriod != '99'">
            and t.account_period = #{accountPeriod}
        </if>
        order by t.invoice_date desc
    </select>
    <select id="selectByPramsMap" parameterType="java.util.Map"
            resultMap="BaseResultMap" databaseId="oracle">
        select
        t.invoice_code,t.invoice_no,to_char(t.invoice_date,'yyyy-mm-dd') kprq,t.gf_tax_no gfsh,t.gf_name
        gfmc,
        t.xf_tax_no,t.xf_name,t.tax_amount,t.dk_tax_amount,t.invoice_status,t.invoice_amount,to_char(t.rzh_date,'yyyy-mm-dd')
        rzh_date ,to_char(t.qs_date,'yyyy-mm-dd') qs_date,t.rzh_type,t.dept_id deptId,
        t.gx_user_name,t.rzh_belong_date
        dqskssq,t.auth_status,t.qs_type,t.qs_status,t.confirm_user,t.qs_name,t.rzh_yesorno,
        t.invoice_type , t.dept_name deptName,t.glzt glzt,t.uuid,t.bdk_status,t.in_account_status,t.settle_source,
        t.settlement_no,
        t.settlement_status,t.voucher_number,t.total_amount,t.sn_voucher_number,t.posting_time,t.image_id,t.account_period
        from t_dx_record_invoice t
        WHERE t.company = #{company} and t.invoice_date between to_date(#{kpksrq},'yyyy-mm-dd
        hh24:mi:ss') and
        to_date(#{kpjsrq},'yyyy-mm-dd
        hh24:mi:ss')
        and t.gf_tax_no in
        <foreach collection="gfsh" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        <if
                test="invoiceStatus != null and invoiceStatus != '' and invoiceStatus != 'null' and invoiceStatus != '99' ">
            and t.invoice_status = #{invoiceStatus}
        </if>
        <if test="qszt != null and qszt != '' and qszt != 'null' and qszt != '99'">
            and t.qs_status = #{qszt}
        </if>
        <if test="rzzt != null and rzzt != '' and rzzt != 'null' and rzzt != '99'">
            and t.rzh_yesorno = #{rzzt}
        </if>
        <if
                test="invoiceType != null and invoiceType != '' and invoiceType != 'null' and invoiceType != '99'">
            and t.invoice_type = #{invoiceType}
        </if>
        <if test="invoiceSource != null and invoiceSource != '' and invoiceSource != 'null' and invoiceSource != '99' ">
            and t.invoice_source = #{invoiceSource}
        </if>
        <if
                test="fprzfs != null and fprzfs != '' and fprzfs != 'null' and fprzfs != '99'">
            and t.rzh_type = #{fprzfs}
        </if>
        <if
                test="fprzclzt != null and fprzclzt != '' and fprzclzt != 'null' and fprzclzt != '99'">
            and t.auth_status = #{fprzclzt}
        </if>
        <if test="rzlx != null and rzlx != '' and rzlx != 'null' and rzlx != '99'">
            and t.bdk_status = #{rzlx}
        </if>
        <if test="xfmc != null and xfmc != '' and xfmc != 'null' ">
            and t.xf_name like CONCAT(#{xfmc},'%')
        </if>
        <if test="xfsh != null and xfsh != '' and xfsh != 'null' ">
            and SUBSTR(t.xf_tax_no , -6) = #{xfsh}
        </if>
        <if test="amountMin!=null and amountMin!=''">
            and t.invoice_amount &gt;= #{amountMin}
        </if>

        <if test="amountMax!=null and amountMax!=''">
            and t.invoice_amount &lt;= #{amountMax}
        </if>
        <if test="taxAmountMin!=null and taxAmountMin!=''">
            and t.tax_amount &gt;= #{taxAmountMin}
        </if>

        <if test="taxAmountMax!=null and taxAmountMax!=''">
            and t.tax_amount &lt;= #{taxAmountMax}
        </if>
        <if test="qsr != null and qsr != '' and qsr != 'null' ">
            and t.qs_name = #{qsr}
        </if>
        <if test="rzhr != null and rzhr != '' and rzhr != 'null' ">
            and t.confirm_user like CONCAT(#{rzhr},'%')
        </if>
        <if test="glzt != null and glzt != '' and glzt != 'null' and glzt != '99'">
            and t.glzt = #{glzt}
        </if>
        <if
                test="invoiceNo != null and invoiceNo != '' and invoiceNo != 'null' ">
            and t.invoice_no = #{invoiceNo}
        </if>
        <if test="rzksrq != null and rzjsrq != null and rzksrq != '' and rzjsrq != ''">
            and t.rzh_date between to_date(#{rzksrq},'yyyy-mm-dd hh24:mi:ss') and
            to_date(#{rzjsrq},'yyyy-mm-dd
            hh24:mi:ss')
        </if>
        <if test="skssq != null and skssq != '' and skssq != 'null' ">
            and t.rzh_belong_date = #{skssq}
        </if>
        <if test="qsfs != null and qsfs != '' and qsfs != 'null' and qsfs != '99'">
            and t.qs_type = #{qsfs}
        </if>
        <if test="qsksrq != null and qsjsrq != null and qsksrq != '' and qsjsrq != ''">
            and t.qs_date between to_date(#{qsksrq},'yyyy-mm-dd hh24:mi:ss') and
            to_date(#{qsjsrq},'yyyy-mm-dd
            hh24:mi:ss')
        </if>
        <if
                test="businessCode != '99' and businessCode != null and businessCode != '' and businessCode != 'null' ">
            and t.dept_id = #{businessCode}
        </if>
        <if test="businessCode==''">
            and (t.dept_id is null or t.dept_id='' or t.dept_id='99')
        </if>
        <if test='businessCode == "99" and business!=null and business.size()>0'>
            and (t.dept_id in
            <foreach collection="business" index="index" item="item" open="(" separator="," close="">
                #{item.businessCode}
            </foreach>
            ) or (t.dept_id is null or t.dept_id='' or t.dept_id='99'))
        </if>
        <if test='inAccountStatus!=null and inAccountStatus != "" and inAccountStatus != "99"'>
            and t.in_account_status = #{inAccountStatus}
        </if>
        <if test="snVoucherNumber != null and snVoucherNumber != '' and snVoucherNumber != 'null' and snVoucherNumber != '99'">
            and t.sn_voucher_number = #{snVoucherNumber}
        </if>
        <if test="postingTime != null and postingTime != '' and postingTime != 'null' and postingTime != '99'">
            and t.posting_time = #{postingTime}
        </if>
        <if test="imageId != null and imageId != '' and imageId != 'null' and imageId != '99'">
            and t.image_id = #{imageId}
        </if>
        <if test="accountPeriod != null and accountPeriod != '' and accountPeriod != 'null' and accountPeriod != '99'">
            and t.account_period = #{accountPeriod}
        </if>
        order by t.invoice_date desc
    </select>

    <select id="selectBbfpzhHj" parameterType="java.util.Map"
            resultMap="BbfpzhcxhjResultMap" databaseId="mysql">
        select count(1) hjsl,sum(t.invoice_amount)hjje,sum(t.tax_amount)hjse
        from t_dx_record_invoice t
        where t.invoice_date between #{kpksrq} and #{kpjsrq}
        and t.company = #{company}

        <if test="sign != '88'">
            and t.gf_tax_no in
            <foreach collection="gfsh" index="index" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>

        <if test="companyCode != null and companyCode != '' and companyCode != 'null' and companyCode == '99'">
            and (t.comp_code in
            <foreach collection="companyCodes" index="index" item="companyCode" separator="," open="(" close=")">
                #{companyCode}
            </foreach>
            or t.comp_code is null or t.comp_code = ''
            )
        </if>
        <if test="companyCode != null and companyCode != '99' and companyCode != '88' and companyCode != '' and companyCode != 'null'" >
            and t.comp_code = #{companyCode}
        </if>
        <if test="companyCode != null and companyCode != ''  and companyCode == '88'">
            and (t.comp_code = '' or t.comp_code is null)
        </if>
        <if
                test="invoiceStatus != null and invoiceStatus != '' and invoiceStatus != 'null' and invoiceStatus != '99'">
            and t.invoice_status = #{invoiceStatus}
        </if>
        <if test="bzdh != null and bzdh != '' and bzdh != 'null'">
            and t.bzdh = #{bzdh}
        </if>
        <if test="bzr != null and bzr != '' and bzr != 'null'">
            and t.bzr like concat('%',#{bzr},'%')
        </if>
        <if test="inAccountStatus != null and inAccountStatus != '' and inAccountStatus != 'null' and inAccountStatus != '99' and inAccountStatus == '1'.toString()">
            and t.inaccount_status = #{inAccountStatus}
        </if>
        <if test="inAccountStatus != null and inAccountStatus != '' and inAccountStatus != 'null' and inAccountStatus != '99' and inAccountStatus == '0'.toString()">
            and (t.inaccount_status = '0' or t.inaccount_status = '' or t.inaccount_status is null)
        </if>
        <if test="qszt != null and qszt != '' and qszt != 'null' and qszt != '99'">
            and t.qs_status = #{qszt}
        </if>
        <if test="rzzt != null and rzzt != '' and rzzt != 'null' and rzzt != '99'">
            and t.rzh_yesorno = #{rzzt}
        </if>
        <if test="voucherNumber != null and voucherNumber != ''">
            and t.voucher_number like concat('%',concat(#{voucherNumber},'%'))
        </if>
        <if
                test="invoiceType != null and invoiceType != '' and invoiceType != 'null'  and invoiceType != '99'">
            and t.invoice_type = #{invoiceType}
        </if>
        <if test="invoiceSource != null and invoiceSource != '' and invoiceSource != 'null' and invoiceSource != '99' ">
            and t.invoice_source = #{invoiceSource}
        </if>
        <if
                test="fprzfs != null and fprzfs != '' and fprzfs != 'null' and fprzfs != '99'">
            and t.rzh_type = #{fprzfs}
        </if>
        <if
                test="fprzclzt != null and fprzclzt != '' and fprzclzt != 'null' and fprzclzt != '99'">
            and t.auth_status = #{fprzclzt}
        </if>
        <if test="rzlx != null and rzlx != '' and rzlx != 'null' and rzlx != '99'">
            and t.bdk_status = #{rzlx}
        </if>
        <if test="xfmc != null and xfmc != '' and xfmc != 'null' ">
            and t.xf_name like CONCAT(#{xfmc},'%')
        </if>
        <if test="settlementNo != null and settlementNo != ''">
            and t.settlement_no like concat(#{settlementNo},'%')
        </if>
        <if test="xfsh != null and xfsh != '' and xfsh != 'null' ">
            and SUBSTR(t.xf_tax_no , -6) = #{xfsh}
        </if>
        <if test="amountMin!=null and amountMin!=''">
            and t.invoice_amount &gt;= #{amountMin}
        </if>

        <if test="amountMax!=null and amountMax!=''">
            and t.invoice_amount &lt;= #{amountMax}
        </if>
        <if test="taxAmountMin!=null and taxAmountMin!=''">
            and t.tax_amount &gt;= #{taxAmountMin}
        </if>

        <if test="taxAmountMax!=null and taxAmountMax!=''">
            and t.tax_amount &lt;= #{taxAmountMax}
        </if>
        <if test="qsr != null and qsr != '' and qsr != 'null' ">
            and t.qs_name = #{qsr}
        </if>
        <if test="rzhr != null and rzhr != '' and rzhr != 'null' ">
            and t.confirm_user like CONCAT(#{rzhr},'%')
        </if>
        <if test="glzt != null and glzt != '' and glzt != 'null' and glzt != '99'">
            and t.glzt = #{glzt}
        </if>
        <if test="invoiceNo != null and invoiceNo != '' and invoiceNo != 'null' ">
            and t.invoice_no = #{invoiceNo}
        </if>
        <if test="rzksrq != null and rzjsrq != null and rzksrq != '' and rzjsrq != ''">
            and t.rzh_date between #{rzksrq} and #{rzjsrq}
        </if>
        <if test="skssq != null and skssq != '' and skssq != 'null' ">
            and t.rzh_belong_date = #{skssq}
        </if>
        <if test="qsfs != null and qsfs != '' and qsfs != 'null' and qsfs != '99'">
            and t.qs_type = #{qsfs}
        </if>
        <if test="qsksrq != null and qsjsrq != null and qsksrq != '' and qsjsrq != ''">
            and t.qs_date between #{qsksrq} and #{qsjsrq}
        </if>
        <if
                test="businessCode != '99' and businessCode != null and businessCode != '' and businessCode != 'null' ">
            and t.dept_id = #{businessCode}
        </if>
        <if test="businessCode==''">
            and (t.dept_id is null or t.dept_id='' or t.dept_id='99')
        </if>
        <if test='businessCode == "99" and business!=null and business.size()>0'>
            and (t.dept_id in
            <foreach collection="business" index="index" item="item" open="(" separator="," close="">
                #{item.businessCode}
            </foreach>
            ) or (t.dept_id is null or t.dept_id='' or t.dept_id='99'))
        </if>
<!--        <if test='inAccountStatus!=null and inAccountStatus != "" and inAccountStatus != "99"'>-->
<!--            and t.in_account_status = #{inAccountStatus}-->
<!--        </if>-->
        <if test="snVoucherNumber != null and snVoucherNumber != '' and snVoucherNumber != 'null' and snVoucherNumber != '99'">
            and t.sn_voucher_number = #{snVoucherNumber}
        </if>
        <if test="postingTime != null and postingTime != '' and postingTime != 'null' and postingTime != '99'">
            and t.posting_time = #{postingTime}
        </if>
        <if test="imageNumber != null and imageNumber != '' and imageNumber != 'null' and imageNumber != '99'">
            and t.image_id = #{imageNumber}
        </if>
        <if test="accountPeriod != null and accountPeriod != '' and accountPeriod != 'null' and accountPeriod != '99'">
            and t.account_period = #{accountPeriod}
        </if>
    </select>

    <select id="selectBbfpzhHj" parameterType="java.util.Map"
            resultMap="BbfpzhcxhjResultMap" databaseId="oracle">
        select count(1) hjsl,sum(t.invoice_amount)hjje,sum(t.tax_amount)hjse
        from t_dx_record_invoice t
        where t.company = #{company} and t.invoice_date between to_date(#{kpksrq},'yyyy-mm-dd
        hh24:mi:ss') and
        to_date(#{kpjsrq},'yyyy-mm-dd
        hh24:mi:ss')
        and t.gf_tax_no in
        <foreach collection="gfsh" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        <if
                test="invoiceStatus != null and invoiceStatus != '' and invoiceStatus != 'null' and invoiceStatus != '99' ">
            and t.invoice_status = #{invoiceStatus}
        </if>
        <if test="qszt != null and qszt != '' and qszt != 'null' and qszt != '99'">
            and t.qs_status = #{qszt}
        </if>
        <if test="rzzt != null and rzzt != '' and rzzt != 'null' and rzzt != '99'">
            and t.rzh_yesorno = #{rzzt}
        </if>
        <if
                test="invoiceType != null and invoiceType != '' and invoiceType != 'null' and invoiceType != '99'">
            and t.invoice_type = #{invoiceType}
        </if>
        <if test="invoiceSource != null and invoiceSource != '' and invoiceSource != 'null' and invoiceSource != '99' ">
            and t.invoice_source = #{invoiceSource}
        </if>
        <if
                test="fprzfs != null and fprzfs != '' and fprzfs != 'null' and fprzfs != '99'">
            and t.rzh_type = #{fprzfs}
        </if>
        <if
                test="fprzclzt != null and fprzclzt != '' and fprzclzt != 'null' and fprzclzt != '99'">
            and t.auth_status = #{fprzclzt}
        </if>
        <if test="rzlx != null and rzlx != '' and rzlx != 'null' and rzlx != '99'">
            and t.bdk_status = #{rzlx}
        </if>
        <if test="xfmc != null and xfmc != '' and xfmc != 'null' ">
            and t.xf_name like CONCAT(#{xfmc},'%')
        </if>
        <if test="xfsh != null and xfsh != '' and xfsh != 'null' ">
            and SUBSTR(t.xf_tax_no , -6) = #{xfsh}
        </if>
        <if test="amountMin!=null and amountMin!=''">
            and t.invoice_amount &gt;= #{amountMin}
        </if>

        <if test="amountMax!=null and amountMax!=''">
            and t.invoice_amount &lt;= #{amountMax}
        </if>
        <if test="taxAmountMin!=null and taxAmountMin!=''">
            and t.tax_amount &gt;= #{taxAmountMin}
        </if>

        <if test="taxAmountMax!=null and taxAmountMax!=''">
            and t.tax_amount &lt;= #{taxAmountMax}
        </if>
        <if test="qsr != null and qsr != '' and qsr != 'null' ">
            and t.qs_name = #{qsr}
        </if>
        <if test="rzhr != null and rzhr != '' and rzhr != 'null' ">
            and t.confirm_user like CONCAT(#{rzhr},'%')
        </if>
        <if test="glzt != null and glzt != '' and glzt != 'null' and glzt != '99'">
            and t.glzt = #{glzt}
        </if>
        <if
                test="invoiceNo != null and invoiceNo != '' and invoiceNo != 'null' ">
            and t.invoice_no = #{invoiceNo}
        </if>
        <if test="rzksrq != null and rzjsrq != null and rzksrq != '' and rzjsrq != ''">
            and t.rzh_date between to_date(#{rzksrq},'yyyy-mm-dd hh24:mi:ss') and
            to_date(#{rzjsrq},'yyyy-mm-dd
            hh24:mi:ss')
        </if>
        <if test="skssq != null and skssq != '' and skssq != 'null' ">
            and t.rzh_belong_date = #{skssq}
        </if>
        <if test="qsfs != null and qsfs != '' and qsfs != 'null' and qsfs != '99'">
            and t.qs_type = #{qsfs}
        </if>
        <if test="qsksrq != null and qsjsrq != null and qsksrq != '' and qsjsrq != ''">
            and t.qs_date between to_date(#{qsksrq},'yyyy-mm-dd hh24:mi:ss') and
            to_date(#{qsjsrq},'yyyy-mm-dd
            hh24:mi:ss')
        </if>
        <if
                test="businessCode != '99' and businessCode != null and businessCode != '' and businessCode != 'null' ">
            and t.dept_id = #{businessCode}
        </if>
        <if test="businessCode==''">
            and (t.dept_id is null or t.dept_id='' or t.dept_id='99')
        </if>
        <if test='businessCode == "99" and business!=null and business.size()>0'>
            and (t.dept_id in
            <foreach collection="business" index="index" item="item" open="(" separator="," close="">
                #{item.businessCode}
            </foreach>
            ) or (t.dept_id is null or t.dept_id='' or t.dept_id='99'))
        </if>
        <if test='inAccountStatus!=null and inAccountStatus != "" and inAccountStatus != "99"'>
            and t.in_account_status = #{inAccountStatus}
        </if>
    </select>

</mapper>
