From 454545bd4207d99d153e263c68f821f856f0e884 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期日, 29 九月 2024 09:47:20 +0800
Subject: [PATCH] 430最终问题项修改

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/FaultIntervalTimeMapper.xml |   87 ++++++++++++++++++++++++++++---------------
 1 files changed, 57 insertions(+), 30 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 0a22cc2..b85ef4e 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
@@ -22,8 +22,12 @@
             and t1.equipment_importance_id =#{params.abc}
         </if>
         <if test="params.specificEquipment != null and params.specificEquipment != ''">
-            and t1.specific_equipment in ('0','1','2')
+            and t1.specific_equipment =#{params.specificEquipment}
         </if>
+        <if test="params.equipmentNum != null and params.equipmentNum != ''">
+            and t1.num =#{params.equipmentNum}
+        </if>
+        ORDER BY t2.name ASC
     </select>
 
     <select id="getWorkCenterList"  parameterType="Map" resultType="Map">
@@ -35,14 +39,17 @@
             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.abc != null and params.abc != ''">
-            and t1.equipment_importance_id =#{params.abc}
-        </if>
         <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'-->
@@ -55,15 +62,17 @@
             SUM(tt.faultTime) AS faultTime,
             SUM(tt.repairTime) AS repairTime,
             SUM(tt.noFaultTime) AS noFaultTime,
-            SUM(tt.repairTime) /COUNT(tt.equipmentId) AS averageRepairTime,
-            SUM(tt.noFaultTime) /COUNT(tt.equipmentId) AS averageFaultIntervalTime
+            sum(tt.totalDay) as totalDay,
+            sum(tt.repairDay) as repairDay
         FROM(
                 SELECT
                     t1.equipment_id AS equipmentId,
                     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( 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
@@ -75,39 +84,57 @@
         GROUP BY
             tt.equipmentId,tt.totalAvailableTime
     </select>
-
+<!--    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.workCenterId) AS faultNumber,
-            tt.totalAvailableTime * COUNT(tt.workCenterId) as totalAvailableTime,
-            SUM(tt.faultTime) * COUNT(tt.workCenterId) AS faultTime,
-            SUM(tt.repairTime) * COUNT(tt.workCenterId) AS repairTime,
-            SUM(tt.noFaultTime) * COUNT(tt.workCenterId) AS noFaultTime,
-            SUM(tt.repairTime) /COUNT(tt.workCenterId) * COUNT(tt.workCenterId) AS averageRepairTime,
-            SUM(tt.noFaultTime) /COUNT(tt.workCenterId) * COUNT(tt.workCenterId) AS averageFaultIntervalTime
+            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
-                    t3.work_center_id as workCenterId,
-                    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
-                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 ) &gt;= #{params.startTime}
-                  AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &lt;= #{params.endTime}
-                  AND t3.work_center_id  = #{params.workCenterId}
+                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 ) &gt;= #{params.startTime}
+                      AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.fault_time, 120 ), 1, 10 ) &lt;= #{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.workCenterId,tt.totalAvailableTime
+            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

--
Gitblit v1.9.3