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.

206 lines
9.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.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>
1 year ago
<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>
1 year ago
<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>
1 year ago
</mapper>