Использовать ограничения, динамически отправляемые телом APIJAVA

Программисты JAVA общаются здесь
Гость
Использовать ограничения, динамически отправляемые телом API

Сообщение Гость »


Я создаю класс реализации поставщика ограничений как компонент Spring и внедряю его в контроллер, а также создаю реализацию конфигурационного компонента ConstraintFactory и внедряю его также в свой контроллер. В веб-сервисе я получаю все ограничения, используя ограничениеПровидер и ограничениеФактори Я фильтрую эти ограничения с помощью тела данных из веб-службы и устанавливаю ограничение в классе реализации ограничителя, но он по-прежнему использует все ограничения из-за метода defineConstraints, который, я думаю, выполнялся один раз при выполнении проекта. как я делаю динамические ограничения с помощью Spring boot и Timefold, также мне нужен пример кода, как я это делаю, я читаю некоторые вопросы о переполнении стека:
Optaplanner: динамически добавлять/удалять ограничения
Как динамически выбирать, какие ограничения следует применять к задаче оптимизации на основе входных данных внешнего интерфейса в Timefold Spring Boot?
Мне нужен пример кода. Как создать динамические ограничения?
пример моего кода:
@Component
публичный класс PlanningConstraintsProviderimplementsConstraintProvider {

Код: Выделить всё

@Override
public Constraint[] defineConstraints(ConstraintFactory constraintFactory) {
return new Constraint[]{
noMissingSkills(constraintFactory),
employeeTaskOverlapConstraint(constraintFactory),
locationConstraint(constraintFactory)
};
}

private Constraint noMissingSkills(ConstraintFactory constraintFactory) {
return constraintFactory.forEach(Task.class)
.filter(task -> task.getMissingSkillCount() > 0)
.penalize(HardMediumSoftScore.ONE_HARD, Task::getMissingSkillCount)
.asConstraint("NO_MISSING_SKILL");
}

private Constraint locationConstraint(ConstraintFactory constraintFactory) {
return constraintFactory.forEach(Task.class)
.penalize(HardMediumSoftScore.ONE_HARD,
task -> calculateWeightLocation(task.getAssignedEmployee().getLocation(), task.getLocation()))
.asConstraint("LOCATION");
}
}
i want to calculate dynamicaly the weight for each 3 method with penalizeConfigurable and the constraint configuration class how to do that and justifyWith what is her role and for my solution i set attribute in construtor with the ConstraintConfiguration object then i do the solve with solve manager but it doesn't work respond with the correct solution how i do? i based this to this stack overflow response : How to choose dynamically which constraints should be applied on the optimization problem based on the frontend input in Timefold Spring Boot?
my goal is to give the constraints that i want to take in consideration in solving from my API


Источник: https://stackoverflow.com/questions/781 ... -apis-body

Вернуться в «JAVA»