Я модифицирую пример Optaplanner с маршрутизацией транспортных средств. Транспортные средства заменяются людьми, которым приходится передвигаться по городу, но они могут делать это с использованием различных видов транспорта. Итак, у меня есть атрибут привязки (Автомобиль в примере, Сотрудник в моем модифицированном коде) под названием modeOfTransportation
.
При вычислении времени прибытия с использованием прослушивателя пользовательской теневой переменной из примера, я, конечно, хочу принять во внимание способ транспортировки. Но когда Optaplanner начинает инициализировать мои объекты планирования (потребителей), кажется, что они сначала не связаны с привязкой. Так что я не могу найти свой вид транспорта, и все ломается.
Есть идеи, как действовать?
Вот чего я хочу добиться. shadowVisit
- это моя планирующая организация, shadowVisit.getEmployee()
должна дать мне привязку. Выполнение shadowVisit.getEmployee()==null
проверки, похоже, подвешивает весь процесс решения.
arrivalTime =
previousStopDepartureTime.plus(
shadowVisit.getLocation().getDistanceFrom(
shadowVisit.getPreviousStop().getLocation(), shadowVisit.getEmployee().getModeOfTransportation())