case when (analysis.res_value is null or analysis.res_value = '') then 0 else analysis.res_value end as value,
result.value_unit,
result.unit,
result.time,
analysis.alg_type as recognition_type,
result.file_type,
result.file_path,
result.rectangle,
result.task_patrolled_id,
result.valid,
result.patrol_status,
result.check_person,
result.check_time,
result.check_result,
result.material_id,
result.data_type,
result.threshold,
result.task_id,
result.main_id,
result.create_time,
point.device_id productionId,
point.purpose purpose
from basedata_patrolpoint point
left join result_analysis analysis on point.patrol_point_id = analysis.objectId
left join patrol_result result on result.line_id = analysis.business_id and analysis.objectId = result.device_id and analysis.task_patrol_id = result.task_patrolled_id
<where>
analysis.filter = '0' and analysis.res_code = '2000' and analysis.result_type = '1'
<iftest="deviceIds != null "> and find_in_set(point.device_id, #{deviceIds})</if>
<iftest="recognitionTypes != null and recognitionTypes.size() > 0">