| | |
| | | and a.process = "中空" |
| | | and (b.quantity - b.termination_quantity) > reporting_work_num |
| | | </select> |
| | | |
| | | |
| | | <select id="queryInterlayerByERP" resultType="com.mes.order.entity.dto.InterlayerDTO"> |
| | | WITH flow_order AS ( |
| | | SELECT ORDER_ID, ORDER_NUMBER |
| | | FROM pp.flow_card |
| | | WHERE process_id = #{flowCardId} |
| | | ORDER BY ORDER_NUMBER /* 添加适当的排序字段,确保结果确定性 */ |
| | | LIMIT 1 |
| | | ), |
| | | product_ids AS ( |
| | | SELECT od.PRODUCT_ID |
| | | FROM sd.order_detail od |
| | | inner JOIN flow_order fo ON od.ORDER_id = fo.ORDER_ID AND od.ORDER_NUMBER = fo.ORDER_NUMBER |
| | | ), |
| | | ranked AS ( |
| | | SELECT |
| | | detail_type, |
| | | LAG(glass_sort) OVER (PARTITION BY prod_id ORDER BY sort_num) AS prev_sort, |
| | | LEAD(glass_sort) OVER (PARTITION BY prod_id ORDER BY sort_num) AS next_sort |
| | | FROM sd.product_detail |
| | | WHERE prod_id IN (SELECT PRODUCT_ID FROM product_ids) |
| | | |
| | | ) |
| | | SELECT |
| | | prev_sort, |
| | | next_sort |
| | | FROM ranked |
| | | where detail_type = 'Interlayer' |
| | | </select> |
| | | </mapper> |