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.

270 lines
11 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,
bt.pattern_depth as patternDepth
from base_tyre bt
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
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="selectRecentEvents" parameterType="CarLifecycleQuery" resultType="CarLifecycleEventDTO">
select 'INSTALL' as eventType,
rti.create_time as eventTime,
rti.tyre_rfid as tyreRfid,
bt.tyre_no as tyreNo,
bt.self_no as selfNo,
bt.tyre_brand as tyreBrand,
bt.tyre_model as tyreModel,
rti.wheel_postion as wheelPostion,
rti.mileage as mileage,
rti.pattern_depth as patternDepth,
rti.type as status,
null as orderNo,
null as typeCode,
null as factoryName,
null as inputMileage,
null as lastMileage,
null as maintainDate,
null as description,
null as result,
null as maintenanceType,
null as startTime,
null as endTime
from record_tyre_install rti
left join base_tyre bt on bt.tyre_epc = rti.tyre_rfid
where rti.car_no = #{carNo}
union all
select 'MAINTENANCE' as eventType,
o.maintain_date as eventTime,
null as tyreRfid,
null as tyreNo,
null as selfNo,
null as tyreBrand,
null as tyreModel,
null as wheelPostion,
o.input_mileage as mileage,
null as patternDepth,
o.status as status,
o.order_no as orderNo,
o.type_code as typeCode,
d.dept_name as factoryName,
o.input_mileage as inputMileage,
o.last_mileage as lastMileage,
o.maintain_date as maintainDate,
o.description as description,
null as result,
null as maintenanceType,
null as startTime,
null as endTime
from biz_maintenance_order o
left join sys_dept d on d.dept_id = o.factory_id
where o.plate_number = #{carNo}
union all
select 'CHECK' as eventType,
rc.create_time as eventTime,
rc.tyre_rfid as tyreRfid,
bt.tyre_no as tyreNo,
bt.self_no as selfNo,
bt.tyre_brand as tyreBrand,
bt.tyre_model as tyreModel,
null as wheelPostion,
rc.mileage as mileage,
rc.pattern_depth as patternDepth,
null as status,
null as orderNo,
null as typeCode,
null as factoryName,
null as inputMileage,
null as lastMileage,
null as maintainDate,
null as description,
rc.result as result,
rc.maintenance_type as maintenanceType,
null as startTime,
null as endTime
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
union all
select 'MILEAGE' as eventType,
rtm.start_time as eventTime,
rtm.tyre_rfid as tyreRfid,
bt.tyre_no as tyreNo,
bt.self_no as selfNo,
bt.tyre_brand as tyreBrand,
bt.tyre_model as tyreModel,
null as wheelPostion,
rtm.mileage as mileage,
rtm.pattern_depth as patternDepth,
null as status,
null as orderNo,
null as typeCode,
null as factoryName,
null as inputMileage,
null as lastMileage,
null as maintainDate,
null as description,
null as result,
null as maintenanceType,
rtm.start_time as startTime,
rtm.end_time as endTime
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 eventTime 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>