Lius
2024-09-27 435c2e83b4caefee5676fedfd7a27d7b0362693d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?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.MdcOverallEquipmentEfficiencyMapper">
 
    <!--分页列表-->
    <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency">
        SELECT
            t1.id,
            t1.equipment_id,
            t1.equipment_name,
            t1.equipment_model,
            t1.valid_date,
            t1.shift,
            t1.shift_time_count,
            t1.overtime,
            t1.actual_work_day_count,
            t1.month_actual_work_day_time_count,
            t1.breakdown_down_duration,
            t1.conversion_debug_duration,
            t1.material_shortage_duration,
            t1.planned_task_duration,
            t1.inspect_duration,
            t1.other_duration,
            t1.planned_maintenance_duration,
            t1.conference_training_duration,
            t1.other_rest_duration,
            t1.load_time,
            t1.time_actuation_rate,
            t1.process_quantity,
            t1.standard_process_duration,
            t1.performance_rate,
            t1.unqualified_quantity,
            t1.pass_rate,
            t1.overall_equipment_efficiency,
            t1.create_by,
            t1.create_time,
            t1.update_by,
            t1.update_time
        FROM
            mdc_overall_equipment_efficiency t1
            LEFT JOIN mdc_equipment t2 ON t1.equipment_id = t2.equipment_id
        <where>
            <if test="mdcOverallEquipmentEfficiency.startTime != null and mdcOverallEquipmentEfficiency.startTime != '' and mdcOverallEquipmentEfficiency.endTime != null and mdcOverallEquipmentEfficiency.endTime != ''">
                AND t1.valid_date BETWEEN #{ mdcOverallEquipmentEfficiency.startTime } AND #{ mdcOverallEquipmentEfficiency.endTime }
            </if>
            <if test="mdcOverallEquipmentEfficiency.equipmentIdList != null and mdcOverallEquipmentEfficiency.equipmentIdList.size() > 0 ">
                AND t1.equipment_id IN
                <foreach collection="mdcOverallEquipmentEfficiency.equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
                    #{ id }
                </foreach>
            </if>
            <if test="mdcOverallEquipmentEfficiency.driveTypeList != null and mdcOverallEquipmentEfficiency.driveTypeList.size() > 0 ">
                AND t2.drive_type IN
                <foreach collection="mdcOverallEquipmentEfficiency.driveTypeList" item="driveType" index="index" open="(" close=")" separator=",">
                    #{ driveType }
                </foreach>
            </if>
            <if test="mdcOverallEquipmentEfficiency.deviceLevelList != null and mdcOverallEquipmentEfficiency.deviceLevelList.size() > 0 ">
                AND t2.device_level IN
                <foreach collection="mdcOverallEquipmentEfficiency.deviceLevelList" item="deviceLevel" index="index" open="(" close=")" separator=",">
                    #{ deviceLevel }
                </foreach>
            </if>
            <if test="mdcOverallEquipmentEfficiency.deviceCategoryList != null and mdcOverallEquipmentEfficiency.deviceCategoryList.size() > 0 ">
                AND t2.device_category IN
                <foreach collection="mdcOverallEquipmentEfficiency.deviceCategoryList" item="deviceCategory" index="index" open="(" close=")" separator=",">
                    #{ deviceCategory }
                </foreach>
            </if>
            <if test="mdcOverallEquipmentEfficiency.equipmentTypeList != null and mdcOverallEquipmentEfficiency.equipmentTypeList.size() > 0 ">
                AND t2.equipment_type IN
                <foreach collection="mdcOverallEquipmentEfficiency.equipmentTypeList" item="equipmentType" index="index" open="(" close=")" separator=",">
                    #{ equipmentType }
                </foreach>
            </if>
            <if test="mdcOverallEquipmentEfficiency.deviceImportanceLevel != null and mdcOverallEquipmentEfficiency.deviceImportanceLevel != '' ">
                AND t2.device_importance_level = #{mdcOverallEquipmentEfficiency.deviceImportanceLevel}
            </if>
            AND t2.device_abnormal_status = 1
        </where>
    </select>
 
 
    <select id="findOeeByDate" resultType="org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency">
        SELECT
            t1.*
        FROM
            mdc_overall_equipment_efficiency t1
                LEFT JOIN mdc_equipment t2 ON t1.equipment_id = t2.equipment_id
                LEFT JOIN mdc_production_equipment t3 ON t2.id = t3.equipment_id
                LEFT JOIN mdc_production t4 ON t4.id = t3.production_id
        WHERE
            ( t4.id = #{productionId} OR t4.parent_id = #{productionId} )
          AND t1.valid_date = #{date}
    </select>
 
    <select id="findAvgOee" resultType="java.math.BigDecimal">
        SELECT
            SUM( t1.overall_equipment_efficiency ) / COUNT ( t1.equipment_id ) oee
        FROM
            mdc_overall_equipment_efficiency t1
                LEFT JOIN mdc_equipment t2 ON t1.equipment_id = t2.equipment_id
                LEFT JOIN mdc_production_equipment t3 ON t2.id = t3.equipment_id
                LEFT JOIN mdc_production t4 ON t4.id = t3.production_id
        WHERE
            ( t4.id = #{productionId} OR t4.parent_id = #{productionId} )
          AND t1.valid_date = #{date}
        <if test="equipmentType != null and equipmentType != ''">
            AND t2.equipment_type = #{equipmentType}
        </if>
    </select>
</mapper>