From e65c0249b66ffd1a4f96752a0f4a86f4f2e01314 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期三, 05 三月 2025 14:00:10 +0800
Subject: [PATCH] 利用率分析页面添加筛选条件

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml |  146 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 144 insertions(+), 2 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml
index f930d30..5ba9404 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml
@@ -8,7 +8,7 @@
             t2.equipment_id equipmentId,
             t2.equipment_name equipmentName,
             t2.equipment_type equipmentType,
-            t1.the_date,
+            t1.the_date theDate,
             t1.process_long processLong,
             t1.process_long / 86400 utilizationRate,
             CASE
@@ -25,12 +25,28 @@
         WHERE
             t1.the_date &lt;= #{ vo.endTime }
             AND t1.the_date &gt;= #{ vo.startTime }
+        <if test="vo.equipmentType != null and vo.equipmentType != '' ">
+            AND t2.equipment_type = #{ vo.equipmentType }
+        </if>
+        <if test="vo.driveType != null and vo.driveType != '' ">
+            AND t2.drive_type = #{ vo.driveType }
+        </if>
+        <if test="vo.deviceLevel != null and vo.deviceLevel != '' ">
+            AND t2.device_level = #{vo.deviceLevel}
+        </if>
+        <if test="vo.deviceCategory != null and vo.deviceCategory != '' ">
+            AND t2.device_category = #{vo.deviceCategory}
+        </if>
+        <if test="vo.deviceImportanceLevel != null and vo.deviceImportanceLevel != '' ">
+            AND t2.device_importance_level = #{vo.deviceImportanceLevel}
+        </if>
         <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 ">
             AND t2.equipment_id IN
             <foreach collection="vo.equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
                 #{ id }
             </foreach>
         </if>
+        AND t2.device_abnormal_status = 1
         ORDER BY t1.the_date
     </select>
 
@@ -40,7 +56,7 @@
             t2.equipment_id equipmentId,
             t2.equipment_name equipmentName,
             t2.equipment_type equipmentType,
-            t1.the_date,
+            t1.the_date theDate,
             t1.process_long processLong,
             CASE
                 WHEN t1.open_long > 0 THEN
@@ -60,12 +76,138 @@
         WHERE
             t1.the_date &lt;= #{ vo.endTime }
             AND t1.the_date &gt;= #{ vo.startTime }
+        <if test="vo.equipmentType != null and vo.equipmentType != '' ">
+            AND t2.equipment_type = #{ vo.equipmentType }
+        </if>
+        <if test="vo.driveType != null and vo.driveType != '' ">
+            AND t2.drive_type = #{ vo.driveType }
+        </if>
+        <if test="vo.deviceLevel != null and vo.deviceLevel != '' ">
+            AND t2.device_level = #{vo.deviceLevel}
+        </if>
+        <if test="vo.deviceCategory != null and vo.deviceCategory != '' ">
+            AND t2.device_category = #{vo.deviceCategory}
+        </if>
+        <if test="vo.deviceImportanceLevel != null and vo.deviceImportanceLevel != '' ">
+            AND t2.device_importance_level = #{vo.deviceImportanceLevel}
+        </if>
         <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 ">
             AND t2.equipment_id IN
             <foreach collection="vo.equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
                 #{ id }
             </foreach>
         </if>
+        AND t2.device_abnormal_status = 1
         ORDER BY t1.the_date
     </select>
