Skip to content

Package: PlanungsStrategie

PlanungsStrategie

Coverage

1: package planung.wochenplanung;
2:
3: import auftraege.Dokumentenklasse;
4: import auftraege.VoraussichtlicheDokumentenklasse;
5: import maschine.Maschine;
6: import planung.MittelfristigePlanung;
7: import planung.SchichtZeit;
8: import util.Fraction;
9: import zeit.eintraege.Zeitraum;
10:
11: import java.util.Collection;
12: import java.util.List;
13:
14: /**
15: * Planungsstrategie wird benörigt um die Planung durchzuführen.
16: */
17: public interface PlanungsStrategie {
18:         /**
19:          * Die mittelfristige Planung wird erstellt, indem zunächst aus sämtlichen Dokumentenklassen je ein Produktionsauftrag gebildet wird. Gleichzeitig dazu kann die
20:          * Erstellung der Schichten für den Zeitraum auf Basis der Schichtzeiten geschehen, was im folgenden Abschnitt erläutert wird. Diese beiden Prozesse laufen jedoch
21:          * im aktuellen Implementierungsstand noch nicht gleichzeitig ab.
22:          * <p>
23:          * Wenn die beiden Prozesse beendet sind, wird ein optimaler Schichtplan erstellt. Dieser Ablauf wird weiter unten ebenfalls genauer erläutert.
24:          *
25:          * @param zeitraum
26:          *                 Zeitraum, für den geplant werden soll.
27:          * @param schichtZeiten
28:          *                 Schichtplan, zu welchem allgemein gearbeitet wird (siehe {@link SchichtZeit}).
29:          * @param dokumentenklassen
30:          *                 Dokumentenklassen, welche bereits vorliegen und eingeplant werden müssen.
31:          * @param voraussichtlicheDokumentenklassen
32:          *                 Dokumentenklassen, welche vorangemeldet wurden, jedoch noch nicht mit allen Parametern existieren.
33:          * @param maschinen
34:          *                 Maschinen, welche zur Verfügung stehen, um die Planung zu verwirklichen.
35:          * @param produktionssatz
36:          *                 Produktionssatz, welcher zur Sicherheit gesetzt werden kann. Wenn er bei <b>100%</b> liegt, laufen sämtliche Maschinen auf voller Last.
37:          *                 <p>
38:          *                 Um eine Planungssicherheit einbauen zu können, kann der Satz beispielsweise auf <b>80%</b> festgelegt werden, um mit nur 80%igen
39:          *                 Maschinengeschwindigkeiten zu rechnen. Dieser Wert bezieht sich nicht auf Rüstzeiten, sondern
40:          *
41:          * @return erstellt eine {@link MittelfristigePlanung mittelfristige Planung} in Form einer Menge von Schichten für die übergebenen Parameter.
42:          */
43:         MittelfristigePlanung erstelleMittelfristigePlanung(
44:                         Zeitraum zeitraum,
45:                         Collection<SchichtZeit> schichtZeiten,
46:                         List<Dokumentenklasse> dokumentenklassen,
47:                         Collection<VoraussichtlicheDokumentenklasse> voraussichtlicheDokumentenklassen,
48:                         Collection<Maschine> maschinen,
49:                         Fraction produktionssatz);
50: }