guoyuji
2024-07-05 4098ea2b95d6da283ac62f2ebb30ce37fe0d6d3f
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -24,6 +24,7 @@
                            remarks,
                            bend_radius,
                            edging_type,
                            arch_rise,
                            weight,
                            perimeter,
                            other_columns
@@ -49,6 +50,7 @@
            #{orderDetail.remarks},
            #{orderDetail.bendRadius},
            #{orderDetail.edgingType},
            #{orderDetail.archRise},
            #{orderDetail.weight},
            #{orderDetail.perimeter},
            #{orderDetail.otherColumns}
@@ -390,15 +392,14 @@
        <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
            *,
            a.create_time as createTime,
            d.type_name as levelOne,
            e.type_name as levelTwo
            d.type_name as level_one,
            e.type_name as level_two
        from order_detail as a
         left join sd.`order` as b
                   on b.order_id = a.order_id
@@ -408,7 +409,7 @@
                   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]}
    </select>
@@ -416,8 +417,32 @@
    <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,
        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,
        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
@@ -560,4 +585,222 @@
        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}
        <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.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 like concat('%',#{orderDetail.width},'%')
        </if>
        <if test="orderDetail.height != null and orderDetail.height != ''">
            and a.height like concat('%',#{orderDetail.height},'%')
        </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 like concat('%',#{orderDetail.grossArea},'%')
        </if>
        <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
        </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 like concat('%',#{orderDetail.grossAmount},'%')
        </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>
        group by b.order_id,a.product_id
        ) as ss
    </select>
    <select id="exportOrderProductSummary"  >
        SELECT
            *,
            a.create_time as createTime,
            d.type_name as level_one,
            e.type_name as level_two
        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(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]}
        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',
                    a.order_number as 'orderNumber'
        from order_detail as a
        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',
        a.order_number as 'orderNumber'
        from order_detail as a
        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>
</mapper>