2016-12-29 7 views
0

私は計画エンティティRequestと計画変数をタクシーとして持っています。Optaplannerがプランニングソリューションで変数を渡す

キャブ配分のために、日(特定の日)をdroolsファイルに渡したいとします。

私はPlanningソリューションにDateを追加しようとしましたが、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クラスがあります。次に、droolsルールのFooParameterizationを単純に照合します(インスタンスは1つだけです)以上です。 FooParameterizationがgetProblemFacts()または@ProblemFactPropertyの一部であることを確認してください