<?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'
</select>
<select id= "selectEquipmentList" resultType= "com.op.device.domain.vo.IEquipmentVO" >
select be.equipment_code AS 'equipmentCode', be.equipment_name AS 'equipmentName',be.equipment_status AS 'equipmentStatus'
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= "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(eo.actual_operation_time as decimal(6, 2))/2 desc) as serialNumber,
eo.equipment_code as equipmentCode,
cast(cast(eo.actual_operation_time as decimal(18,2))/(SELECT count(*) from equ_repair_work_order erwo where erwo.equipment_code = eo.equipment_code and erwo.work_status = '1' and erwo.work_down_machine = '1') as decimal(18,2)) AS mtbf
from equ_operation eo
where day(eo.create_time) = day(getdate())
and cast(eo.fault_time as decimal(6, 0)) > 0
</select>
<!-- 完好设备占比 -->
<select id= "getEquipmentIntactRate" parameterType= "EquOperation" resultType= "com.op.device.domain.EquOperation" >
SELECT
SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END) AS operationEquipment,
SUM(CASE WHEN equipment_status = '0' or equipment_status = '2' THEN 1 Else 0 END) AS faultEquipment,
COUNT(*) AS totalEquipment,
CAST(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100.00/COUNT(*) as decimal(18,2)) AS intactRate
FROM base_equipment
WHERE del_flag = '0' AND 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>
</mapper>