insert into
order_glass_detail (
order_id, order_number,
technology_number,
glass_address,
glass_child,
child_width,
child_height,
area,
total_area,
process,
`group`
,arc)
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)-t1.thicknessCount/2
,2))
/od.bend_radius
,1),
od.width
)
,
od.height,
od.area,
od.gross_area,
pd.process,
pd.glass_group,
if( od.bend_radius!='',
round((od.width*(od.bend_radius-(sum(t.thicknessCount)-t1.thicknessCount)))/od.bend_radius,1)
,null) as 'arc'
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,
left(detail,LOCATE('mm',detail)-1) 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
left join (
select
a.prod_id,
a.sort_num,
a.glass_sort,
left(detail,LOCATE('mm',detail)-1) as 'thicknessCount'
from product_detail as a
group by prod_id,a.sort_num
) as t1
ON t1.prod_id = od.product_id and t1.sort_num =pd.sort_num
where od.order_id = #{orderId}
group by od.order_number,pd.glass_sort
ORDER BY od.order_number
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},
a.arc = #{item.arc}
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}