You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
6.7 KiB
XML

<?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.ruoyi.system.mapper.BaseCarLifecycleMapper">
<resultMap type="CarLifecycleSummaryDTO" id="CarLifecycleSummaryResult">
<result property="carId" column="car_id"/>
<result property="carNo" column="car_no"/>
<result property="deptId" column="dept_id"/>
<result property="team" column="team"/>
<result property="line" column="line"/>
<result property="type" column="type"/>
<result property="inputMileage" column="input_mileage"/>
</resultMap>
<select id="selectLifecycleCar" parameterType="CarLifecycleQuery" resultMap="CarLifecycleSummaryResult">
select b.id as car_id,
b.car_no,
b.dept_id,
d.dept_name as team,
b.line,
b.type,
max(o.input_mileage) as input_mileage
from base_car b
left join sys_dept d on d.dept_id = b.dept_id
left join sys_user u on u.dept_id = d.dept_id
left join biz_maintenance_order o on o.plate_number = b.car_no
where b.car_no = #{carNo}
${params.dataScope}
group by b.id, b.car_no, b.dept_id, d.dept_name, b.line, b.type
</select>
<select id="selectMountedTyres" parameterType="CarLifecycleQuery" resultType="CarMountedTyreDTO">
select bt.tyre_id as tyreId,
bt.tyre_no as tyreNo,
bt.self_no as selfNo,
bt.tyre_epc as tyreEpc,
bt.tyre_brand as tyreBrand,
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 record_type = '保养'
and pattern_depth is not null
and pattern_depth &lt;&gt; ''
) ranked
where rn = 1
) maint on maint.tyre_rfid = bt.tyre_epc
where bt.car_no = #{carNo}
order by bt.wheel_postion, bt.tyre_id
</select>
<select id="selectInstallList" parameterType="CarLifecycleQuery" resultType="CarTyreInstallLifecycleDTO">
select rti.id as id,
rti.tyre_rfid as tyreRfid,
rti.type as installType,
rti.mileage as mileage,
rti.create_time as createTime,
rti.wheel_postion as wheelPostion,
rti.pattern_depth as patternDepth,
bt.tyre_no as tyreNo,
bt.self_no as selfNo,
bt.tyre_brand as tyreBrand,
bt.tyre_model as tyreModel
from record_tyre_install rti
left join base_tyre bt on bt.tyre_epc = rti.tyre_rfid
where rti.car_no = #{carNo}
order by rti.create_time desc, rti.id desc
</select>
<select id="selectMaintenanceList" parameterType="CarLifecycleQuery" resultType="CarMaintenanceLifecycleDTO">
select o.order_id as orderId,
o.order_no as orderNo,
o.vehicle_id as vehicleId,
o.plate_number as plateNumber,
o.type_code as typeCode,
o.status as status,
o.input_mileage as inputMileage,
o.last_mileage as lastMileage,
o.maintain_date as maintainDate,
d.dept_name as factoryName,
o.description as description
from biz_maintenance_order o
left join sys_dept d on d.dept_id = o.factory_id
where o.plate_number = #{carNo}
order by o.maintain_date desc, o.order_id desc
</select>
<select id="selectCheckList" parameterType="CarLifecycleQuery" resultType="CarCheckLifecycleDTO">
select rc.id as id,
rc.tyre_rfid as tyreRfid,
bt.tyre_no as tyreNo,
bt.tyre_brand as tyreBrand,
bt.tyre_model as tyreModel,
rc.result as result,
rc.maintenance_type as maintenanceType,
rc.mileage as mileage,
rc.pattern_depth as patternDepth,
rc.create_time as createTime
from record_check rc
inner join (
select distinct tyre_rfid
from record_tyre_install
where car_no = #{carNo}
and tyre_rfid is not null
) car_tyre on car_tyre.tyre_rfid = rc.tyre_rfid
left join base_tyre bt on bt.tyre_epc = rc.tyre_rfid
order by rc.create_time desc, rc.id desc
</select>
<select id="selectMileageList" parameterType="CarLifecycleQuery" resultType="CarMileageLifecycleDTO">
select rtm.id as id,
rtm.tyre_rfid as tyreRfid,
bt.tyre_no as tyreNo,
bt.tyre_brand as tyreBrand,
rtm.start_time as startTime,
rtm.end_time as endTime,
rtm.mileage as mileage,
rtm.pattern_depth as patternDepth,
rtm.record_type as recordType
from record_tyre_mileage rtm
inner join (
select distinct tyre_rfid
from record_tyre_install
where car_no = #{carNo}
and tyre_rfid is not null
) car_tyre on car_tyre.tyre_rfid = rtm.tyre_rfid
left join base_tyre bt on bt.tyre_epc = rtm.tyre_rfid
order by rtm.start_time desc, rtm.id desc
</select>
<select id="countInstallRecords" parameterType="CarLifecycleQuery" resultType="int">
select count(1)
from record_tyre_install rti
where rti.car_no = #{carNo}
</select>
<select id="countMaintenanceOrders" parameterType="CarLifecycleQuery" resultType="int">
select count(1)
from biz_maintenance_order o
where o.plate_number = #{carNo}
</select>
<select id="countCheckRecords" parameterType="CarLifecycleQuery" resultType="int">
select count(distinct rc.id)
from record_check rc
inner join record_tyre_install rti on rti.tyre_rfid = rc.tyre_rfid
where rti.car_no = #{carNo}
</select>
<select id="countMileageRecords" parameterType="CarLifecycleQuery" resultType="int">
select count(distinct rtm.id)
from record_tyre_mileage rtm
inner join record_tyre_install rti on rti.tyre_rfid = rtm.tyre_rfid
where rti.car_no = #{carNo}
</select>
</mapper>