|
|
|
<?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.op.device.mapper.DeviceInterfaceMapper">
|
|
|
|
|
|
|
|
<select id="selectEquRepairWorkOrderList" resultType="com.op.device.domain.vo.IRepairWorkOrderVO">
|
|
|
|
select be.equipment_name AS "equipmentName",
|
|
|
|
wo.equipment_code AS "equipmentCode",
|
|
|
|
wo.work_fault_desc AS "workFaultDesc",
|
|
|
|
et.team_name AS "teamName",
|
|
|
|
wo.work_handle AS "workHandle",
|
|
|
|
wo.work_plan_time AS "workPlanTime",
|
|
|
|
be.equipment_location AS "equipmentLocation"
|
|
|
|
from equ_repair_work_order wo
|
|
|
|
left join base_equipment be on wo.equipment_code = be.equipment_code
|
|
|
|
left join equ_team et on wo.work_team = et.team_code
|
|
|
|
where wo.work_status = '0'
|
|
|
|
and wo.del_flag = '0'
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectEquipmentList" parameterType="EquOperation" resultType="com.op.device.domain.vo.IEquipmentVO">
|
|
|
|
select be.equipment_code AS 'equipmentCode', be.equipment_name AS 'equipmentName',be.equipment_status AS
|
|
|
|
'equipmentStatus',be.department AS
|
|
|
|
'department',(SELECT ROUND(
|
|
|
|
SUM(CAST(fault_time AS FLOAT)) /
|
|
|
|
SUM(CAST(actual_operation_time AS FLOAT)),
|
|
|
|
2)
|
|
|
|
FROM equ_operation
|
|
|
|
WHERE equipment_code = be.equipment_code) AS 'failureRate', (
|
|
|
|
SELECT ROUND(SUM(mrw.quantity_feedback) / SUM(mrw.quantity), 2)
|
|
|
|
FROM mes_report_work mrw
|
|
|
|
WHERE mrw.del_flag = '0'
|
|
|
|
AND mrw.status = 'PREPARE'
|
|
|
|
AND mrw.machine_code = be.equipment_code
|
|
|
|
<if test="timeDimension == 'dd' ">AND mrw.feedback_time >= DATEADD(DAY, -1, GETDATE())</if>
|
|
|
|
<if test="timeDimension == 'mm' ">AND mrw.feedback_time >= DATEADD(MONTH, -1, GETDATE())</if>
|
|
|
|
<if test="timeDimension == 'yyyy' ">AND mrw.feedback_time >= DATEADD(YEAR, -1, GETDATE())</if>
|
|
|
|
) AS 'utilizationRatio'
|
|
|
|
from base_equipment be
|
|
|
|
where be.del_flag = '0'
|
|
|
|
and be.equipment_category = '0'
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectEquipmentVOList" parameterType="EquOperation" resultType="com.op.device.domain.vo.IEquipmentVO">
|
|
|
|
SELECT
|
|
|
|
be.equipment_code AS 'equipmentCode',
|
|
|
|
be.equipment_name AS 'equipmentName',
|
|
|
|
be.equipment_status AS 'equipmentStatus',
|
|
|
|
be.department AS 'department',
|
|
|
|
ROUND(SUM(CAST(eo.fault_time AS FLOAT)) * 100 / SUM(CAST(eo.operation_time AS FLOAT)),2) AS 'failureRate',
|
|
|
|
CAST(SUM(CAST(eo.actual_operation_time AS DECIMAL(10,2)))*100/(COUNT(eo.actual_operation_time)*24) AS DECIMAL(18,2)) AS 'utilizationRatio'
|
|
|
|
FROM equ_operation eo
|
|
|
|
LEFT JOIN base_equipment be ON eo.equipment_code = be.equipment_code
|
|
|
|
<where>
|
|
|
|
<if test="timeDimension == 'dd' ">and convert(char(10),eo.create_time,120) = convert(char(10),getdate(),120)</if>
|
|
|
|
<if test="timeDimension == 'mm' ">and month(eo.create_time) = month(getdate())</if>
|
|
|
|
<if test="timeDimension == 'yyyy' ">and year(eo.create_time) = year(getdate())</if>
|
|
|
|
<if test="startTime != null and endTime != null ">and eo.create_time between #{startTime} and #{endTime} </if>
|
|
|
|
AND eo.del_flag = '0'
|
|
|
|
AND be.del_flag = '0'
|
|
|
|
AND be.equipment_category = '0'
|
|
|
|
</where>
|
|
|
|
GROUP BY be.equipment_code,be.equipment_name,be.equipment_status,be.department
|
|
|
|
ORDER BY failureRate DESC
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectRepairEquipmentList" resultType="com.op.device.domain.vo.IEquipmentVO">
|
|
|
|
select be.equipment_code AS 'equipmentCode', be.equipment_name AS 'equipmentName'
|
|
|
|
from base_equipment be
|
|
|
|
where be.equipment_code in (select wo.equipment_code
|
|
|
|
from equ_repair_work_order wo
|
|
|
|
where wo.del_flag = '0'
|
|
|
|
and wo.work_status = '1'
|
|
|
|
GROUP BY wo.equipment_code)
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectReportWorkByEquipmentCode" resultType="com.op.device.domain.MesReportWork">
|
|
|
|
select SUM(mrw.quantity) AS "quantity",
|
|
|
|
SUM(mrw.quantity_feedback) AS "quantityFeedback"
|
|
|
|
from mes_report_work mrw
|
|
|
|
where mrw.del_flag = '0'
|
|
|
|
and mrw.status = 'PREPARE'
|
|
|
|
and mrw.machine_code = #{equipmentCode}
|
|
|
|
and mrw.feedback_time >= DATEADD(MONTH, -1, GETDATE())
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectRepairRecordByEquipmentCode" resultType="com.op.device.domain.EquRepairWorkOrder">
|
|
|
|
select wo.work_start_time AS "workStartTime", wo.work_end_time AS "workEndTime"
|
|
|
|
from equ_repair_work_order wo
|
|
|
|
where wo.del_flag = '0'
|
|
|
|
and wo.equipment_code = #{equipmentCode}
|
|
|
|
and wo.work_status = '1'
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="getDeviceRefreshTime" resultType="java.lang.String">
|
|
|
|
select dict_value
|
|
|
|
from sys_dict_data
|
|
|
|
where dict_label = 'device_refresh_time'
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<!--设备稳定性 MTBF 年月日-->
|
|
|
|
<select id="getMTBFList" parameterType="EquOperation" resultType="com.op.device.domain.EquOperation">
|
|
|
|
select
|
|
|
|
row_number() over (order by cast(
|
|
|
|
case
|
|
|
|
when sum(eo.shutdown_times) > 0 THEN sum(cast(eo.actual_operation_time as decimal(18,2)))/sum(eo.shutdown_times)
|
|
|
|
else 0
|
|
|
|
end
|
|
|
|
as decimal(18,2)) desc) as serialNumber,
|
|
|
|
eo.equipment_code as equipmentCode,
|
|
|
|
eo.equipment_name as equipmentName,
|
|
|
|
cast(
|
|
|
|
case
|
|
|
|
when sum(eo.shutdown_times) > 0 THEN sum(cast(eo.actual_operation_time as decimal(18,2)))/sum(eo.shutdown_times)
|
|
|
|
else 0
|
|
|
|
end
|
|
|
|
as decimal(18,2))as mtbf
|
|
|
|
from equ_operation eo
|
|
|
|
<where>
|
|
|
|
<if test="timeDimension == 'dd' ">and convert(char(10),eo.create_time,120) = convert(char(10),getdate(),120)</if>
|
|
|
|
<if test="timeDimension == 'mm' ">and month(eo.create_time) = month(getdate())</if>
|
|
|
|
<if test="timeDimension == 'yyyy' ">and year(eo.create_time) = year(getdate())</if>
|
|
|
|
<if test="startTime != null and endTime != null ">and eo.create_time between #{startTime} and #{endTime} </if>
|
|
|
|
</where>
|
|
|
|
GROUP BY equipment_code,equipment_name
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<!--设备维修质量 MTTR 年月日-->
|
|
|
|
<select id="getMTTRList" parameterType="EquOperation" resultType="com.op.device.domain.EquOperation">
|
|
|
|
select
|
|
|
|
row_number() over (order by cast(
|
|
|
|
case
|
|
|
|
when sum(eo.shutdown_times) > 0 THEN sum(cast(eo.fault_time as decimal(18,2)))/sum(eo.shutdown_times)
|
|
|
|
else 0
|
|
|
|
end
|
|
|
|
as decimal(18,2)) desc) as serialNumber,
|
|
|
|
eo.equipment_code as equipmentCode,
|
|
|
|
eo.equipment_name as equipmentName,
|
|
|
|
cast(
|
|
|
|
case
|
|
|
|
when sum(eo.shutdown_times) > 0 THEN sum(cast(eo.fault_time as decimal(18,2)))/sum(eo.shutdown_times)
|
|
|
|
else 0
|
|
|
|
end
|
|
|
|
as decimal(18,2))as mttr
|
|
|
|
from equ_operation eo
|
|
|
|
<where>
|
|
|
|
<if test="timeDimension == 'dd' ">and convert(char(10),eo.create_time,120) = convert(char(10),getdate(),120)</if>
|
|
|
|
<if test="timeDimension == 'mm' ">and month(eo.create_time) = month(getdate())</if>
|
|
|
|
<if test="timeDimension == 'yyyy' ">and year(eo.create_time) = year(getdate())</if>
|
|
|
|
<if test="startTime != null and endTime != null ">and eo.create_time between #{startTime} and #{endTime} </if>
|
|
|
|
</where>
|
|
|
|
group by equipment_code,equipment_name
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<!--完好设备占比-->
|
|
|
|
<select id="getEquipmentIntactRate" parameterType="EquOperation" resultType="com.op.device.domain.EquOperation">
|
|
|
|
select
|
|
|
|
case when (sum(cast(eo.fault_time as decimal(18,2)))/sum(cast(eo.operation_time as decimal(18,2)))) > 0.04 then 1 else 0 end as faultEquipment
|
|
|
|
from equ_operation eo
|
|
|
|
<where>
|
|
|
|
<if test="timeDimension == 'dd' ">and convert(char(10),eo.create_time,120) = convert(char(10),getdate(),120)</if>
|
|
|
|
<if test="timeDimension == 'mm' ">and month(eo.create_time) = month(getdate())</if>
|
|
|
|
<if test="timeDimension == 'yyyy' ">and year(eo.create_time) = year(getdate())</if>
|
|
|
|
<if test="startTime != null and endTime != null ">and eo.create_time between #{startTime} and #{endTime} </if>
|
|
|
|
</where>
|
|
|
|
group by eo.equipment_code,eo.equipment_name
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<!--设备总数-->
|
|
|
|
<select id="getTotalEquipment" resultType="java.lang.String">
|
|
|
|
select count(1)
|
|
|
|
from base_equipment be
|
|
|
|
where be.del_flag = '0'
|
|
|
|
and be.status = '1'
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectGroups" resultType="com.op.device.domain.vo.IEquFaultVO">
|
|
|
|
select be.equipment_code AS 'code', be.equipment_name AS 'name'
|
|
|
|
from base_equipment be
|
|
|
|
where be.del_flag = '0'
|
|
|
|
and be.equipment_category = '1'
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectEquipmentFaultNumForMonth" resultType="java.util.Map">
|
|
|
|
SELECT MONTH (eo.create_time) AS 'month', COUNT (eo.create_time) AS 'count'
|
|
|
|
FROM equ_operation eo
|
|
|
|
WHERE YEAR (eo.create_time) = YEAR (GETDATE())
|
|
|
|
and eo.failure_rate != '0%'
|
|
|
|
and eo.equipment_code in (
|
|
|
|
select bae.auxiliary_equipment_code from equ_bind_auxiliary_equipment bae where bae.equipment_code = #{groupCode}
|
|
|
|
)
|
|
|
|
GROUP BY MONTH (eo.create_time)
|
|
|
|
ORDER BY MONTH (eo.create_time)
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectSumEquipmentOperation" resultType="java.util.Map">
|
|
|
|
SELECT
|
|
|
|
SUM(CAST(actual_operation_time AS FLOAT)) AS actualOperationTime,
|
|
|
|
SUM(CAST(fault_time AS FLOAT)) AS faultTime
|
|
|
|
FROM equ_operation
|
|
|
|
WHERE equipment_code = #{equipmentCode};
|
|
|
|
</select>
|
|
|
|
|
|
|
|
</mapper>
|