From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 25 六月 2025 11:51:38 +0800
Subject: [PATCH] Merge branch 'mdc_hyjs_master'

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml |  281 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 281 insertions(+), 0 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
new file mode 100644
index 0000000..d7c9488
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml
@@ -0,0 +1,281 @@
+<?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.mdc.mapper.MdcEfficiencyReportMapper">
+
+    <!--鏌ヨ鍒╃敤鐜囨暟鎹�-->
+    <select id="efficiencyList" 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,
+            t1.process_long / 86400 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,
+            COALESCE(t3.fault_long, 0) faultLong,
+            COALESCE(t3.fault_rate, 0) faultRate,
+            COALESCE(t3.remove_fault_run_long, 0) removeFaultRunLong
+        FROM
+            mdc_equipment t2
+            LEFT JOIN mdc_equipment_statistical_info t1 ON t1.equipment_id = t2.equipment_id
+            LEFT JOIN mdc_equipment_fault_info t3 ON t2.equipment_id = t3.equipment_id AND t1.the_date = t3.the_date
+        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.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.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.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>
+            <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>
+        </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>
+
+    <select id="equipmentEfficiencyAnalyze" resultType="org.jeecg.modules.mdc.dto.EquipmentEfficiencyAnalyzeDto">
+        SELECT
+            t3.equipment_name,
+            t1.utilization_rate AS utilizationRate,
+            t2.utilization_rate AS shiftUtilizationRate,
+            t1.remove_fault_rate AS amendUtilizationRate
+        FROM
+            mdc_equipment_statistical_info_month t1
+                LEFT JOIN mdc_equipment_statistical_shift_info_month t2 ON t1.the_month = t2.the_month AND t2.shift_type = 1
+                AND t1.equipment_id = t2.equipment_id
+                LEFT JOIN mdc_equipment t3 ON t3.equipment_id = t1.equipment_id
+        WHERE
+            t1.equipment_id IN
+            <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+            AND t1.the_month = #{month}
+        ORDER BY
+            t1.utilization_rate DESC
+    </select>
+
+    <select id="teamEquipmentEfficiencyAnalyze" resultType="org.jeecg.modules.mdc.dto.TeamEquEffDto">
+        SELECT
+            t3.team_code AS teamCode,
+            t1.utilization_rate AS utilizationRate,
+            t2.utilization_rate AS shiftUtilizationRate,
+            t1.remove_fault_rate AS amendUtilizationRate
+        FROM
+            mdc_equipment_statistical_info_month t1
+                LEFT JOIN mdc_equipment_statistical_shift_info_month t2 ON t1.the_month = t2.the_month AND t2.shift_type = 1
+                AND t1.equipment_id = t2.equipment_id
+                LEFT JOIN mdc_equipment t3 ON t3.equipment_id = t1.equipment_id
+        WHERE
+            t1.equipment_id IN
+            <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+            AND t1.the_month = #{month}
+    </select>
+
+    <select id="comprehensiveRateAnalyze" resultType="org.jeecg.modules.mdc.dto.ComRateDto">
+        SELECT
+            t1.the_month AS theMonth,
+            AVG ( t1.utilization_rate ) AS utilizationRate,
+            AVG ( t2.utilization_rate ) AS shiftUtilizationRate,
+            AVG ( t1.remove_fault_rate ) AS amendUtilizationRate,
+            SUM ( t1.process_long ) AS processLong
+        FROM
+            mdc_equipment_statistical_info_month t1
+                LEFT JOIN mdc_equipment_statistical_shift_info_month t2 ON t1.the_month = t2.the_month
+                AND t1.equipment_id = t2.equipment_id
+                AND t2.shift_type = 1
+                LEFT JOIN mdc_equipment t3 ON t3.equipment_id = t1.equipment_id
+        WHERE
+            t1.equipment_id IN
+            <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+            AND t1.the_month BETWEEN #{start} AND #{end}
+        GROUP BY
+            t1.the_month
+        ORDER BY
+            t1.the_month
+    </select>
+
+    <select id="comprehensiveShiftRateAnalyze" resultType="org.jeecg.modules.mdc.dto.ComShiftRateDto">
+        SELECT
+            t1.the_month AS theMonth,
+            t1.shift_sub AS shiftSub,
+            t2.shift_sub_name AS shiftSubName,
+            AVG ( t1.utilization_rate ) AS utilizationRate
+        FROM
+            mdc_equipment_statistical_shift_info_month t1
+                LEFT JOIN mdc_shift_sub t2 ON t1.shift_sub = t2.id
+        WHERE
+            t2.shift_id = #{shiftId}
+            AND t1.equipment_id IN
+            <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+            AND t1.the_month BETWEEN #{start} AND #{end}
+            AND t1.shift_type = 2
+        GROUP BY
+            t1.the_month,
+            t1.shift_sub,
+            t2.shift_sub_name
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3