|
|
|
|
@ -58,6 +58,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="selectMountedTyres" parameterType="CarLifecycleQuery" resultType="CarMountedTyreDTO">
|
|
|
|
|
with mounted_tyre as (
|
|
|
|
|
select bt.tyre_id,
|
|
|
|
|
bt.tyre_no,
|
|
|
|
|
bt.self_no,
|
|
|
|
|
bt.tyre_epc,
|
|
|
|
|
bt.tyre_brand,
|
|
|
|
|
bt.tyre_model,
|
|
|
|
|
bt.wheel_postion
|
|
|
|
|
from base_tyre bt
|
|
|
|
|
where bt.car_no = #{carNo}
|
|
|
|
|
<!-- 先把当前车辆候选胎收缩到最小集合,后续花纹/报废判断都围绕这个小集合计算。 -->
|
|
|
|
|
and (bt.tyre_type is null or bt.tyre_type not in ('scrap', '报废'))
|
|
|
|
|
),
|
|
|
|
|
latest_mileage as (
|
|
|
|
|
select tyre_rfid, pattern_depth
|
|
|
|
|
from (
|
|
|
|
|
select rtm.tyre_rfid,
|
|
|
|
|
rtm.pattern_depth,
|
|
|
|
|
row_number() over (partition by rtm.tyre_rfid order by rtm.create_time desc, rtm.id desc) as rn
|
|
|
|
|
from record_tyre_mileage rtm
|
|
|
|
|
inner join mounted_tyre mt on mt.tyre_epc = rtm.tyre_rfid
|
|
|
|
|
where rtm.pattern_depth is not null
|
|
|
|
|
and rtm.pattern_depth <> ''
|
|
|
|
|
) ranked
|
|
|
|
|
where rn = 1
|
|
|
|
|
),
|
|
|
|
|
scrapped_tyre as (
|
|
|
|
|
select scrap_detail.tire_id
|
|
|
|
|
from biz_order_tire_detail scrap_detail
|
|
|
|
|
inner join mounted_tyre mt on mt.tyre_id = scrap_detail.tire_id
|
|
|
|
|
inner join biz_maintenance_order scrap_order on scrap_order.order_id = scrap_detail.order_id
|
|
|
|
|
where scrap_detail.tire_status = '报废'
|
|
|
|
|
and scrap_order.type_code = '7'
|
|
|
|
|
and scrap_order.status = 'COMPLETED'
|
|
|
|
|
group by scrap_detail.tire_id
|
|
|
|
|
)
|
|
|
|
|
select bt.tyre_id as tyreId,
|
|
|
|
|
bt.tyre_no as tyreNo,
|
|
|
|
|
bt.self_no as selfNo,
|
|
|
|
|
@ -66,19 +102,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
|
|
bt.tyre_model as tyreModel,
|
|
|
|
|
bt.wheel_postion as wheelPostion,
|
|
|
|
|
maint.pattern_depth as patternDepth
|
|
|
|
|
from base_tyre bt
|
|
|
|
|
left join (
|
|
|
|
|
select tyre_rfid, pattern_depth
|
|
|
|
|
from (
|
|
|
|
|
select tyre_rfid, pattern_depth,
|
|
|
|
|
row_number() over (partition by tyre_rfid order by create_time desc, id desc) as rn
|
|
|
|
|
from record_tyre_mileage
|
|
|
|
|
where pattern_depth is not null
|
|
|
|
|
and pattern_depth <> ''
|
|
|
|
|
) ranked
|
|
|
|
|
where rn = 1
|
|
|
|
|
) maint on maint.tyre_rfid = bt.tyre_epc
|
|
|
|
|
where bt.car_no = #{carNo}
|
|
|
|
|
from mounted_tyre bt
|
|
|
|
|
left join latest_mileage maint on maint.tyre_rfid = bt.tyre_epc
|
|
|
|
|
left join scrapped_tyre on scrapped_tyre.tire_id = bt.tyre_id
|
|
|
|
|
<!-- 报废集合已限定为当前车辆候选胎,反连接只需判空,不再逐轮位扫描报废明细。 -->
|
|
|
|
|
where scrapped_tyre.tire_id is null
|
|
|
|
|
order by bt.wheel_postion, bt.tyre_id
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|