with temp_flow as (SELECT t.process_id,
t.order_id,
t.order_number,
t.technology_number,
t.quantity,
t1.child_width,
t1.child_height
from pp.flow_card t
LEFT JOIN sd.order_glass_detail t1
on t.order_id = t1.order_id
and t.order_number = t1.order_number
and t.technology_number = t1.technology_number
where t.process_id = #{flowCardId}),
glass_info_temp as (
select process_id,
order_id,
GREATEST(child_width, child_height) as first_length,
least(child_width, child_height) as second_length,
child_width,
child_height,
order_number,
technology_number,
quantity
from temp_flow
where technology_number = #{totalLayer}
)
select row_number() over (order by second_length desc,first_length desc) as rn, t.*
from glass_info_temp t
with temp_flow as (SELECT t.process_id,
t.order_id,
t.order_number,
t.technology_number,
t.quantity,
t1.child_width,
t1.child_height
from pp.flow_card t
LEFT JOIN sd.order_glass_detail t1
on t.order_id = t1.order_id
and t.order_number = t1.order_number
and t.technology_number = t1.technology_number
where t.process_id = #{flowCardId}),
glass_info_max_layer_temp as (
select process_id,
order_id,
GREATEST(child_width, child_height) as first_length,
least(child_width, child_height) as second_length,
child_width,
child_height,
order_number,
technology_number,
quantity
from temp_flow
where technology_number = #{totalLayer}
),
glass_info_layer_temp as (
select process_id,
order_id,
GREATEST(child_width, child_height) as first_length,
least(child_width, child_height) as second_length,
child_width,
child_height,
order_number,
technology_number,
quantity
from temp_flow
where technology_number = #{layer}
),
max_layer_sequence as (
select row_number() over (order by second_length desc,first_length desc) as rn, t.order_number
from glass_info_max_layer_temp t
),
result as (select t.*
from glass_info_layer_temp t
INNER join max_layer_sequence t1 on t.order_number = t1.order_number
order by t1.rn)
select *
from result
WITH flow_card_id_info AS (
SELECT DISTINCT flow_card_id
FROM hollow_big_storage_cage_details
WHERE state = 100
),
glass_temp AS (
SELECT t.*
FROM glass_info t
INNER JOIN flow_card_id_info t1 ON t.flow_card_id = t1.flow_card_id
),
detail_temp AS (
SELECT t.*
FROM glass_temp t
WHERE NOT EXISTS (
SELECT 1
FROM hollow_big_storage_cage_details t1
WHERE t1.glass_id = t.glass_id
AND t1.state NOT IN (8,9)
)
),
damage_latest AS (
SELECT
dr.glass_id,
dr.type,
dr.status
FROM (
SELECT
t1.glass_id,
t1.type,
t1.status,
ROW_NUMBER() OVER(PARTITION BY t1.glass_id ORDER BY t1.id DESC) as rn
FROM detail_temp t
INNER JOIN damage t1 ON t.flow_card_id = t1.process_id
) dr
WHERE dr.rn = 1
),
result_temp AS (
SELECT
t.flow_card_id,
t.layer,
t.glass_type,
t.thickness,
t.filmsId,
t.width,
t.height,
COUNT(DISTINCT t.glass_id) as lack_count,
COUNT(DISTINCT CASE WHEN t1.type IN (7,8) AND t1.status = 1 THEN t.glass_id END) as damage_count
FROM detail_temp t
LEFT JOIN damage_latest t1 ON t.glass_id = t1.glass_id
GROUP BY
t.flow_card_id,
t.layer,
t.glass_type,
t.thickness,
t.filmsId,
t.width,
t.height
)
SELECT *
FROM result_temp
ORDER BY flow_card_id, layer;
select count(distinct layer)
from hollow_glass_relation_info
where flow_card_id = #{flowCardId}
select t.product_name, t1.customer_name
from sd.order_detail t
inner join sd.order t1 on t.order_id = t1.order_id
where (t.order_id, t.order_number) = (
select min(order_id) as order_id, min(order_number) as order_number
from pp.flow_card
where process_id = #{flowCardId}
and t.product_name like concat('%', #{productName}, '%')
and t1.customer_name like concat('%', #{customerName}, '%')
)
limit 1
with glass_id_info as (
select glass_id,order_sort from hollow_glass_relation_info where flow_card_id=#{flowCardId} and
order_sort=#{orderSort} and layer=#{layer} and glass_id is not null
),
damage_glass_id as (
select glass_id from damage where process_id=#{flowCardId} and order_number=#{orderSort} and
technology_number=#{layer} and type=8 and status < 3 and glass_id is not null
)
select t.* from glass_info t left join glass_id_info t1 on t.glass_id=t1.glass_id
left join damage_glass_id t2 on t.glass_id=t2.glass_id
where t.flow_card_id=#{flowCardId} and t.glass_type=#{orderSort} and t.layer=#{layer} and t1.glass_id is null
and t2.glass_id is null
with hollow_flow_temp AS (
SELECT DISTINCT flow_card_id
FROM hollow_big_storage_cage_details
WHERE state = 100
and flow_card_id = #{flowCardId}
)
, glass_temp as (
select t1.*
from hollow_flow_temp t
INNER JOIN glass_info t1 on t.flow_card_id = t1.flow_card_id
)
, detail_temp as (
select t.*
from glass_temp t
left join hollow_big_storage_cage_details t1 on t.glass_id = t1.glass_id and t1.state not in (8,9)
where t1.glass_id is null
)
, damage_ranked AS (
SELECT t.flow_card_id,
t.layer,
t.glass_id,
t.glass_type,
t.width,
t.height,
t.filmsId,
t.thickness,
case
when type in (7, 8) and status = 1 then ''
else t1.working_procedure end as working_procedure,
ROW_NUMBER() OVER (PARTITION BY t1.glass_id ORDER BY t1.id DESC) as rn
FROM detail_temp t
inner join damage t1 on t.glass_id = t1.glass_id
)
, damage_latest AS (
SELECT *
FROM damage_ranked
WHERE rn = 1
)
select *
from damage_latest
update tempering_glass_relation_info
set shelf_order = null
, state = 0
where flow_card_id = #{flowCardId}
and layer = #{layer}
and shelf_order not in (
select shelf_order
from vertical_sheet_cage_details
where flow_card_id = #{flowCardId}
and layer = #{layer}
and state in (100, 102, 103, 104)
)