[jboss-svn-commits] JBL Code SVN: r33200 - labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun May 30 08:49:47 EDT 2010
Author: ge0ffrey
Date: 2010-05-30 08:49:47 -0400 (Sun, 30 May 2010)
New Revision: 33200
Modified:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
Log:
unwantedPatternWorkBeforeFreeSequencePattern
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl 2010-05-30 12:40:21 UTC (rev 33199)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl 2010-05-30 12:49:47 UTC (rev 33200)
@@ -526,6 +526,34 @@
end
// Unwanted patterns
+rule "unwantedPatternWorkBeforeFreeSequencePattern"
+ when
+ $pattern : WorkBeforeFreeSequencePattern(
+ $workDayOfWeek : workDayOfWeek,
+ $workShiftType : workShiftType,
+ $freeDayLength : freeDayLength
+ )
+ PatternContractLine(
+ pattern == $pattern, $contract : contract
+ )
+
+ Assignment(
+ eval($workDayOfWeek == null) || (shiftDateDayOfWeek == $workDayOfWeek),
+ eval($workShiftType == null) || (shiftType == $workShiftType),
+ contract == $contract,
+ $employee : employee, $workDayIndex : shiftDateDayIndex
+ )
+ EmployeeFreeSequence(
+ employee == $employee,
+ firstDayIndex == ($workDayIndex + 1),
+ dayLength >= $freeDayLength
+ )
+ then
+ insertLogical(new IntConstraintOccurrence("unwantedPatternWorkBeforeFreeSequencePattern",
+ ConstraintType.NEGATIVE_SOFT,
+ $pattern.getWeight(),
+ $employee, $pattern, $workDayIndex));
+end
rule "unwantedPatternShiftType2DaysPattern"
when
$pattern : ShiftType2DaysPattern(
@@ -549,7 +577,7 @@
shiftDateDayIndex == ($firstDayIndex + 1)
)
then
- insertLogical(new IntConstraintOccurrence("unwantedPattern", ConstraintType.NEGATIVE_SOFT,
+ insertLogical(new IntConstraintOccurrence("unwantedPatternShiftType2DaysPattern", ConstraintType.NEGATIVE_SOFT,
$pattern.getWeight(),
$employee, $pattern, $firstDayIndex));
end
@@ -582,7 +610,7 @@
shiftDateDayIndex == ($firstDayIndex + 2)
)
then
- insertLogical(new IntConstraintOccurrence("unwantedPattern", ConstraintType.NEGATIVE_SOFT,
+ insertLogical(new IntConstraintOccurrence("unwantedPatternShiftType3DaysPattern", ConstraintType.NEGATIVE_SOFT,
$pattern.getWeight(),
$employee, $pattern, $firstDayIndex));
end
@@ -621,7 +649,7 @@
shiftDateDayIndex == ($firstDayIndex + 3)
)
then
- insertLogical(new IntConstraintOccurrence("unwantedPattern", ConstraintType.NEGATIVE_SOFT,
+ insertLogical(new IntConstraintOccurrence("unwantedPatternShiftType4DaysPattern", ConstraintType.NEGATIVE_SOFT,
$pattern.getWeight(),
$employee, $pattern, $firstDayIndex));
end
More information about the jboss-svn-commits
mailing list