<?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.zy.asrs.mapper.OrderMapper"> 
 | 
  
 | 
    <!-- 通用查询映射结果 --> 
 | 
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.Order"> 
 | 
        <id column="id" property="id" /> 
 | 
        <result column="uuid" property="uuid" /> 
 | 
        <result column="order_no" property="orderNo" /> 
 | 
        <result column="order_time" property="orderTime" /> 
 | 
        <result column="doc_type" property="docType" /> 
 | 
        <result column="item_id" property="itemId" /> 
 | 
        <result column="item_name" property="itemName" /> 
 | 
        <result column="allot_item_id" property="allotItemId" /> 
 | 
        <result column="def_number" property="defNumber" /> 
 | 
        <result column="number" property="number" /> 
 | 
        <result column="cstmr" property="cstmr" /> 
 | 
        <result column="cstmr_name" property="cstmrName" /> 
 | 
        <result column="tel" property="tel" /> 
 | 
        <result column="oper_memb" property="operMemb" /> 
 | 
        <result column="total_fee" property="totalFee" /> 
 | 
        <result column="discount" property="discount" /> 
 | 
        <result column="discount_fee" property="discountFee" /> 
 | 
        <result column="other_fee" property="otherFee" /> 
 | 
        <result column="act_fee" property="actFee" /> 
 | 
        <result column="pay_type" property="payType" /> 
 | 
        <result column="salesman" property="salesman" /> 
 | 
        <result column="account_day" property="accountDay" /> 
 | 
        <result column="post_fee_type" property="postFeeType" /> 
 | 
        <result column="post_fee" property="postFee" /> 
 | 
        <result column="pay_time" property="payTime" /> 
 | 
        <result column="send_time" property="sendTime" /> 
 | 
        <result column="ship_name" property="shipName" /> 
 | 
        <result column="ship_code" property="shipCode" /> 
 | 
        <result column="settle" property="settle" /> 
 | 
        <result column="status" property="status" /> 
 | 
        <result column="create_by" property="createBy" /> 
 | 
        <result column="create_time" property="createTime" /> 
 | 
        <result column="update_by" property="updateBy" /> 
 | 
        <result column="update_time" property="updateTime" /> 
 | 
        <result column="memo" property="memo" /> 
 | 
  
 | 
    </resultMap> 
 | 
  
 | 
    <update id="updateSettle"> 
 | 
        update man_order 
 | 
        set settle = #{settle} 
 | 
        ,update_time = getdate() 
 | 
        <if test="userId != null"> 
 | 
            ,update_by = #{userId} 
 | 
        </if> 
 | 
        where 1=1 
 | 
        and id = #{orderId} 
 | 
    </update> 
 | 
    <update id="updateSettleByOrderNo"> 
 | 
        update man_order 
 | 
        set settle = #{status} 
 | 
        ,update_time = getdate() 
 | 
        <if test="userId != null"> 
 | 
            ,update_by = #{userId} 
 | 
        </if> 
 | 
        where 1=1 
 | 
        and order_no = #{orderNo} 
 | 
        and settle != #{status} 
 | 
    </update> 
 | 
    <update id="updateStatusByOrderNo"> 
 | 
        update man_order set account_day = #{status},update_time = getdate(),update_by = #{userId} where order_no = #{orderNo} 
 | 
    </update> 
 | 
    <update id="updatePendingSettleByOrderNo"> 
 | 
        update man_order set settle = #{status},update_time = getdate() where order_no = #{orderNo} and settle = 1 
 | 
    </update> 
 | 
  
 | 
    <select id="selectComplete" resultMap="BaseResultMap"> 
 | 
        select 
 | 
            top 5 mo.* 
 | 
        from 
 | 
            man_order mo 
 | 
                inner join man_doc_type mt on 
 | 
                mo.doc_type = mt.doc_id 
 | 
        where 
 | 
            mt.pakout = 1 
 | 
          and mo.settle = 5 
 | 
          and mo.status = 1 
 | 
        order by 
 | 
            mo.create_time asc 
 | 
    </select> 
 | 
  
 | 
    <select id="selectComplete2" resultMap="BaseResultMap"> 
 | 
        select 
 | 
            top 5 mo.* 
 | 
        from 
 | 
            man_order mo 
 | 
                inner join man_doc_type mt on 
 | 
                mo.doc_type = mt.doc_id 
 | 
        where 
 | 
            mt.pakout = 1 
 | 
          and mo.settle = 5 
 | 
          and mo.status = 1 
 | 
          and mo.doc_type = 26 
 | 
        order by 
 | 
            mo.create_time asc 
 | 
    </select> 
 | 
  
 | 
    <select id="selectComplete3" resultMap="BaseResultMap"> 
 | 
        select 
 | 
            top 5 mo.* 
 | 
        from 
 | 
            man_order mo 
 | 
                inner join man_doc_type mt on 
 | 
                mo.doc_type = mt.doc_id 
 | 
        where 
 | 
            mt.pakout = 1 
 | 
          and mo.settle = 5 
 | 
          and mo.status = 1 
 | 
          and mo.doc_type = 27 
 | 
        order by 
 | 
            mo.create_time asc 
 | 
    </select> 
 | 
  
 | 
    <insert id="addToLogTable"> 
 | 
        INSERT INTO man_order_log SELECT * FROM man_order WHERE id = #{id} 
 | 
    </insert> 
 | 
  
 | 
    <select id="selectorderNoL" resultMap="BaseResultMap"> 
 | 
        select top 10 * 
 | 
        from man_order 
 | 
        where 1=1 
 | 
        <if test="orderNo != null"> 
 | 
            and order_no = #{orderNo} 
 | 
        </if> 
 | 
    </select> 
 | 
    <select id="selectStockUpOrderDetl" resultType="java.lang.String"> 
 | 
        select 
 | 
            DISTINCT md.brand 
 | 
        from 
 | 
            man_order mo 
 | 
                left join man_order_detl md on 
 | 
                mo.order_no = md.order_no 
 | 
        where 
 | 
            mo.doc_type = 21 
 | 
          and mo.account_day = 1 
 | 
          and md.inspect = 0 
 | 
          and mo.settle = 1 
 | 
    </select> 
 | 
    <select id="selectOrderNosByOrderNoLike" resultType="java.lang.String"> 
 | 
        select order_no from man_order where settle = 4 and order_no like '%' + #{orderNo} + '%' and doc_type in(21,23) 
 | 
    </select> 
 | 
    <select id="getUnfulfilledOrders" resultType="com.zy.asrs.entity.OrderStatisticsDto"> 
 | 
        select 
 | 
            mo.order_no orderNo, 
 | 
            count(mo.order_no) sum, 
 | 
            count(case when md.work_qty = 0 then 1 end) toShipQuantity, 
 | 
            count(case when md.work_qty != 0 and md.qty = 0 then 1 end) workQuantity, 
 | 
        count(case when md.anfme = md.qty then 1 end) completedQuantity 
 | 
        from 
 | 
            man_order mo 
 | 
            LEFT JOIN man_order_detl md on 
 | 
            mo.id = md.order_id 
 | 
        where 
 | 
            mo.doc_type = 21 
 | 
          and mo.settle in(1, 2) 
 | 
        <if test="orderNo != ''"> 
 | 
            and mo.order_no = #{orderNo} 
 | 
        </if> 
 | 
        GROUP BY 
 | 
            mo.order_no 
 | 
    </select> 
 | 
    <select id="selectOrderByOrderNo" resultMap="BaseResultMap"> 
 | 
        select * 
 | 
        from man_order 
 | 
        where order_no = #{orderNo} 
 | 
    </select> 
 | 
    <select id="getOrderNosByDocType" resultType="String"> 
 | 
        select order_no 
 | 
        from man_order 
 | 
        where doc_type =#{docType} 
 | 
        and status = 0 
 | 
    </select> 
 | 
  
 | 
</mapper> 
 |