<?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.supplier.mapper.PrivateOrderMapper">
    <!-- 查询私人订制 -->
    <select id="getPrivateOrder" resultType="PrivateOrder">
        SELECT
        b.*
        FROM
        ( SELECT *, ROW_NUMBER ( ) OVER ( ORDER BY ID ) AS RowId FROM bus_private_ordering ) AS b
        JOIN ( SELECT code,demand_uuid FROM bus_private_ordering_type WHERE code = #{code} and order_type = #{orderType}) as c on b.uuid = c.demand_uuid
        WHERE
        RowId BETWEEN #{page} AND #{limit}
        AND uuid NOT IN (SELECT ordering_uuid FROM bus_ignore_supplier WHERE code = #{code})
        <if test="startTime != null and startTime !=''">
            and CONVERT (datetime, start_time) <![CDATA[ >= ]]> #{startTime} and CONVERT(datetime, end_time) <![CDATA[ <= ]]> #{endTime}
        </if>
    </select>
    <!-- 查询私人订制特殊 -->
    <select id="getPrivateOrderZeor" resultType="PrivateOrder">
        SELECT
            b.*
        FROM
        ( SELECT *, ROW_NUMBER ( ) OVER ( ORDER BY ID ) AS RowId FROM bus_private_ordering ) AS b
        JOIN ( SELECT code,uuid FROM bus_private_ordering WHERE uuid NOT IN ( SELECT demand_uuid FROM bus_private_ordering_type WHERE code = #{code} AND order_type != 0 ) ) AS c ON b.uuid = c.uuid
        WHERE
        RowId BETWEEN #{page} AND #{limit}
        AND b.uuid NOT IN (SELECT ordering_uuid FROM bus_ignore_supplier WHERE code = #{code})
        <if test="startTime != null and startTime !=''">
            and CONVERT (datetime, start_time) <![CDATA[ >= ]]> #{startTime} and CONVERT(datetime, end_time) <![CDATA[ <= ]]> #{endTime}
        </if>
    </select>
    <!-- 查询总条数 -->
    <select id="getPrivateOrderCount" resultType="int">
        SELECT
            COUNT( * ) AS COUNT
        FROM
            bus_private_ordering
        WHERE
            order_type = #{ orderType}
    </select>
    <!-- 查询总条数特殊 -->
    <select id="getPrivateOrderCountZeor" resultType="int">
        SELECT
            COUNT( * ) AS COUNT
        FROM
            bus_private_ordering
        JOIN ( SELECT code,demand_uuid FROM bus_private_ordering_type WHERE order_type = 0 ) AS c ON b.uuid = c.demand_uuid
        WHERE
            order_type = #{ orderType}
    </select>
    <!-- 新增忽略 -->
    <insert id="addIgnore" parameterType="Ignore">
        insert into bus_ignore_supplier(uuid,code,ordering_uuid) values (#{uuid},#{code},#{orderingUuid})
    </insert>
    <!-- 查询指定报价单内容 -->
    <select id="getPrivateOrderById" resultType="PrivateOrder">
        select * from bus_private_ordering where uuid = #{uuid}
    </select>
    <!-- 查询指定供应商是否填写过该定制单 -->
    <select id="getPrivateOrderType" parameterType="PrivateOrder" resultType="int">
        select count(*) as count from bus_private_ordering_type where code = #{code} and order_type != 0
    </select>
</mapper>