How to change user role after login?

With the wp_login hook the logged in user might not be set as the current user yet,
so instead of using wp_get_current_user(), use the user object that’s passed to the hook callback. Then you can be certain that you’re setting the role on the correct user, rather than relying on the global state, which is unreliable. It is always preferable to use arguments passed to the callback over global state.

Also, using user_can() to check the role is discouraged. Internally user_can() uses $user->has_cap(), which has this note in its documentation:

While checking against a role in place of a capability is supported in
part, this practice is discouraged as it may produce unreliable
results.

Instead check $user->roles for the user’s roles. I’d also consider checking if the user is a customer, rather than not an administrator.

With both of those points considered, your code would look like this:

add_action(
    'wp_login',
    function( $user_login, $user ) { // We want $user
        if ( in_array( 'customer', $user->roles ) ) {
            $user->set_role( 'wholesale-customer' );
        }
    },
    10,
    2 // Necessary for us to get $user
);

Another thing to consider is that if you’re using the WooCommerce Wholesale Prices plugin, the user role is actually wholesale_customer, with an underscore, not a dash.