From cf89583e4dd54632a0f11c06b859315c03958820 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期三, 17 一月 2024 17:36:41 +0800
Subject: [PATCH] 设备运行状态及利用率预警任务

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml |  127 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 126 insertions(+), 1 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 66aa54f..5320b97 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,13 +25,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.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>
+        ORDER BY t1.the_date
+    </select>
+
+    <!--鏌ヨ寮�鍔ㄧ巼鏁版嵁-->
+    <select id="efficiencyPOList" resultType="org.jeecg.modules.mdc.dto.MdcEfficiencyDto">
+        SELECT
+            t2.equipment_id equipmentId,
+            t2.equipment_name equipmentName,
+            t2.equipment_type equipmentType,
+            t1.the_date theDate,
+            t1.process_long processLong,
+            CASE
+                WHEN t1.open_long > 0 THEN
+                t1.process_long / t1.open_long ELSE 0
+            END utilizationRate,
+            CASE
+                WHEN t1.open_long > 0 THEN
+                t1.process_long / t1.open_long ELSE 0
+            END startRate,
+            t1.open_long / 86400 openRate,
+            t1.open_long openLong,
+            t1.wait_long waitLong,
+            t1.close_long closeLong
+        FROM
+            mdc_equipment t2
+            LEFT JOIN mdc_equipment_statistical_info t1 ON t1.equipment_id = t2.equipment_id
+        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.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>
+        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>
+        </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>
+            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