<?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.example.erp.mapper.sd.OrderDetailMapper">
|
<insert id="insertBatch" parameterType="java.util.List">
|
INSERT INTO
|
order_detail (order_id,
|
order_number,
|
building_number,
|
product_id,
|
product_name,
|
price,
|
quantity,
|
gross_amount,
|
width,
|
height,
|
shape,
|
area,
|
gross_area,
|
compute_area,
|
compute_gross_area,
|
processing_note,
|
remarks,
|
bend_radius,
|
edging_type,
|
arch_rise,
|
weight,
|
perimeter,
|
monolithic_perimeter,
|
other_columns
|
)
|
values
|
<foreach collection ="orderDetails" item="orderDetail" separator =",">
|
(#{orderDetail.orderId},
|
#{orderDetail.orderNumber},
|
#{orderDetail.buildingNumber},
|
#{orderDetail.productId},
|
#{orderDetail.productName},
|
#{orderDetail.price},
|
#{orderDetail.quantity},
|
#{orderDetail.grossAmount},
|
#{orderDetail.width},
|
#{orderDetail.height},
|
#{orderDetail.shape},
|
#{orderDetail.area},
|
#{orderDetail.grossArea},
|
#{orderDetail.computeArea},
|
#{orderDetail.computeGrossArea},
|
#{orderDetail.processingNote},
|
#{orderDetail.remarks},
|
#{orderDetail.bendRadius},
|
#{orderDetail.edgingType},
|
#{orderDetail.archRise},
|
#{orderDetail.weight},
|
#{orderDetail.perimeter},
|
#{orderDetail.monolithicPerimeter},
|
#{orderDetail.otherColumns}
|
)
|
</foreach>
|
</insert>
|
|
<update id="updateOrderMoney" parameterType="java.util.List">
|
<foreach collection="orderDetails" item="item" index="index" open="" close="" separator=";">
|
update order_detail as a
|
set
|
a.price = #{item.price},
|
a.gross_amount = #{item.grossAmount},
|
a.other_columns = #{item.otherColumns}
|
where
|
a.order_id = #{item.orderId} and
|
a.order_number = #{item.orderNumber}
|
|
</foreach>
|
|
</update>
|
|
<resultMap id="orderMap" type="com.example.erp.entity.sd.OrderDetail">
|
<result column="order_number" property="orderNumber"/>
|
|
<result column="product_id" property="productId"/>
|
<result column="product_name" property="productName"/>
|
<result column="price" property="price"/>
|
<result column="width" property="width"/>
|
<result column="height" property="height"/>
|
<result column="quantity" property="quantity"/>
|
<result column="bend_radius" property="bendRadius"/>
|
<result column="gross_area" property="grossArea"/>
|
<result column="compute_gross_area" property="computeGrossArea"/>
|
<result column="shape" property="shape"/>
|
<result column="edging_type" property="edgingType"/>
|
<result column="processing_note" property="processingNote"/>
|
<result column="remarks" property="remarks"/>
|
<result column="perimeter" property="perimeter"/>
|
<result column="gross_amount" property="grossAmount"/>
|
<result column="levelOne" property="levelOne"/>
|
<result column="levelTwo" property="levelTwo"/>
|
<result column="total_thickness" property="totalThickness"/>
|
<result column="createTime" property="createTime"/>
|
|
<result column="order_type" property="order.orderType"/>
|
<result column="customer_name" property="order.customerName"/>
|
<result column="project" property="order.project"/>
|
<result column="order_id" property="order.orderId"/>
|
<result column="batch" property="order.batch"/>
|
<result column="b.processing_note" property="order.processingNote"/>
|
<result column="icon" property="order.icon"/>
|
<result column="packType" property="order.packType"/>
|
<result column="salesman" property="order.salesman"/>
|
<result column="delivery_address" property="order.deliveryAddress"/>
|
<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) <= #{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) <= #{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) <= #{dates[1]} and b.order_review>0
|
order by b.id desc
|
</select>
|
|
|
<select id="getOrderReport" resultMap="orderMap">
|
SELECT
|
*,
|
a.create_time as createTime,
|
d.type_name as levelOne,
|
e.type_name as levelTwo
|
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) <= #{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},'\\.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>
|
order by a.id desc
|
limit #{offset},#{pageSize}
|
</select>
|
<select id="getOrderReportTotal" >
|
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) <= #{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},'\\.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>
|
</select>
|
|
<select id="exportOrderReport" >
|
SELECT
|
*,
|
b.processing_note as processingNotes,
|
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) <= #{dates[1]} and b.order_review>0
|
</select>
|
|
|
<!--获取订单产品汇总-->
|
|
<select id="getOrderProductSummary" resultMap="orderMap">
|
SELECT
|
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,
|
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
|
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) <= #{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
|
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) <= #{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,
|
a.weight,
|
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) <= #{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 < a.child_height,a.child_width,a.child_height ),
|
if(a.child_width < 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>
|
|
|
|
|
|
|
</mapper>
|