I would also suggest to make it less messy:
Make few generic db connection/retrieval functions
if data retrieval is not dynamic , create separate script to populate a data source like an file: json, csv or excel to further use directly in simpler way in tests.
To select the element with text as Constants.INBOUNDORDER_CUSTOMER as the element is a Angular element you need to induce WebDriverWait for the elementToBeClickable() and you can use the following Locator Strategies:
List<WebElement> options = select.findElements(By.xpath("//div[@class= 'mat-autocomplete-panel ng-star-inserted mat-autocomplete-...
To gather the items for your list it looks like you don't need to be specific. Try something like this:
List<WebElement> options = driver.findElements(By.xpath(//*[contains(@id,"mat-option-")]));
That will populate your options List with all the elements that have an ID that contains mat-option-
If you want to go with the class name, and have the space in it, you can simply leave the part of the class name before or after the space and delete the rest, e.g.: findElement(By.className("js-general-error general-error cbt d-none"));
will give you error, instead you just go with the part of class name not containing space findElement(By....