<?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.glxp.mipsdl.thirddao.ctqyy.VYpzsIoInfoMapper">
    <resultMap id="BaseResultMap" type="com.glxp.mipsdl.entity.ctqyy.VYpzsIoInfo">
        <!--@mbg.generated-->
        <!--@Table v_ypzs_io_info-->
        <result column="RECEIPT_NUMBER" jdbcType="VARCHAR" property="RECEIPT_NUMBER"/>
        <result column="IO_FLAG" jdbcType="CHAR" property="IO_FLAG"/>
        <result column="IO_SORT" jdbcType="INTEGER" property="IO_SORT"/>
        <result column="SORT_NAME" jdbcType="VARCHAR" property="SORT_NAME"/>
        <result column="CONSIGNOR" jdbcType="VARCHAR" property="CONSIGNOR"/>
        <result column="CONSIGNOR_NAME" jdbcType="VARCHAR" property="CONSIGNOR_NAME"/>
        <result column="CONSIGNEE" jdbcType="VARCHAR" property="CONSIGNEE"/>
        <result column="CONSIGNEE_NAME" jdbcType="VARCHAR" property="CONSIGNEE_NAME"/>
        <result column="KEEP_BOOK_TIME" jdbcType="TIMESTAMP" property="KEEP_BOOK_TIME"/>
        <result column="KEEP_BOOK_OPERATOR" jdbcType="VARCHAR" property="KEEP_BOOK_OPERATOR"/>
        <result column="PHYSIC_CODE" jdbcType="VARCHAR" property="PHYSIC_CODE"/>
        <result column="PHYSIC_NAME" jdbcType="VARCHAR" property="PHYSIC_NAME"/>
        <result column="BATCH_NO" jdbcType="VARCHAR" property="BATCH_NO"/>
        <result column="BATCH_NUMBER" jdbcType="BIGINT" property="BATCH_NUMBER"/>
        <result column="QUANTITY" jdbcType="INTEGER" property="QUANTITY"/>
        <result column="PACK_UNIT1" jdbcType="VARCHAR" property="PACK_UNIT1"/>
        <result column="IMPORT_PRICE" jdbcType="DECIMAL" property="IMPORT_PRICE"/>
        <result column="IMPORT_MONEY" jdbcType="DECIMAL" property="IMPORT_MONEY"/>
        <result column="RETAIL_PRICE" jdbcType="DECIMAL" property="RETAIL_PRICE"/>
        <result column="RETAIL_MONEY" jdbcType="DECIMAL" property="RETAIL_MONEY"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        RECEIPT_NUMBER, IO_FLAG, IO_SORT, SORT_NAME, CONSIGNOR, CONSIGNOR_NAME, CONSIGNEE,
        CONSIGNEE_NAME, KEEP_BOOK_TIME, KEEP_BOOK_OPERATOR, PHYSIC_CODE, PHYSIC_NAME, BATCH_NO,
        BATCH_NUMBER, QUANTITY, PACK_UNIT1, IMPORT_PRICE, IMPORT_MONEY, RETAIL_PRICE, RETAIL_MONEY
    </sql>

    <select id="selectGroupedWithPagination" resultType="com.glxp.mipsdl.entity.ctqyy.VYpzsIoInfo">
        SELECT RECEIPT_NUMBER
        FROM v_ypzs_io_info
        <where>
            <if test="udiwmsThrOrderRequest.startTime != null and udiwmsThrOrderRequest.startTime != ''
            and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
                <![CDATA[
                and KEEP_BOOK_TIME >= TO_DATE(#{udiwmsThrOrderRequest.startTime}
                  , 'YYYY-MM-DD HH24:MI:SS')
                ]]>
            </if>
            <if test="udiwmsThrOrderRequest.endTime != null and udiwmsThrOrderRequest.endTime != ''
            and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
                <![CDATA[
                and KEEP_BOOK_TIME <= TO_DATE(#{udiwmsThrOrderRequest.endTime}
                  , 'YYYY-MM-DD HH24:MI:SS')
                ]]>
            </if>
            <if test="udiwmsThrOrderRequest.startTime != null and udiwmsThrOrderRequest.startTime != ''
            and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
                <![CDATA[
                and KEEP_BOOK_TIME >=  #{udiwmsThrOrderRequest.startTime}
                ]]>
            </if>
            <if test="udiwmsThrOrderRequest.endTime != null and udiwmsThrOrderRequest.endTime != ''
            and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
                <![CDATA[
                and KEEP_BOOK_TIME <=  #{udiwmsThrOrderRequest.endTime}
                ]]>
            </if>
            <if test="udiwmsThrOrderRequest.corpName != null and udiwmsThrOrderRequest.corpName != ''
            and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
                and (CONSIGNOR_NAME LIKE '%' || #{udiwmsThrOrderRequest.corpName} || '%'
                 or CONSIGNEE_NAME LIKE '%' || #{udiwmsThrOrderRequest.corpName} || '%')
            </if>
            <if test="udiwmsThrOrderRequest.billNo != null and udiwmsThrOrderRequest.billNo != ''
            and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
                and RECEIPT_NUMBER = #{udiwmsThrOrderRequest.billNo}
            </if>
            <if test="udiwmsThrOrderRequest.fromCorpName != null and udiwmsThrOrderRequest.fromCorpName != ''
            and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
                and CONSIGNEE_NAME LIKE '%' || #{udiwmsThrOrderRequest.fromCorpName} || '%'
            </if>
            <if test="udiwmsThrOrderRequest.shipperName != null and udiwmsThrOrderRequest.shipperName != ''
            and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
                and CONSIGNOR_NAME LIKE '%' || #{udiwmsThrOrderRequest.shipperName} || '%'
            </if>
            <if test="udiwmsThrOrderRequest.busType != null and udiwmsThrOrderRequest.busType != ''
            and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
                and IO_SORT = #{udiwmsThrOrderRequest.busType}
            </if>
            <if test="udiwmsThrOrderRequest.keyWords != null and udiwmsThrOrderRequest.keyWords != ''
            and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
                and (
                    CONSIGNOR_NAME LIKE '%' || #{udiwmsThrOrderRequest.keyWords} || '%'
                 or CONSIGNEE_NAME LIKE '%' || #{udiwmsThrOrderRequest.keyWords} || '%'
                 or PHYSIC_CODE LIKE '%' || #{udiwmsThrOrderRequest.keyWords} || '%'
                 or RECEIPT_NUMBER = #{udiwmsThrOrderRequest.keyWords}
                 or IO_SORT = #{udiwmsThrOrderRequest.keyWords})
            </if>




            <if test="udiwmsThrOrderRequest.corpName != null and udiwmsThrOrderRequest.corpName != ''
            and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
                and (CONSIGNOR_NAME LIKE concat('%', #{udiwmsThrOrderRequest.corpName}, '%')
                 or CONSIGNEE_NAME LIKE   concat('%', #{udiwmsThrOrderRequest.corpName}, '%'))
            </if>
            <if test="udiwmsThrOrderRequest.billNo != null and udiwmsThrOrderRequest.billNo != ''
            and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
                and RECEIPT_NUMBER = #{udiwmsThrOrderRequest.billNo}
            </if>
            <if test="udiwmsThrOrderRequest.fromCorpName != null and udiwmsThrOrderRequest.fromCorpName != ''
            and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
                and CONSIGNEE_NAME LIKE concat('%', #{udiwmsThrOrderRequest.fromCorpName}, '%')
            </if>
            <if test="udiwmsThrOrderRequest.shipperName != null and udiwmsThrOrderRequest.shipperName != ''
            and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
                and CONSIGNOR_NAME LIKE  concat('%', #{udiwmsThrOrderRequest.shipperName}, '%')
            </if>
            <if test="udiwmsThrOrderRequest.busType != null and udiwmsThrOrderRequest.busType != ''
            and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
                and IO_SORT = #{udiwmsThrOrderRequest.busType}
            </if>
            <if test="udiwmsThrOrderRequest.keyWords != null and udiwmsThrOrderRequest.keyWords != ''
            and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
                and (
                    CONSIGNOR_NAME LIKE    concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
                 or CONSIGNEE_NAME LIKE  concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
                 or PHYSIC_CODE LIKE  concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
                 or RECEIPT_NUMBER LIKE concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
                 )
            </if>
        </where>
        GROUP BY RECEIPT_NUMBER
        ORDER BY RECEIPT_NUMBER
    </select>
</mapper>