lyh
2025-04-03 34767d1efb3589591db535110e72310b21f863b5
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
@@ -4,27 +4,31 @@
    <select id="queryListBykeywordAndCategory" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard">
        SELECT
            m.*
            e.equipment_code+ '[' + e.equipment_name+ ']' AS 'equipmentText',
            m.id,
            m.standard_code,
            m.standard_name,
            m.maintenance_period,
            m.equipment_id
        FROM
            eam_maintenance_standard m
            eam_maintenance_standard m -- 先过滤设备表,减少 JOIN 量
                INNER JOIN (
                SELECT
                    id,
                    eam_equipment.equipment_code as equipment_code,
                    eam_equipment.equipment_name as equipment_name,
                    org_id
                FROM
                    eam_equipment
                WHERE
                    del_flag = 0
                  AND ( equipment_code LIKE CONCAT ( #{ keyword }, '%' ) -- 右模糊利用索引
                    OR equipment_name LIKE CONCAT ( #{ keyword }, '%' ) )
            ) e ON m.equipment_id = e.id
        WHERE
            m.del_flag = 0
          AND m.standard_status= 'NORMAL'
          AND m.maintenance_category = #{maintenanceCategory}
          AND EXISTS (
            SELECT 1
            FROM
                eam_equipment e
                    INNER JOIN mdc_user_production t
                               ON t.user_id = #{userId}
                                   AND t.pro_id = e.org_id  -- 关联条件移到JOIN中
            WHERE
                e.id = m.equipment_id
              AND e.del_flag = 0
              AND (
                e.equipment_code LIKE CONCAT('%', #{keyword}, '%')
                    OR e.equipment_name LIKE CONCAT('%', #{keyword}, '%')
                )
        )
          AND EXISTS ( SELECT 1 FROM mdc_user_production t WHERE t.user_id = #{ userId } AND t.pro_id = e.org_id );
    </select>
</mapper>