How to Avoid Conditional Check Duplication
In my opinion, there are not other good ways that I see to avoid this kind of logic; you can attenuate the arrow code by inverting the first condition and returning early.
if (!altPhoneExist &amp;&amp; !altEmailExist) {
   return;
}

// Here we know it's either one of them


if (altPhoneExist) {
   contact.setPhoneNumber(contact.getAlternativePhoneNumber());
}

if (altEmailExist) {
   contact.setEmail(contact.getAlternativeEmail());
}

rqType.getContactInfoList().add(CraneFactory.createContactPerson(contact));