廖井涛
2025-12-01 d111849e6e78ed02a63661e31c81dadd65f53104
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -24,9 +24,13 @@
                            remarks,
                            bend_radius,
                            edging_type,
                            arch_rise,
                            weight,
                            perimeter,
                            other_columns
                            monolithic_perimeter,
                            other_columns,
                            file_name,
                            process_attribute
                          )
        values
        <foreach collection ="orderDetails" item="orderDetail" separator =",">
@@ -49,9 +53,13 @@
            #{orderDetail.remarks},
            #{orderDetail.bendRadius},
            #{orderDetail.edgingType},
            #{orderDetail.archRise},
            #{orderDetail.weight},
            #{orderDetail.perimeter},
            #{orderDetail.otherColumns}
            #{orderDetail.monolithicPerimeter},
            #{orderDetail.otherColumns},
            #{orderDetail.fileName},
            #{orderDetail.processAttribute}
             )
        </foreach>
    </insert>
@@ -61,7 +69,8 @@
            update order_detail as a
            set
                a.price = #{item.price},
                a.gross_amount = #{item.grossAmount}
                a.gross_amount = #{item.grossAmount},
                a.other_columns = #{item.otherColumns}
            where
                a.order_id = #{item.orderId} and
                a.order_number =  #{item.orderNumber}
@@ -92,6 +101,7 @@
        <result column="levelTwo" property="levelTwo"/>
        <result column="total_thickness" property="totalThickness"/>
        <result column="createTime" property="createTime"/>
        <result column="weights" property="weight"/>
        <result column="order_type" property="order.orderType"/>
        <result column="customer_name" property="order.customerName"/>
