<?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.EamReportRepairMapper">
|
|
<select id="pageList" resultType="org.jeecg.modules.eam.entity.EamReportRepair">
|
SELECT
|
t1.*,
|
t2.equipment_name
|
FROM
|
eam_report_repair t1
|
LEFT JOIN eam_equipment t2 ON t1.equipment_id = t2.id
|
<where>
|
<choose>
|
<when test="equipmentIds != null and equipmentIds.size() > 0 ">
|
AND t2.equipment_code IN
|
<foreach collection="equipmentIds" item="equipmentId" index="index" open="(" close=")" separator=",">
|
#{equipmentId}
|
</foreach>
|
</when>
|
<otherwise>
|
EXISTS ( SELECT 1 FROM mdc_user_production t3 WHERE t3.user_id = #{userId} AND t3.pro_id= t2.org_id )
|
</otherwise>
|
</choose>
|
<if test="eamReportRepair.equipmentId != null and eamReportRepair.equipmentId != ''">
|
AND t2.id = #{ eamReportRepair.equipmentId }
|
</if>
|
<if test="eamReportRepair.equipmentCode != null and eamReportRepair.equipmentCode != ''">
|
AND t2.equipment_code LIKE CONCAT(CONCAT('%',#{ eamReportRepair.equipmentCode }),'%')
|
</if>
|
<if test="eamReportRepair.equipmentName != null and eamReportRepair.equipmentName != ''">
|
AND t2.equipment_name = LIKE CONCAT(CONCAT('%',#{ eamReportRepair.equipmentName }),'%')
|
</if>
|
<if test="eamReportRepair.breakdownFlag != null and eamReportRepair.breakdownFlag != ''">
|
AND t1.breakdown_flag = #{ eamReportRepair.breakdownFlag }
|
</if>
|
<if test="eamReportRepair.faultType != null and eamReportRepair.faultType != ''">
|
AND t1.fault_type = #{ eamReportRepair.faultType }
|
</if>
|
<if test="eamReportRepair.reportStatus != null and eamReportRepair.reportStatus != ''">
|
AND t1.report_status = #{ eamReportRepair.reportStatus }
|
</if>
|
<if test="eamReportRepair.faultName != null and eamReportRepair.faultName != ''">
|
AND t1.fault_name = #{ eamReportRepair.faultName }
|
</if>
|
<if test="eamReportRepair.startTime != null and eamReportRepair.startTime != '' and eamReportRepair.endTime != null and eamReportRepair.endTime != ''">
|
AND t1.fault_start_time BETWEEN #{ eamReportRepair.startTime } AND #{ eamReportRepair.endTime }
|
</if>
|
</where>
|
ORDER BY t1.create_time DESC
|
</select>
|
|
<select id="equipmentRepairStatistics" resultType="org.jeecg.modules.eam.vo.EquipmentRepairStatistics">
|
select FORMAT(err.create_time, 'yyyy-MM') as monthStr,
|
COUNT(1) as reportNumber,
|
SUM(CASE WHEN err.report_status = 'COMPLETE' THEN 1 ELSE 0 END) as repairedNumber
|
from eam_report_repair err
|
inner join eam_equipment e
|
on err.equipment_id = e.id
|
where err.report_status != 'ABOLISH' and err.del_flag = 0 and e.del_flag = 0
|
<if test="productionIds != null">
|
AND e.org_id IN
|
<foreach collection="productionIds" item="productionId" index="index" open="(" close=")" separator=",">
|
#{productionId}
|
</foreach>
|
</if>
|
and err.create_time >= #{start}
|
and err.create_time < #{end}
|
group by FORMAT(err.create_time, 'yyyy-MM')
|
</select>
|
<select id="repairStatusStatistics" resultType="org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics">
|
SELECT
|
SUM(CASE WHEN t.report_status='WAIT_REPAIR' THEN 1 ELSE 0 END) AS waitRepair,
|
SUM(CASE WHEN t.report_status='UNDER_REPAIR' THEN 1 ELSE 0 END) AS underRepair,
|
SUM(CASE WHEN t.report_status='WAIT_SPARES' THEN 1 ELSE 0 END) AS waitSpares,
|
SUM(CASE WHEN t.report_status='WAIT_CONFIRM' THEN 1 ELSE 0 END) AS waitConfirm
|
from eam_report_repair t
|
where t.report_status not in ('ABOLISH', 'COMPLETE') and t.del_flag = 0
|
</select>
|
|
<select id="repairList" resultType="org.jeecg.modules.eam.vo.EquipmentRepairListVO">
|
select e.equipment_code,
|
e.equipment_name,
|
e.org_id,
|
e.installation_position,
|
err.create_by as reportOperator,
|
err.fault_start_time,
|
ero.repairer as repairOperator,
|
ero.actual_start_time as repairStartTime,
|
err.report_status
|
from eam_report_repair err
|
left join eam_equipment e
|
on err.equipment_id = e.id
|
left join eam_repair_order ero
|
on ero.report_id = err.id
|
where err.report_status not in ('ABOLISH', 'COMPLETE')
|
and err.del_flag = 0
|
order by e.org_id, err.fault_start_time
|
</select>
|
|
<select id="faultTypeStatistics" resultType="org.jeecg.modules.eam.vo.FaultTypeStatisticsVO">
|
select t.fault_type, count(1) as faultCount
|
from eam_report_repair t
|
where t.report_status != 'ABOLISH' and t.del_flag = 0
|
and t.create_time >= #{start}
|
and t.create_time < #{end}
|
group by t.fault_type
|
</select>
|
</mapper>
|