+
+    <!--寰楀埌鎵�鏈夌彮娆℃暟鎹箣鍜�-->
+    <select id="efficiencyShiftSumList" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentStatisticalShiftInfo">
+        SELECT
+            t2.equipment_id equipmentId,
+            t2.equipment_name equipmentName,
+            t2.equipment_type equipmentType,
+            t1.the_date theDate,
+            t1.shift_id shiftId,
+            t1.shift_sub_id shiftSubId,
+            SUM ( t1.process_long ) processLong,
+            SUM ( t1.open_long ) openLong,
+            SUM ( t1.wait_long ) waitLong,
+            SUM ( t1.close_long ) closeLong,
+            sum ( t1.total_long ) totalLong
+        FROM
+            mdc_equipment t2
+            LEFT JOIN mdc_equipment_statistical_shift_info t1 ON t1.equipment_id = t2.equipment_id
+        <where>
+            AND t1.the_date &lt;= #{ vo.endTime }
+            AND t1.the_date &gt;= #{ vo.startTime }
+            <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 ">
+                AND t2.equipment_id IN
+                <foreach collection="vo.equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                    #{ id }
+                </foreach>
+            </if>
+            <if test="vo.shiftId != null and vo.shiftId != ''">
+                AND t1.shift_id = #{ vo.shiftId }
+            </if>
+            <if test="vo.shiftSubId != null and vo.shiftSubId != ''">
+                AND t1.shift_sub_id = #{ vo.shiftSubId }
+            </if>
+            <if test="vo.equipmentType != null and vo.equipmentType != '' ">
+                AND t2.equipment_type = #{ vo.equipmentType }
+            </if>
+            <if test="vo.driveType != null and vo.driveType != '' ">
+                AND t2.drive_type = #{ vo.driveType }
+            </if>
+            <if test="vo.deviceLevel != null and vo.deviceLevel != '' ">
+                AND t2.device_level = #{vo.deviceLevel}
+            </if>
+            <if test="vo.deviceCategory != null and vo.deviceCategory != '' ">
+                AND t2.device_category = #{vo.deviceCategory}
+            </if>
+            <if test="vo.deviceImportanceLevel != null and vo.deviceImportanceLevel != '' ">
+                AND t2.device_importance_level = #{vo.deviceImportanceLevel}
+            </if>
+            AND t2.device_abnormal_status = 1
+        </where>
+        GROUP BY
+            t2.equipment_id,
+            t2.equipment_name,
+            t2.equipment_type,
+            t1.the_date,
+            t1.shift_id,
+            t1.shift_sub_id
+        ORDER BY
+            t1.the_date
+    </select>
+
+    <!--鏌ヨ鍘熷鏁版嵁-->
+    <select id="comparativeAnalysis" resultType="org.jeecg.modules.mdc.dto.MdcComAnaDto">
+        SELECT
+            mesi.equipment_id equipmentId,
+            SUM ( mesi.open_long ) openLong,
+            SUM ( mesi.close_long ) closeLong,
+            SUM ( mesi.wait_long ) waitLong,
+            SUM ( mesi.process_long ) processLong
+        FROM
+            mdc_equipment_statistical_info mesi
+            LEFT JOIN mdc_equipment me ON mesi.equipment_id = me.equipment_id
+        <where>
+            <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 ">
+                AND mesi.equipment_id IN
+                <foreach collection="vo.equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                    #{ id }
+                </foreach>
+            </if>
+            <if test="vo.driveType != null and vo.driveType != null">
+                AND me.drive_type = #{ vo.driveType }
+            </if>
+            <if test="vo.equipmentType != null and vo.equipmentType != '' ">
+                AND me.equipment_type = #{ vo.equipmentType }
+            </if>
+            <if test="vo.deviceLevel != null and vo.deviceLevel != '' ">
+                AND me.device_level = #{vo.deviceLevel}
+            </if>
+            <if test="vo.deviceCategory != null and vo.deviceCategory != '' ">
+                AND me.device_category = #{vo.deviceCategory}
+            </if>
+            <if test="vo.deviceImportanceLevel != null and vo.deviceImportanceLevel != '' ">
+                AND me.device_importance_level = #{vo.deviceImportanceLevel}
+            </if>
+            AND mesi.the_date BETWEEN #{ vo.startTime } AND #{ vo.endTime }
+        </where>
+        GROUP BY
+            mesi.equipment_id
+    </select>
+
+
+    <select id="getEfficiencyRate" resultType="java.math.BigDecimal">
+        SELECT
+            process_long
+        FROM
+            mdc_equipment_statistical_info
+        WHERE
+            equipment_id = #{ equipmentId } AND the_date &gt;= #{ date }
+        ORDER BY the_date ASC
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3