@@ -106,17 +116,166 @@
        <result column="creator" property="order.creator"/>
        <result column="verifier" property="order.verifier"/>
        <result column="customer_batch" property="order.customerBatch"/>
        <result column="other_money" property="order.otherMoney"/>
    </resultMap>
    <select id="getOrderSummaryReport" >
        SELECT
        *
        from  sd.`order` as b
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="order.orderType != null and order.orderType != ''">
            and b.order_type like concat('%',#{order.orderType},'%')
        </if>
        <if test="order.customerId != null and order.customerId != ''">
            and b.customer_id like concat('%',#{order.customerId},'%')
        </if>
        <if test="order.customerName != null and order.customerName != ''">
            and b.customer_name like concat('%',#{order.customerName},'%')
        </if>
        <if test="order.project != null and order.project != ''">
            and b.project like concat('%',#{order.project},'%')
        </if>
        <if test="order.orderId != null and order.orderId != ''">
            and b.order_id like concat('%',#{order.orderId},'%')
        </if>
        <if test="order.batch != null and order.batch != ''">
            and b.batch like concat('%',#{order.batch},'%')
        </if>
        <if test="order.icon != null and order.icon != ''">
            and b.icon like concat('%',#{order.icon},'%')
        </if>
        <if test="order.packType != null and order.packType != ''">
            and b.pack_type like concat('%',#{order.packType},'%')
        </if>
        <if test="order.alType != null and order.alType != ''">
            and b.al_type like concat('%',#{order.alType},'%')
        </if>
        <if test="order.salesman != null and order.salesman != ''">
            and b.salesman like concat('%',#{order.salesman},'%')
        </if>
        <if test="order.deliveryAddress != null and order.deliveryAddress != ''">
            and b.delivery_address like concat('%',#{order.deliveryAddress},'%')
        </if>
        <if test="order.creator != null and order.creator != ''">
            and b.creator like concat('%',#{order.creator},'%')
        </if>
        <if test="order.otherMoney != null and order.otherMoney != ''">
            and b.other_money regexp REGEXP_REPLACE(#{order.otherMoney},'\\.0+$','')
        </if>
        <if test="order.quantity != null ">
            and b.quantity like concat('%',#{order.quantity},'%')
        </if>
        <if test="order.money != null ">
            and b.money  regexp REGEXP_REPLACE(#{order.money},'\\.0+$','')
        </if>
        <if test="order.perimeter != null and order.perimeter != ''">
            and b.perimeter regexp REGEXP_REPLACE(#{order.perimeter},'\\.0+$','')
        </if>
        <if test="order.processingNote != null and order.processingNote != ''">
            and b.processing_note like concat('%',#{order.processingNote},'%')
        </if>
        <if test="order.area != null and order.area != ''">
            and b.area regexp REGEXP_REPLACE(#{order.area},'\\.0+$','')
        </if>
        order by b.id desc
        limit #{offset},#{pageSize}
    </select>
    <select id="getOrderSummaryReportTotal" >
        SELECT
        CEILING(count(b.id)/#{pageSize}) as 'pageTotal',
        count(b.id) as 'total'
        from  sd.`order` as b
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="order.orderType != null and order.orderType != ''">
            and b.order_type like concat('%',#{order.orderType},'%')
        </if>
        <if test="order.customerId != null and order.customerId != ''">
            and b.customer_id like concat('%',#{order.customerId},'%')
        </if>
        <if test="order.customerName != null and order.customerName != ''">
            and b.customer_name like concat('%',#{order.customerName},'%')
        </if>
        <if test="order.project != null and order.project != ''">
            and b.project like concat('%',#{order.project},'%')
        </if>
        <if test="order.orderId != null and order.orderId != ''">
            and b.order_id like concat('%',#{order.orderId},'%')
        </if>
        <if test="order.batch != null and order.batch != ''">
            and b.batch like concat('%',#{order.batch},'%')
        </if>
        <if test="order.icon != null and order.icon != ''">
            and b.icon like concat('%',#{order.icon},'%')
        </if>
        <if test="order.packType != null and order.packType != ''">
            and b.pack_type like concat('%',#{order.packType},'%')
        </if>
        <if test="order.alType != null and order.alType != ''">
            and b.al_type like concat('%',#{order.alType},'%')
        </if>
        <if test="order.salesman != null and order.salesman != ''">
            and b.salesman like concat('%',#{order.salesman},'%')
        </if>
        <if test="order.deliveryAddress != null and order.deliveryAddress != ''">
            and b.delivery_address like concat('%',#{order.deliveryAddress},'%')
        </if>
        <if test="order.creator != null and order.creator != ''">
            and b.creator like concat('%',#{order.creator},'%')
        </if>
        <if test="order.otherMoney != null and order.otherMoney != ''">
            and b.other_money regexp REGEXP_REPLACE(#{order.otherMoney},'\\.0+$','')
        </if>
        <if test="order.quantity != null ">
            and b.quantity like concat('%',#{order.quantity},'%')
        </if>
        <if test="order.money != null ">
            and b.money  regexp REGEXP_REPLACE(#{order.money},'\\.0+$','')
        </if>
        <if test="order.perimeter != null and order.perimeter != ''">
            and b.perimeter regexp REGEXP_REPLACE(#{order.perimeter},'\\.0+$','')
        </if>
        <if test="order.processingNote != null and order.processingNote != ''">
            and b.processing_note like concat('%',#{order.processingNote},'%')
        </if>
        <if test="order.area != null and order.area != ''">
            and b.area regexp REGEXP_REPLACE(#{order.area},'\\.0+$','')
        </if>
    </select>
    <select id="exportOrderSummary"  >
        SELECT *
        from sd.`order` as b
        where  date(b.create_time)>=#{dates[0]} and date(b.create_time) &lt;= #{dates[1]} and b.order_review>0
        order by b.id desc
    </select>
    <select id="getOrderReport" resultMap="orderMap">
        SELECT
            *,
            round(a.weight*a.quantity,2) as weights,
            a.create_time as createTime,
            d.type_name as levelOne,
            e.type_name as levelTwo
        from order_detail as a
        from sd.order_detail as a
        left join sd.`order` as b
            on b.order_id = a.order_id
        left join sd.product as c
@@ -125,7 +284,7 @@
            on d.type_id = c.type_id
        left join sd.basic_glass_type as e
            on e.type_id = d.belong
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
@@ -134,7 +293,9 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
            and b.customer_id like concat('%',#{orderDetail.order.customerId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
            and b.customer_name like concat('%',#{orderDetail.order.customerName},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
@@ -159,13 +320,29 @@
            and a.order_number like concat('%',#{orderDetail.orderNumber},'%')
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
        <if test="orderDetail.width != null and orderDetail.width != '' and model==0">
            and a.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
        <if test="orderDetail.height != null and orderDetail.height != '' and model==0 ">
            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
        </if>
        <if test="orderDetail.width != null and orderDetail.width != '' and model==1">
            and a.width >= REGEXP_REPLACE(#{orderDetail.width } - #{scope} ,'\\.0+$','')
            and a.width &lt;= REGEXP_REPLACE(#{orderDetail.width } + #{scope} ,'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != '' and model==1 ">
            and a.height > REGEXP_REPLACE(#{orderDetail.height } - #{scope} ,'\\.0+$','')
            and a.height &lt; REGEXP_REPLACE(#{orderDetail.height } + #{scope} ,'\\.0+$','')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
            and a.quantity like concat('%',#{orderDetail.quantity},'%')
@@ -176,11 +353,11 @@
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail},'\\.0+$','')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -216,7 +393,7 @@
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -266,7 +443,7 @@
                           on d.type_id = c.type_id
                 left join sd.basic_glass_type as e
                           on e.type_id = d.belong
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
        </if>
@@ -274,7 +451,9 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
            and b.customer_id like concat('%',#{orderDetail.order.customerId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
            and b.customer_name like concat('%',#{orderDetail.order.customerName},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
@@ -300,11 +479,11 @@
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
            and a.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -316,11 +495,11 @@
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail},'\\.0+$','')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -356,7 +535,7 @@
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -390,16 +569,17 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerBatch != null and orderDetail.order.customerBatch != ''">
            and b.customer_batch like concat('%',#{orderDetail.order.customerBatch},'%')
        </if>
        order by a.id desc
    </select>
    <select id="exportOrderReport">
    <select id="exportOrderReport"  >
        SELECT
            *,
            round(a.weight*a.quantity,2) as weights,
            b.processing_note as processingNotes,
            a.create_time as createTime,
            d.type_name as levelOne,
            e.type_name as levelTwo
        from order_detail as a
            d.type_name as level_one,
            e.type_name as level_two
        from sd.order_detail as a
         left join sd.`order` as b
                   on b.order_id = a.order_id
         left join sd.product as c
@@ -408,7 +588,8 @@
                   on d.type_id = c.type_id
         left join sd.basic_glass_type as e
                   on e.type_id = d.belong
        where  date(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]} and b.order_review>0
        order by b.order_id desc
    </select>
@@ -416,8 +597,34 @@
    <select id="getOrderProductSummary" resultMap="orderMap">
        SELECT
        sum(a.price) as price,
        *,
        b.order_type,
        b.customer_name,
        b.project,
        a.order_id,
        b.batch,
        a.product_id,
        a.product_name,
        b.other_money,
        sum(a.quantity) as quantity,
        sum(a.gross_area) as gross_area,
        sum(a.compute_gross_area) as compute_gross_area,
        a.edging_type,
        b.pack_type,
        round(sum(a.perimeter),2) as perimeter,
        round(sum(a.weight*a.quantity),2) as weights,
        a.price,
        sum(a.gross_amount ) as gross_amount,
        b.al_type,
        b.salesman,
        b.delivery_address,
        b.creator,
        a.create_time,
        b.customer_batch,
        c.*,
        a.create_time as createTime,
        d.type_name as levelOne,
        e.type_name as levelTwo
@@ -430,7 +637,7 @@
        on d.type_id = c.type_id
        left join sd.basic_glass_type as e
        on e.type_id = d.belong
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
@@ -439,7 +646,9 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
            and b.customer_id like concat('%',#{orderDetail.order.customerId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
            and b.customer_name like concat('%',#{orderDetail.order.customerName},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
@@ -465,11 +674,11 @@
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width like concat('%',#{orderDetail.width},'%')
            and a.width  regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -481,11 +690,11 @@
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail.grossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -521,7 +730,7 @@
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -555,9 +764,317 @@
        <if test="orderDetail.order!=null and  orderDetail.order.customerBatch != null and orderDetail.order.customerBatch != ''">
            and b.customer_batch like concat('%',#{orderDetail.order.customerBatch},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.otherMoney != null ">
            and b.other_money  regexp REGEXP_REPLACE(#{orderDetail.order.otherMoney},'\\.0+$','')
        </if>
        group by b.order_id,a.product_id
        order by b.order_id desc
        limit #{offset},#{pageSize}
    </select>
    <select id="getOrderProductSummaryTotal" >
        select ss.pageTotal,count(ss.total) as 'total' from( SELECT
        CEILING(count(a.id)/#{pageSize}) as 'pageTotal',
        count(a.id) as 'total'
        from order_detail as a
        left join sd.`order` as b
        on b.order_id = a.order_id
        left join sd.product as c
        on c.id = a.product_id
        left join sd.basic_glass_type as d
        on d.type_id = c.type_id
        left join sd.basic_glass_type as e
        on e.type_id = d.belong
        where date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
        <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
            and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
            and b.customer_id like concat('%',#{orderDetail.order.customerId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
            and b.customer_name like concat('%',#{orderDetail.order.customerName},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.project != null and orderDetail.order.project != ''">
            and b.project like concat('%',#{orderDetail.order.project},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.orderId != null and orderDetail.order.orderId != ''">
            and b.order_id like concat('%',#{orderDetail.order.orderId},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.batch != null and orderDetail.order.batch != ''">
            and b.batch like concat('%',#{orderDetail.order.batch},'%')
        </if>
        <if test="orderDetail.productId != null and orderDetail.productId != ''">
            and a.product_id like concat('%',#{orderDetail.productId},'%')
        </if>
        <if test="orderDetail.productName != null and orderDetail.productName != ''">
            and a.product_name like concat('%',#{orderDetail.productName},'%')
        </if>
        <if test="orderDetail.orderNumber != null and orderDetail.orderNumber != ''">
            and a.order_number like concat('%',#{orderDetail.orderNumber},'%')
        </if>
        <if test="orderDetail.width != null and orderDetail.width != ''">
            and a.width  regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
        </if>
        <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
            and a.quantity like concat('%',#{orderDetail.quantity},'%')
        </if>
        <if test="orderDetail.bendRadius != null and orderDetail.bendRadius != ''">
            and a.bend_radius like concat('%',#{orderDetail.bendRadius},'%')
        </if>
        <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail.grossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
        </if>
        <if test="orderDetail.shape != null and orderDetail.shape != ''">
            and a.shape like concat('%',#{orderDetail.shape},'%')
        </if>
        <if test="orderDetail.edgingType != null and orderDetail.edgingType != ''">
            and a.edging_type like concat('%',#{orderDetail.edgingType},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.processingNote != null and orderDetail.order.processingNote != ''">
            and b.processing_note like concat('%',#{orderDetail.order.processingNote},'%')
        </if>
        <if test="orderDetail.processingNote != null and orderDetail.processingNote != ''">
            and a.processing_note like concat('%',#{orderDetail.processingNote},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.icon != null and orderDetail.order.icon != ''">
            and b.icon like concat('%',#{orderDetail.order.icon},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.packType != null and orderDetail.order.packType != ''">
            and b.pack_type like concat('%',#{orderDetail.order.packType},'%')
        </if>
        <if test="orderDetail.perimeter != null and orderDetail.perimeter != ''">
            and a.perimeter like concat('%',#{orderDetail.perimeter},'%')
        </if>
        <if test="orderDetail.price != null and orderDetail.price != ''">
            and a.price like concat('%',#{orderDetail.price},'%')
        </if>
        <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
            and b.al_type like concat('%',#{orderDetail.order.alType},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.salesman != null and orderDetail.order.salesman != ''">
            and b.salesman like concat('%',#{orderDetail.order.salesman},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.deliveryAddress != null and orderDetail.order.deliveryAddress != ''">
            and b.delivery_address like concat('%',#{orderDetail.order.deliveryAddress},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.creator != null and orderDetail.order.creator != ''">
            and b.creator like concat('%',#{orderDetail.order.creator},'%')
        </if>
        <if test="orderDetail.totalThickness != null and orderDetail.totalThickness != ''">
            and c.total_thickness like concat('%',#{orderDetail.totalThickness},'%')
        </if>
        <if test="orderDetail.levelOne != null and orderDetail.levelOne != ''">
            and d.type_name like concat('%',#{orderDetail.levelOne},'%')
        </if>
        <if test="orderDetail.levelTwo != null and orderDetail.levelTwo != ''">
            and e.type_name like concat('%',#{orderDetail.levelTwo},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.customerBatch != null and orderDetail.order.customerBatch != ''">
            and b.customer_batch like concat('%',#{orderDetail.order.customerBatch},'%')
        </if>
        <if test="orderDetail.order!=null and  orderDetail.order.otherMoney != null ">
            and b.other_money  regexp REGEXP_REPLACE(#{orderDetail.order.otherMoney},'\\.0+$','')
        </if>
        group by b.order_id,a.product_id
        ) as ss
    </select>
    <select id="exportOrderProductSummary"  >
        SELECT a.id,
               a.order_id,
               a.order_number,
               a.building_number,
               a.product_id,
               a.product_name,
               a.price,
               sum(a.quantity) as quantity,
               sum(a.gross_amount) as gross_amount,
               a.shape,
               sum(a.area) as area,
               sum(a.gross_area) as gross_area,
               sum(a.compute_area) as compute_area,
               sum(a.compute_gross_area) as compute_gross_area,
               a.processing_note,
               a.remarks,
               a.bend_radius,
               a.edging_type,
               round(sum(a.weight*a.quantity),2) as weights,
               a.perimeter,
               a.other_columns,
               a.warehouse_num,
               a.delivery_num,
               a.return_num,
               a.state,
               b.id,
               b.order_id,
               b.project,
               b.customer_id,
               b.customer_name,
               b.order_type,
               b.order_classify,
               b.icon,
               b.pack_type,
               b.delivery_date,
               b.batch,
               b.calculate_type,
               b.salesman_id,
               b.salesman,
               b.al_type,
               b.money,
               b.contract_id,
               b.customer_batch,
               b.contacts,
               b.contact_number,
               b.delivery_address,
               b.other_money,
               b.other_money_remarks,
               b.processing_note as processingNotes,
               b.other_remarks,
               b.area,
               b.quantity,
               b.perimeter,
               b.verifier_id,
               b.verifier,
               b.creator_id,
               b.creator,
               b.create_order,
               b.process_review,
               b.order_review,
               b.production_order,
               b.processing_card,
               b.warehousing,
               b.delivery,
               b.create_time,
               b.update_time,
               d.type_name as level_one,
               e.type_name as level_two,
               f.customer_abbreviation
        from sd.order_detail as a
                 left join sd.`order` as b
                           on b.order_id = a.order_id
                 left join sd.customer as f
                           on f.id = b.customer_id
                 left join sd.product as c
                           on c.id = a.product_id
                 left join sd.basic_glass_type as d
                           on d.type_id = c.type_id
                 left join sd.basic_glass_type as e
                           on e.type_id = d.belong
        where date(b.create_time) >= #{dates[0]}
          and date(b.create_time) &lt;= #{dates[1]} and b.order_review>0
        group by b.order_id, a.product_id
        order by b.order_id desc
    </select>
    <select id="getOrderProductDetailTag">
        select c.customer_name,c.order_id,b.remarks,c.project,
               if(a.child_width &lt; a.child_height,a.child_width,a.child_height ),
               if(a.child_width &lt; a.child_height,a.child_height,a.child_width ),
               sum(b.quantity),
               a.glass_child,
               b.processing_note
        from order_glass_detail as a
        left join order_detail as b
        on a.order_id = b.order_id
        and a.order_number = b.order_number
        left join `order` as c
        on c.order_id = a.order_id
        where a.order_id = #{orderId}
        group by a.glass_child,a.child_width,a.child_height
    </select>
    <select id="getOrderProductDistinctById">
        select
            (a.product_id) as 'productId',
                    a.product_name as 'productName',
                    p.remarks as 'remarks',
                    a.order_number as 'orderNumber'
        from order_detail as a left join sd.product p on a.product_id=p.id
        where a.order_id = #{orderId}
        group by a.product_id
    </select>
    <select id="getOrderProductDistinctByIds">
        select
        (a.product_id) as 'productId',
        a.product_name as 'productName',
        p.remarks as 'remarks',
        a.order_number as 'orderNumber'
        from sd.order_detail as a left join sd.product p on a.product_id=p.id
        where a.order_id = #{orderId} and a.product_id IN
        <foreach item="item" index="index" collection="productId" open="(" separator="," close=")">
            #{item}
        </foreach>
        group by a.product_id
    </select>
    <select id="getOrderProductByProductId">
        select
            *
        from order_detail as a
        where a.order_id = #{orderId}
        and a.product_id = #{productId}
        order by id;
    </select>
    <select id="getOrderProductByProductIds">
        select *
        from sd.order_detail od
                 left join sd.product_detail pd on od.product_id = pd.prod_id
        where od.order_id = #{orderId} and od.product_id=#{productId}
          and pd.detail_type = 'glass'
        group by od.product_id,pd.detail
    </select>
    <delete id="deleteOrderFile" >
        delete from sd.order_file where order_id = #{orderId}
    </delete>
</mapper>