<?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.OrderGlassDetailMapper">
|
|
<insert id="insertOrderGlassDetail" parameterType="java.lang.String">
|
insert into
|
order_glass_detail (
|
order_id, order_number,
|
technology_number,
|
glass_address,
|
glass_child,
|
child_width,
|
child_height,
|
area,
|
total_area,
|
|
process,
|
`group`)
|
select
|
od.order_id,
|
od.order_number,
|
pd.glass_sort,
|
if(pd.glass_sort=1,'(外)',if(pd2.glass_sort=pd.glass_sort,'(内)','')),
|
pd.detail,
|
if( od.bend_radius!='',
|
round(od.width*(od.bend_radius-round(sum(t.thicknessCount),2))/od.bend_radius,0),
|
od.width
|
),
|
od.height,
|
od.area,
|
od.gross_area,
|
pd.process,
|
pd.glass_group
|
from sd.product_detail as pd
|
left join order_detail as od
|
on od.product_id = pd.prod_id and pd.detail_type='glass'
|
LEFT JOIN (SELECT max(id) as id ,max(glass_sort) as glass_sort from product_detail GROUP BY prod_id)as pd2
|
on pd2.id=pd.id
|
left join (
|
select
|
a.prod_id,
|
a.sort_num,
|
a.glass_sort,
|
(case
|
when a.sort_num=1
|
then left(detail,LOCATE('mm',detail)-1)/2
|
else
|
left(detail,LOCATE('mm',detail)-1)
|
end) as 'thicknessCount'
|
|
from product_detail as a
|
group by prod_id,a.sort_num
|
) as t
|
ON t.prod_id = od.product_id and t.sort_num <=pd.sort_num
|
|
|
where od.order_id = #{orderId}
|
group by od.order_number,pd.glass_sort
|
ORDER BY od.order_number
|
</insert>
|
|
<select id="selectOrderGlassDetail">
|
select * from order_glass_detail where order_id = #{orderId}
|
</select>
|
|
<resultMap id="orderGlassDetailMap" type="com.example.erp.entity.sd.OrderGlassDetail" >
|
<id column="id" property="id"/>
|
<result column="order_id" property="orderId"/>
|
<result column="order_number" property="orderNumber"/>
|
<result column="glass_address" property="glassAddress"/>
|
<result column="technology_number" property="technologyNumber"/>
|
<result column="glass_child" property="glassChild"/>
|
<result column="child_width" property="childWidth"/>
|
<result column="child_height" property="childHeight"/>
|
<result column="icon" property="icon"/>
|
<result column="process" property="process"/>
|
<result column="area" property="area"/>
|
<result column="total_area" property="totalArea"/>
|
<!--接收其他外键实体类数据-->
|
<association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">
|
|
<result column="building_number" property="buildingNumber"/>
|
<result column="product_name" property="productName"/>
|
<result column="width" property="width"/>
|
<result column="height" property="height"/>
|
<result column="shape" property="shape"/>
|
<result column="edging_type" property="edgingType"/>
|
<result column="quantity" property="quantity"/>
|
<result column="processing_note" property="processingNote"/>
|
<result column="beizhu" property="remarks"/>
|
|
</association>
|
|
</resultMap>
|
|
<select id="selectOrderGlassDetailByOrderId" resultMap="orderGlassDetailMap">
|
select
|
a.order_id,
|
a.order_number,
|
b.building_number,
|
b.product_name,
|
a.glass_address,
|
a.technology_number,
|
a.glass_child,
|
b.width,
|
b.height,
|
b.shape,
|
a.total_area,
|
b.edging_type,
|
a.child_width,
|
a.child_height,
|
a.icon,
|
a.area,
|
b.quantity,
|
a.process,
|
b.remarks as 'beizhu',
|
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
|
where a.order_id = #{orderId}
|
order by a.order_number,a.technology_number
|
</select>
|
|
<update id="updateSizeAndProcess" parameterType="java.util.List">
|
<foreach collection="orderGlassDetails" item="item" index="index" open="" close="" separator=";">
|
update order_glass_detail as a,
|
order_detail as b
|
set
|
a.child_width = #{item.childWidth},
|
a.child_height = #{item.childHeight},
|
a.area = #{item.area},
|
a.total_area = #{item.area}*b.quantity,
|
a.icon = #{item.icon},
|
a.process = #{item.process}
|
where
|
a.order_id = b.order_id
|
and a.order_id = #{item.orderId}
|
and a.order_number = #{item.orderNumber}
|
and a.technology_number = #{item.technologyNumber}
|
</foreach>
|
|
</update>
|
</mapper>
|