2016-12-29 12 views
0

나는 계획 엔티티 Request와 계획 변수를 택시로 가지고 있습니다.Optaplanner가 계획 솔루션을 통해 변수 전달

택배 할당을 위해 drools 파일에 날짜 (특정 날짜)를 전달하고 싶습니다.

Date를 Planning 솔루션에 추가하려고 시도했지만 Date를 캡처 한 곳에서 규칙이 항상 실패했습니다.

계획 솔루션

@PlanningSolution 

public class NRequest extends AbstractPersistable implements Solution<HardMediumSoftScore> { 


private Date date; 

private List<Cabs> list_cabs; 

@PlanningEntityCollectionProperty 
private List<Requests> list_req; 
..... 
..... 
} 

Drools가이

규칙 "Shift1에 오버랩 확인"

when  
    $date:Date()  
then 

    scoreHolder.addHardConstraintMatch(kcontext, 3); 
    scoreHolder.addSoftConstraintMatch(kcontext, 2); 
end 

답변

0

나는 NurseRosteringParametrization의 appoach을 건의 할 것 파일.

FooSolution 클래스에는 날짜, 계획 창 시작 날짜 또는 특정 점수 가중치 등을 포함하는 단일 FooParameterization 클래스가 있습니다. 그런 다음 단순히 누적 규칙의 FooParameterization을 찾습니다 (단 하나의 인스턴스 만 있음) 그리고 그게 다야. FooParameterization이 getProblemFacts() 또는 @ProblemFactProperty 부분인지 확인하십시오.