[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