Lius
2024-09-27 435c2e83b4caefee5676fedfd7a27d7b0362693d
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml
@@ -49,9 +49,64 @@
                    #{ id }
                </foreach>
            </if>
            <if test="mdcOverallEquipmentEfficiency.driveType != null and mdcOverallEquipmentEfficiency.driveType != ''">
                AND t2.drive_type = #{ mdcOverallEquipmentEfficiency.driveType }
            <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>