SELECT distinct mat.deleted, mat.id, mat.creator, mat.updater, mat.create_time, mat.update_time, mat.tenant_id, code AS mat_code, name AS mat_name, a.label AS mat_type, spec AS mat_spec,
b.label AS mat_unit, brand AS mat_brand, '' AS wh_id, '' AS wh_name, '' AS rg_id, '' AS rg_name, '' AS pn_id, '' AS pn_name, '' lot_no, short_name, 0 AS storage_ok_qty
FROM base_material AS mat
left join system_dict_data as a on a.value=mat.material_type and a.dict_type = 'biz_material_type'
left join system_dict_data as b on b.value=mat.unit and b.dict_type = 'biz_material_unit'
WHERE virtual_part = 'N' AND mat.status = 1 AND mat.tenant_id = 2
select * from v_storage_material_now where wh_id=#{whId}
union all
select mat.deleted,mat.id,mat.creator,mat.updater,mat.create_time,mat.update_time,mat.tenant_id,code as mat_code,name as mat_name,
a.label as mat_type,spec as mat_spec,
b.label as mat_unit,
brand as mat_brand,'' as wh_id, '' as wh_name,'' as rg_id,'' as rg_name,'' as pn_id,'' as pn_name,''
lot_no,short_name,0 as storage_ok_qty
from base_material as mat
left join system_dict_data as a on a.value=mat.material_type and a.dict_type='biz_material_type'
left join system_dict_data as b on b.value=mat.material_type and b.dict_type='biz_material_unit'
where virtual_part='N' and mat.status=1 and not exists(select id from v_storage_material_now where wh_id=#{whId} and id=mat.id)
) t
<where>
<iftest="whId != null and whId != ''">
AND (1=1 OR wh_id = #{whId})
</if>
<iftest="matCode != null and matCode != ''">
AND (mat_code like concat('%', #{matCode}, '%') OR mat_name like concat('%', #{matCode}, '%'))