<?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="org.jeecg.modules.eam.mapper.MtbfMapper">
|
|
|
<select id="getMTBF" parameterType="Map" resultType="Map">
|
select
|
isnull(qqq.equipmentId,ttt.id) as equipmentId,
|
isnull(qqq.equipmentNum,ttt.num) as equipmentNum,
|
isnull(qqq.equipmentName,ttt.name) as equipmentName,
|
isnull(qqq.equipmentModel,ttt.model) as equipmentModel,
|
isnull(qqq.workCenterName,ttt1.name) as workCenterName,
|
isnull(qqq.faultNumber,0) as faultNumber,
|
isnull(qqq.totalAvailableTime,(datediff( HOUR, #{params.faultStartTime}, #{params.faultEndTime} ) + 24)) as totalAvailableTime,
|
isnull(qqq.faultTime,0) as faultTime,
|
isnull(qqq.repairTime,0) as repairTime,
|
isnull(qqq.noFaultTime,(datediff( HOUR, #{params.faultStartTime}, #{params.faultEndTime} ) + 24)) as noFaultTime,
|
isnull(qqq.mtbf,0) as mtbf,
|
isnull(qqq.mttr,0) as mttr,
|
isnull(qqq.serviceabilityRate,STR( ( 1 * 100 ), 10, 2 ) + '%') as serviceabilityRate,
|
isnull(qqq.startRate,STR( ( 0 * 100 ), 10, 2 ) + '%') as startRate
|
from mom_eam_equipment ttt
|
left join mom_base_area ttt1 ON ttt.work_center_id = ttt1.id
|
left join (
|
SELECT
|
tt.equipmentId,
|
tt.equipmentNum,
|
tt.equipmentName,
|
tt.equipmentModel,
|
tt.workCenterName,
|
COUNT ( tt.equipmentId ) AS faultNumber,
|
SUM ( totalAvailableTime ) AS totalAvailableTime,
|
SUM ( faultTime ) AS faultTime,
|
SUM ( repairTime ) AS repairTime,
|
SUM ( noFaultTime ) AS noFaultTime,
|
SUM ( noFaultTime ) / COUNT ( tt.equipmentId ) AS mtbf,
|
SUM ( repairTime ) / COUNT ( tt.equipmentId ) AS mttr,
|
STR((SUM ( noFaultTime ) / SUM ( totalAvailableTime ) * 100), 10, 2) + '%' AS serviceabilityRate,
|
STR((SUM ( faultTime ) / SUM ( totalAvailableTime ) * 100), 10, 2)+ '%' AS startRate
|
FROM
|
(
|
SELECT
|
t1.report_repair_num AS reportRepairNum,
|
t1.equipment_id AS equipmentId,
|
t2.num AS equipmentNum,
|
t2.name AS equipmentName,
|
t2.model AS equipmentModel,
|
t3.name AS workCenterName,
|
SUM ( t1.total_available_time ) AS totalAvailableTime,
|
SUM ( t1.fault_time ) AS faultTime,
|
SUM ( t1.repair_time ) AS repairTime,
|
SUM ( t1.no_fault_time ) AS noFaultTime
|
FROM
|
mom_eam_mtbf t1
|
LEFT JOIN mom_eam_equipment t2 ON t1.equipment_id = t2.id
|
LEFT JOIN mom_base_area t3 ON t2.work_center_id = t3.id
|
where 1=1
|
<if test="params.equipmentNum != null and params.equipmentNum != ''">
|
and t2.num like concat('%',#{params.equipmentNum},'%')
|
</if>
|
<if test="params.workCenterId != null and params.workCenterId != ''">
|
and t3.id = #{params.workCenterId}
|
</if>
|
<if test="params.equipmentImportanceId != null and params.equipmentImportanceId != ''">
|
and t2.equipment_importance_id = #{params.equipmentImportanceId}
|
</if>
|
<if test="params.specificEquipment != null and params.specificEquipment != ''">
|
and t2.specific_equipment = #{params.specificEquipment}
|
</if>
|
AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_data, 120 ), 1, 10 ) >= #{params.faultStartTime}
|
AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_data, 120 ), 1, 10 ) <= #{params.faultEndTime}
|
GROUP BY
|
t1.report_repair_num,
|
t1.equipment_id,
|
t2.num,
|
t2.name,
|
t2.model,
|
t3.name
|
) tt
|
GROUP BY
|
tt.equipmentId,
|
tt.equipmentNum,
|
tt.equipmentName,
|
tt.equipmentModel,
|
tt.workCenterName) qqq on ttt.id = qqq.equipmentId
|
where 1= 1 and ttt.work_center_id is not null
|
<if test="params.equipmentNum != null and params.equipmentNum != ''">
|
and ttt.num like concat('%',#{params.equipmentNum},'%')
|
</if>
|
<if test="params.workCenterId != null and params.workCenterId != ''">
|
and ttt1.id = #{params.workCenterId}
|
</if>
|
<if test="params.equipmentImportanceId != null and params.equipmentImportanceId != ''">
|
and ttt.equipment_importance_id = #{params.equipmentImportanceId}
|
</if>
|
<if test="params.specificEquipment != null and params.specificEquipment != ''">
|
and ttt.specific_equipment = #{params.specificEquipment}
|
</if>
|
</select>
|
|
|
<select id="getReportRepairTimeList" resultType="org.jeecg.modules.eam.vo.MtbfVo">
|
SELECT
|
t1.num AS reportRepairNum,
|
t1.status,
|
t1.equipment_id AS equipmentId,
|
t1.fault_time AS faultStartTime,
|
t2.create_time AS repairStartTime,
|
t2.actual_end_time AS repairEndTime
|
FROM
|
mom_eam_equipment_report_repair t1
|
LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id
|
WHERE t1.status IN ( '1', '2', '4' )
|
AND ( SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t2.actual_end_time, 120 ), 1, 10 ) = #{yesterday} OR t1.status != '4' )
|
</select>
|
</mapper>
|