Try the following. I would put it as the last rule in your set (i.e. Bottom), so as not to conflict with any other rules.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule ^(.*)$ /$1.html [R=301,L]
This should ensure that the request is not a directory, and that this does not end with any extension. If these conditions are met, he will add a query using .html.
, , .;)