<?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.yijia.station.mapper.PayOrderMapper">

    <resultMap type="PayOrder" id="PayOrderResult">
        <result property="orderId"    column="order_id"    />
        <result property="orderNo"    column="order_no"    />
        <result property="stationId"    column="station_id"    />
        <result property="stationName"    column="station_name"    />
        <result property="status"    column="status"    />
        <result property="consumerId"    column="consumer_id"    />
        <result property="consumer"    column="consumer"    />
        <result property="oilGun"    column="oil_gun"    />
        <result property="oilName"    column="oil_name"    />
        <result property="oilPirce"    column="oil_pirce"    />
        <result property="oilType"    column="oil_type"    />
        <result property="orderLiters"    column="order_liters"    />
        <result property="amt"    column="amt"    />
        <result property="receivableAmt"    column="receivable_amt"    />
        <result property="receivedAmt"    column="received_amt"    />
        <result property="discountAmt"    column="discount_amt"    />
        <result property="discountCouponAmt"    column="discount_coupon_amt"    />
        <result property="discountCoupon"    column="discount_coupon"    />
        <result property="wxAmt"    column="wx_amt"    />
        <result property="zfbAmt"    column="zfb_amt"    />
        <result property="posAmt"    column="pos_amt"    />
        <result property="xjAmt"    column="xj_amt"    />
        <result property="didiAppAmt"    column="didi_app_amt"    />
        <result property="tyAppAmt"    column="ty_app_amt"    />
        <result property="otherAmt"    column="other_amt"    />
        <result property="dzkAmt"    column="dzk_amt"    />
        <result property="score"    column="score"    />
        <result property="memberNo"    column="member_no"    />
        <result property="memberAmt"    column="member_amt"    />
        <result property="printCount"    column="print_count"    />
        <result property="payType"    column="pay_type"    />
        <result property="payWay"    column="pay_way"    />
        <result property="oilPersonnel"    column="oil_personnel"    />
        <result property="payDate"    column="pay_date"    />
        <result property="createdDate"    column="created_date"    />
        <result property="orderType"    column="order_type"    />
        <result property="carNo"    column="car_no"    />
        <result property="customerPhone"    column="customer_phone"    />
        <result property="customerGrade"    column="customer_grade"    />
        <result property="wxNum"    column="wx_num"    />
        <result property="zfbNum"    column="zfb_num"    />
        <result property="xjNum"    column="xj_num"  />
        <result property="qyAmt"    column="qy_amt"  />
        <result property="cyAmt"    column="cy_amt"  />
    </resultMap>


    <sql id="selectPayOrderVo">
        select order_id, order_no, station_id,d.dept_name as station_name, p.status,consumer_id, consumer, oil_gun,
         oil_name, oil_pirce, oil_type, order_liters, amt, receivable_amt, received_amt, discount_amt,
          discount_coupon_amt, discount_coupon, wx_amt, zfb_amt, pos_amt, xj_amt, didi_app_amt, ty_app_amt,
           other_amt, dzk_amt, score, member_no, member_amt, print_count, pay_type, pay_way, oil_personnel,
            pay_date, created_date, order_type, car_no, customer_phone, customer_grade
            from pay_order p join sys_dept d on p.station_id =d.dept_id
    </sql>

    <select id="selectPayOrderList" parameterType="PayOrder" resultMap="PayOrderResult">
        <include refid="selectPayOrderVo"/>
        <where>
            <if test="orderNo != null  and orderNo != ''"> and order_no like concat('%', #{orderNo}, '%')</if>
            <if test="stationId != null "> and station_id = #{stationId}</if>
            <if test="status != null  and status != ''"> and p.status = #{status}</if>
            <if test="consumerId != null "> and consumer_id = #{consumerId}</if>
            <if test="consumer != null  and consumer != ''"> and consumer like concat('%', #{consumer}, '%')</if>
            <if test="oilGun != null  and oilGun != ''"> and oil_gun = #{oilGun}</if>
            <if test="oilName != null  and oilName != ''"> and oil_name like concat('%', #{oilName}, '%')</if>
            <if test="oilPirce != null "> and oil_pirce = #{oilPirce}</if>
            <if test="oilType != null  and oilType != ''"> and oil_type = #{oilType}</if>
            <if test="orderLiters != null "> and order_liters = #{orderLiters}</if>
            <if test="amt != null "> and amt = #{amt}</if>
            <if test="receivableAmt != null "> and receivable_amt = #{receivableAmt}</if>
            <if test="receivedAmt != null "> and received_amt = #{receivedAmt}</if>
            <if test="discountAmt != null "> and discount_amt = #{discountAmt}</if>
            <if test="discountCouponAmt != null "> and discount_coupon_amt = #{discountCouponAmt}</if>
            <if test="discountCoupon != null  and discountCoupon != ''"> and discount_coupon = #{discountCoupon}</if>
            <if test="wxAmt != null "> and wx_amt = #{wxAmt}</if>
            <if test="zfbAmt != null "> and zfb_amt = #{zfbAmt}</if>
            <if test="posAmt != null "> and pos_amt = #{posAmt}</if>
            <if test="xjAmt != null "> and xj_amt = #{xjAmt}</if>
            <if test="didiAppAmt != null "> and didi_app_amt = #{didiAppAmt}</if>
            <if test="tyAppAmt != null "> and ty_app_amt = #{tyAppAmt}</if>
            <if test="otherAmt != null "> and other_amt = #{otherAmt}</if>
            <if test="dzkAmt != null "> and dzk_amt = #{dzkAmt}</if>
            <if test="score != null "> and score = #{score}</if>
            <if test="memberNo != null  and memberNo != ''"> and member_no = #{memberNo}</if>
            <if test="memberAmt != null "> and member_amt = #{memberAmt}</if>
            <if test="printCount != null "> and print_count = #{printCount}</if>
            <if test="payType != null  and payType != ''"> and pay_type = #{payType}</if>
            <if test="payWay != null  and payWay != ''"> and pay_way = #{payWay}</if>
            <if test="oilPersonnel != null  and oilPersonnel != ''"> and oil_personnel = #{oilPersonnel}</if>
            <if test="payDate != null "> and pay_date = #{payDate}</if>
            <if test="createdDate != null "> and created_date = #{createdDate}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="carNo != null  and carNo != ''"> and car_no = #{carNo}</if>
            <if test="customerPhone != null  and customerPhone != ''"> and customer_phone = #{customerPhone}</if>
            <if test="customerGrade != null  and customerGrade != ''"> and customer_grade = #{customerGrade}</if>
            <if test="likeConsumer != null  and likeConsumer != ''"> and consumer  like concat('%',#{likeConsumer}, '%')</if>
            <if test="likeCarNo != null  and likeCarNo != ''"> and car_no  like concat('%',#{likeCarNo}, '%') </if>
            <if test="likeCustomerPhone != null  and likeCustomerPhone != ''"> and customer_phone  like concat('%',#{likeCustomerPhone}, '%') </if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%y-%m-%d %H:%i:%s')
            </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        order by order_id desc
    </select>

    <!--查询导出数据-->
    <select id="selectPayOrderExport" parameterType="PayOrder" resultMap="PayOrderResult">
        select order_no,oil_name,oil_pirce,order_liters, amt,consumer,oil_personnel,oil_gun,pay_type,pay_way
        from pay_order
        <where>
            <if test="orderNo != null  and orderNo != ''"> and order_no = #{orderNo}</if>
            <if test="stationId != null "> and station_id = #{stationId}</if>
            <if test="status != null  and status != ''"> and status = #{status}</if>
            <if test="consumerId != null "> and consumer_id = #{consumerId}</if>
            <if test="consumer != null  and consumer != ''"> and consumer = #{consumer}</if>
            <if test="oilGun != null  and oilGun != ''"> and oil_gun = #{oilGun}</if>
            <if test="oilName != null  and oilName != ''"> and oil_name like concat('%', #{oilName}, '%')</if>
            <if test="oilPirce != null "> and oil_pirce = #{oilPirce}</if>
            <if test="oilType != null  and oilType != ''"> and oil_type = #{oilType}</if>
            <if test="orderLiters != null "> and order_liters = #{orderLiters}</if>
            <if test="amt != null "> and amt = #{amt}</if>
            <if test="receivableAmt != null "> and receivable_amt = #{receivableAmt}</if>
            <if test="receivedAmt != null "> and received_amt = #{receivedAmt}</if>
            <if test="discountAmt != null "> and discount_amt = #{discountAmt}</if>
            <if test="discountCouponAmt != null "> and discount_coupon_amt = #{discountCouponAmt}</if>
            <if test="discountCoupon != null  and discountCoupon != ''"> and discount_coupon = #{discountCoupon}</if>
            <if test="wxAmt != null "> and wx_amt = #{wxAmt}</if>
            <if test="zfbAmt != null "> and zfb_amt = #{zfbAmt}</if>
            <if test="posAmt != null "> and pos_amt = #{posAmt}</if>
            <if test="xjAmt != null "> and xj_amt = #{xjAmt}</if>
            <if test="didiAppAmt != null "> and didi_app_amt = #{didiAppAmt}</if>
            <if test="tyAppAmt != null "> and ty_app_amt = #{tyAppAmt}</if>
            <if test="otherAmt != null "> and other_amt = #{otherAmt}</if>
            <if test="dzkAmt != null "> and dzk_amt = #{dzkAmt}</if>
            <if test="score != null "> and score = #{score}</if>
            <if test="memberNo != null  and memberNo != ''"> and member_no = #{memberNo}</if>
            <if test="memberAmt != null "> and member_amt = #{memberAmt}</if>
            <if test="printCount != null "> and print_count = #{printCount}</if>
            <if test="payType != null  and payType != ''"> and pay_type = #{payType}</if>
            <if test="payWay != null  and payWay != ''"> and pay_way = #{payWay}</if>
            <if test="oilPersonnel != null  and oilPersonnel != ''"> and oil_personnel = #{oilPersonnel}</if>
            <if test="payDate != null "> and pay_date = #{payDate}</if>
            <if test="createdDate != null "> and created_date = #{createdDate}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="carNo != null  and carNo != ''"> and car_no = #{carNo}</if>
            <if test="customerPhone != null  and customerPhone != ''"> and customer_phone like concat('%',#{customerPhone}, '%') </if>
            <if test="customerGrade != null  and customerGrade != ''"> and customer_grade like concat('%',#{customerGrade}, '%') </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%y-%m-%d %H:%i:%s')
            </if>
        </where>
        order by order_id desc
    </select>
    <select id="selectPayOrderById" parameterType="Long" resultMap="PayOrderResult">
        <include refid="selectPayOrderVo"/>
        where order_id = #{orderId}
    </select>
    <select id="selectDaySources" parameterType="PayOrder" resultMap="PayOrderResult">
        SELECT SUM(amt) as amt,sum(order_liters) as order_liters
        from pay_order
        <where>
            <if test="stationId != null "> and station_id = #{stationId}</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="createdDate != null "> and created_date like concat(#{createdDate}, '%') </if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
    </select>
    <select id="selectOilTypeSources" parameterType="Long" resultMap="PayOrderResult">
        SELECT SUM(amt) as amt,sum(order_liters) as order_liters, oil_type
        from pay_order
        <where>
            <if test="stationId != null "> and station_id = #{stationId}</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="createdDate != null "> and created_date = #{createdDate}</if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        GROUP BY oil_type
    </select>
    <select id="dayOilTypeSources" parameterType="Long" resultMap="PayOrderResult">
        SELECT  oil_name,GROUP_CONCAT(DISTINCT oil_gun) as oil_gun,sum(order_liters) as order_liters,SUM(receivable_amt) as receivable_amt,
        sum(discount_amt) as discount_amt,sum(discount_coupon_amt) as discount_coupon_amt,sum(amt) as amt,
        sum(member_amt) as member_amt,sum(wx_amt) as wx_amt,sum(zfb_amt) as zfb_amt
        from pay_order
        <where>
            <if test="stationId != null "> and station_id = #{stationId}</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="createdDate != null "> and created_date = #{createdDate}</if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        GROUP BY oil_name
    </select>
    <select id="selectOverViewData" parameterType="Long" resultMap="PayOrderResult">
        SELECT SUM(wx_amt) as wx_amt,sum(zfb_amt) as zfb_amt, sum(pos_amt) as pos_amt, sum(xj_amt) as xj_amt,sum(didi_app_amt) as didi_app_amt,sum(ty_app_amt) as ty_app_amt,sum(other_amt) as other_amt,sum(member_amt) as member_amt
        from pay_order
        <where>
            <if test="stationId != null "> and station_id = #{stationId}</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="createdDate != null "> and created_date = #{createdDate}</if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
    </select>
    <!--日报数据-->
    <select id="selectDayReport" parameterType="Long" resultMap="PayOrderResult">
         SELECT
        b.created_date,
        sum( b.amt ) amt,
        sum( b.order_liters ) order_liters,
        sum( b.member_amt ) member_amt,
        sum( b.receivable_amt ) receivable_amt,
        sum( b.received_amt ) received_amt,
        MAX(CASE b.oil_type WHEN '1' THEN amt ELSE 0 END) AS qy_amt,
        MAX(CASE b.oil_type WHEN '2' THEN amt ELSE 0 END) AS cy_amt,
        sum(b.order_no) order_no
        from (
        SELECT
        date_format( a.created_date, '%Y-%m-%d' ) as created_date,
        sum( a.amt ) amt,
        sum( a.order_liters ) order_liters,
        sum( a.member_amt ) member_amt,
        sum( a.receivable_amt ) receivable_amt,
        sum( a.received_amt ) received_amt,
        a.oil_type,
        count( 1 ) order_no
        FROM
        pay_order a
        <where>
            <if test="stationId != null "> and a.station_id = #{stationId}</if>
            <if test="status != null "> and a.status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and a.order_type = #{orderType}</if>
            <if test="stationIdList != null ">
                and a.station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        GROUP BY
        date_format( a.created_date, '%Y-%m-%d' ),a.oil_type
        )  b
        GROUP BY b.created_date
        ORDER BY b.created_date desc
    </select>
<!-- 日报折线图油品数据-->
    <select id="listQydata" parameterType="Long" resultMap="PayOrderResult">
        SELECT sum(amt) as amt,date_format(created_date,'%Y-%m-%d')  as created_date
        from pay_order
        <where>
            <if test="stationId != null "> and station_id = #{stationId}</if>
            <if test="status != null  and status != ''"> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="oilName != null "> and oil_name = #{oilName}</if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        GROUP BY oil_name ,date_format(created_date,'%Y-%m-%d')
    </select>
<!-- 日报折线图X轴数据-->
    <select id="listXdata" parameterType="Long" resultMap="PayOrderResult">
        SELECT date_format(created_date,'%Y-%m-%d')  as created_date
        from pay_order
        <where>
            <if test="stationId != null "> and station_id = #{stationId}</if>
            <if test="status != null  and status != ''"> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        GROUP BY date_format(created_date,'%Y-%m-%d')
    </select>

    <!--查询数据，根据员工汇总数据-->
    <select id="selectPersonnelStructure" parameterType="Long" resultMap="PayOrderResult">
        SELECT a.oil_personnel,GROUP_CONCAT(DISTINCT a.oil_gun) as oil_gun,ROUND(SUM(a.amt),2) as amt,ROUND(SUM(order_liters),2) as order_liters,COUNT(order_no) as order_no
        from pay_order a
        <where>
            <if test="stationId != null "> and a.station_id = #{stationId}</if>
            <if test="status != null  and status != ''"> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="stationIdList != null ">
                and station_id in
                <foreach item="item" index="index" collection="stationIdList"
                         open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        GROUP BY a.oil_personnel
    </select>
    <!--初始化数据班结数据，根据油品汇总 -->
    <select id="selectOilStructure" parameterType="Long" resultMap="PayOrderResult">
        SELECT  a.oil_name,GROUP_CONCAT(DISTINCT oil_gun) as oil_gun,ROUND(SUM(a.amt),2) as amt,ROUND(SUM(order_liters),2) as order_liters,COUNT(order_no) as order_no
        from pay_order a
        <where>
            <if test="stationId != null "> and a.station_id = #{stationId}</if>
            <if test="status != null  and status != ''"> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
        </where>
        GROUP BY a.oil_name
    </select>
    <!--初始化数据班结数据，根据员工/支付方式汇总 -->
    <select id="selectPersonnelPayStructure" parameterType="Long" resultMap="PayOrderResult">
        SELECT oil_personnel,GROUP_CONCAT(DISTINCT oil_gun) oil_gun,count(wx_amt) wx_num,count(zfb_amt) zfb_num,count(xj_amt) xj_num,sum(discount_amt) discount_amt,SUM(discount_coupon_amt) discount_coupon_amt,SUM(wx_amt) wx_amt,SUM(zfb_amt) zfb_amt,SUM(xj_amt) xj_amt,sum(member_amt) member_amt
        from  pay_order a
        <where>
            <if test="stationId != null "> and a.station_id = #{stationId}</if>
            <if test="status != null  and status != ''"> and status = #{status}</if>
            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
            </if>
            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
                AND date_format(created_date,'%Y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
            </if>
        </where>
        GROUP BY a.oil_personnel
    </select>
<!--查询本站第一笔数据-->
    <select id="getPayOrderInfoMin" parameterType="Long" resultMap="PayOrderResult">
        SELECT * from pay_order where order_id = (
        SELECT min(order_id)
        from pay_order
            <where>
                <if test="orderNo != null  and orderNo != ''"> and order_no = #{orderNo}</if>
                <if test="stationId != null "> and station_id = #{stationId}</if>
                <if test="status != null  and status != ''"> and status = #{status}</if>
                <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
            </where>
        )
    </select>
    <insert id="insertPayOrder" parameterType="PayOrder" useGeneratedKeys="true" keyProperty="orderId">
        insert into pay_order
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="orderNo != null">order_no,</if>
            <if test="stationId != null">station_id,</if>
            <if test="status != null">status,</if>
            <if test="consumerId != null">consumer_id,</if>
            <if test="consumer != null">consumer,</if>
            <if test="oilGun != null">oil_gun,</if>
            <if test="oilName != null">oil_name,</if>
            <if test="oilPirce != null">oil_pirce,</if>
            <if test="oilType != null">oil_type,</if>
            <if test="orderLiters != null">order_liters,</if>
            <if test="amt != null">amt,</if>
            <if test="receivableAmt != null">receivable_amt,</if>
            <if test="receivedAmt != null">received_amt,</if>
            <if test="discountAmt != null">discount_amt,</if>
            <if test="discountCouponAmt != null">discount_coupon_amt,</if>
            <if test="discountCoupon != null">discount_coupon,</if>
            <if test="wxAmt != null">wx_amt,</if>
            <if test="zfbAmt != null">zfb_amt,</if>
            <if test="posAmt != null">pos_amt,</if>
            <if test="xjAmt != null">xj_amt,</if>
            <if test="didiAppAmt != null">didi_app_amt,</if>
            <if test="tyAppAmt != null">ty_app_amt,</if>
            <if test="otherAmt != null">other_amt,</if>
            <if test="dzkAmt != null">dzk_amt,</if>
            <if test="score != null">score,</if>
            <if test="memberNo != null">member_no,</if>
            <if test="memberAmt != null">member_amt,</if>
            <if test="printCount != null">print_count,</if>
            <if test="payType != null">pay_type,</if>
            <if test="payWay != null">pay_way,</if>
            <if test="oilPersonnel != null">oil_personnel,</if>
            <if test="payDate != null">pay_date,</if>
            <if test="createdDate != null">created_date,</if>
            <if test="orderType != null">order_type,</if>
            <if test="carNo != null">car_no,</if>
            <if test="customerPhone != null">customer_phone,</if>
            <if test="customerGrade != null">customer_grade,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="orderNo != null">#{orderNo},</if>
            <if test="stationId != null">#{stationId},</if>
            <if test="status != null">#{status},</if>
            <if test="consumerId != null">#{consumerId},</if>
            <if test="consumer != null">#{consumer},</if>
            <if test="oilGun != null">#{oilGun},</if>
            <if test="oilName != null">#{oilName},</if>
            <if test="oilPirce != null">#{oilPirce},</if>
            <if test="oilType != null">#{oilType},</if>
            <if test="orderLiters != null">#{orderLiters},</if>
            <if test="amt != null">#{amt},</if>
            <if test="receivableAmt != null">#{receivableAmt},</if>
            <if test="receivedAmt != null">#{receivedAmt},</if>
            <if test="discountAmt != null">#{discountAmt},</if>
            <if test="discountCouponAmt != null">#{discountCouponAmt},</if>
            <if test="discountCoupon != null">#{discountCoupon},</if>
            <if test="wxAmt != null">#{wxAmt},</if>
            <if test="zfbAmt != null">#{zfbAmt},</if>
            <if test="posAmt != null">#{posAmt},</if>
            <if test="xjAmt != null">#{xjAmt},</if>
            <if test="didiAppAmt != null">#{didiAppAmt},</if>
            <if test="tyAppAmt != null">#{tyAppAmt},</if>
            <if test="otherAmt != null">#{otherAmt},</if>
            <if test="dzkAmt != null">#{dzkAmt},</if>
            <if test="score != null">#{score},</if>
            <if test="memberNo != null">#{memberNo},</if>
            <if test="memberAmt != null">#{memberAmt},</if>
            <if test="printCount != null">#{printCount},</if>
            <if test="payType != null">#{payType},</if>
            <if test="payWay != null">#{payWay},</if>
            <if test="oilPersonnel != null">#{oilPersonnel},</if>
            <if test="payDate != null">#{payDate},</if>
            <if test="createdDate != null">#{createdDate},</if>
            <if test="orderType != null">#{orderType},</if>
            <if test="carNo != null">#{carNo},</if>
            <if test="customerPhone != null">#{customerPhone},</if>
            <if test="customerGrade != null">#{customerGrade},</if>
         </trim>
    </insert>

    <update id="updatePayOrder" parameterType="PayOrder">
        update pay_order
        <trim prefix="SET" suffixOverrides=",">
            <if test="orderNo != null">order_no = #{orderNo},</if>
            <if test="stationId != null">station_id = #{stationId},</if>
            <if test="status != null">status = #{status},</if>
            <if test="consumerId != null">consumer_id = #{consumerId},</if>
            <if test="consumer != null">consumer = #{consumer},</if>
            <if test="oilGun != null">oil_gun = #{oilGun},</if>
            <if test="oilName != null">oil_name = #{oilName},</if>
            <if test="oilPirce != null">oil_pirce = #{oilPirce},</if>
            <if test="oilType != null">oil_type = #{oilType},</if>
            <if test="orderLiters != null">order_liters = #{orderLiters},</if>
            <if test="amt != null">amt = #{amt},</if>
            <if test="receivableAmt != null">receivable_amt = #{receivableAmt},</if>
            <if test="receivedAmt != null">received_amt = #{receivedAmt},</if>
            <if test="discountAmt != null">discount_amt = #{discountAmt},</if>
            <if test="discountCouponAmt != null">discount_coupon_amt = #{discountCouponAmt},</if>
            <if test="discountCoupon != null">discount_coupon = #{discountCoupon},</if>
            <if test="wxAmt != null">wx_amt = #{wxAmt},</if>
            <if test="zfbAmt != null">zfb_amt = #{zfbAmt},</if>
            <if test="posAmt != null">pos_amt = #{posAmt},</if>
            <if test="xjAmt != null">xj_amt = #{xjAmt},</if>
            <if test="didiAppAmt != null">didi_app_amt = #{didiAppAmt},</if>
            <if test="tyAppAmt != null">ty_app_amt = #{tyAppAmt},</if>
            <if test="otherAmt != null">other_amt = #{otherAmt},</if>
            <if test="dzkAmt != null">dzk_amt = #{dzkAmt},</if>
            <if test="score != null">score = #{score},</if>
            <if test="memberNo != null">member_no = #{memberNo},</if>
            <if test="memberAmt != null">member_amt = #{memberAmt},</if>
            <if test="printCount != null">print_count = #{printCount},</if>
            <if test="payType != null">pay_type = #{payType},</if>
            <if test="payWay != null">pay_way = #{payWay},</if>
            <if test="oilPersonnel != null">oil_personnel = #{oilPersonnel},</if>
            <if test="payDate != null">pay_date = #{payDate},</if>
            <if test="createdDate != null">created_date = #{createdDate},</if>
            <if test="orderType != null">order_type = #{orderType},</if>
            <if test="carNo != null">car_no = #{carNo},</if>
            <if test="customerPhone != null">customer_phone = #{customerPhone},</if>
            <if test="customerGrade != null">customer_grade = #{customerGrade},</if>
        </trim>
        where order_id = #{orderId}
    </update>

    <delete id="deletePayOrderById" parameterType="Long">
        delete from pay_order where order_id = #{orderId}
    </delete>

    <delete id="deletePayOrderByIds" parameterType="String">
        delete from pay_order where order_id in
        <foreach item="orderId" collection="array" open="(" separator="," close=")">
            #{orderId}
        </foreach>
    </delete>

</mapper>
