Lius
2024-09-27 435c2e83b4caefee5676fedfd7a27d7b0362693d
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml
@@ -10,7 +10,7 @@
            t1.equipment_name,
            t1.equipment_model,
            t1.valid_date,
            t2.shift_sub_name shiftSubId,
            t1.shift,
            t1.shift_time_count,
            t1.overtime,
            t1.actual_work_day_count,
@@ -37,14 +37,11 @@
            t1.update_by,
            t1.update_time
        FROM
            mdc_overall_equipment_efficiency t1 LEFT JOIN mdc_shift_sub t2 ON t1.shift_sub_id = t2.id
            LEFT JOIN mdc_shift t3 ON t2.shift_id = t3.id
            mdc_overall_equipment_efficiency t1
            LEFT JOIN mdc_equipment t2 ON t1.equipment_id = t2.equipment_id
        <where>
            <if test="mdcOverallEquipmentEfficiency.shiftId != null and mdcOverallEquipmentEfficiency.shiftId != ''">
                AND t3.id = #{ mdcOverallEquipmentEfficiency.shiftId }
            </if>
            <if test="mdcOverallEquipmentEfficiency.shiftSubId != null and mdcOverallEquipmentEfficiency.shiftSubId != ''">
                AND t1.shift_sub_id = #{ mdcOverallEquipmentEfficiency.shiftSubId }
            <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
@@ -52,6 +49,64 @@
                    #{ 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>