From 4b27dd367eae2f24958c6bb857fb6959dcdb7a4a Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期五, 13 六月 2025 18:04:46 +0800 Subject: [PATCH] 报表提交 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml | 148 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 148 insertions(+), 0 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml index 6307560..4e06a76 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml @@ -2,4 +2,152 @@ <!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.FaultIntervalTimeMapper"> + <select id="getEquipmentList" parameterType="Map" resultType="Map"> + SELECT + t1.id, + t1.num, + t1.name, + t1.model, + t1.specification, + t2.name as departName + FROM + mom_eam_equipment t1 + LEFT JOIN mom_base_area t2 ON t1.work_center_id = t2.id + WHERE + t1.del_flag = '0' + <if test="params.useDepartName != null and params.useDepartName != ''"> + and t2.name =#{params.useDepartName} + </if> + <if test="params.useDepartName == '' "> + and t1.work_center_id is not null + </if> + <if test="params.abc != null and params.abc != ''"> + and t1.equipment_importance_id =#{params.abc} + </if> + <if test="params.specificEquipment != null and params.specificEquipment != ''"> + and t1.specific_equipment =#{params.specificEquipment} + </if> + <if test="params.equipmentNum != null and params.equipmentNum != ''"> + and t1.num =#{params.equipmentNum} + </if> + +<!-- <if test="params.workCenterIds != null">--> +<!-- and t1.work_center_id in--> +<!-- <foreach collection="params.workCenterIds" open="(" separator="," close=")" item="workCenterId">--> +<!-- #{workCenterId}--> +<!-- </foreach>--> +<!-- </if>--> + ORDER BY t2.name DESC + </select> + + <select id="getWorkCenterList" parameterType="Map" resultType="Map"> + SELECT COUNT + ( t1.work_center_id ), + t1.work_center_id as workCenterId, + t2.name as workCenterName + FROM + mom_eam_equipment t1 + LEFT JOIN mom_base_area t2 ON t1.work_center_id = t2.id + WHERE t2.type = '1' and t1.work_center_id IS NOT NULL + <if test="params.useDepartName != null and params.useDepartName != ''"> + and t2.name =#{params.useDepartName} + </if> + GROUP BY t1.work_center_id,t2.name + </select> +<!-- <if test="params.abc != null and params.abc != ''">--> +<!-- and t1.equipment_importance_id =#{params.abc}--> +<!-- </if>--> +<!-- <if test="params.specificEquipment != null and params.specificEquipment != ''">--> +<!-- and t1.specific_equipment =#{params.specificEquipment}--> +<!-- </if>--> + + <!-- <if test="params.useDepartName == ''">--> + <!-- and t2.depart_name = '-1'--> + <!-- </if>--> + + <select id="getEquipmentMTBF" parameterType="Map" resultType="Map"> + SELECT + tt.equipmentId, + COUNT(tt.equipmentId) AS faultNumber, + tt.totalAvailableTime, + STR(SUM(tt.faultTime), 10, 2) AS faultTime, + STR(SUM(tt.repairTime), 10, 2) AS repairTime, + STR(tt.totalAvailableTime - SUM(tt.faultTime), 10, 2) AS noFaultTime, + STR(case when COUNT(tt.equipmentId) = 0 THEN '0' WHEN COUNT(tt.equipmentId) > 0 THEN (tt.totalAvailableTime - SUM(tt.faultTime))/COUNT(tt.equipmentId) end, 10, 2) as mtbf, + STR(case when COUNT(tt.equipmentId) = 0 THEN '0' WHEN COUNT(tt.equipmentId) > 0 THEN SUM(tt.repairTime)/COUNT(tt.equipmentId) end, 10, 2) as mttr, + STR((tt.totalAvailableTime - SUM(tt.faultTime))/tt.totalAvailableTime*100, 10, 2) as serviceabilityRate, + STR(SUM(tt.faultTime)/tt.totalAvailableTime*100, 10, 2) as startRate + FROM( + SELECT + t1.equipment_id AS equipmentId, + datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime, + CAST( DATEDIFF_BIG ( MILLISECOND, isnull( t1.fault_time, GETDATE( ) ), isnull( t2.actual_end_time, (SELECT #{params.endTime}+' '+FORMAT(GETDATE(), 'HH:mm:ss') ) ) ) AS FLOAT ) / 3600000 AS faultTime, + case when t2.create_time is null THEN '0' WHEN t2.create_time is not null THEN CAST( DATEDIFF_BIG ( MILLISECOND, t2.create_time, isnull( t2.actual_end_time, (SELECT #{params.endTime}+' '+FORMAT(GETDATE(), 'HH:mm:ss') ) ) ) AS FLOAT ) / 3600000 end AS repairTime + FROM + mom_eam_equipment_report_repair t1 + LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id + WHERE 1=1 + AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) >= #{params.startTime} + AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) <= #{params.endTime} + AND t1.equipment_id = #{params.equipmentId} + ) AS tt + GROUP BY + tt.equipmentId,tt.totalAvailableTime + </select> +<!-- datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS faultTime,--> +<!-- SUM(tt.repairTime) /COUNT(tt.equipmentId) AS averageRepairTime,--> +<!-- SUM(tt.noFaultTime) /(COUNT(tt.equipmentId) + 1) AS averageFaultIntervalTime,--> +<!-- (sum(tt.totalDay) - sum(tt.repairDay))/sum(tt.totalDay) as serviceabilityRate,--> +<!-- (tt.totalAvailableTime - SUM(tt.repairTime))/tt.totalAvailableTime as startRate--> + <select id="getMTBFTotalAvailableTime" parameterType="Map" resultType="Map"> + select datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime + </select> + + <select id="getCenterEquipmentMTBF" parameterType="Map" resultType="Map"> + SELECT + COUNT(tt.equipmentNum) AS equipmentNumer, + sum(tt.equipmentNum) as faultNumber, + tt.totalAvailableTime * COUNT(tt.equipmentNum) as totalAvailableTime, + SUM(tt.faultTime) AS faultTime, + SUM(tt.repairTime) AS repairTime, + tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.faultTime) AS noFaultTime, + tt.totalDay, + tt.repairDay + FROM( + select COUNT(ss.equipmentNum) as equipmentNum,ss.totalAvailableTime,ss.faultTime,ss.repairTime,ss.noFaultTime,ss.totalDay,ss.repairDay from ( + SELECT + t3.num as equipmentNum, + datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime, + datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS faultTime, + datediff( HOUR, isnull( t2.actual_start_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairTime, + (datediff( HOUR, #{params.startTime}, #{params.endTime}) + 24) - datediff( HOUR, isnull( t1.fault_time, GETDATE( ) ), isnull( t1.accept_time, GETDATE( ) ) ) AS noFaultTime, + datediff( DAY, #{params.startTime}, #{params.endTime} )+1 AS totalDay, + datediff( DAY, isnull( t1.fault_time, GETDATE( ) ), isnull( t2.actual_end_time, GETDATE( ) ) ) AS repairDay + FROM + mom_eam_equipment_report_repair t1 + LEFT JOIN mom_eam_repair_order t2 ON t2.report_repair_id = t1.id + left join mom_eam_equipment t3 on t1.equipment_id = t3.id + WHERE 1=1 + AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) >= #{params.startTime} + AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) <= #{params.endTime} + AND t3.work_center_id = #{params.workCenterId} + <if test="params.abc != null and params.abc != ''"> + and t3.equipment_importance_id =#{params.abc} + </if> + <if test="params.specificEquipment != null and params.specificEquipment != ''"> + and t3.specific_equipment =#{params.specificEquipment} + </if> + ) ss group by ss.totalAvailableTime,ss.faultTime,ss.repairTime,ss.noFaultTime,ss.totalDay,ss.repairDay + ) AS tt + GROUP BY + tt.equipmentNum,tt.totalAvailableTime,tt.totalDay,tt.repairDay + </select> +<!-- SUM(tt.repairTime) /sum(tt.equipmentNum) AS averageRepairTime,--> +<!-- (tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.faultTime))/sum(tt.equipmentNum) AS averageFaultIntervalTime,--> +<!-- (tt.totalDay * COUNT(tt.equipmentNum) -tt.repairDay)/ (tt.totalDay * COUNT(tt.equipmentNum)) as serviceabilityRate,--> +<!-- (tt.totalAvailableTime * COUNT(tt.equipmentNum) - SUM(tt.repairTime))/(tt.totalAvailableTime * COUNT(tt.equipmentNum)) as startRate--> + + <select id="getCenterMTBFTotalAvailableTime" parameterType="Map" resultType="Map"> + select datediff( HOUR, #{params.startTime}, #{params.endTime} ) + 24 AS totalAvailableTime + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3